- 文档首页
云服务器
云服务器ECS
最佳实践
自助建站
AIGC实践
构建基于RAG with Intel® TDX的系统环境进行文本生成推理
AIGC实践
构建基于RAG with Intel® TDX的系统环境进行文本生成推理
构建基于RAG with Intel® TDX的系统环境进行文本生成推理
本文主要介绍在支持Intel®TDX能力的实例中构建RAG框架并部署推理模型的方案。本方案不仅可以通过TDX为推理数据提供基于硬件级别的可信机密环境,还能通过RAG丰富推理模型的回答内容。
Intel® Trust Domain Extensions (Intel® TDX,英特尔® 信任域扩展),是英特尔推出的一项用于增强虚拟机环境安全性的技术。TDX利用硬件特性,在物理硬件层面为虚拟机创建独立的可信执行环境,为虚拟机提供更高级别的安全保护,确保敏感数据和关键应用在复杂的云计算环境中免受潜在的安全威胁。了解更多。 Retrieval-Augmented Generation(RAG,检索增强生成)是一种将信息检索与文本生成相结合的技术,可用于提升生成式AI模型(例如大型语言模型LLM)的准确性和可靠性,减少模型幻觉。
- 信息检索:在生成答案前,RAG会利用检索系统,从大量的文本数据(例如本地文档、互联网、企业数据库等)中查找与输入的问题或提示相关的信息。
- 文本生成:在获取到相关检索结果后,RAG会将检索到的文档片段与用户问题结合输入生成式AI模型(例如大型语言模型LLM),模型会将这些检索到的信息作为额外的上下文信息,与输入的问题或提示一起进行处理,然后生成相应的回答或内容。
Llama 2是Meta公司开源的一个预训练和微调的生成文本模型集合。本实践选用了该模型集合中针对对话任务进行优化的Llama-2-7b-chat-hf模型,该模型通过监督微调(SFT)和人类反馈强化学习(RLHF)提升安全性和对话流畅性,适用于客服聊天机器人、虚拟助手等交互场景。更多详情可查看meta-llama/Llama-2-7b-chat-hf。 - 创建支持Intel® TDX能力的云服务器实例。操作详情可查看购买云服务器。
创建实例时,请注意以下配置:
- 镜像:本文选择Ubuntu 24.04 64位。
- 与推理模型间的通讯需要使用8502端口,需要在云服务器实例关联的安全组入方向中放通此端口。
-
- 参考下图新增“入方向”规则,单击“确定”按钮完成操作。
-
- 执行如下命令,下载confidential-computing-zoo代码。
说明
若您的实例无法访问Git,也可以下载confidential-computing-zoo后上传至目标实例。上传后,请执行unzip confidential-computing-zoo-main.zip命令解压,再执行mv confidential-computing-zoo-main confidential-computing-zoo命令修改目录名称名称。 说明
本实践通过火山引擎提供的镜像仓库服务,通过远端代理仓的方案,提升跨境拉取镜像效率。若您可以通过其他方式跨境拉取Docker镜像,可跳过本步骤。 说明
本实践仅说明必要的参数,未提及参数保持默认即可。完整说明请查看创建源端代理仓。 - 查看实例规格对比和配置费用,确认无误后,单击“确认订单”按钮。
- 仔细阅读并勾选“我已阅读并同意《镜像仓库专用服务条款》”,单击“确定”按钮提交订单,开始创建远端代理仓。
-
说明
本实践仅说明必要的参数,未提及参数保持默认即可。完整说明请查看创建命名空间。 您可以根据实际情况,选择任意方式构建运行推理模型的Docker镜像。
说明
若您的云服务器实例无法访问Git,请使用火山引擎提供的Docker镜像。
使用火山引擎提供的Docker镜像
自行构建Docker镜像
- 执行如下命令,进入confidential-computing-zoo指定目录。
说明
请将confidential-computing-zoo/cczoo/rag替换为confidential-computing-zoo实际下载路径。
- 修改confidential-computing-zoo配置文件。
- 修改backend/configs/etc/sgx_default_qcnl.conf文件
- 执行如下命令,打开backend/configs/etc/sgx_default_qcnl.conf文件。
- PCCS_URL:https://tdx-dcap-server-cn-beijing.ecs.volces.com/sgx/certification/v4/
-
- 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。
- 修改frontend/chatbot-rag/ra_configs/etc/sgx_default_qcnl.conf文件。
- 执行如下命令,打开frontend/chatbot-rag/ra_configs/etc/sgx_default_qcnl.conf文件。
- PCCS_URL:https://tdx-dcap-server-cn-beijing.ecs.volces.com/sgx/certification/v4/
-
- 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。
- 执行如下命令,将下载的Dockerfile文件移动至相应目录。
- 若您使用了火山引擎提供的镜像仓库服务,通过远端代理仓的方案拉取Docker镜像,需按如下步骤调整代理配置。否则,请跳过本步骤。
- 执行如下命令,打开backend.dockerfile文件。
- 按i键进入编辑模式。修改YOUR_IMAGE_PROXY参数值为您创建的远端代理仓访问域名。
修改前示例:
-
-
- 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。
- 执行如下命令,打开frontend.dockerfile文件。
- 按i键进入编辑模式。修改YOUR_IMAGE_PROXY参数值为您创建的远端代理仓访问域名。
-
修改后示例:
-
- 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。
说明
本文使用V1.38.1版本Grpc,若您的实例无法访问Git,也可以下载Grpc后上传至目标实例。了解更多。 上传后,请执行tar -xzvf grpc-1.38.1.tar.gz命令解压,再执行mv grpc-1.38.1 grpc命令修改目录名称。
- 执行如下命令,下载cmake-linux.sh脚本。
说明
本文使用V3.19.6版本CMake脚本,若您的实例无法访问Git,也可以下载CMake脚本后上传至目标实例,了解更多。 上传后,请执行mv cmake-3.19.6-Linux-x86_64.sh cmake-linux.sh命令修改脚本名称。
- 执行如下命令,删除已有的confidential-computing-zoo目录。
- 执行如下命令,将confidential-computing-zoo复制到指定目录下。
- 如下图所示,本文使用的实例DCAP版本为1.22。
-
说明
本文创建的加密虚拟文件系统的大小为50 GB,并指定其挂载点为 /home/vfs,请按需调整。
-
- 根据回显内容获取循环设备号,如下图LOOP_DEVICE=/dev/loop0。
-
说明
请将dev/loop0替换为实际循环设备号。
-
步骤四:下载Llama-2-7b-chat-hf模型
-
- 下划阅读模型使用许可协议,并填写所需信息,单击“Submit”按钮提交申请。
-
-
- 执行如下命令,安装HuggingFace下载工具。
- 执行如下命令,下载Llama-2-7b-chat-hf模型。
说明
请将命令中<your_token>替换为上一步获取的Token。
- 执行如下命令,下载ms-marco-MiniLM-L-12-v2模型。
- 执行如下命令,下载dpr-ctx_encoder-single-nq-base模型。
- 执行如下命令,下载dpr-question_encoder-single-nq-base模型。
说明
- 请将<your_remote_proxy>替换为远端代理仓访问域名。
- 若您未使用火山引擎远端代理仓,请执行docker pull mysql命令拉取镜像。
- 若您使用了火山引擎提供的镜像仓库服务,通过远端代理仓的方案拉取Docker镜像,需按如下步骤调整代理配置。否则,请跳过本步骤。
说明
请将 /root/confidential-computing-zoo/cczoo/rag替换为实际路径。
- 按i键进入编辑模式,将mysql:latest修改为<your_remote_proxy>/library/mysql:latest。
说明
请将<your_remote_proxy>替换为远端代理仓访问域名。
-
- 按esc键退出编辑模式,输入:wq按回车键,保存并退出文件。
步骤六:运行Llama-2-7b-chat-hf模型
说明
请将/root/confidential-computing-zoo/cczoo/rag替换为实际路径。
-
- 输入您配置的MySQL数据库登录用户及密码(默认用户名:root;默认登录密码 123456),按回车键确认。
-
- 请保留运行后端服务的终端,在浏览器中新建页面并再次登录目标实例。
- 待前、后端推理服务成功启动后,请分别在运行前、后端服务的终端中,分别按ctrl + c 按钮,中止服务运行。
-
-
- 在任意终端中,按如下步骤配置dynamic_config.json文件。
- 配置前端dynamic_config.json文件。
-
- 执行如下命令,打开前端dynamic_config.json文件。
- 按i键进入编辑模式,将第一步获取的各参数值填入对应位置。
-
-
- 按esc键退出编辑,输入:wq按回车键,保存并退出文件。
- 配置后端dynamic_config.json文件。
-
- 执行如下命令,打开前端dynamic_config.json文件。
- 按i键进入编辑模式,将第一步获取的各参数值填入对应位置。
-
-
- 按esc键退出编辑,输入:wq按回车键,保存并退出文件。
- 请参考上文2、3步骤,依次启动推理后端、前端服务,并在运行前端推理服务的终端中获取External URL对应的推理页面公网访问地址。
-
- 在任意可以访问公网的本地PC中,通过浏览器访问推理页面的公网访问地址即可与AI进行对话。
- 若网页显示如下图红框所示的信息,表示前、后端推理服务已基于Intel® TDX建立了安全的连接。
-
最近更新时间:2025.02.25 14:33:44