文档索引
获取完整文档索引: https://docs.crewai.com.cn/llms.txt
在深入了解之前,请使用此文件来浏览所有可用页面。
概述
CrewAI 中的训练功能允许您使用命令行界面 (CLI) 来训练您的 AI 智能体。通过运行命令crewai train -n <n_iterations>,您可以指定训练过程的迭代次数。 在训练期间,CrewAI 利用各种技术,结合人类反馈来优化智能体的性能。这有助于智能体提高其理解力、决策能力和解决问题的能力。使用 CLI 训练您的智能体团队
要使用训练功能,请按照以下步骤操作:- 打开您的终端或命令提示符。
- 导航到您的 CrewAI 项目所在的目录。
- 运行以下命令:
如果您省略
-f,输出将默认为当前工作目录中的 trained_agents_data.pkl。您可以传递绝对路径来控制文件的保存位置。以编程方式训练您的智能体团队
要以编程方式训练您的团队,请使用以下步骤:- 定义训练的迭代次数。
- 指定训练过程的输入参数。
- 在 try-except 代码块中执行训练命令,以处理潜在的错误。
代码
智能体如何使用训练数据
CrewAI 以两种方式使用训练产物:在训练过程中结合您的人类反馈,以及在训练后通过合并后的建议来引导智能体。训练数据流
在训练运行期间
- 在每次迭代中,系统会为每个智能体记录以下内容:
initial_output:智能体的初步回答human_feedback:当系统提示时,您提供的内联反馈improved_output:智能体在收到反馈后的后续回答
- 此数据存储在名为
training_data.pkl的工作文件中,并按智能体的内部 ID 和迭代次数进行索引。 - 当训练处于活动状态时,智能体会自动将您之前的人类反馈附加到其提示词中,以便在训练会话的后续尝试中强制执行这些指令。训练是交互式的:任务将
human_input设置为true,因此在非交互式环境中运行时,系统会因等待用户输入而阻塞。
训练完成后
- 当
train(...)完成时,CrewAI 会针对每个智能体评估收集到的训练数据,并生成一个包含以下内容的综合结果:suggestions:从您的反馈以及初始输出与改进输出之间的差异中提取的清晰、可操作的指令。quality:一个 0 到 1 之间的分数,用于衡量改进程度。final_summary:针对未来任务的一步步行动项目集。
- 这些综合结果会保存到您传递给
train(...)的文件名中(通过 CLI 默认为trained_agents_data.pkl)。条目按智能体的role进行索引,以便它们可以跨会话应用。 - 在正常(非训练)执行期间,每个智能体会自动加载其综合后的
suggestions,并将它们作为强制指令附加到任务提示词中。这使您能够在不更改智能体定义的情况下获得持续的改进。
文件摘要
training_data.pkl(临时,按会话)- 结构:
agent_id -> { 迭代编号: { initial_output, human_feedback, improved_output } } - 目的:在训练期间捕获原始数据和人类反馈
- 位置:保存在当前工作目录 (CWD) 中
- 结构:
trained_agents_data.pkl(或您的自定义文件名)- 结构:
agent_role -> { suggestions: 字符串列表, quality: 数值, final_summary: 字符串 } - 目的:为未来的运行持久化综合建议
- 位置:默认写入 CWD;使用
-f设置自定义(包括绝对)路径
- 结构:
小语言模型注意事项
小模型在训练评估中的局限性
JSON 输出准确性
较小的模型通常难以产生结构化训练评估所需的有效 JSON 响应,从而导致解析错误和数据不完整。
评估质量
与大型模型相比,7B 参数以下的模型可能提供深度有限且不够细致的评估。
指令遵循能力
较小的模型可能无法完全遵循或考虑复杂的训练评估标准。
一致性
使用较小的模型时,跨多次训练迭代的评估可能缺乏一致性。
训练建议
- 最佳实践
- 小模型使用
为了获得最佳的训练质量和可靠的评估,我们强烈建议使用 7B 参数或更大的模型。
关键注意事项
- 正整数要求:确保迭代次数 (
n_iterations) 为正整数。如果不满足此条件,代码将引发ValueError。 - 文件名要求:确保文件名以
.pkl结尾。如果不满足此条件,代码将引发ValueError。 - 错误处理:代码处理子进程错误和意外异常,并向用户提供错误消息。
- 训练后的引导是在提示时应用的;它不会修改您的 Python/YAML 智能体配置。
- 智能体会自动从位于当前工作目录中名为
trained_agents_data.pkl的文件中加载训练建议。如果您训练到了不同的文件名,请在运行前将其重命名为trained_agents_data.pkl,或在代码中调整加载器。 - 您可以在调用
crewai train时使用-f/--filename更改输出文件名。如果您想保存在 CWD 之外,支持绝对路径。
