选择自然语言处理函数
本文档比较了 BigQuery ML 中提供的自然语言处理函数,即 ML.GENERATE_TEXT
、ML.TRANSLATE
和 ML.UNDERSTAND_TEXT
。
ML.GENERATE_TEXT
可以执行其他两个函数也可以执行的任务,如下图所示:
如果函数具有重叠的功能,您可以使用本文档中的信息来帮助决定使用哪个函数。
概括来讲,这些函数之间的区别如下所示:
ML.GENERATE_TEXT
非常适合以较低的费用执行自定义自然语言处理 (NLP) 任务。此函数提供更多语言支持、更快的吞吐量和模型调整功能,也适用于多模态模型。ML.TRANSLATE
非常适合用于执行特定于翻译的 NLP 任务,这些任务需要支持较高的每分钟查询率。ML.UNDERSTAND_TEXT
非常适合执行 Cloud Natural Language API 支持的 NLP 任务。
支持的模型
支持的模型如下所示:
ML.GENERATE_TEXT
:您可以使用 Vertex AI Gemini 或 PaLM 模型的子集来生成文本。如需详细了解支持的模型,请参阅ML.GENERATE_TEXT
语法。ML.TRANSLATE
:您使用 Cloud Translation API 的默认模型。ML.UNDERSTAND_TEXT
:使用 Cloud Natural Language API 的默认模型。
支持的任务
支持的任务如下:
ML.GENERATE_TEXT
:您可以执行任何 NLP 任务。模型执行的任务取决于您指定的提示。例如,如需执行问答任务,您可以提供类似于CONCAT("What are the key concepts in the following article?: ", article_text)
的提示。您还可以在提示中提供上下文。例如CONCAT("context: Only output 'yes' or 'no' to the following question: ", question)
。ML.TRANSLATE
:您可以执行以下任务:ML.UNDERSTAND_TEXT
:您可以执行以下任务:
数据上下文
在选择要使用的函数时,请考虑您的数据是否可以单独分析,或者是否需要额外的上下文来支持分析。如果您的数据需要其他上下文,则将 ML.GENERATE_TEXT
与 Vertex AI 模型搭配使用是更好的选择,因为这些模型允许您在提交的提示中提供上下文。请注意,在输入时提供额外的上下文会增加词元数和费用。
如果模型可以在不考虑其他上下文的情况下分析数据(例如,在不知道文本写入原因的情况下翻译文本字符串),则使用 ML.TRANSLATE
或 ML.UNDERSTAND_TEXT
可能是更好的选择,但前提是支持您要执行的任务。
输出结构
ML.GENERATE_TEXT
始终在 ml_generate_text_llm_result
输出列中返回结果。您还可以使用提示来定义输出结构。例如,您可以指示模型以 JSON 格式返回包含自定义父字段和子字段的结果,并提供有关如何生成此结果的示例。
对于每次成功调用 API,ML.TRANSLATE
和 ML.UNDERSTAND_TEXT
都会为给定任务类型生成相同的输出。此外,这些函数的输出包含有关其结果的其他元数据。例如,ML.TRANSLATE
输出包含有关输入语言的信息,ML.UNDERSTAND_TEXT
输出包含有关情感分析任务的情感量级的信息。您可以使用 Vertex AI 模型生成此元数据,但这需要大量提示工程,并且可能无法提供相同的粒度。
价格
价格如下所示:
ML.GENERATE_TEXT
:Palm2 模型每 1000 个字符 $0.00025,Gemini 1.0 模型每 1000 个字符 $0.000375。对受支持模型的监督式调优按 Vertex AI 自定义训练价格的每节点时美元收费。如需了解详情,请参阅 Vertex AI 价格。ML.TRANSLATE
:每 1000 个字符 $0.02如需了解详情,请参阅 Cloud Translation API 价格。ML.UNDERSTAND_TEXT
:每 1000 个字符 $0.001 起,具体取决于任务类型和您的使用情况。如需了解详情,请参阅 Cloud Natural Language API 价格。
模型训练
自定义训练支持如下所示:
ML.GENERATE_TEXT
:某些模型支持监督式调优。ML.TRANSLATE
:不支持自定义训练。ML.UNDERSTAND_TEXT
:不支持自定义训练。
多模态
多模态支持如下:
ML.GENERATE_TEXT
:支持文本和“文本 + 图片”输入。ML.TRANSLATE
:支持文本输入。ML.UNDERSTAND_TEXT
:支持文本输入。
每分钟查询次数 (QPM) 限制
QPM 限制如下:
ML.GENERATE_TEXT
:默认us-central1
区域中的 100 到 1,600 QPM 的限制的范围,具体取决于使用的模型。ML.TRANSLATE
:v3 的 6000 QPM 限制。ML.UNDERSTAND_TEXT
:限制 600 次查询/分钟。
token 限制
词元限制如下:
ML.GENERATE_TEXT
:范围介于 8,192 到 24,576 个词元限制之间,具体取决于使用的模型。ML.TRANSLATE
:没有词元限制。不过,此函数具有 30,000 字节限制。ML.UNDERSTAND_TEXT
:100,000 词元限制。
支持的语言
支持的语言如下:
ML.GENERATE_TEXT
:支持与 Gemini 或嵌入相同的语言,具体取决于您为 BigQuery ML 远程模型端点选择的 Vertex AI 模型。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
多区域中提供。