Step 1:明确工作流结构
Vanilla RAG 的最基本流程如下:数据加载 → 文档检索 → 模型生成 → 答案评估为确保检索环节正常运行,请你优先完成语料库的编码与索引构建。相关内容可参考教程:[使用 UltraRAG 对大规模语料库进行编码与索引]
Step 2:实现必要Tool
在该流程中,我们希望模型的最终答案以\boxed{}
包裹,以便后续自动提取。因此,我们需要:
- 自定义一个 Prompt Tool:将问题与检索内容构造成标准化的生成输入;
- 自定义一个 Tool:提取
\boxed{}
中的答案文本; - 其余模块(检索、生成、评估)均可复用 UltraRAG 的现有组件。
Step 2.1: 构建 Prompt
首先准备 Prompt 模板文件prompt/qa_boxed.jinja
:
servers/prompt/src/prompt.py
Step 2.2: 提取答案
为了从模型输出中提取\boxed{}
包裹的答案,可以在 Custom Server 中实现如下 Tool:
servers/custom/src/custom.py
Step 3:编写 Pipeline 配置文件
完成上述代码开发后,在examples/
目录下创建一个新的配置文件:vanilla_rag.yaml
。
Step 4:配置 Pipeline 参数
执行下列命令:examples/parameter/vanilla_rag_parameter.yaml
,修改如下配置:
Step 5:运行你的推理流程!
一切准备就绪后,执行以下命令启动推理流程:评估结果
模型预测结果将自动评估,并保存至 Evaluation Server 中配置的save_path
路径。例如:
运行日志
推理过程中的详细日志会保存在logs/
目录下,文件名基于运行时间生成,便于检索和复现。例如:
中间结果文件
所有流程执行过程中的中间结果(包括每一步输入输出)将记录为memory
文件,默认保存在 output/
目录,例如: