菜单

机器学习工程

相关源文件

目的与范围

本文档介绍了MetaGPT中的机器学习工程能力。这些能力支持在多智能体框架内进行ML代码的生成、执行和管理。ML工程系统提供了保存各种格式代码的工具,在笔记本环境中执行代码,以及管理执行历史以进行恢复和分析。

有关ML角色所基于的更广泛的角色系统信息,请参阅角色系统。有关ML角色使用的工具的详细信息,请参阅工具系统

架构概述

MetaGPT中的机器学习工程系统与核心框架集成,实现了可由AI代理执行和管理的机器学习工作流。

来源: metagpt/utils/save_code.py metagpt/utils/recovery_util.py

代码执行工作流

下图说明了MetaGPT中ML代码生成、执行和持久化的典型工作流。

来源: metagpt/utils/save_code.py metagpt/utils/recovery_util.py

代码持久化工具

保存代码文件

ML工程系统包含多种格式的代码保存工具,以支持不同的用例。

此函数以三种格式保存代码到文件系统。

  • Python (.py) - 标准Python脚本文件
  • JSON (.json) - 以JSON格式存储的代码,便于结构化访问
  • Jupyter Notebook (.ipynb) - 用于ML实验的交互式笔记本格式

文件保存在 DATA_PATH/output/{name} 目录下。

格式文件路径存储方法
Python{name}/code.py直接文本文件
JSON{name}/code.json带有“code”键的JSON
Notebook{name}/code.ipynbnbformat笔记本对象

来源: metagpt/utils/save_code.py13-40

代码示例

来源: tests/metagpt/utils/test_save_code.py14-44

历史管理与恢复

ML工程系统包含用于管理执行历史的工具,支持ML工作流的恢复和分析。

保存执行历史

此函数保存

  1. 角色的规划信息,保存为JSON文件
  2. 执行的笔记本,保存为Jupyter笔记本文件

历史记录将使用基于时间戳的目录名进行组织和保存。

来源: metagpt/utils/recovery_util.py35-58

加载执行历史

此函数加载

  1. 先前保存的规划,来自 plan.json
  2. 执行的笔记本,来自 history_nb/code.ipynb

这使得

  • 恢复之前的ML工作流
  • 检查执行历史
  • 基于先前的结果进行构建

来源: metagpt/utils/recovery_util.py17-32

与角色系统的集成

机器学习工程能力与MetaGPT的角色系统集成,为机器学习任务创建了专门的角色。这些角色可以

  1. 使用LLM能力生成ML代码
  2. 使用笔记本执行环境执行代码
  3. 持久化结果和历史记录以供后续分析
  4. 从先前状态恢复以继续工作

这种设计使得复杂的ML工作流可以分解为可管理的步骤,并能够跟踪进度和从中断中恢复。

来源: metagpt/utils/recovery_util.py35-58

结论

MetaGPT中的机器学习工程系统提供了一个用于生成、执行和管理机器学习代码的框架。它与核心角色系统集成,并利用代码持久化和历史管理工具。这使得复杂的ML工作流可以分解为离散的步骤,并在多智能体环境中得到有效管理。

主要功能包括

  • 支持多种代码格式(Python、JSON、Notebook)
  • 执行跟踪和历史管理
  • 用于恢复工作的恢复工具
  • 与更广泛的代理架构集成

这些能力使MetaGPT能够有效地处理机器学习任务,从简单的代码生成到涉及多个步骤和迭代的复杂工作流。