CertSafari

    Free Snowflake SnowPro Specialty: Gen AI (GES-C02) Sample Questions

    35 free sample questions from our bank of 351+, covering every exam domain, with answers and detailed explanations. Updated October 2026.

    Domain 1: Snowflake for Gen AI Overview

    Subdomain 1.2: Outline Gen AI capabilities in Snowflake.

    1.An administrator wants Cortex Analyst to follow organization-specific rules when generating SQL and deciding which questions to answer. Which capabilities does the custom instructions feature actually provide? (Select all that apply.)(Select 3)

    1. A.Custom instructions can guide SQL generation behavior using natural-language guidance embedded in the semantic model
    2. B.Custom instructions can be used to block or redirect questions about specific restricted topics via question categorization
    3. C.Custom instructions support separate, more structured guidance for different parts of the Analyst workflow through modular components
    4. D.Custom instructions replace the semantic model entirely, removing the need to define tables, facts, or dimensions
    5. E.Custom instructions can only be applied at the account level and never scoped to an individual semantic model
    Show answer & explanation

    Correct answers: A, B, C — Custom instructions can guide SQL generation behavior using natural-language guidance embedded in the semantic model; Custom instructions can be used to block or redirect questions about specific restricted topics via question categorization; Custom instructions support separate, more structured guidance for different parts of the Analyst workflow through modular components

    • A. Custom instructions let administrators write natural-language guidance that steers how Cortex Analyst generates SQL for a given semantic model.
    • B. The question categorization component of custom instructions is specifically designed to block or redirect questions on restricted topics.
    • C. Custom instructions support modular, structured components covering different parts of the workflow, such as SQL generation and question categorization, rather than a single flat instruction blob.
    • D. This is incorrect; custom instructions supplement the semantic model's tables, facts, and dimensions rather than replacing the need to define them.
    • E. This is incorrect; custom instructions are configured within a given semantic model's YAML, so they are scoped per model rather than being account-wide only.

    Subdomain 1.2: Outline Gen AI capabilities in Snowflake.

    2.An application needs to display a Cortex Agent's response token-by-token as it is generated, rather than waiting for the full answer. How should the agent:run REST API be called?

    1. A.Call the endpoint with the default streaming behavior, which sends the response as server-sent events
    2. B.Call the endpoint with stream set to false, which is the only mode the API supports
    3. C.Poll a separate status endpoint every second until the full response is written to a stage
    4. D.Use the DATA_AGENT_RUN SQL function instead, since only SQL functions support token-by-token output
    Show answer & explanation

    Correct answer: A — Call the endpoint with the default streaming behavior, which sends the response as server-sent events

    • A. By default the agent:run API streams the response as server-sent events, which is exactly how an application can display output token-by-token as it is generated.
    • B. Setting stream to false disables streaming and returns a single consolidated JSON response instead of incremental tokens, which is the opposite of what is needed here.
    • C. Manually polling a status endpoint is unnecessary and slower than using the API's built-in streaming mode for incremental output.
    • D. DATA_AGENT_RUN returns a non-streaming JSON response and does not provide token-by-token output; the REST API's streaming mode is the appropriate choice instead.

    Subdomain 1.1: Define Snowflake’s Gen AI principles and features.

    3.A developer already calls AI_COMPLETE with Snowflake's Arctic model but wants to compare output quality using a different vendor's large language model without deploying new infrastructure. What should they do?

    1. A.Change the model name argument passed to AI_COMPLETE to reference an available catalog model
    2. B.Register a new custom model class in the Model Registry and deploy it to a warehouse
    3. C.Submit a Cortex Fine-tuning job to retrain the existing model on new labeled data
    4. D.Provision a Snowpark Container Services compute pool to host the alternate model
    Show answer & explanation

    Correct answer: A — Change the model name argument passed to AI_COMPLETE to reference an available catalog model

    • A. This is correct: catalog models such as Claude, Llama, and Mistral are called serverlessly by simply swapping the model name argument, with no separate deployment needed.
    • B. This is incorrect: registering a custom model class is for bringing in externally trained models, not for switching between already-available catalog LLMs.
    • C. This is incorrect: retraining weights is unnecessary and far more effortful than simply pointing the function call at a different catalog model.
    • D. This is incorrect: provisioning dedicated GPU compute is unnecessary since catalog LLMs are already served in a fully managed, serverless way.

    Subdomain 1.1: Define Snowflake’s Gen AI principles and features.

    4.A business unit wants a chatbot-style interface that end users can simply configure, without writing orchestration code, so employees can ask natural-language questions that get routed to the right structured or unstructured data sources automatically. Which product is designed for this?

    1. A.Cortex Fine-tuning, a service for adapting base model weights to a domain
    2. B.Snowpark Container Services, a platform for hosting custom containerized models
    3. C.The Cortex Code command-line interface, a terminal-based coding assistant
    4. D.Snowflake Intelligence, a configured conversational layer built on top of Cortex Agents
    Show answer & explanation

    Correct answer: D — Snowflake Intelligence, a configured conversational layer built on top of Cortex Agents

    • A. This is incorrect: adapting model weights is a training activity and does not provide an end-user-facing, configuration-driven chatbot interface.
    • B. This is incorrect: containerized model hosting addresses infrastructure for custom models, not a business-user-facing conversational interface.
    • C. This is incorrect: a terminal-based coding assistant targets engineers writing code, not business employees asking conversational questions.
    • D. This is correct: this product delivers a configurable, no-code chatbot experience by packaging the orchestration already provided by Cortex Agents for end users.

    Subdomain 1.2: Outline Gen AI capabilities in Snowflake.

    5.A data engineer calls AI_COMPLETE to classify support tickets into fixed categories but the model sometimes invents categories not in the allowed list. What prompt-design change most directly addresses this?

    1. A.Explicitly enumerate the allowed category labels in the prompt and instruct the model to return only one of those exact labels.
    2. B.Remove all instructions and constraints from the prompt so the model has full freedom to choose its own category names per ticket.
    3. C.Increase the virtual warehouse size used to run the AI_COMPLETE call so the model has more compute to follow the category list.
    4. D.Switch to a smaller embedding model to reduce the number of dimensions returned for each support ticket before classifying it.
    Show answer & explanation

    Correct answer: A — Explicitly enumerate the allowed category labels in the prompt and instruct the model to return only one of those exact labels.

    • A. Correct. Listing the exact allowed labels in the prompt and telling the model to return only one of them constrains its output space, which is the direct prompt-design fix for invented categories. Giving the model a closed set of choices makes off-list labels much less likely.
    • B. Incorrect. Removing all instructions and constraints gives the model more freedom, not less. That makes invented, off-list category names more likely, which is the opposite of the goal.
    • C. Incorrect. Warehouse size affects the compute resources available to the query, not the content or constraints of the prompt sent to the model. A larger warehouse does not make the model follow a category list it was never given.
    • D. Incorrect. Embedding model choice and vector dimensionality matter for search and similarity tasks, not for a text-classification prompt sent to AI_COMPLETE. Switching to a smaller embedding model does nothing to stop the model from inventing labels.

    Domain 2: Snowflake Gen AI Functions

    Subdomain 2.2: Perform data analysis given a use case.

    6.Which of the following functions natively accept an image as input according to Snowflake's AISQL function set? (Select all that apply)(Select 4)

    1. A.AI_COMPLETE
    2. B.AI_CLASSIFY
    3. C.AI_FILTER
    4. D.AI_EXTRACT
    5. E.VECTOR_L1_DISTANCE
    6. F.GRANT USAGE
    Show answer & explanation

    Correct answers: A, B, C, D — AI_COMPLETE; AI_CLASSIFY; AI_FILTER; AI_EXTRACT

    • A. AI_COMPLETE supports image inputs with vision-capable models, allowing prompts that combine text instructions with an image for tasks like description or analysis.
    • B. AI_CLASSIFY supports classifying image inputs into user-defined categories in addition to text.
    • C. AI_FILTER supports evaluating a boolean condition against image input in addition to text.
    • D. AI_EXTRACT supports extracting structured information from images and documents in addition to plain text.
    • E. VECTOR_L1_DISTANCE operates on numeric vector values already produced by an embedding step; it does not accept a raw image as direct input.
    • F. GRANT USAGE is a SQL privilege statement for access control and has nothing to do with accepting image input for AI processing.

    Subdomain 2.1: Apply AI functions in Snowflake.

    7.A data scientist is choosing which Cortex vector functions to use while building a similarity-search feature over product embeddings. Which of the following are valid, purpose-built vector functions in Snowflake? (Select all that apply.)(Select 4)

    1. A.VECTOR_COSINE_SIMILARITY, for angular similarity between two vectors
    2. B.VECTOR_L2_DISTANCE, for Euclidean distance between two vectors
    3. C.VECTOR_INNER_PRODUCT, for a magnitude-weighted dot product between two vectors
    4. D.VECTOR_L1_DISTANCE, for Manhattan distance between two vectors
    5. E.VECTOR_CLASSIFY, for assigning a vector to a predefined category
    6. F.VECTOR_TRANSLATE, for converting a vector between embedding models
    Show answer & explanation

    Correct answers: A, B, C, D — VECTOR_COSINE_SIMILARITY, for angular similarity between two vectors; VECTOR_L2_DISTANCE, for Euclidean distance between two vectors; VECTOR_INNER_PRODUCT, for a magnitude-weighted dot product between two vectors; VECTOR_L1_DISTANCE, for Manhattan distance between two vectors

    • A. This is correct: this function measures angular closeness between two vectors, which is a real, documented vector similarity function commonly used with text embeddings.
    • B. This is correct: this function computes Euclidean straight-line distance between two vectors and is a real documented distance function.
    • C. This is correct: this function computes the dot product between two vectors, factoring in both direction and magnitude, and is a real documented vector function.
    • D. This is correct: this function computes Manhattan (sum of absolute differences) distance and is a real documented vector function, often faster than Euclidean distance at high dimensions.
    • E. This is incorrect: there is no vector-native classification function under this name; category assignment on text or images is handled by the AI_CLASSIFY function instead.
    • F. This is incorrect: there is no function that converts a vector produced by one embedding model into another model's vector space; re-embedding the source input is required instead.

    Subdomain 2.1: Apply AI functions in Snowflake.

    8.A data engineer is sorting Cortex AI functions into 'row-level' (one output per input row) versus 'aggregate' (one output per group of rows). Which statements correctly classify a function into the right category? (Select all that apply.)(Select 3)

    1. A.AI_SENTIMENT is row-level, returning one sentiment result for each input text
    2. B.AI_CLASSIFY is row-level, returning one classification result for each input text
    3. C.AI_SUMMARIZE_AGG is row-level, returning one summary for each individual input row
    4. D.AI_AGG is an aggregate function that collapses many rows into one instruction-driven output per group
    5. E.AI_TRANSLATE is an aggregate function that requires a GROUP BY clause to run
    6. F.AI_REDACT is an aggregate function that merges PII findings across many rows into one result
    Show answer & explanation

    Correct answers: A, B, D — AI_SENTIMENT is row-level, returning one sentiment result for each input text; AI_CLASSIFY is row-level, returning one classification result for each input text; AI_AGG is an aggregate function that collapses many rows into one instruction-driven output per group

    • A. This is correct: sentiment extraction evaluates one input text and returns one sentiment result for it, with no aggregation across rows involved.
    • B. This is correct: classification evaluates one input at a time and returns category labels for that single input, making it a row-level operation.
    • C. This is incorrect: this function is an aggregate that synthesizes a summary across every row in a group, it does not return a separate summary per individual row.
    • D. This is correct: this function is documented as an aggregate that combines many rows into a single instruction-driven output per group, similar in spirit to GROUP BY aggregates.
    • E. This is incorrect: translation operates on one text value at a time and has no aggregate behavior or GROUP BY requirement.
    • F. This is incorrect: PII redaction operates on one text value at a time and returns scrubbed text or detection spans for that single input, it does not merge findings across rows.

    Subdomain 2.3: Build or interact with interfaces to chat with data in Snowflake.

    9.Which database role provides the minimum privileges required for a user to invoke Cortex Analyst, following the principle of least privilege?

    1. A.SNOWFLAKE.CORTEX_ANALYST_USER
    2. B.SYSADMIN
    3. C.ACCOUNTADMIN
    4. D.SNOWFLAKE.CORTEX_USER
    Show answer & explanation

    Correct answer: A — SNOWFLAKE.CORTEX_ANALYST_USER

    • A. This database role is scoped specifically to Cortex Analyst usage, so granting it gives a caller exactly the access needed without extending broader Cortex privileges.
    • B. This is a general administrative role for managing database objects; it does not inherently grant the ability to call Cortex Analyst.
    • C. This role has global account privileges, which is far broader than necessary and violates least-privilege design for a chat-with-data feature.
    • D. This role grants access to Cortex functions more broadly than Analyst alone, so it is not the narrowest role available for this specific need.

    Subdomain 2.3: Build or interact with interfaces to chat with data in Snowflake.

    10.Which steps make up the orchestration loop that a Cortex Agent performs when handling a request? (Select all that apply)(Select 3)

    1. A.Fine-tuning
    2. B.Planning
    3. C.Model training
    4. D.Tool execution
    5. E.Reflection
    Show answer & explanation

    Correct answers: B, D, E — Planning; Tool execution; Reflection

    • A. Fine-tuning adjusts model weights ahead of time and is not a runtime step an agent performs while handling an individual request.
    • B. The agent first analyzes the request, disambiguates it if needed, and decides which tools to call, which is the planning stage of the loop.
    • C. Training a model is a separate offline process unrelated to how an already-configured agent handles an incoming request.
    • D. After planning, the agent calls the selected tools, such as Cortex Analyst or Cortex Search, to gather the information needed to answer.
    • E. The agent evaluates the results returned by its tools to decide whether to clarify, call further tools, or produce a final response, which is the reflection stage.

    Subdomain 2.5: Run third-party models in Snowflake.

    11.Which of the following are valid volume types that can be referenced in a Snowpark Container Services specification file, and which of those persist data beyond the life of a single service instance? (Select the types that provide persistent storage.)(Select 2)

    1. A.local
    2. B.memory
    3. C.block
    4. D.stage
    5. E.warehouse
    Show answer & explanation

    Correct answers: C, D — block; stage

    • A. local volumes provide ephemeral storage shared between containers within the same service instance and do not persist once that instance is gone.
    • B. memory volumes are RAM-backed scratch space that disappears when the container stops, so they do not persist data beyond the instance.
    • C. block volumes provide persistent storage that survives service restarts, making them suited for stateful workloads that must retain data.
    • D. stage volumes expose the contents of a Snowflake stage, which is durable storage outside the service instance, so data written there persists independently of the container's lifecycle.
    • E. warehouse is not a valid volume type at all; virtual warehouses provide SQL compute and have no relationship to container storage mounts.

    Subdomain 2.5: Run third-party models in Snowflake.

    12.A data science team already has a model tracked in an external MLflow server with a saved pyfunc flavor. They want to bring it into Snowflake governance without retraining. What is the most direct way to accomplish this using the Model Registry?

    1. A.Load the MLflow pyfunc model in Python and pass it to log_model
    2. B.Export the MLflow run as a Docker image and manually build a compute pool spec
    3. C.Re-train the model from scratch inside a Snowpark stored procedure
    4. D.Convert the model to a SQL UDF before importing
    Show answer & explanation

    Correct answer: A — Load the MLflow pyfunc model in Python and pass it to log_model

    • A. Because MLflow pyfunc models are natively supported by log_model, loading the existing pyfunc object and passing it directly to log_model registers it without retraining.
    • B. Manually exporting to a Docker image and building compute pool infrastructure is unnecessary extra work when native MLflow support already exists in the registry.
    • C. Retraining from scratch discards the existing MLflow-tracked model entirely and is not required since native import support exists.
    • D. Converting to a SQL UDF is not a supported or necessary step for bringing an MLflow pyfunc model into the Model Registry.

    Subdomain 2.4: Apply Snowflake Cortex functions in data pipelines.

    13.A call center uploads recorded call audio files to an internal stage throughout the day. The team wants a pipeline that automatically produces timestamped transcripts with speaker labels for each new recording, without reprocessing files that were already handled. Which design is appropriate?

    1. A.A stream on the stage's directory table captures newly landed audio files, and a scheduled task calls AI_TRANSCRIBE against each new file reference and inserts the results into a transcripts table.
    2. B.A single scheduled task runs AI_TRANSCRIBE against every audio file listed in the stage's directory table each night and overwrites the transcripts table with the freshly generated speaker-labeled results.
    3. C.A dynamic table over the stage's directory table calls AI_COMPLETE directly on the raw audio bytes of each file to produce a timestamped, speaker-labeled transcript and refreshes it incrementally.
    4. D.A stream on the stage's directory table captures newly landed files and calls AI_SUMMARIZE_AGG on the stream's audio column to produce a timestamped transcript with speaker labels for each call recording.
    Show answer & explanation

    Correct answer: A — A stream on the stage's directory table captures newly landed audio files, and a scheduled task calls AI_TRANSCRIBE against each new file reference and inserts the results into a transcripts table.

    • A. Correct. A stream on the stage's directory table exposes only newly arrived files as change rows, so a scheduled task consuming it processes each recording once and avoids reprocessing earlier files. `AI_TRANSCRIBE` is the Cortex function built for audio transcription and can return timestamps and speaker labels when called on each new file reference, and the results are inserted into a transcripts table.
    • B. Incorrect. Running `AI_TRANSCRIBE` against every file in the directory table each night reprocesses recordings that were already transcribed, which wastes compute and AI function credits. Overwriting the transcripts table also risks losing or duplicating historical results, and it violates the requirement not to reprocess handled files.
    • C. Incorrect. `AI_COMPLETE` is a general text, image, and prompt completion function and is not the function designed to transcribe audio into timestamped, speaker-labeled text. The correct function for this purpose is `AI_TRANSCRIBE`, so this design would not reliably produce the required transcripts even with incremental refresh.
    • D. Incorrect. `AI_SUMMARIZE_AGG` aggregates and summarizes text across multiple rows, so it cannot transcribe audio content into text with timestamps and speaker labels. Although the stream correctly detects new files, the transcription function is wrong for this requirement.

    Subdomain 2.5: Run third-party models in Snowflake.

    14.A team notices their Snowpark Container Services costs are higher than expected because a compute pool with GPU nodes stays at its minimum node count around the clock, even during long idle periods overnight. Which change would most directly reduce this idle-time cost while still supporting bursts of demand during business hours?

    1. A.Lower MIN_NODES so the pool scales down further during idle periods while keeping MAX_NODES high enough for peak demand.
    2. B.Switch the model to a different Model Registry version so the service loads a lighter build that needs fewer GPU nodes overnight.
    3. C.Increase the image repository's retention window so the pool keeps cached container images and starts nodes faster after scaling down.
    4. D.Add more endpoints to the service specification so requests are spread across additional ports and the pool can release idle GPU nodes.
    Show answer & explanation

    Correct answer: A — Lower MIN_NODES so the pool scales down further during idle periods while keeping MAX_NODES high enough for peak demand.

    • A. Correct. MIN_NODES sets the floor the compute pool never drops below, so lowering it lets the pool shrink further overnight and cuts the standing GPU cost. Keeping MAX_NODES high enough still lets the pool scale out to absorb demand bursts during business hours.
    • B. Incorrect. A different Model Registry version changes which model artifact serves inference, but it does not change the pool's MIN_NODES setting. The pool would keep the same minimum number of GPU nodes running overnight, so idle cost stays the same.
    • C. Incorrect. Image repository retention only controls how long stored image tags are kept. It does not affect how many nodes the compute pool keeps running, so it does not reduce idle GPU cost. Faster node startup also does not lower the standing cost of the minimum nodes.
    • D. Incorrect. Adding endpoints only changes which ports the service exposes for network traffic. Compute pool scaling is governed by MIN_NODES and MAX_NODES, so extra endpoints do not release idle GPU nodes or lower overnight cost.

    Subdomain 2.1: Apply AI functions in Snowflake.

    15.A team is migrating SQL that currently calls the legacy SNOWFLAKE.CORTEX.COMPLETE function toward the newer AI_* function surface. Which statements about this migration are accurate? (Select all that apply.)(Select 5)

    1. A.AI_COMPLETE is the recommended replacement for the legacy COMPLETE function and accepts both text and image inputs.
    2. B.The legacy COMPLETE function is being phased out and AI_COMPLETE is described as the canonical function going forward.
    3. C.AI_CLASSIFY is the direct successor to the legacy CLASSIFY_TEXT function and covers SQL text classification workloads.
    4. D.AI_EMBED supersedes the legacy EMBED_TEXT_768 and EMBED_TEXT_1024 functions for creating vector embeddings from text.
    5. E.Legacy Cortex functions are removed immediately, so existing COMPLETE calls fail in every account after the AI_* release.
    6. F.AI_PARSE_DOCUMENT supersedes the legacy PARSE_DOCUMENT function for extracting text and layout from staged documents.
    Show answer & explanation

    Correct answers: A, B, C, D, F — AI_COMPLETE is the recommended replacement for the legacy COMPLETE function and accepts both text and image inputs.; The legacy COMPLETE function is being phased out and AI_COMPLETE is described as the canonical function going forward.; AI_CLASSIFY is the direct successor to the legacy CLASSIFY_TEXT function and covers SQL text classification workloads.; AI_EMBED supersedes the legacy EMBED_TEXT_768 and EMBED_TEXT_1024 functions for creating vector embeddings from text.; AI_PARSE_DOCUMENT supersedes the legacy PARSE_DOCUMENT function for extracting text and layout from staged documents.

    • A. Correct. `AI_COMPLETE` is the recommended successor to the legacy `SNOWFLAKE.CORTEX.COMPLETE` function. It also extends beyond the older text-only function by accepting image inputs alongside text prompts.
    • B. Correct. The legacy `COMPLETE` function is kept for backward compatibility but is being phased out. `AI_COMPLETE` is positioned as the canonical, go-forward function, so new and migrated SQL should target it.
    • C. Correct. `AI_CLASSIFY` is the newer form of the legacy `CLASSIFY_TEXT` function. Both assign categories to text, so SQL text classification workloads can move to `AI_CLASSIFY`.
    • D. Correct. `AI_EMBED` replaces the older fixed-dimension `EMBED_TEXT_768` and `EMBED_TEXT_1024` functions. It consolidates vector embedding generation from text under a single AI_* function name.
    • E. Incorrect. Legacy Cortex functions are not removed immediately. They continue to exist alongside the AI_* functions and are being phased out gradually, so existing `COMPLETE` calls do not fail in every account after the AI_* release.
    • F. Correct. `AI_PARSE_DOCUMENT` is the newer form of the legacy `PARSE_DOCUMENT` function. It extracts text and layout from staged documents and is the recommended path going forward.

    Subdomain 2.4: Apply Snowflake Cortex functions in data pipelines.

    16.A data engineering team already has a Python-based orchestration codebase that performs several DataFrame transformations, and they want to add an LLM completion step in the middle of that existing Python workflow, running on a schedule inside Snowflake. Which approach fits best?

    1. A.Call the Complete function from the snowflake.cortex Python module inside the existing Python DataFrame pipeline.
    2. B.Rewrite the entire Python pipeline in SQL so that AI_COMPLETE can be called from a scheduled Snowflake task.
    3. C.Export the DataFrame to an external system to call a REST API, then reimport the results into Snowflake.
    4. D.Avoid Cortex functions entirely and call an external LLM provider's API from Python inside the pipeline.
    Show answer & explanation

    Correct answer: A — Call the Complete function from the snowflake.cortex Python module inside the existing Python DataFrame pipeline.

    • A. Correct. The `snowflake.cortex` Python module exposes `Complete`, which can be called directly on Snowpark DataFrame data inside an existing Python codebase. This adds the LLM step in the middle of the current workflow with no rewrite, and it keeps execution and data inside Snowflake, where it can run on a schedule.
    • B. Incorrect. `AI_COMPLETE` is a valid SQL function, but rewriting the whole Python pipeline in SQL is a large and unnecessary effort. The same completion capability is already available from Python, so the team can keep its existing DataFrame transformations.
    • C. Incorrect. Exporting the DataFrame to an external system to call a REST API, then reimporting the results, adds data movement, latency and operational complexity. The completion can be run in place from Python, so this round trip is not needed.
    • D. Incorrect. Calling an external LLM provider's API from Python sends data outside Snowflake's governed environment. It also adds external credentials and network dependencies, when Cortex offers an equivalent in-platform function that can be called from the same Python code.

    Subdomain 2.2: Perform data analysis given a use case.

    17.A team is deciding how to reduce hallucinations and improve accuracy in a Cortex-based Q&A application over internal policy documents. Which of the following are reasonable, documented-aligned levers they can pull? (Select all that apply)(Select 4)

    1. A.Improving chunking and retrieval so the model is grounded in the most relevant passages.
    2. B.Choosing a more capable model when a task needs deeper reasoning over retrieved context.
    3. C.Adding CUSTOM_INSTRUCTIONS or prompt guidance that restricts answers to the provided context.
    4. D.Using semantic reranking to surface the most relevant passages ahead of less relevant ones.
    5. E.Randomly shuffling the order of retrieved chunks before every request sent to the model.
    6. F.Removing all retrieved context so the model relies purely on its own prior knowledge.
    Show answer & explanation

    Correct answers: A, B, C, D — Improving chunking and retrieval so the model is grounded in the most relevant passages.; Choosing a more capable model when a task needs deeper reasoning over retrieved context.; Adding CUSTOM_INSTRUCTIONS or prompt guidance that restricts answers to the provided context.; Using semantic reranking to surface the most relevant passages ahead of less relevant ones.

    • A. Correct. Better chunking and retrieval quality gives the model accurate, relevant source passages to base its answer on. Grounding the response in the right policy text reduces the need for the model to guess and fabricate.
    • B. Correct. When a task needs deeper reasoning over retrieved context, a more capable model is more likely to synthesize an accurate answer. A smaller model tuned for speed or cost may misread or poorly combine the passages.
    • C. Correct. Using `CUSTOM_INSTRUCTIONS` or prompt guidance to restrict answers to the provided context is a standard technique for reducing fabricated answers. It tells the model to decline or say it doesn't know rather than draw on unsupported knowledge.
    • D. Correct. Semantic reranking improves the relevance ordering of retrieved passages. This makes it more likely that the most useful grounding content is included and prioritized in the final prompt.
    • E. Incorrect. Randomly shuffling chunk order has no grounding benefit. It doesn't address the real cause of hallucination, which is missing or irrelevant context, and it can bury the most relevant passages.
    • F. Incorrect. Removing all retrieved context eliminates grounding entirely. The model would then rely only on its prior knowledge, which makes hallucination more likely on internal policy content it has never seen.

    Domain 3: Snowflake Gen AI Governance

    Subdomain 3.1: Set up model access controls.

    18.A data governance lead is comparing the CORTEX_USER and AI_FUNCTIONS_USER database roles. Which statements correctly describe a difference between the two? (Select all that apply.)(Select 3)

    1. A.CORTEX_USER is granted to PUBLIC by default, while AI_FUNCTIONS_USER is not
    2. B.AI_FUNCTIONS_USER only covers scalar Cortex functions and excludes aggregate functions such as AI_AGG
    3. C.CORTEX_USER grants broader access across Cortex AI functions than AI_FUNCTIONS_USER
    4. D.AI_FUNCTIONS_USER is required to set the CORTEX_MODELS_ALLOWLIST parameter
    5. E.CORTEX_USER can only be granted to the ACCOUNTADMIN role
    Show answer & explanation

    Correct answers: A, B, C — CORTEX_USER is granted to PUBLIC by default, while AI_FUNCTIONS_USER is not; AI_FUNCTIONS_USER only covers scalar Cortex functions and excludes aggregate functions such as AI_AGG; CORTEX_USER grants broader access across Cortex AI functions than AI_FUNCTIONS_USER

    • A. CORTEX_USER is granted to PUBLIC by default so that most Cortex functions work out of the box, whereas AI_FUNCTIONS_USER is not granted to PUBLIC and must be explicitly assigned.
    • B. AI_FUNCTIONS_USER is scoped to scalar functions and specifically excludes aggregate-style functions like AI_AGG and AI_SUMMARIZE_AGG, unlike the broader CORTEX_USER role.
    • C. CORTEX_USER grants access to the full set of Cortex AI functions, making it broader in scope than the more limited AI_FUNCTIONS_USER role.
    • D. Setting the CORTEX_MODELS_ALLOWLIST parameter requires the ACCOUNTADMIN role and ALTER ACCOUNT privileges; it has no relationship to holding the AI_FUNCTIONS_USER database role.
    • E. CORTEX_USER can be granted to any role, and in fact is granted to PUBLIC by default, so it is not restricted to ACCOUNTADMIN.

    Subdomain 3.1: Set up model access controls.

    19.A data platform team must satisfy two simultaneous requirements: (1) block a contractor role from calling any model beyond a short approved list, and (2) allow an internal analytics role to call an emerging preview model that is not yet on the approved list but has been separately vetted for that team. Which design satisfies both requirements without conflicting configuration?

    1. A.Keep the account allowlist restricted to the approved list for the contractor role's default access, and additionally grant the analytics role the specific per-model application role for the preview model
    2. B.Set the allowlist to 'All' for the whole account so every role can reach every model, then hope no contractor calls an unapproved model
    3. C.Set the allowlist to 'None' account-wide with no RBAC grants, blocking every role including the analytics team
    4. D.Grant CORTEX_USER only to the contractor role and leave the analytics role without any Cortex privileges
    Show answer & explanation

    Correct answer: A — Keep the account allowlist restricted to the approved list for the contractor role's default access, and additionally grant the analytics role the specific per-model application role for the preview model

    • A. Because RBAC is checked before the allowlist, granting the analytics role the specific model's application role lets it reach the preview model even though the allowlist otherwise restricts the account to the approved list used for the contractor.
    • B. Opening the allowlist to 'All' would let the contractor role reach every model, directly violating the requirement to restrict the contractor to a short approved list.
    • C. Blocking everything with no RBAC grants would also prevent the analytics role from reaching the preview model, failing the second requirement entirely.
    • D. Granting CORTEX_USER to the contractor while withholding it from the analytics role reverses the intended access and does not grant the preview model access the analytics team needs.

    Subdomain 3.3: Manage, monitor, and optimize Snowflake Cortex costs.

    20.Which Snowflake feature should an administrator configure so that a compute pool running a Snowpark Container Services inference endpoint stops accruing credits automatically after a period with no active jobs?

    1. A.AUTO_SUSPEND on the compute pool
    2. B.A resource monitor attached to the ACCOUNTADMIN role
    3. C.A masking policy applied to the service's output table
    4. D.A network policy restricting inbound IP ranges to the service
    Show answer & explanation

    Correct answer: A — AUTO_SUSPEND on the compute pool

    • A. AUTO_SUSPEND automatically transitions an idle compute pool to the non-billed SUSPENDED state after inactivity, which stops credit accrual without manual intervention.
    • B. A resource monitor can alert on or cap overall account or warehouse credit usage, but it does not automatically suspend a specific idle compute pool.
    • C. A masking policy controls how column data is displayed to different roles and has no relationship to compute pool billing states.
    • D. A network policy restricts client connections by IP address and does not affect whether a compute pool keeps accruing idle charges.

    Subdomain 3.3: Manage, monitor, and optimize Snowflake Cortex costs.

    21.Before running AI_COMPLETE over a multi-million-row table for the first time, an engineer wants to estimate the token cost of the job without incurring model inference charges. Which approach lets them do this?

    1. A.Run the COUNT_TOKENS function against the prompt text to estimate token volume before invoking the generative function
    2. B.Run AI_COMPLETE on a single row and multiply the resulting credit charge by the row count
    3. C.Query CORTEX_ANALYST_USAGE_HISTORY for a similar historical workload
    4. D.Estimate cost using the row count of the source table alone, since each row consumes exactly one token
    Show answer & explanation

    Correct answer: A — Run the COUNT_TOKENS function against the prompt text to estimate token volume before invoking the generative function

    • A. COUNT_TOKENS reports token counts for given text without invoking the model itself, letting the engineer estimate cost ahead of running the actual generative workload.
    • B. Running the function on even a single row still incurs an actual inference charge, which is exactly the cost the engineer is trying to estimate without incurring first.
    • C. CORTEX_ANALYST_USAGE_HISTORY tracks Cortex Analyst requests, not AI_COMPLETE token usage, so it would not provide a relevant estimate for this workload.
    • D. Token count depends on text length and content, not row count, since a single row can contain many tokens; row count alone is not a valid proxy for token volume.

    Subdomain 3.2: Grant and revoke Role-Based Access Control (RBAC) and privileges.

    22.Which database role is documented as sufficient, on its own among the Cortex-specific roles, to authorize a user to call a Cortex Agent?

    1. A.SNOWFLAKE.CORTEX_AGENT_USER
    2. B.SNOWFLAKE.CORTEX_ANALYST_USER
    3. C.SNOWFLAKE.CORTEX_EMBED_USER
    4. D.SNOWFLAKE.AI_FUNCTIONS_USER
    Show answer & explanation

    Correct answer: A — SNOWFLAKE.CORTEX_AGENT_USER

    • A. This is correct: calling a Cortex Agent is authorized by holding either CORTEX_USER or this agent-scoped role, which was purpose-built for that use case.
    • B. This is incorrect: this role is scoped to Cortex Analyst requests and is not documented as sufficient for calling an agent by itself.
    • C. This is incorrect: this role only covers embedding functions and managed search embeddings, unrelated to agent invocation.
    • D. This is incorrect: this role covers scalar AI functions but explicitly excludes Cortex services such as Agents.

    Subdomain 3.2: Grant and revoke Role-Based Access Control (RBAC) and privileges.

    23.An account administrator wants to move away from the account-wide model allowlist toward fine-grained RBAC for Cortex LLM models. What is the first step needed before any per-model application role can be granted?

    1. A.Call SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH() so model objects and their application roles are populated
    2. B.Set CORTEX_MODELS_ALLOWLIST to None immediately, before granting any per-model roles
    3. C.Drop the SNOWFLAKE.MODELS schema and recreate it manually with custom model objects
    4. D.Grant IMPORTED PRIVILEGES on the SNOWFLAKE database to every consuming role
    Show answer & explanation

    Correct answer: A — Call SNOWFLAKE.MODELS.CORTEX_BASE_MODELS_REFRESH() so model objects and their application roles are populated

    • A. This is correct: the model objects in SNOWFLAKE.MODELS and their corresponding application roles must be populated via this refresh call before any model-specific role can be granted.
    • B. This is incorrect: disabling the allowlist before RBAC grants are in place would leave users with fully-qualified model calls unable to fall back, so the refresh and grant steps must happen first, in that order.
    • C. This is incorrect: the SNOWFLAKE.MODELS schema is system-managed and populated by the refresh procedure, not something an administrator manually drops or recreates.
    • D. This is incorrect: this broad database-level privilege is not the documented prerequisite for enabling model-specific RBAC; the refresh procedure is what populates the grantable roles.

    Subdomain 3.4: Use Snowflake AI observability tools.

    24.An engineer instruments the top-level entry-point function of a custom RAG application with TruLens and tags its span type as RECORD_ROOT. What is the purpose of the RECORD_ROOT span type?

    1. A.It marks the overall input and output of a single application invocation, anchoring record-level metrics such as answer relevance and correctness
    2. B.It marks a function that performs vector search, anchoring metrics such as context relevance for the retrieved chunks
    3. C.It marks a function that generates the final text response, anchoring token-count and latency measurements only
    4. D.It marks a function that writes results to an event table, anchoring storage cost attribution for the run
    Show answer & explanation

    Correct answer: A — It marks the overall input and output of a single application invocation, anchoring record-level metrics such as answer relevance and correctness

    • A. RECORD_ROOT designates the top-level call whose input and output represent the whole record, which is where record-level metrics like answer relevance and correctness attach.
    • B. Retrieval functions are tagged with the RETRIEVAL span type, not RECORD_ROOT, so that context relevance can be computed against the retrieved chunks specifically.
    • C. Generation functions are tagged with the GENERATION span type; RECORD_ROOT is not limited to token or latency capture and covers the whole record instead.
    • D. Writing to the event table is an internal platform mechanism, not something a developer tags with a span type, and RECORD_ROOT has no connection to storage cost attribution.

    Subdomain 3.4: Use Snowflake AI observability tools.

    25.A developer tries to register a new External Agent for their chatbot but the operation fails, and they discover a model object in the same schema already uses the intended name. Why does this conflict occur?

    1. A.External Agent objects share a namespace with model objects in the schema, so their names cannot collide
    2. B.External Agent objects can only be created in the SNOWFLAKE database, and the name collision is with a system model there
    3. C.External Agent creation requires the CREATE MODEL privilege, and the schema's model quota has already been reached
    4. D.External Agent names must match an existing Cortex Search service name, and none was available to reuse
    Show answer & explanation

    Correct answer: A — External Agent objects share a namespace with model objects in the schema, so their names cannot collide

    • A. External Agent objects share a namespace with model objects within a schema, so an existing model object with the same name will block creation of an External Agent using that name.
    • B. External Agents are created in the developer's own schema, not restricted to the SNOWFLAKE system database, so that is not the source of this naming conflict.
    • C. Creating an External Agent does not require the CREATE MODEL privilege or draw from a model quota; the conflict here is purely a duplicate-name issue in a shared namespace.
    • D. External Agent names have no required relationship to Cortex Search service names, so a missing search service is not what is causing this registration failure.

    Subdomain 3.2: Grant and revoke Role-Based Access Control (RBAC) and privileges.

    26.Which of the following are valid, documented reasons a Cortex AI function call could fail for a user even though their active role holds SNOWFLAKE.CORTEX_USER? (Select all that apply)(Select 3)

    1. A.The account-level USE AI FUNCTIONS privilege, or the relevant per-function grant, was revoked from both PUBLIC and the role.
    2. B.The specific model being called is neither covered by a granted RBAC model role nor permitted by the account's allowlist.
    3. C.The role is using Restricted Caller's Rights without the required CALLER-qualified privilege grants held by the owning role.
    4. D.The user's password was rotated more than ninety days ago, so the account password policy blocks the session from calling Cortex functions.
    5. E.The account is enrolled in a different Snowflake edition than Business Critical, so Cortex AI functions are unavailable for that edition.
    Show answer & explanation

    Correct answers: A, B, C — The account-level USE AI FUNCTIONS privilege, or the relevant per-function grant, was revoked from both PUBLIC and the role.; The specific model being called is neither covered by a granted RBAC model role nor permitted by the account's allowlist.; The role is using Restricted Caller's Rights without the required CALLER-qualified privilege grants held by the owning role.

    • A. Correct. Holding SNOWFLAKE.CORTEX_USER does not by itself guarantee access, because the account-level USE AI FUNCTIONS privilege (or the relevant per-function grant) is a separate layer. If it has been revoked from both PUBLIC and the role, the call fails even though the role holds the database role.
    • B. Correct. Model-level access is governed separately from the feature-level CORTEX_USER role. If the specific model is neither covered by a granted RBAC model role nor permitted by the account's allowlist, the call fails regardless of the role holding CORTEX_USER.
    • C. Correct. Under Restricted Caller's Rights, the owning role's access is limited to privileges granted as CALLER-qualified grants. If those grants are missing, execution can fail even when the calling role is otherwise fully provisioned with CORTEX_USER.
    • D. Incorrect. Password rotation age is an authentication hygiene control and has no documented effect on authorization to call Cortex AI functions. A password policy may force a reset at login, but it does not selectively block Cortex functions for a session.
    • E. Incorrect. Cortex AI function availability is governed by the privilege, role and model-access grants described in the other options, not by requiring Business Critical edition. Being on a different edition is therefore not a documented reason for this failure.

    Subdomain 3.1: Set up model access controls.

    27.A team building a customer-facing chatbot on Snowflake Cortex is required by their compliance team to prevent the LLM from generating responses containing hate speech, violent content, or self-harm content, with the filtering handled natively by Snowflake rather than by custom application logic. Which capability should they use?

    1. A.Enable Cortex Guard by setting guardrails to true in the COMPLETE call, so outputs are screened for unsafe content.
    2. B.Wrap every chatbot response in AI_REDACT, configured to strip hateful, violent, and self-harm language before display.
    3. C.Increase the model's temperature parameter in COMPLETE so that responses become more conservative and avoid unsafe content.
    4. D.Restrict the account allowlist to only include smaller, less capable models that are unlikely to produce unsafe content.
    Show answer & explanation

    Correct answer: A — Enable Cortex Guard by setting guardrails to true in the COMPLETE call, so outputs are screened for unsafe content.

    • A. Correct. Cortex Guard is Snowflake's native safety filter, and enabling it by setting guardrails to true in the `COMPLETE` call screens model output for harmful categories such as hate, violent content, and self-harm. Unsafe responses are replaced automatically, so no custom application logic is needed to meet the compliance requirement.
    • B. Incorrect. `AI_REDACT` is designed to detect and mask personally identifiable information in text, not to evaluate content for hate speech, violence, or self-harm. It has no setting for stripping those categories, so it cannot meet the content-safety requirement.
    • C. Incorrect. Temperature controls the randomness and creativity of generated text, not its safety. Changing it gives no guarantee against harmful content and is not a compliance control, and raising it would make outputs more random rather than more conservative.
    • D. Incorrect. Restricting the account allowlist limits which models can be used but adds no content-safety filtering to their outputs. Smaller models can still generate unsafe content, so this does not satisfy the requirement for native filtering.

    Domain 4: Snowflake Document Processing

    Subdomain 4.1: Use document parsing functions.

    28.A pipeline sets page_split to TRUE when calling AI_PARSE_DOCUMENT on a 40-page contract so that a downstream task can process one page at a time. How should the pipeline read the parsed pages from the returned JSON?

    1. A.Iterate the response's pages array and reference each element's content field alongside its zero-based index field
    2. B.Read the single top-level content field and split it into pages using a newline count stored in pageCount
    3. C.Query the images array, since page_split reroutes page-level text into image objects only in LAYOUT mode
    4. D.Reference the metadata field, since metadata only becomes available in the response when page_split is TRUE
    Show answer & explanation

    Correct answer: A — Iterate the response's pages array and reference each element's content field alongside its zero-based index field

    • A. When page_split is TRUE, the response contains a pages array whose elements each expose a content field and an index field identifying that page's position.
    • B. There is no single combined content field once page_split is enabled, and pageCount is not a mechanism for splitting text by newlines.
    • C. The images array holds extracted picture content when extract_images is enabled; page-level text is never rerouted into image objects.
    • D. The metadata field is tied to setting return_error_details to TRUE, not to page_split, so its availability does not depend on page splitting.

    Subdomain 4.1: Use document parsing functions.

    29.As of the April 2026 platform update, what is the maximum number of pages AI_PARSE_DOCUMENT can process in a single document call, in both OCR and LAYOUT modes?

    1. A.2,000 pages
    2. B.500 pages
    3. C.300 pages
    4. D.There is no page-count ceiling; only the response token limit constrains document size
    Show answer & explanation

    Correct answer: A — 2,000 pages

    • A. The April 2026 platform update raised AI_PARSE_DOCUMENT's supported page count to 2,000 pages for both OCR and LAYOUT modes.
    • B. 500 pages understates the current documented limit after the April 2026 increase, which raised the ceiling well beyond that figure.
    • C. 300 pages reflects an earlier, lower ceiling and is no longer accurate after the documented April 2026 page-limit increase.
    • D. AI_PARSE_DOCUMENT does enforce a documented maximum page count per call in addition to any token-related constraints on output size.

    Subdomain 4.2: Prepare and manage documents and implement extracting workflows.

    30.Before a Snowpark pipeline can call AI_PARSE_DOCUMENT or AI_EXTRACT on newly arrived contracts, what must the engineering team do to make the files available to the function?

    1. A.Load the files into a stage, then reference them via TO_FILE()
    2. B.Insert the raw file bytes into a VARIANT column and pass that column directly
    3. C.Register each file as a Snowpark DataFrame before calling the function
    4. D.Upload the files into a Snowflake model registry entry for the pipeline
    Show answer & explanation

    Correct answer: A — Load the files into a stage, then reference them via TO_FILE()

    • A. Both functions operate on FILE objects created from documents sitting in an internal or external stage, and TO_FILE() is the mechanism used to reference a staged document in the call.
    • B. Storing raw bytes in a VARIANT column bypasses the stage-based FILE reference these functions expect, so it is not a supported input path.
    • C. A Snowpark DataFrame represents tabular query results, not a staged document reference, so it cannot substitute for a FILE object built from a stage.
    • D. The model registry stores machine learning models and artifacts, not source documents awaiting parsing or extraction, so it is unrelated to this requirement.

    Subdomain 4.2: Prepare and manage documents and implement extracting workflows.

    31.An analyst designs a single AI_EXTRACT call that asks for 120 distinct entities and 12 tables from one contract. What will happen when the call runs?

    1. A.It fails, since a single call allows at most 100 entity questions and 10 table questions
    2. B.It succeeds, since AI_EXTRACT has no cap on entity or table questions per call
    3. C.It fails, since a single call allows at most 50 entity questions and 5 table questions
    4. D.It succeeds, but only the first 100 entities and 10 tables are returned silently
    Show answer & explanation

    Correct answer: A — It fails, since a single call allows at most 100 entity questions and 10 table questions

    • A. AI_EXTRACT limits a single call to at most 100 entity extraction questions and 10 table extraction questions, so requesting 120 entities and 12 tables exceeds both caps and the call fails.
    • B. The function does enforce documented per-call caps on both entity and table questions, so there is no unlimited-question behavior to rely on here.
    • C. The actual documented caps are 100 entity questions and 10 table questions per call, not the lower thresholds stated here.
    • D. Exceeding the documented caps produces a failure rather than a silent truncation of the request down to the allowed limits.

    Subdomain 4.3: Build automated document processing pipelines with Cortex AI integration.

    32.Which of the following are valid ways to schedule or trigger a task in a Snowflake document-processing pipeline? (Select all that apply)(Select 3)

    1. A.A SCHEDULE expression, using either a fixed interval or a cron pattern, that runs the task on a recurring cadence
    2. B.An AFTER clause that positions the task as a child of a predecessor task within a task graph
    3. C.A WHEN clause using SYSTEM$STREAM_HAS_DATA so the task only executes its body when the referenced stream has unconsumed records
    4. D.A GRANT OWNERSHIP statement that causes the task to fire automatically whenever ownership of the source table changes
    5. E.A COMMENT property on the task that Snowflake parses for timing keywords to derive an implicit schedule
    Show answer & explanation

    Correct answers: A, B, C — A SCHEDULE expression, using either a fixed interval or a cron pattern, that runs the task on a recurring cadence; An AFTER clause that positions the task as a child of a predecessor task within a task graph; A WHEN clause using SYSTEM$STREAM_HAS_DATA so the task only executes its body when the referenced stream has unconsumed records

    • A. SCHEDULE accepts either a fixed interval like '5 MINUTE' or a cron-style expression, both of which are standard, documented ways to run a standalone task on a recurring cadence.
    • B. AFTER defines a task's position in a task graph as a child of one or more predecessor tasks, causing it to run once its predecessors complete rather than on its own independent schedule.
    • C. SYSTEM$STREAM_HAS_DATA is commonly used in a task's WHEN clause to conditionally skip execution when the associated stream has no new change records, avoiding wasted runs.
    • D. Changing table ownership is an access-control operation and has no relationship to task scheduling or triggering; it does not cause any task to fire.
    • E. Task comments are free-text metadata for documentation purposes only; Snowflake does not parse them for scheduling keywords or derive execution timing from them.

    Subdomain 4.3: Build automated document processing pipelines with Cortex AI integration.

    33.In a Snowflake document pipeline, what privilege must a role hold in order to manually resume or execute a suspended user-managed task using EXECUTE TASK?

    1. A.The EXECUTE TASK privilege on the account, or ownership of the task combined with the appropriate operate privilege
    2. B.The SNOWFLAKE.CORTEX_USER database role, since document tasks always call Cortex functions
    3. C.The USE AI FUNCTIONS account-level privilege, since it also covers all task execution
    4. D.MONITOR privilege on the warehouse the task uses, which alone is sufficient to execute any task
    Show answer & explanation

    Correct answer: A — The EXECUTE TASK privilege on the account, or ownership of the task combined with the appropriate operate privilege

    • A. Executing or resuming a task requires the EXECUTE TASK privilege (typically granted at the account level to the role that manages the task) along with sufficient ownership or operate rights on the task object itself; this is separate from privileges needed to call Cortex functions.
    • B. CORTEX_USER governs access to Cortex AI functions like AI_COMPLETE or AI_PARSE_DOCUMENT; it does not grant the ability to execute or resume a task, which is a distinct object-level operation.
    • C. USE AI FUNCTIONS gates access to AI/Cortex functions, not task execution; a role could hold this privilege and still be unable to run or resume a task without EXECUTE TASK.
    • D. MONITOR on a warehouse allows viewing warehouse usage and status, but it does not grant the ability to execute or resume a task; that requires the task-specific EXECUTE TASK privilege.

    Subdomain 4.4: Troubleshoot and optimize document processing.

    34.A FinOps lead wants to build a dashboard that tracks how much a document-extraction pipeline built on AI_EXTRACT is costing the account, broken down over time and by function. Which approaches correctly support this goal? (Select all that apply)(Select 3)

    1. A.Query CORTEX_FUNCTIONS_USAGE_HISTORY for hourly usage aggregated by function, model, and token or credit consumption
    2. B.Query METERING_HISTORY to track overall credits consumed by AI services alongside other account activity
    3. C.Attach a resource monitor with a defined credit quota to the warehouse running extraction queries so the team is alerted before costs exceed a threshold
    4. D.Rely exclusively on Snowsight's default query history page, since it already reports Cortex AI credit consumption without additional views
    5. E.Disable resource monitors on any warehouse that calls Cortex functions, since resource monitors interfere with token-based billing
    6. F.Increase warehouse size to XL or larger for every Cortex call, since larger warehouses reduce the effective per-token billing rate
    Show answer & explanation

    Correct answers: A, B, C — Query CORTEX_FUNCTIONS_USAGE_HISTORY for hourly usage aggregated by function, model, and token or credit consumption; Query METERING_HISTORY to track overall credits consumed by AI services alongside other account activity; Attach a resource monitor with a defined credit quota to the warehouse running extraction queries so the team is alerted before costs exceed a threshold

    • A. CORTEX_FUNCTIONS_USAGE_HISTORY provides aggregated hourly usage broken down by function, model, and token or credit consumption, which is exactly the breakdown the dashboard needs. This is a purpose-built view for Cortex cost tracking.
    • B. METERING_HISTORY reports overall credit consumption across account activity, including AI services, giving a broader cost picture alongside the function-level detail from the Cortex usage view. Combining both views supports a complete cost dashboard.
    • C. A resource monitor with a credit quota on the relevant warehouse provides proactive alerting before spend gets out of hand, which directly supports the FinOps goal of tracking and controlling cost. This is a standard cost-governance practice.
    • D. The default query history page does not surface the aggregated, function-level Cortex credit and token breakdown that dedicated usage views provide. Relying on it alone would leave the dashboard missing key cost detail.
    • E. Resource monitors do not interfere with how token-based billing is calculated, since they operate independently as a spend-control mechanism. Disabling them removes a useful safeguard rather than protecting billing accuracy.
    • F. Warehouse size does not change the per-token billing rate charged for Cortex functions, so increasing it would add warehouse compute cost without lowering extraction costs. This contradicts documented cost guidance for Cortex functions.

    Subdomain 4.4: Troubleshoot and optimize document processing.

    35.A cost review shows a document-extraction pipeline running on a 2X-Large warehouse to make extraction run faster. Extraction latency has not improved compared to earlier tests on a Medium warehouse, but credit consumption has risen sharply. What should the team do to align with Snowflake's cost guidance for Cortex functions?

    1. A.Reduce the warehouse to Medium or smaller, since larger sizes do not improve Cortex function performance and only add extra compute cost.
    2. B.Keep the 2X-Large warehouse, since larger warehouses always reduce the per-token billing rate that Snowflake charges for Cortex AI functions.
    3. C.Switch to a multi-cluster warehouse of the same size, since parallel clusters directly speed up a single Cortex function call.
    4. D.Increase the warehouse further to 3X-Large, since Cortex inference throughput scales linearly with warehouse compute size.
    Show answer & explanation

    Correct answer: A — Reduce the warehouse to Medium or smaller, since larger sizes do not improve Cortex function performance and only add extra compute cost.

    • A. Correct. Snowflake's cost guidance recommends a warehouse no larger than Medium when calling Cortex functions, because the inference runs on Snowflake-managed compute rather than on the warehouse. Since latency did not improve on the 2X-Large, scaling down to Medium or smaller removes the wasted warehouse credits without any performance loss.
    • B. Incorrect. Cortex functions are billed by the tokens processed, and that rate does not change with warehouse size. Keeping the 2X-Large warehouse would only keep adding warehouse credit spend on top of the token charges, with no discount in return.
    • C. Incorrect. A multi-cluster warehouse adds concurrency for many simultaneous queries, but it does not make a single Cortex function call run faster. It would also add compute cost without addressing the cost problem the review identified.
    • D. Incorrect. Cortex inference throughput does not scale with warehouse size, so the 2X-Large warehouse already showed no latency gain over Medium. Moving to 3X-Large would increase credit consumption further with no expected speedup.

    Want the full experience?

    These are just samples. Practice the full Snowflake SnowPro Specialty: Gen AI (GES-C02) question bank in quiz mode — free, no signup, with domain practice and exam simulation.