简介
项目主页:https://github.com/xorbitsai/inference
Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。
支持主流的transformers、vllm、llama.cpp等模型引擎,支持使用Web UI选择推理引擎、量化、GPU数量/编号、并发限制、下载源等
安装
创建一个干净的环境
conda create -n llm python=3.10
安装XINFERENCE
pip install "xinference[all]"
查看安装的torch版本
pip list
在这里找到对应的torch版本的cuda安装命令:https://pytorch.org/get-started/previous-versions/
记得在后面添加-U来执行更新操作
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 --index-url https://download.pytorch.org/whl/cu121 -U
启动
启动XINFERENCE,并设置默认下载源为modelscope
XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997
浏览器打开127.0.0.1:9997就可以看到XINFERENCE的界面了
在language models搜索qwen2,根据需要选择配置选项,点击左下角的小火箭运行
在embedding models搜索bge-large-zh-v1.5,操作同上,即可运行embedding模型
首次运行需要下载权重,稍等片刻即可。
下面是测试代码,兼容openai接口,只需更改base url即可
import openai
messages=[
{
"role": "user",
"content": "你是谁?"
}
]
client = openai.Client(api_key="empty", base_url=f"http://127.0.0.1:9997/v1")
res = client.chat.completions.create(
model="qwen2-instruct",
messages=messages,
)
print(res)
'''
ChatCompletion(id='chata77190a1-e1fd-41e4-bd58-7e7148dda7a8', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='我是阿里云开发的一款超大规模语言模型,我叫通义千问。', role='assistant', function_call=None, tool_calls=None))], created=1722218398, model='qwen2-instruct', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=17, prompt_tokens=22, total_tokens=39))
'''