このページの一部またはすべての情報は、S3NS の Trusted Cloud に適用されない場合があります。
自然言語処理関数を選択する
このドキュメントでは、BigQuery ML で使用可能な自然言語処理関数(ML.GENERATE_TEXT
、ML.TRANSLATE
、ML.UNDERSTAND_TEXT
)の比較を行います。
次の画像に示すように、ML.GENERATE_TEXT
は他の 2 つの関数と同じタスクを実行できます。
関数の機能が重複している場合は、このドキュメントの情報を使用して、使用する関数を決定できます。
概略を示すと、これらの関数の違いは次のとおりです。
ML.GENERATE_TEXT
は、カスタマイズされた自然言語処理(NLP)タスクを低コストで実行する場合に適しています。この機能は、より多くの言語をサポートし、高速なスループット、モデル調整機能を備え、マルチモーダル モデルでも動作します。
ML.TRANSLATE
は、1 分あたりのクエリの割合が高い翻訳固有の NLP タスクを実行する場合に適しています。
ML.UNDERSTAND_TEXT
は、Cloud Natural Language API でサポートされている NLP タスクを実行するのに適しています。
サポートされているモデル
サポートされているモデルは次のとおりです。
サポートされているタスク
サポートされているタスクは次のとおりです。
データ コンテキスト
使用する関数を選択する際は、データが単独で分析できるかどうか、または分析をサポートするために追加のコンテキストが必要であるかどうかを検討してください。データに追加のコンテキストが必要な場合は、Vertex AI モデルで ML.GENERATE_TEXT
を使用することをおすすめします。これらのモデルでは、送信するプロンプトの一部としてコンテキストを提供できます。入力として追加のコンテキストを提供すると、トークン数とコストが増加することに留意してください。
モデルが他のコンテキストを考慮することなくデータを分析できる場合(例: テキスト文字列を翻訳する際に、対象のテキストが記述された理由を把握することを必要としない場合)は、実行するタスクがサポートされている限り、ML.TRANSLATE
または ML.UNDERSTAND_TEXT
を使用することをおすすめします。
出力構造
ML.GENERATE_TEXT
は、ml_generate_text_llm_result
出力列に一貫して結果を返します。プロンプトを使用して出力構造を定義することもできます。たとえば、カスタムの親フィールドと子フィールドを使用して結果を JSON として返すようにモデルに指示し、この結果を生成する方法の例を指定できます。
ML.TRANSLATE
と ML.UNDERSTAND_TEXT
は、API の呼び出しが成功するたびに、特定のタスクタイプに対して同じ出力を生成します。また、これらの関数からの出力には、結果に関する追加のメタデータが含まれます。たとえば、ML.TRANSLATE
の出力には入力言語に関する情報が含まれ、ML.UNDERSTAND_TEXT
の出力には感情分析タスクの感情の強度に関する情報が含まれます。このメタデータは Vertex AI モデルで生成できますが、そのためにはプロンプト エンジニアリングに関する多大な労力を要し、同じ粒度を実現できない可能性が高いと考えられます。
料金
料金は次のとおりです。
教師ありチューニング
教師ありチューニングのサポートは次のとおりです。
ML.GENERATE_TEXT
: 一部のモデルで教師ありチューニングがサポートされています。
ML.TRANSLATE
: 教師ありチューニングはサポートされていません。
ML.UNDERSTAND_TEXT
: 教師ありチューニングはサポートされていません。
マルチモダリティ
マルチモダリティのサポートは次のとおりです。
ML.GENERATE_TEXT
: テキストとテキスト + 画像の入力をサポートします。
ML.TRANSLATE
: テキスト入力をサポートします。
ML.UNDERSTAND_TEXT
: テキスト入力をサポートします。
1 分あたりのクエリ数(QPM)の上限
QPM の上限は次のとおりです。
トークンの上限
トークンの上限は次のとおりです。
対応している言語
サポートされている言語は次のとおりです。
ML.GENERATE_TEXT
: BigQuery ML リモートモデル エンドポイントに選択した Vertex AI モデルに応じて、Gemini または エンベディングと同じ言語をサポートします。PaLM テキストモデルは、エンベディング モデルと同じ言語をサポートしています。
ML.TRANSLATE
: Cloud Translation API の言語をサポートします。
ML.UNDERSTAND_TEXT
: Cloud Natural Language API の言語をサポートします。
対象リージョン
ご利用対象のリージョンは次のとおりです。
ML.GENERATE_TEXT
: Vertex AI 向けのすべての生成 AI のリージョンで利用できます。
ML.TRANSLATE
: EU
と US
のマルチリージョンで利用できます。
ML.UNDERSTAND_TEXT
: EU
と US
のマルチリージョンで利用できます。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-17 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-08-17 UTC。"],[[["\u003cp\u003eBigQuery ML offers three natural language processing (NLP) functions: \u003ccode\u003eML.GENERATE_TEXT\u003c/code\u003e, \u003ccode\u003eML.TRANSLATE\u003c/code\u003e, and \u003ccode\u003eML.UNDERSTAND_TEXT\u003c/code\u003e, each with distinct capabilities.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eML.GENERATE_TEXT\u003c/code\u003e is the most versatile function, allowing for customized NLP tasks, supporting various languages and multimodal models, and offering model tuning, albeit at potentially a higher cost.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eML.TRANSLATE\u003c/code\u003e is specialized for translation tasks, offering high query rates and no token limit, making it suitable when dealing with only translation.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eML.UNDERSTAND_TEXT\u003c/code\u003e is tailored for specific NLP tasks supported by the Cloud Natural Language API, such as sentiment analysis, entity recognition, and text classification.\u003c/p\u003e\n"],["\u003cp\u003eThe choice of function also depends on data context and the need for additional information, with \u003ccode\u003eML.GENERATE_TEXT\u003c/code\u003e better suited for data requiring context and \u003ccode\u003eML.TRANSLATE\u003c/code\u003e or \u003ccode\u003eML.UNDERSTAND_TEXT\u003c/code\u003e better suited when context is not necessary.\u003c/p\u003e\n"]]],[],null,["# Choose a natural language processing function\n=============================================\n\nThis document provides a comparison of the natural language processing functions\navailable in BigQuery ML, which are\n[`ML.GENERATE_TEXT`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-generate-text),\n[`ML.TRANSLATE`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-translate),\nand\n[`ML.UNDERSTAND_TEXT`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-understand-text).\n\n`ML.GENERATE_TEXT` can do tasks that the other two functions can do as well, as\nshown in the following image:\n\nYou can use the information in this document to help you decide which function\nto use in cases where the functions have overlapping capabilities.\n\nAt a high level, the difference between these functions is as follows:\n\n- `ML.GENERATE_TEXT` is a good choice for performing customized natural language processing (NLP) tasks at a lower cost. This function offers more language support, faster throughput, and model tuning capability, and also works with multimodal models.\n- `ML.TRANSLATE` is a good choice for performing translation-specific NLP tasks where you need to support a high rate of queries per minute.\n- `ML.UNDERSTAND_TEXT` is a good choice for performing NLP tasks [supported by the Cloud Natural Language API](#supported_tasks).\n\nSupported models\n----------------\n\nSupported models are as follows:\n\n- `ML.GENERATE_TEXT`: you can use a subset of the Vertex AI [Gemini](/vertex-ai/generative-ai/docs/learn/models#gemini-models) or [PaLM](/vertex-ai/generative-ai/docs/learn/models#palm-models) model to generate text. For more information on supported models, see the [`ML.GENERATE_TEXT` syntax](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-generate-text#syntax).\n- `ML.TRANSLATE`: you use the default model of the [Cloud Translation API](/translate).\n- `ML.UNDERSTAND_TEXT`: you use the default model of the [Cloud Natural Language API](/natural-language).\n\nSupported tasks\n---------------\n\nSupported tasks are as follows:\n\n- `ML.GENERATE_TEXT`: you can perform any NLP task. What task the model performs is based on the prompt you specify. For example, to perform a question answering task, you could provide a prompt similar to `CONCAT(\"What are the key concepts in the following article?: \", article_text)`. You can also provide context as part of the prompt. For example, `CONCAT(\"context: Only output 'yes' or 'no' to the following question: \", question)`.\n- `ML.TRANSLATE`: you can perform the following tasks:\n\n - [`TRANSLATE_TEXT`](/translate/docs/advanced/translating-text-v3)\n - [`DETECT_LANGUAGE`](/translate/docs/advanced/detecting-language-v3)\n- `ML.UNDERSTAND_TEXT`: you can perform the following tasks:\n\n - [`ANALYZE_ENTITIES`](/natural-language/docs/analyzing-entities)\n - [`ANALYZE_ENTITY_SENTIMENT`](/natural-language/docs/analyzing-entity-sentiment)\n - [`ANALYZE_SENTIMENT`](/natural-language/docs/analyzing-sentiment)\n - [`ANALYZE_SYNTAX`](/natural-language/docs/analyzing-syntax)\n - [`CLASSIFY_TEXT`](/natural-language/docs/classifying-text)\n\nData context\n------------\n\nWhen choosing what function to use, consider whether your data can be analyzed\nin isolation, or whether it requires additional context to support the analysis.\nIf your data requires additional context, using `ML.GENERATE_TEXT` with a\nVertex AI model is a better choice, as those models allow you to\nprovide context as part of the prompt you submit. Keep in\nmind that providing additional context as input increases token count and cost.\n\nIf your data can be analyzed without other context being considered by the\nmodel---for example, translating a string of text without knowing why it was\nwritten, then using `ML.TRANSLATE` or `ML.UNDERSTAND_TEXT` might be a better\nchoice, provided that the task you want to perform is supported.\n\nOutput structure\n----------------\n\n`ML.GENERATE_TEXT` consistently returns results in the\n`ml_generate_text_llm_result` output column. You can also\nuse your prompt to define your output structure. For example, you can instruct\nthe model to return your result as JSON with custom parent and child fields,\nand provide an example of how to produce this result.\n\n`ML.TRANSLATE` and `ML.UNDERSTAND_TEXT` produce the same output for a given\ntask type for each successful call to the API. Additionally, the output from\nthese functions includes additional metadata about their results. For example,\n`ML.TRANSLATE` output includes information about the input language, and\n`ML.UNDERSTAND_TEXT` output includes information about the magnitude of the\nsentiment for sentiment analysis tasks. Generating this metadata is possible\nwith the Vertex AI models, but this requires significant prompt\nengineering, and isn't likely to provide the same granularity.\n\nPricing\n-------\n\nPricing is as follows:\n\n- `ML.GENERATE_TEXT`: For pricing of the Vertex AI models that you use with this function, see [Vertex AI pricing](/vertex-ai/generative-ai/pricing). Supervised tuning of supported models is charged at dollars per node hour at [Vertex AI custom training pricing](/vertex-ai/pricing#custom-trained_models).\n- `ML.TRANSLATE`: For pricing of the Cloud AI service that you use with this function, see [Cloud Translation API pricing](/translate/pricing).\n- `ML.UNDERSTAND_TEXT`: For pricing of the Cloud AI service that you use with this function, see [Cloud Natural Language API pricing](/natural-language/pricing).\n\nSupervised tuning\n-----------------\n\nSupervised tuning support is as follows:\n\n- `ML.GENERATE_TEXT`: [supervised tuning](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create-remote-model#supervised_tuning) is supported for some models.\n- `ML.TRANSLATE`: supervised tuning isn't supported.\n- `ML.UNDERSTAND_TEXT`: supervised tuning isn't supported.\n\nMultimodality\n-------------\n\nMultimodality support is as follows:\n\n- `ML.GENERATE_TEXT`: supports text and text + image input.\n- `ML.TRANSLATE`: supports text input.\n- `ML.UNDERSTAND_TEXT`: supports text input.\n\nQueries per minute (QPM) limit\n------------------------------\n\nQPM limits are as follows:\n\n- `ML.GENERATE_TEXT`: ranges from a [100 to a 1,600 QPM limit in the default `us-central1` region](/vertex-ai/generative-ai/docs/quotas#quotas_by_region_and_model), depending on the model used.\n- `ML.TRANSLATE`: [6,000 QPM limit for v3](/translate/quotas#rate_quotas).\n- `ML.UNDERSTAND_TEXT`: [600 QPM limit](/natural-language/quotas#requests).\n\nToken limit\n-----------\n\nToken limits are as follows:\n\n- `ML.GENERATE_TEXT`: ranges from a [8,192 to a 24,576 token limit](/vertex-ai/generative-ai/docs/learn/models), depending on the model used.\n- `ML.TRANSLATE`: No token limit. However, this function does have a [30,000 bytes limit](/translate/quotas#content-limit).\n- `ML.UNDERSTAND_TEXT`: [100,000 token limit](/natural-language/quotas#content).\n\nSupported languages\n-------------------\n\nSupported languages are as follows:\n\n- `ML.GENERATE_TEXT`: supports the same languages as [Gemini](/vertex-ai/generative-ai/docs/learn/models#languages-gemini) or [Embeddings](/vertex-ai/generative-ai/docs/learn/models#languages-palm), depending on the Vertex AI model you choose for the BigQuery ML remote model endpoint. The PaLM text models support the same languages as the Embeddings models.\n- `ML.TRANSLATE`: supports Cloud Translation API [languages](/translate/docs/languages).\n- `ML.UNDERSTAND_TEXT`: supports Cloud Natural Language API [languages](/natural-language/docs/languages).\n\nRegion availability\n-------------------\n\nRegion availability is as follows:\n\n- `ML.GENERATE_TEXT`: available in all Generative AI for Vertex AI [regions](/vertex-ai/generative-ai/docs/learn/locations#available-regions).\n- `ML.TRANSLATE`: available in the `EU` and `US` [multi-regions](/bigquery/docs/locations#multi-regions).\n- `ML.UNDERSTAND_TEXT`: available in the `EU` and `US` multi-regions."]]