Skip to main content

Intel Xeon上的RAG示例

此模板在Intel® Xeon®可扩展处理器上使用Chroma和文本生成推理执行RAG。
Intel® Xeon®可扩展处理器具有内置加速器,提供更高的每核心性能和无与伦比的AI性能,配备先进的安全技术以满足最苛刻的工作负载需求——同时提供最大的云选择和应用程序可移植性,请查看Intel® Xeon®可扩展处理器

环境设置

要在 Intel® Xeon® Scalable 处理器上使用 🤗 text-generation-inference,请按照以下步骤操作:

在Intel Xeon服务器上启动本地服务器实例:

model=Intel/neural-chat-7b-v3-3
volume=$PWD/data # 与Docker容器共享卷,以避免每次运行时下载权重

docker run --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model

对于诸如LLAMA-2的受限模型,您需要在上述docker run命令中传递 -e HUGGING_FACE_HUB_TOKEN=\<token>,并使用有效的Hugging Face Hub读取令牌。

请访问此链接 huggingface token 获取访问令牌,并使用该令牌导出HUGGINGFACEHUB_API_TOKEN环境变量。

export HUGGINGFACEHUB_API_TOKEN=<token> 

发送请求以检查端点是否正常工作:

curl localhost:8080/generate -X POST -d '{"inputs":"Which NFL team won the Super Bowl in the 2010 season?","parameters":{"max_new_tokens":128, "do_sample": true}}'   -H 'Content-Type: application/json'

更多细节请参考 text-generation-inference

填充数据

如果您想用一些示例数据填充数据库,可以运行以下命令:

poetry install
poetry run python ingest.py

该脚本处理并存储来自Edgar 10k申报数据的Nike nke-10k-2023.pdf的部分内容到Chroma数据库中。

用法

要使用此包,您首先需要安装 LangChain CLI:

pip install -U langchain-cli

要创建一个新的 LangChain 项目并将此包作为唯一包安装,您可以执行:

langchain app new my-app --package intel-rag-xeon

如果您想将其添加到现有项目中,只需运行:

langchain app add intel-rag-xeon

并将以下代码添加到您的 server.py 文件中:

from intel_rag_xeon import chain as xeon_rag_chain

add_routes(app, xeon_rag_chain, path="/intel-rag-xeon")

(可选)现在让我们配置 LangSmith。LangSmith 将帮助我们跟踪、监控和调试 LangChain 应用程序。您可以在 这里 注册 LangSmith。如果您没有访问权限,可以跳过此部分。

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # 如果未指定,默认为 "default"

如果您在此目录中,则可以直接启动一个 LangServe 实例:

langchain serve

这将启动 FastAPI 应用程序,服务器在本地运行,地址为 http://localhost:8000

我们可以在 http://127.0.0.1:8000/docs 查看所有模板 我们可以在 http://127.0.0.1:8000/intel-rag-xeon/playground 访问游乐场

我们可以通过代码访问模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/intel-rag-xeon")

此页面是否有帮助?


您还可以留下详细的反馈 在 GitHub 上