使用Xorbits Inference进行本地大模型部署及查询
llzwxh888 2024-08-30 15:33:48 阅读 73
介绍
在本文中,我们将展示如何使用Xorbits Inference (简称Xinference) 在本地部署大型语言模型(LLM)。我们将使用Llama 2聊天模型作为示例,但代码适用于所有支持的LLM聊天模型。
步骤概述
安装Xinference启动本地模型索引数据并进行查询
安装Xinference
首先,我们需要安装Xinference。请在终端窗口中运行以下命令:
<code>pip install "xinference[all]"
安装完成后,重启您的Jupyter Notebook。然后在新的终端窗口中运行以下命令:
xinference
您应该会看到如下输出:
INFO:xinference:Xinference successfully started. Endpoint: http://127.0.0.1:9997
INFO:xinference.core.service:Worker 127.0.0.1:21561 has been added successfully
INFO:xinference.deploy.worker:Xinference worker successfully started.
在端点描述中查找端口号,在上面的例子中是9997
。
接下来设置端口号:
%pip install llama-index-llms-xinference
port = 9997 # 替换为您的端口号
启动本地模型
在这一步中,我们将导入相关库并启动模型。
!pip install llama-index # 如果缺少LlamaIndex,需安装
from llama_index.core import (
SummaryIndex,
TreeIndex,
VectorStoreIndex,
KeywordTableIndex,
KnowledgeGraphIndex,
SimpleDirectoryReader
)
from llama_index.llms.xinference import Xinference
from xinference.client import RESTfulClient
from IPython.display import Markdown, display
定义客户端并启动模型:
# 定义客户端以发送命令到Xinference
client = RESTfulClient(f"http://localhost:{ port}")
# 下载并启动模型,初次可能需要等待
model_uid = client.launch_model(
model_name="llama-2-chat",code>
model_size_in_billions=7,
model_format="ggmlv3",code>
quantization="q2_K",code>
)
# 初始化Xinference对象以使用LLM
llm = Xinference(
endpoint=f"http://localhost:{ port}",
model_uid=model_uid,
temperature=0.0,
max_tokens=512,
)
索引数据并进行查询
在这一步中,我们将模型与数据结合以创建查询引擎。
# 从数据创建索引
documents = SimpleDirectoryReader("../data/paul_graham").load_data()
# 使用VectorStoreIndex创建索引
index = VectorStoreIndex.from_documents(documents=documents)
# 创建查询引擎
query_engine = index.as_query_engine(llm=llm)
我们可以在询问问题前设置温度和最大回答长度。
# 可选,更新温度和最大回答长度
llm.__dict__.update({ "temperature": 0.0})
llm.__dict__.update({ "max_tokens": 2048})
# 问一个问题并显示答案
question = "What did the author do after his time at Y Combinator?"
response = query_engine.query(question)
display(Markdown(f"<b>{ response}</b>"))
可能遇到的错误
无法安装Xinference: 确保您的网络连接正常,或者尝试使用国内镜像源安装包。模型启动失败: 检查是否有足够的系统资源,尤其是内存和存储空间。查询引擎创建失败: 确认数据路径正确且数据格式符合要求。
参考资料:
Xorbits Inference 官方文档Llama Index 官方文档
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。