ml-intern创新助手:AI激发创新思维

【免费下载链接】ml-intern 🤗 ml-intern: an open-source ML engineer that reads papers, trains models, and ships ML models 【免费下载链接】ml-intern 项目地址: https://gitcode.com/GitHub_Trending/ml/ml-intern

ml-intern是一款开源的AI机器学习助手,能够自主研究、编写和部署高质量的机器学习相关代码,借助Hugging Face生态系统,深入访问文档、论文、数据集和云计算资源,为开发者提供全方位的创新支持。

快速上手:三步开启AI辅助开发之旅

1. 简单安装步骤

通过以下命令快速安装ml-intern:

git clone https://gitcode.com/GitHub_Trending/ml/ml-intern
cd ml-intern
uv sync
uv tool install -e .

安装完成后,ml-intern可以从任何目录运行:

ml-intern

2. 轻松配置环境

在项目根目录创建.env文件(或在shell中导出):

ANTHROPIC_API_KEY=<your-anthropic-api-key> # 如果使用anthropic模型
HF_TOKEN=<your-hugging-face-token>
GITHUB_TOKEN=<github-personal-access-token>

如果未设置HF_TOKEN,CLI将在首次启动时提示您粘贴一个。获取GITHUB_TOKEN可参考GitHub官方文档。

3. 灵活使用方式

交互模式(启动聊天会话):

ml-intern

无头模式(单个提示,自动批准):

ml-intern "fine-tune llama on my dataset"

高级选项

ml-intern --model anthropic/claude-opus-4-6 "your prompt"
ml-intern --max-iterations 100 "your prompt"
ml-intern --no-stream "your prompt"

ml-intern logo

核心功能:释放机器学习创新潜力

自主研究能力

ml-intern能够自动阅读学术论文、技术文档和开源项目代码,快速掌握最新的机器学习技术和方法。通过agent/tools/research_tool.pyagent/tools/papers_tool.py等工具模块,实现对学术资源的深度挖掘和理解。

智能代码生成

借助强大的语言模型和代码理解能力,ml-intern可以根据用户需求生成高质量的机器学习代码。无论是模型训练、数据处理还是模型部署,都能提供专业的代码解决方案。核心代码生成逻辑位于agent/core/agent_loop.py中。

无缝集成Hugging Face生态

ml-intern深度整合了Hugging Face生态系统,能够直接访问Hugging Face的模型库、数据集和文档。通过agent/tools/hf_repo_files_tool.pyagent/tools/hf_repo_git_tool.py等工具,实现与Hugging Face资源的无缝对接。

智能工具路由

ml-intern拥有智能的工具路由系统,能够根据任务需求自动选择合适的工具。工具路由逻辑在agent/core/tools.py中定义,包含了对各种工具的描述和参数说明。

架构解析:理解ml-intern的工作原理

组件概览

ml-intern的架构主要包括用户/CLI交互层、提交循环、代理循环、上下文管理器和工具路由等核心组件。整体架构如图所示:

┌─────────────────────────────────────────────────────────────┐
│                         User/CLI                            │
└────────────┬─────────────────────────────────────┬──────────┘
             │ Operations                          │ Events
             ↓ (user_input, exec_approval,         ↑
      submission_queue  interrupt, compact, ...)  event_queue
             │                                          │
             ↓                                          │
