OpenLLM大模型开放平台

OpenLLM是一个用于在生产中操作大型语言模型 (LLM) 的开放平台,可以轻松地微调、服务、部署和监控任何LLM大模型。

1、OpenLLM的主要特性

借助 OpenLLM,你可以使用任何开源大语言模型运行推理,部署到云端或本地,并构建强大的 AI 应用程序。

  • 🚂 最先进的 LLM:内置支持多种开源 LLM 和模型运行时,包括 Llama 2,StableLM、Falcon、Dolly、Flan-T5、ChatGLM、StarCoder 等。
  • 🔥 灵活的 API:使用一个命令通过 RESTful API 或 gRPC 为 LLM 提供服务,通过 WebUI、CLI、Python/Javascript 客户端或任何 HTTP 客户端进行查询。
  • ⛓️ 自由构建:对 LangChain、BentoML 和 Hugging Face 的一流支持,可以通过将 LLM 与其他模型和服务组合来轻松创建自己的 AI 应用程序。
  • 🎯 简化部署:自动生成 LLM 服务器 Docker 映像或通过 ☁️ BentoCloud 部署为无服务器端点。
  • 🤖️ 自带 LLM:使用 LLM.tuning() 微调任何 LLM 以满足你的需求。

2、OpenLLM快速上手

要使用 OpenLLM,需要在系统上安装 Python 3.8(或更高版本)和 pip。 我们强烈建议使用虚拟环境来防止包冲突。

可以使用 pip 安装 OpenLLM,如下所示:

pip install openllm

要验证是否安装正确,请运行:

$ openllm -h

Usage: openllm [OPTIONS] COMMAND [ARGS]...

   ██████╗ ██████╗ ███████╗███╗   ██╗██╗     ██╗     ███╗   ███╗
  ██╔═══██╗██╔══██╗██╔════╝████╗  ██║██║     ██║     ████╗ ████║
  ██║   ██║██████╔╝█████╗  ██╔██╗ ██║██║     ██║     ██╔████╔██║
  ██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║██║     ██║     ██║╚██╔╝██║
  ╚██████╔╝██║     ███████╗██║ ╚████║███████╗███████╗██║ ╚═╝ ██║
   ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝     ╚═╝

  An open platform for operating large language models in production.
  Fine-tune, serve, deploy, and monitor any LLMs with ease.

要启动 LLM 服务器,请使用 openllm start。 例如,要启动 OPT 服务器,请执行以下操作:

openllm start opt

之后,将可以通过 http://localhost:3000 访问 Web UI,你可以在其中试验访问端点和示例输入提示。

OpenLLM 提供内置的 Python 客户端,允许你与模型进行交互。 在不同的终端窗口或 Jupyter Notebook 中,创建一个客户端以开始与模型交互:

import openllm
client = openllm.client.HTTPClient('http://localhost:3000')
client.query('Explain to me the difference between "further" and "farther"')

你还可以使用 openllm query 命令从终端查询模型:

export OPENLLM_ENDPOINT=http://localhost:3000
openllm query 'Explain to me the difference between "further" and "farther"'

访问 http://localhost:3000/docs.json 了解 OpenLLM 的 API 规范。

OpenLLM 无缝支持许多模型及其变体。 用户还可以通过提供 --model-id 参数来指定要服务的模型的不同变体,例如:

openllm start flan-t5 --model-id google/flan-t5-large
注意:openllm 还支持微调权重的所有变体、自定义模型路径以及任何受支持模型的量化权重,只要它可以加载模型架构即可。 有关模型架构,请参阅支持的模型部分。

使用 openllm models 命令查看 OpenLLM 支持的模型及其变体的列表。

3、OpenLLM支持的模型

OpenLLM 当前支持以下模型。 默认情况下,OpenLLM 不包含运行所有模型的依赖项。 可以按照以下说明安装额外的特定于模型的依赖项:

3.1 Chatglm

模型架构:ChatGLMForConditionalGeneration

模型ID:

  • thudm/chatglm-6b
  • thudm/chatglm-6b-int8
  • thudm/chatglm-6b-int4
  • thudm/chatglm2-6b
  • thudm/chatglm2-6b-int4

