本文介绍 Mosaic AI Model Serving 中的外部模型,包括其支持的模型提供商和局限性。
外部模型是在 Databricks 外部托管的第三方模型。 借助 Model Serving,外部模型可以简化组织内各种大型语言模型 (LLM) 提供商(如 OpenAI 和 Anthropic)的使用和管理。 还可以使用 Mosaic AI Model Serving 作为提供商来提供自定义模型,为这些终结点提供速率限制。 作为此支持的一部分,Model Serving 提供了一个高级接口,该接口通过提供统一的终结点来处理与特定 LLM 相关的请求来简化与这些服务的交互。
此外,Azure Databricks 对外部模型的支持还提供集中式凭据管理。 通过将 API 密钥存储在一个安全位置,组织可以通过最大程度地减少公开整个系统中的敏感 API 密钥来增强其安全态势。 它还有助于防止在代码中公开这些密钥或要求最终用户安全地管理密钥。
请参阅教程:创建外部模型终结点以查询 OpenAI 模型,以获取有关使用 MLflow 部署 SDK 创建外部模型终结点和查询这些终结点提供的受支持模型的分步指南。 有关如何使用服务 UI 和 REST API 的说明,请参阅以下指南:
- 创建自定义模型服务终结点
- 查询生成 AI 模型
- 模型提供程序的 API 密钥或身份验证字段。
- 外部模型支持的区域中的 Databricks 工作区。
Model Serving 中的外部模型可支持各种模型提供商。 提供商表示机器学习模型的来源,例如 OpenAI、Anthropic 等。 每个提供商都有其特定的特征和配置,这些特征和配置封装在外部模型终结点配置的 字段中。
支持以下提供商:
- openai:适用于 OpenAI 提供的模型,以及 Azure OpenAI 和带 AAD 的 Azure OpenAI 的 Azure 集成。
- anthropic:适用于 Anthropic 提供的模型。
- cohere:适用于 Cohere 提供的模型。
- amazon-bedrock:适用于 Amazon Bedrock 提供的模型。
- google-cloud-vertex-ai:适用于 Google Cloud Vertex AI 提供的模型。
- databricks-model-service:适用于具有兼容架构的 Mosaic AI Model Serving 终结点。 请参阅终结点配置。
若要请求支持此处未列出的提供商,请联系 Databricks 帐户团队。
选择的模型直接影响从 API 调用获取的响应结果。 因此,请选择符合用例要求的模型。 例如,对于生成聊天响应,可以选择聊天模型。 相反,对于生成文本嵌入,可以选择嵌入模型。
下表提供了支持的模型和相应终结点类型的非详尽列表。 给定提供商提供新发布的模型类型时,若要为这些类型配置终结点,下面列出的模型关联可用作有帮助的指南。 客户需负责确保遵守适用的模型许可条款。
- babbage-002
- davinci-002
- o1-preview-2024-09-12
- o1-mini
- o1-mini-2024-09-12
- gpt-3.5-turbo
- gpt-4
- gpt-4o
- gpt-4o-2024-05-13
- gpt-4o-mini
- gpt-3.5-turbo-0125
- gpt-3.5-turbo-1106
- gpt-4-0125-preview
- gpt-4-turbo-preview
- gpt-4-1106-preview
- text-embedding-3-large
- text-embedding-3-small
- gpt-35-turbo-instruct
- gpt-35-turbo-16k
- gpt-4
- gpt-4-32k
- gpt-4o
- gpt-4o-mini
- text-embedding-3-large
- text-embedding-3-small
- claude-1.3-100k
- claude-2
- claude-2.1
- claude-2.0
- claude-instant-1.2
- claude-3-haiku-20240307
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-2.1
- claude-2.0
- claude-instant-1.2
- command-light
- command-r
- command
- command-light-nightly
- command-light
- command-nightly
- embed-multilingual-v2.0
- embed-english-light-v2.0
- embed-english-v3.0
- embed-english-light-v3.0
- embed-multilingual-v3.0
- embed-multilingual-light-v3.0
- claude-instant-v1
- claude-v2
Cohere:
- command-text-v14
- command-light-text-v14
AI21 Labs:
- j2-grande-instruct
- j2-jumbo-instruct
- j2-mid
- j2-mid-v1
- j2-ultra
- j2-ultra-v1
- claude-v2
- claude-v2:1
- claude-3-sonnet-20240229-v1:0
- claude-3-5-sonnet-20240620-v1:0
Cohere:
- command-r-plus-v1:0
- command-r-v1:0
- titan-embed-text-v1
- titan-embed-g1-text-02
Cohere:
- embed-english-v3
- embed-multilingual-v3
- j2-light
- j2-ultra
- gemini-pro
- gemini-1.0-pro
- gemini-1.5-pro
- gemini-1.5-flash
模型提供商支持微调的补全和聊天模型。 若要查询微调的模型,请使用你的微调模型的名称填充 配置的 字段。
† 模型提供商支持自定义补全模型。
Mosaic AI Model Serving 终结点作为提供商,支持用于 、 和 终结点类型。 这些终结点必须接受根据需要标记的标准查询参数,而其他参数可能会被忽略,这取决于 Mosaic AI Model Serving 终结点是否支持这些参数。
有关标准查询参数,请参阅 API 参考中的 POST /service-endpoints/{name}/invocations。
这些终结点必须以以下 OpenAI 格式生成响应。
用于完成任务:
用于聊天任务:
用于嵌入任务:
若要提供和查询外部模型,需要配置服务终结点。 请参阅创建外部模型服务终结点
对于为终结点提供服务的外部模型,必须在终结点配置的 部分中包括 字段及其参数。 如果在服务终结点中配置多个外部模型,则必须提供 来定义每个外部模型的流量路由百分比。
字段定义了此终结点将请求转发到的模型。 指定模型时,提供商支持所请求的模型至关重要。 例如,作为提供商的 支持像 这样的模型,但其他提供商则可能不支持。 如果提供商不支持模型,则 Databricks 在尝试将请求路由到该模型时返回 HTTP 4xx 错误。
下表总结了 字段参数。 有关终结点配置参数,请参阅 POST /api/2.0/serving-endpoints。
下面是使用 API 创建外部模型终结点的示例。 在此示例中,发送到完成终结点的请求将转发到 提供的 模型。
创建终结点时,必须为指定的模型提供商提供所需的配置。 以下部分汇总了每个模型提供商适用的可用终结点配置参数。
与直接 OpenAI 服务相比,Azure OpenAI 具有不同的功能。 有关概述,请参阅比较文档。
如果要将 Azure OpenAI 与 Microsoft Entra ID 配合使用,请在终结点配置中使用以下参数。
以下示例演示如何使用 Azure OpenAI 创建终结点:
若要将 Amazon Bedrock 用作外部模型提供商,客户需要确保在指定的 AWS 区域中启用 Bedrock,并且指定的 AWS 密钥对具有与 Bedrock 服务交互的适当权限。 有关详细信息,请参阅 AWS 标识和访问管理。
以下示例演示了如何使用 Amazon Bedrock 和访问密钥创建终结点。
如果存在 AWS 权限问题,Databricks 建议使用 Amazon Bedrock API 直接验证凭据。
还可以配置终结点以启用 Mosaic AI 网关 功能,例如速率限制、使用情况跟踪和防护措施。
请参阅在模型服务终结点上配置 AI 网关。
创建外部模型终结点后,即可接收来自用户的流量。
可以使用 OpenAI 客户端、REST API 或 MLflow 部署 SDK 向终结点发送评分请求。
- 请参阅 POST /serving-endpoints/{name}/invocations 中评分请求的标准查询参数。
- 查询生成 AI 模型
以下示例使用 OpenAI 客户端查询由 Anthropic 托管的 完成模型。 若要使用 OpenAI 客户端,请在 字段中填充托管着你要查询的模型的模型服务终结点的名称。
此示例使用以前创建的终结点 ,该终结点是为访问 Anthropic 模型提供商提供的外部模型而配置的。 了解如何创建外部模型终结点。
有关你可以查询的其他模型及其提供商,请参阅支持的模型。
预期的输出响应格式:
作为查询的一部分,可以传递终结点的提供商支持的任何其他参数。
例如:
- (受 OpenAI、Cohere 支持)。
- (受 Anthropic、Cohere 支持)。
- (受 OpenAI、Cohere 支持)。
- (受 OpenAI、Cohere 支持)。
- (受 OpenAI、Anthropic、Cohere、Amazon Bedrock for Anthropic 支持)。 这仅适用于聊天和补全请求。
对 外部模型(包括 Azure 专用链接)的网络连接配置(NCC) 的支持目前为 专用预览版。 请联系你的 Databricks 帐户团队以参与预览版。