Xinference
AI开发平台

Xinference

Xinference 是一个开源平台,旨在简化各种 AI 模型的部署和集成。它支持运行包括 LLMs、嵌入模型和多模态模型在内的多种模型,并提供了灵活的部署选项、简化的模型管理、兼容 OpenAI API 的接口以及多样的用户界面,使得用户可以轻松地构建和使用 AI 驱动的应用程序。

快点收藏起来

什么是 Xinference

Xinference (Xorbits Inference) 是一个开源平台,旨在简化各种人工智能(AI)模型的部署和集成。面对市场上涌现的大量开源大型模型,Xinference 提供了一个统一的框架,使得用户可以在云端或本地环境中轻松运行包括大型语言模型(LLMs)、嵌入模型和多模态模型在内的各种模型,并利用这些模型构建强大的 AI 驱动的应用程序。Xinference 的目标是降低模型服务的复杂性,让 AI 应用开发者、机器学习工程师甚至非 AI/ML 从业者都能便捷地使用先进的 AI 模型。通过提供与 OpenAI API 兼容的 RESTful API、Python SDK、命令行界面(CLI)和 Web UI,Xinference 极大地简化了模型的使用流程。此外,它还集成了 LangChain、LlamaIndex 和 Dify 等第三方开发者工具,进一步促进了模型的集成和应用开发。Xinference 支持多种推理引擎,如 Transformers、vLLM 和 GGML,并且适用于各种硬件环境,包括多节点部署,能够有效地在多个设备或机器上分配模型推理任务。

xinference

Xinference 的功能

Xinference 提供了一系列强大的功能,使其成为一个易于使用且功能全面的 AI 模型服务平台:

  • 广泛的模型支持: Xinference 支持运行各种开源 LLM、嵌入模型和多模态模型,涵盖了聊天、文本生成、文本嵌入、图像生成、音频转录、文本重排序等多种任务。
  • 灵活的部署选项: 用户可以在本地机器或云端部署 Xinference 服务,满足不同的计算资源和隐私需求。
  • 简化的模型管理: Xinference 管理模型的整个生命周期,包括启动模型、列出正在运行的模型、使用模型、监控和终止模型等。用户可以通过 Web UI 或命令行轻松选择和启动模型,无需编写额外的代码或配置模型规范。
  • 兼容 OpenAI API: Xinference 提供了与 OpenAI API 兼容的接口,使得用户可以像使用 OpenAI 的服务一样调用 Xinference 部署的模型,从而降低了迁移和使用的成本。
  • 多样的用户界面: Xinference 提供了 Web UI、Python SDK 和 CLI 等多种用户界面,方便不同类型的用户进行操作和集成。
  • 集成第三方工具: Xinference 可以与 LangChain、LlamaIndex 和 Dify 等流行的 AI 开发框架集成,进一步扩展了其应用场景。
  • 支持多种推理引擎: Xinference 支持多种后端推理引擎,包括 vLLM、SGLang、llama.cpp、Transformers 和 MLX,用户可以根据自己的硬件环境和模型需求选择合适的引擎以获得最佳性能。
  • 硬件环境感知: Xinference 能够自动检测机器上的可用设备(如 CPU 或 GPU),并提供相应的推理引擎选项。
  • 多节点部署: 支持在多台机器上部署 Xinference 集群,实现更高效的模型推理和资源管理。
  • 模型监控: 可以与 GreptimeAI 等工具集成,对 LLM 应用的性能进行实时监控,包括令牌使用量、成本、延迟和跟踪等关键指标。

如何使用/快速开始

要开始使用 Xinference,您可以按照以下步骤进行操作:

  1. 安装 Xinference: 您可以使用 pip 命令在 Linux、Windows 或 macOS 上安装 Xinference:
    pip install xinference
  2. 启动 Xinference 服务: 在本地机器上启动 Xinference 服务,可以使用以下命令:
    xinference-local --host 0.0.0.0 --port 9997

    这将启动一个本地服务器,默认监听 9997 端口。您可以通过访问 http://127.0.0.1:9997/ 在浏览器中打开 Web UI。

  3. 探索模型: 通过 Web UI 或命令行界面,您可以浏览 Xinference 支持的各种内置模型。
  4. 启动模型: 在 Web UI 中,您可以选择想要使用的模型并点击“Launch”按钮来启动它。您也可以使用命令行工具启动模型,例如:
    xinference launch -n qwen2-7b-chat -s 13 -f pytorch

    其中 -n 指定模型名称,-s 指定模型大小(如果适用),-f 指定推理引擎。

  5. 使用模型: 一旦模型启动,您就可以通过多种方式使用它:
    • Web UI: 在 Web UI 中,您可以直接与启动的聊天模型进行交互,或者使用其他类型的模型进行相应的任务,如文本嵌入、图像生成等。
    • Python 客户端: Xinference 提供了 Python 客户端,您可以使用它在 Python 代码中调用 Xinference 服务。首先安装客户端:
      pip install xinference

      然后,您可以使用 OpenAI 风格的 API 与模型进行交互,例如:

      from openai import OpenAI
      
      client = OpenAI(
          base_url="http://localhost:9997",
          api_key="随便写点什么" # Xinference uses a dummy API key
      )
      
      chat_completion = client.chat.completions.create(
          model="qwen2-7b-chat",
          messages=[{"role": "user", "content": "你好!"}]
      )
      print(chat_completion.choices[0].message.content)
      
    • 命令行工具: 您可以使用 xinference 命令行工具来与模型进行交互或管理模型。
    • cURL: 您也可以使用 cURL 命令直接向 Xinference 服务发送 HTTP 请求。
  6. 管理模型: Xinference 提供了多种方式来管理模型的生命周期,包括列出可用模型、查看正在运行的模型、终止模型等,您可以通过 Web UI、命令行或 Python 客户端进行操作。

Xinference 还支持注册自定义模型,您可以将自己的模型权重注册到 Xinference 中并将其转换为 API 接口进行使用。更详细的使用方法和高级功能,如工具的使用、嵌入模型的创建、图像生成、音频处理和视频生成(实验性功能)等,请参考 Xinference 的官方文档:Xinference 官方文档

相关导航