安装方法:

pip install "openllm[chatglm]"

3.2 dolly-v2

模型架构:GPTNeoXForCausalLM

模型ID:

  • databricks/dolly-v2-3b
  • databricks/dolly-v2-7b
  • databricks/dolly-v2-12b

安装方法:

pip install openllm

3.3 falcon

模型架构:FalconForCausalLM

模型ID:

  • tiiuae/falcon-7b
  • tiiuae/falcon-40b
  • tiiuae/falcon-7b-instruct
  • tiiuae/falcon-40b-instruct

安装方法:

pip install "openllm[falcon]"

3.4 flan-t5

模型架构:T5ForConditionalGeneration

模型ID:

  • google/flan-t5-small
  • google/flan-t5-base
  • google/flan-t5-large
  • google/flan-t5-xl
  • google/flan-t5-xxl

安装方法:

pip install "openllm[flan-t5]"

3.5 gpt-neox

模型架构:GPTNeoXForCausalLM

模型ID:

  • eleutherai/gpt-neox-20b

安装方法:

pip install openllm

3.6 llama

模型架构:LlamaForCausalLM

模型ID:

  • meta-llama/Llama-2-70b-chat-hf
  • meta-llama/Llama-2-13b-chat-hf
  • meta-llama/Llama-2-7b-chat-hf
  • meta-llama/Llama-2-70b-hf
  • meta-llama/Llama-2-13b-hf
  • meta-llama/Llama-2-7b-hf
  • NousResearch/llama-2-70b-chat-hf
  • NousResearch/llama-2-13b-chat-hf
  • NousResearch/llama-2-7b-chat-hf
  • NousResearch/llama-2-70b-hf
  • NousResearch/llama-2-13b-hf
  • NousResearch/llama-2-7b-hf
  • openlm-research/open_llama_7b_v2
  • openlm-research/open_llama_3b_v2
  • openlm-research/open_llama_13b
  • huggyllama/llama-65b
  • huggyllama/llama-30b
  • huggyllama/llama-13b
  • huggyllama/llama-7b

安装方法:

pip install "openllm[llama]"

3.7 mpt

模型架构:MPTForCausalLM

模型ID:

  • mosaicml/mpt-7b
  • mosaicml/mpt-7b-instruct
  • mosaicml/mpt-7b-chat
  • mosaicml/mpt-7b-storywriter
  • mosaicml/mpt-30b
  • mosaicml/mpt-30b-instruct
  • mosaicml/mpt-30b-chat

安装方法:

pip install "openllm[mpt]"

3.8 opt

模型架构:OPTForCausalLM

模型ID:

  • facebook/opt-125m
  • facebook/opt-350m
  • facebook/opt-1.3b
  • facebook/opt-2.7b
  • facebook/opt-6.7b
  • facebook/opt-66b

安装方法:

pip install "openllm[opt]"

3.9 stablelm

模型架构:GPTNeoXForCausalLM

模型ID:

  • stabilityai/stablelm-tuned-alpha-3b
  • stabilityai/stablelm-tuned-alpha-7b
  • stabilityai/stablelm-base-alpha-3b
  • stabilityai/stablelm-base-alpha-7b

安装方法:

pip install openllm

3.10 starcoder

模型架构:GPTBigCodeForCausalLM

模型ID:

  • bigcode/starcoder
  • bigcode/starcoderbase

安装方法:

pip install "openllm[starcoder]"

3.11 baichuan

模型架构:BaiChuanForCausalLM

m模型ID:

  • baichuan-inc/baichuan-7b
  • baichuan-inc/baichuan-13b-base
  • baichuan-inc/baichuan-13b-chat
  • fireballoon/baichuan-vicuna-chinese-7b
  • fireballoon/baichuan-vicuna-7b
  • hiyouga/baichuan-7b-sft

安装方法:

pip install "openllm[baichuan]"

原文链接:Operating LLMs in production - OpenLLM

BimAnt翻译整理,转载请标明出处