Skip to main content

Xorbits推理 (Xinference)

Xinference 是一个功能强大且多用途的库,旨在为LLMs、语音识别模型和多模态模型提供服务,甚至可以在您的笔记本电脑上运行。它支持与GGML兼容的各种模型,如chatglm、baichuan、whisper、vicuna、orca等等。本笔记本演示了如何使用Xinference与LangChain。

安装

通过PyPI安装Xinference

%pip install "xinference[all]"

在本地或分布式集群中部署Xinference。

对于本地部署,请运行xinference

要在集群中部署Xinference,请首先使用xinference-supervisor启动Xinference主管。您还可以使用选项-p指定端口和-H指定主机。默认端口是9997。

然后,在要在其上运行Xinference的每个服务器上使用xinference-worker启动Xinference工作进程。

您可以查阅Xinference的README文件以获取更多信息。

包装器

要使用Xinference与LangChain,您需要首先启动一个模型。您可以使用命令行界面(CLI)来执行此操作:

xinference launch -n vicuna-v1.3 -f ggmlv3 -q q4_0
    模型UID:7167b2b0-2a04-11ee-83f0-d29396a3f064

将返回一个模型UID供您使用。现在您可以使用Xinference与LangChain:

from langchain.llms import Xinference

llm = Xinference(
server_url="http://0.0.0.0:9997",
model_uid = "7167b2b0-2a04-11ee-83f0-d29396a3f064"
)

llm(
prompt="Q: where can we visit in the capital of France? A:",
generate_config={"max_tokens": 1024, "stream": True},
)
    '您可以在法国首都巴黎参观埃菲尔铁塔、巴黎圣母院、卢浮宫和许多其他历史遗址。'

与LLMChain集成

from langchain import PromptTemplate, LLMChain

template = "在{country}的首都我们可以参观哪些地方?"

prompt = PromptTemplate(template=template, input_variables=["country"])

llm_chain = LLMChain(prompt=prompt, llm=llm)

generated = llm_chain.run(country="法国")
print(generated)
    
A: 您可以在巴黎参观许多地方,如埃菲尔铁塔、卢浮宫、巴黎圣母院、香榭丽舍大街、蒙马特、圣心教堂和凡尔赛宫。

最后,当您不再需要使用模型时,请终止它:

xinference terminate --model-uid "7167b2b0-2a04-11ee-83f0-d29396a3f064"