┌────────────────────────────────────────────────────┐  │
│            submission_loop (agent_loop.py)         │  │
│  ┌──────────────────────────────────────────────┐  │  │
│  │  1. Receive Operation from queue             │  │  │
│  │  2. Route to handler (run_agent/compact/...) │  │  │
│  └──────────────────────────────────────────────┘  │  │
│                      ↓                             │  │
│  ┌──────────────────────────────────────────────┐  │  │
│  │         Handlers.run_agent()                 │  ├──┤
│  │                                              │  │  │
│  │  ┌────────────────────────────────────────┐  │  │  │
│  │  │  Agentic Loop (max 300 iterations)     │  │  │  │
│  │  │                                        │  │  │  │
│  │  │  ┌──────────────────────────────────┐  │  │  │  │
│  │  │  │ Session                          │  │  │  │  │
│  │  │  │  ┌────────────────────────────┐  │  │  │  │  │
│  │  │  │  │ ContextManager             │  │  │  │  │  │
│  │  │  │  │ • Message history          │  │  │  │  │  │
│  │  │  │  │   (litellm.Message[])      │  │  │  │  │  │
│  │  │  │  │ • Auto-compaction (170k)   │  │  │  │  │  │
│  │  │  │  │ • Session upload to HF     │  │  │  │  │  │
│  │  │  │  └────────────────────────────┘  │  │  │  │  │
│  │  │  │                                  │  │  │  │  │
│  │  │  │  ┌────────────────────────────┐  │  │  │  │  │
│  │  │  │  │ ToolRouter                 │  │  │  │  │  │
│  │  │  │  │  ├─ HF docs & research     │  │  │  │  │  │
│  │  │  │  │  ├─ HF repos, datasets,    │  │  │  │  │  │
│  │  │  │  │  │  jobs, papers           │  │  │  │  │  │
│  │  │  │  │  ├─ GitHub code search     │  │  │  │  │  │
│  │  │  │  │  ├─ Sandbox & local tools  │  │  │  │  │  │
│  │  │  │  │  ├─ Planning               │  │  │  │  │  │
│  │  │  │  │  └─ MCP server tools       │  │  │  │  │  │
│  │  │  │  └────────────────────────────┘  │  │  │  │  │
│  │  │  └──────────────────────────────────┘  │  │  │  │
│  │  │                                        │  │  │  │
│  │  │  ┌──────────────────────────────────┐  │  │  │  │
│  │  │  │ Doom Loop Detector               │  │  │  │  │
│  │  │  │ • Detects repeated tool patterns │  │  │  │  │
│  │  │  │ • Injects corrective prompts     │  │  │  │  │
│  │  │  └──────────────────────────────────┘  │  │  │  │
│  │  │                                        │  │  │  │
│  │  │  Loop:                                 │  │  │  │
│  │  │    1. LLM call (litellm.acompletion)   │  │  │  │
│  │  │       ↓                                │  │  │  │
│  │  │    2. Parse tool_calls[]               │  │  │  │
│  │  │       ↓                                │  │  │  │
│  │  │    3. Approval check                   │  │  │  │
│  │  │       (jobs, sandbox, destructive ops) │  │  │  │
│  │  │       ↓                                │  │  │  │
│  │  │    4. Execute via ToolRouter           │  │  │  │
│  │  │       ↓                                │  │  │  │
│  │  │    5. Add results to ContextManager    │  │  │  │
│  │  │       ↓                                │  │  │  │
│  │  │    6. Repeat if tool_calls exist       │  │  │  │
│  │  └────────────────────────────────────────┘  │  │  │
│  └──────────────────────────────────────────────┘  │  │
└────────────────────────────────────────────────────┴──┘

代理循环流程

ml-intern的核心工作流程是代理循环,包括接收用户消息、添加到上下文管理器、迭代循环处理、工具调用和结果返回等步骤。详细流程如下:

User Message
     ↓
[Add to ContextManager]
     ↓
     ╔═══════════════════════════════════════════╗
     ║      Iteration Loop (max 300)             ║
     ║                                           ║
     ║  Get messages + tool specs                ║
     ║         ↓                                 ║
     ║  litellm.acompletion()                    ║
     ║         ↓                                 ║
     ║  Has tool_calls? ──No──> Done             ║
     ║         │                                 ║
     ║        Yes                                ║
     ║         ↓                                 ║
     ║  Add assistant msg (with tool_calls)      ║
     ║         ↓                                 ║
     ║  Doom loop check                          ║
     ║         ↓                                 ║
     ║  For each tool_call:                      ║
     ║    • Needs approval? ──Yes──> Wait for    ║
     ║    │                         user confirm ║
     ║    No                                     ║
     ║    ↓                                      ║
     ║    • ToolRouter.execute_tool()            ║
     ║    • Add result to ContextManager         ║
     ║         ↓                                 ║
     ║  Continue loop ─────────────────┐         ║
     ║         ↑                       │         ║
     ║         └───────────────────────┘         ║
     ╚═══════════════════════════════════════════╝

开发指南:扩展ml-intern的功能

添加内置工具

编辑agent/core/tools.py文件,添加自定义工具:

def create_builtin_tools() -> list[ToolSpec]:
    return [
        ToolSpec(
            name="your_tool",
            description="What your tool does",
            parameters={
                "type": "object",
                "properties": {
                    "param": {"type": "string", "description": "Parameter description"}
                },
                "required": ["param"]
            },
            handler=your_async_handler
        ),
        # ... existing tools
    ]

添加MCP服务器

编辑configs/main_agent_config.json文件,配置MCP服务器:

{
  "model_name": "anthropic/claude-sonnet-4-5-20250929",
  "mcpServers": {
    "your-server-name": {
      "transport": "http",
      "url": "https://example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${YOUR_TOKEN}"
      }
    }
  }
}

注意:.env文件中的环境变量(如${YOUR_TOKEN})会自动替换。

结语:让AI成为您的创新伙伴

ml-intern作为一款强大的AI机器学习助手,为开发者提供了全新的工作方式。通过自动化研究、代码生成和工具集成,ml-intern能够帮助开发者更快地将创意转化为实际成果,激发创新思维,加速机器学习项目的开发和部署。无论您是机器学习新手还是专业开发者,ml-intern都能成为您不可或缺的创新伙伴。

立即开始使用ml-intern,体验AI驱动的机器学习开发新方式!

【免费下载链接】ml-intern 🤗 ml-intern: an open-source ML engineer that reads papers, trains models, and ships ML models 【免费下载链接】ml-intern 项目地址: https://gitcode.com/GitHub_Trending/ml/ml-intern

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