Hugging Face TGI 消息 API 发布

Hugging Face 在 1.4.0 版本开始推出了文本生成推理(TGI)的消息 API。此更新提供了对 OpenAI 聊天完成 API 的兼容性,使开发者能够以最少的代码更改将模型从 OpenAI 转换为开放式大语言模型。

对开放式大语言模型的 OpenAI 兼容性

TGI 1.4.0 版本及 Inference Endpoints 现在支持兼容 OpenAI 聊天完成 API 的消息 API。此兼容性使用户能够通过使用现有的 OpenAI 客户端库或诸如 LangChain 和 LlamaIndex 等第三方编排工具,将 OpenAI 模型替换为开放式大语言模型。

"新的消息 API 具备 OpenAI 兼容性,使 Ryght 的实时 GenAI 编排平台能够轻松将 LLM 用例从 OpenAI 切换到开放模型。我们从 GPT4 迁移到 Inference Endpoints 上的 Mixtral/Llama2 过程毫不费力,并且现在拥有更简化的工作流,对 AI 解决方案拥有更多控制权。"

技术实现与要求

通过 Inference Endpoints 部署

用户可以使用 TGI 将模型(例如 Nous-Hermes-2-Mixtral-8x7B-DPO)部署到 Inference Endpoints。部署可以通过 Hugging Face UI 或使用 huggingface_hub Python 库以编程方式进行管理。使用 Hub 库时,端点默认在空闲 15 分钟后自动缩减至零,以优化成本。

与客户端库的集成

要将 Inference Endpoint 与 OpenAI 客户端库集成,用户必须在端点 URL 后追加 /v1/,并提供有效的 Hugging Face 用户令牌作为 API 密钥。

  • Python 客户端OpenAI 客户端使用指向 TGI 端点的 base_url 初始化,并将 api_key 设置为 HF 令牌。model 参数设为 "tgi"
  • JavaScript 客户端OpenAI node 库以类似方式使用,配置 baseURLapiKey 指向 TGI 基础设施。

框架集成(LangChain 与 LlamaIndex)

  • LangChain:用户可以通过传入 TGI 端点 URL 和 HF 令牌来使用 ChatOpenAI 类,从而只需更改一行代码即可让现有的 RAG 流程在开放模型上运行。
  • LlamaIndex:通过 OpenAILike 类实现集成。需要配置参数,例如 is_chat_model=Trueis_local=Falseis_function_calling_model=False,并确保 context_window 与端点的 MAX_TOTAL_TOKENS 设置相匹配。

能力与限制

支持的参数

消息 API 目前支持以下聊天完成参数:

  • stream
  • max_tokens
  • frequency_penalty
  • logprobs
  • seed
  • temperature
  • top_p

当前约束

  • 函数调用:消息 API 目前不支持函数调用。
  • 模型要求:该 API 仅适用于在其 tokenizer 配置中定义了 chat_template 的 LLM(例如 Mixtral 8x7B Instruct)。

战略意义

通过提供兼容 OpenAI 的端点,Hugging Face 使用户能够对模型和数据拥有完全的控制权和透明度,消除对第三方速率限制的依赖,并能够根据特定需求全面定制其 AI 系统。

Sources