选择自然语言处理函数
本文档对 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
:如需了解与此函数搭配使用的 Vertex AI 模型的价格,请参阅 Vertex AI 价格。对受支持模型的监督式调优按 Vertex AI 自定义训练价格的每节点时美元收费。ML.TRANSLATE
:如需了解与此函数搭配使用的 Cloud AI 服务的价格,请参阅 Cloud Translation API 价格。ML.UNDERSTAND_TEXT
:如需了解与此函数搭配使用的 Cloud AI 服务的价格,请参阅 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 的 QPM 上限为 6,000。ML.UNDERSTAND_TEXT
:600 QPM 限制。
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
多区域中提供。