KDnuggets

Getting Started with Hugging Face ML Intern: Your First ML Agent

8.5内容质量

TL;DR · AI 摘要

Hugging Face推出的ML Intern通过自然语言描述自动生成代码和训练模型,显著提升研发效率。

核心要点

  • ML Intern支持自然语言描述任务,自动生成代码并部署模型,减少手动编码工作量。
  • 基于Hugging Face生态,集成论文搜索、数据集处理和GPU训练,提升研发流程自动化。
  • 在GPQA基准测试中,小模型在10小时内性能从10%提升至32%,验证其实际效果。

结构提纲

按章节快速跳转。

  1. 介绍ML Intern作为Hugging Face推出的新型机器学习代理工具。

  2. 通过自然语言描述任务,自动生成代码并执行训练流程。

  3. 基于Hugging Face生态,集成论文搜索、GPU训练和模型部署功能。

  4. 展示在GPQA基准测试中性能提升的案例,验证工具有效性。

  5. 通过循环工作流持续优化模型,减少重复性开发工作。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Hugging Face ML Intern
    • 核心功能
      • 自然语言任务描述
      • 代码自动生成
      • 模型训练部署
    • 技术架构
      • Hugging Face生态集成
      • smolagents框架
      • GPU训练服务(HF Jobs)
    • 应用案例
      • GPQA基准测试性能提升

金句 / Highlights

值得收藏与分享的关键句。

#Hugging Face#ML Intern#机器学习#自动化工具#AI研发
打开原文

与 Hugging Face ML Intern 共启机器学习之旅:你的第一个 ML Agent - KDnuggets

publ: 2026年7月6日

  • 博客热门文章
  • 主题 AI 职业建议 计算机视觉 数据工程 数据科学 语言模型 机器学习 MLOps NLP 编程 Python SQL
  • 数据集
  • 活动
  • 资源 快速参考指南 推荐 技术简报
  • 广告

订阅电子报

#header end

/ad_wrapper

与 Hugging Face ML Intern 共启机器学习之旅

你描述模型需求,它负责编写代码、执行训练并部署检查点。欢迎来到 ML Intern。

作者:

Kanwal Mehreen

,KDnuggets 技术编辑兼内容专家,2026年7月6日发布于

人工智能

<div class="addthis_native_toolbox"></div>

# 开始使用 ML Intern

你是否曾陷入这样的困境:手头有一个模型构想,但"我读过论文"与"我在模型库中拥有训练好的检查点"之间的差距仍需要耗费整个周末?ML Intern 是 Hugging Face 为缩小这一差距所做的尝试。这是 Hugging Face 提供的一个开源命令行界面(CLI)代理工具,允许你用纯英文描述机器学习任务。

无需手动拼接所有组件,你只需告诉它进行模型微调、探索研究论文或启动训练任务。它会处理初级机器学习工程师通常需要完成的工作:阅读文档、搜索 GitHub、编写脚本、启动任务、检查结果并进行迭代。

该工具完全基于 Hugging Face 技术栈构建。它可以在模型库和 arXiv 上搜索论文,处理数据集,使用 HF Jobs 启动 GPU 训练任务,通过 Trackio 记录实验,并在任务完成后将训练好的模型重新发布到模型库。其底层采用 smolagents 框架,并可通过 Hugging Face 推理服务提供商或本地端点路由模型调用(若不想消耗 API 信用额度)。它更像是拥有 shell 访问权限和 Hugging Face 账户的研究实习生,而非"代码版 ChatGPT"。该仓库地址为 huggingface/ml-intern,你可以对其进行实验、根据需求进行调整,甚至将其集成到持续集成(CI)工作流中。

# 理解 ML Intern 的价值

真正的机器学习研究并非线性过程。你阅读文献、追踪引用、找到一个接近匹配的数据集、重写数据加载器两次、进行训练、发现评估错误、修正问题并重新训练。ML Intern 的设计目标是自动化这些重复性工作,让你专注于研究决策而非反复编写初始化代码。

与传统聊天机器人不同,它不会在生成一个答案后停止。相反,它遵循迭代工作流程。

ML Intern 工作流循环

Hugging Face 发布的实验结果表明,该代理在 GPQA(科学推理基准测试)上,使用小型 Qwen 模型在不到 10 小时内将性能从约 10% 提升至约 32%。无论你是否关注这个特定基准,这都表明这不是一个只生成一个脚本就停止的玩具工具。它被设计为持续运行的系统。

至此,你已了解该项目存在的背景。现在是时候使用它了,但在此之前,请确保已满足所有前提条件。

# 检查先决条件

你需要 Hugging Face 账户、Python、uv 工具以及一些令牌。

令牌

为何需要?

推荐权限

code
HF_TOKEN

/think

访问 Hugging Face Hub、推理服务提供商、GPU 沠箱和训练任务。

写入

(推荐)或

读取

如果你仅计划探索且不打算上传任何内容

code
GITHUB_TOKEN

当代理查找参考实现时,搜索公共

GitHub

仓库。

细粒度

令牌具有

只读

访问公共仓库的权限

如果跳过 HF_TOKEN,CLI 在首次启动时会提示你输入一个,除非你正在运行完全本地化的模型。如果你不确定如何创建任一令牌,请查看 Hugging Face 访问令牌和 GitHub 个人访问令牌的官方指南。

# 安装 ML Intern

复制并运行以下命令。

code
git clone git@github.com:huggingface/ml-intern.git
cd ml-intern
uv sync
uv tool install -e .

完成之后,ml-intern 可以从任何目录运行。快速检查一下:

code
ml-intern --help

将以下内容添加到你的 .env 文件中,或在你的 shell 中导出等效变量。

code
HF_TOKEN=hf_your_token_here
GITHUB_TOKEN=ghp_your_token_here

# 比较交互模式和无头模式

在开始第一次运行之前,了解代理支持的两种模式会有帮助。

#### // 使用交互模式

运行以下命令启动你的机器学习代理。

code
ml-intern

这将打开一个聊天会话。你可以描述你的需求,代理会规划步骤,在执行高风险操作前请求批准,并在工作过程中持续更新你。你甚至可以在对话中通过以下命令切换模型:

code
/model

一些适合初学者的提示:

  • "在 Hub 上找到一个小型分类数据集,并向我展示如何使用 datasets 库加载它。" "总结这篇论文并列出它使用的数据集:[arXiv 链接]。" "为 Qwen2.5-0.5B 在一个小型公共数据集上编写一个最小的低秩适应(LoRA)微调脚本。现在不要启动训练,只需编写脚本。"

#### // 使用无头模式

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

此模式使用单个提示并自动批准操作。代理会一直运行直到完成或达到迭代限制。这种模式适合你将它部署到 GitHub Action 中进行夜间实验。

当你熟悉后,一些有用的标志:

code
ml-intern --max-iterations 100 "your prompt"   # 限制预算
ml-intern --no-stream "your prompt"            # 为 CI 日志提供更清晰的输出
ml-intern --sandbox-tools "test this in a GPU sandbox"
ml-intern --model moonshotai/Kimi-K2.7-Code:novita "your prompt"

如果你刚开始,先尝试交互模式。熟悉后,切换到无头模式进行自动化操作。

# 开始你的第一次运行

在两种模式中使用相同的提示,以便你能看到它们的差异。我们将从一个不涉及训练的小任务开始。目标仅仅是找到一个 Hugging Face Hub 上的数据集并编写加载脚本。

提示:

code
在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存为 load_dataset.py。不要运行训练。

在开始之前,请确保你的 .env 文件中包含 HF_TOKEN 和 GITHUB_TOKEN。

#### // 在交互模式中运行

你打开一个聊天会话,输入提示,观察其运行过程,并根据需要进行后续操作。

运行此命令:

然后在 > 提示符后输入你的提示:

code
在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset_interactive.py。不要运行训练。

输出:

code
正在初始化代理运行时...
 用户: kanwal8008
 模型: zai-org/GLM-5.2:novita
 工具运行时: 本地文件系统
 工具: 已加载 25 个
输入 /help 查看命令 · /model 切换模型 · /quit 退出
准备就绪。让我们构建一些令人印象深刻的东西。
> 在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset_interactive.py。不要运行训练。
该数据集是 cornell-movie-review-data/rotten_tomatoes。它包含一个默认配置,具有训练/验证/测试划分,列包括文本和标签。现在开始编写脚本。
▸ write {"content": "\"\"\"从 HF Hub 加载 rotten_tomatoes 数据集并打印第一个示例。\"\"\""}
完成。脚本已保存到 /tmp/load_dataset_interactive.py。
脚本功能:
 - 通过 datasets.load_dataset 加载 cornell-movie-review-data/rotten_tomatoes
 - 打印数据集划分(训练集、验证集、测试集)
 - 打印第一个训练示例({"text": ..., "label": ...} 字典)
数据集详情:
 - 列:text(电影评论句子),label(0 = 负面,1 = 正面)
 - 总共约 10.6k 个示例(5,331 个正面 / 5,331 个负面)
你可以通过以下方式本地运行:
 python /tmp/load_dataset_interactive.py
> /quit
再见。

创建的文件(/tmp/load_dataset_interactive.py):

code
"""从 HF Hub 加载 rotten_tomatoes 数据集并打印第一个示例。"""
from datasets import load_dataset

# 从 Hub 加载完整数据集(所有划分)
ds = load_dataset("cornell-movie-review-data/rotten_tomatoes")

print("数据集划分:", list(ds.keys()))
first_train = ds["train"][0]
print("第一个训练示例:")
print(first_train)
print("\n标签含义: 0 = 负面, 1 = 正面")

交互模式在执行过程中会提供更多上下文信息,包括数据集详情、脚本功能以及如何运行。在输入 /quit 之前,你还可以提出后续问题。

#### // 以无头模式运行

一条命令即可,代理从开始到结束运行后退出。

code
ml-intern --max-iterations 15 --no-stream \
"在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset.py。不要运行训练。"
code
已加载 HF 令牌
模型: zai-org/GLM-5.2:novita
工具运行时: 本地文件系统
最大迭代次数: 15
提示: 在 Hub 上查找 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset.py。不要运行训练。
---
▸ hf_inspect_dataset {"dataset": "cornell-movie-review-data/rotten_tomatoes", "sample_rows": 1}
▸ write {"content": "from datasets import load_dataset\n\ndataset = load_dataset(\"rotte..."}
▸ bash {"command": "cd /tmp && python load_dataset.py", "description": "运行数据集. .."}
完成。脚本已保存到 /tmp/load_dataset.py 并验证通过。它通过 datasets.load_dataset 加载 rotten_tomatoes 数据集(数据集 ID: cornell-movie-review-data/rotten_tomatoes),并打印第一个训练示例:
 {'text': 'the rock is destined to be the 21st century\'s new " conan " ...',
 'label': 1}
该数据集包含两列 -- text(评论)和 label(0 = 负面,1 = 正面)-- 分别在 train(8,530 行)、validation(1,066)和 test(1,066)部分中。
--- Agent turn_complete (history_size=9) ---

创建的文件(/tmp/load_dataset.py):

code
from datasets import load_dataset
dataset = load_dataset("rotten_tomatoes", split="train")
print(dataset[0])

无头模式会自动批准所有操作。当你明确知道自己要做什么且不需要中途干预运行时,这非常有用。

# 使用本地模型运行 ML Intern

如果你不想使用 Hugging Face 推理服务提供商或支付 API 调用费用,ML Intern 也可以与本地托管模型配合使用。ML Intern 不会自行下载和加载模型权重,而是连接到已在你机器上运行的 OpenAI 兼容服务器。

这意味着你可以使用流行的本地推理框架,例如:

  • Ollama
  • vLLM
  • LM Studio
  • llama.cpp

例如,如果你使用 Ollama,可以运行:

code
ml-intern --model ollama/llama3.1:8b "Summarize the README in this repository."

或者,如果你使用 vLLM 运行模型:

code
ml-intern --model vllm/meta-llama/Llama-3.1-8B-Instruct "Your prompt"

如果你的本地模型服务器运行在自定义端点上,可以通过环境变量进行配置:

code
LOCAL_LLM_BASE_URL=http://localhost:8000
LOCAL_LLM_API_KEY=optional-if-your-server-requires-it

一些提供商还支持自己的环境变量。例如,如果你使用 Ollama,可以设置 OLLAMA_BASE_URL,它会优先于通用的 LOCAL_LLM_BASE_URL。需要记住的一个重要事项是,小型本地模型在处理多步骤训练流水线时会遇到困难。它适合用于探索和脚本起草,但对于严肃的代理循环,你需要一个具有更多推理空间的模型。

# 理解 ML Intern 的工作原理

你不需要记住架构,但了解代理有时会暂停并要求你批准某些操作的原因是有帮助的。代理默认运行最多 300 轮的迭代循环。下面的流程图大致说明了每次调用时会发生什么。

ML Intern 处理每次调用的方式

ML Intern 最显著的优势之一是其开箱即用的丰富工具集。内置工具覆盖了 Hugging Face 生态系统,包括文档、数据集、仓库、论文和工作机会,还支持 GitHub 搜索、本地文件操作、计划辅助工具,以及通过模型上下文协议(MCP)连接的任何外部工具。甚至包含一个死循环检测器,可识别重复调用相同参数的工具,这是使用编码代理时常见的问题。

每个会话都可以自动上传到你的 Hub 账户上的私有数据集({username}/ml-intern-sessions),格式兼容代理追踪查看器(Agent Trace Viewer)。这些追踪记录对调试特别有用,因为它们能让你检查代理的每一步推理过程。如果出现异常,你可以在代理追踪查看器中打开会话,精准定位代理做出错误决策的位置。

你还可以控制会话期间追踪记录的共享方式:

code
/share-traces private
/share-traces public

如果不想保存会话历史,也可以通过配置文件完全禁用追踪上传。

# 避免常见错误

  • 明确你的提示指令。"Fine-tune llama" 这样的表述过于模糊。"Fine-tune meta-llama/Llama-3.2-1B on imdb with LoRA, max 1 epoch, do not push to Hub" 这样的具体描述更优。注意审批权限。训练任务和沙箱环境都会产生费用。代理会主动询问,因此首次运行时不要盲目批准所有操作。进行实验时设置 --max-iterations 参数。默认的 300 次迭代限制对复杂任务非常友好,但在测试阶段可能导致计算资源浪费。检查追踪记录。当出现异常情况时,你在 Hub 上的私有会话数据集就是黑匣子记录器。

# 下一步行动

ML Intern 不会取代你的判断力。你仍需阅读训练日志、验证评估结果的合理性,并判断 GPQA 上 32% 的准确率是否符合预期。但如果你曾盯着空白的 train.py 文件不知从何下手,拥有一个熟悉 Hub 的实习助手就是重要的第一步。

运行 ml-intern,给它一个简单的任务,观察它的表现。这是初始阶段的游戏规则。一些实用的下一步建议:

  • 探索 GitHub 仓库。浏览源代码,查看示例,保持对新功能和改进的了解。创建自定义工具。ML Intern 的设计支持扩展性。你可以通过修改 agent/core/tools.py 文件并重新安装包来自定义工具:
code
uv tool install -e . --force
  • 连接 MCP 服务器。如果你使用 MCP,可以通过更新 configs/cli_agent_config.json 文件来附加外部工具和服务。环境变量如 ${YOUR_TOKEN} 会自动从你的 .env 文件加载。启用 Slack 通知。如果需要完成时提醒功能,设置 SLACK_BOT_TOKEN 和 SLACK_CHANNEL_ID。

Kanwal Mehreen 是一名机器学习工程师和技术作家,对数据科学以及人工智能与医学的交叉领域充满热情。她合著了电子书《Maximizing Productivity with ChatGPT》。作为 2022 年 Google Generation Scholar(亚太区),她倡导多样性和学术卓越。她还被授予 Teradata 技术领域多样性学者、Mitacs Globalink 研究学者和哈佛 WeCode 学者称号。Kanwal 是变革的坚定倡导者,她创立了 FEMCodes 组织,致力于赋能 STEM 领域的女性。

更多相关内容

  • 从零开始使用 Nanobot:构建你的第一个 AI 代理
  • Smolagents 入门:15 分钟构建你的第一个代码代理
  • AutoGluon 入门:自动化机器学习的第一步
  • 使用 Claude Agent SDK 开发你的第一个代理
  • 如何将你的大语言模型部署到 Hugging Face Spaces
  • 10 个 Python 单行代码优化 Hugging Face Transformers 管道

<hr class="grey-line"><br> <div><h3>我们推荐的 5 门免费课程</h3><br> </div>

WordPress 的 Mailchimp 插件 v4.13.1 - https://wordpress.org/plugins/mailchimp-for-wp/

/ WordPress 的 Mailchimp 插件

你可以从这里开始编辑。

如果评论已关闭。

<= 上一篇

下一篇 =>

#content end

<script type="text/javascript">kda_sid_write(kda_sid_n);</script>

最新文章

  • SQL、Pandas 和 AI 代理:哪个最适合解决分析问题?使用 Gemma 4 实现零样本本地文档解析:将 PDF 作为图像处理 机器学习的 10 个概率概念简单解释 数据科学家正在成为 AI 管理者,而非模型构建者 Hugging Face 机器学习实习入门:你的第一个 ML 代理 5 种方法利用小型语言模型构建下一代代理

热门文章

  • 2026 年你应该了解的 10 个智能体 AI 框架
  • 2026 年你可以用 Python 构建的 7 个真实世界 Python 项目(附指南)
  • Python 中使用 Claude API 入门
  • 构建本地 AI 系统:Qwen3.6 + MCPs
  • 5 个 AI 编程订阅计划,为开发者提供最佳性价比
  • 你的 RAG 管道可能毫无用处。这里有一个更好的替代方案
  • 5 个 AI 编程平台,无需头疼即可构建应用
  • 2026 年你可以在本地运行的顶级 7 个编程模型
  • 数据科学家正在成为 AI 管理者,而非模型构建者
  • 5 个智能体工作流自动化你的数据科学管道

#content_wrapper end

© 2026

Guiding Tech Media

|

关于

联系我们

广告合作

隐私政策

服务条款

2026 年 7 月 6 日发布

blank

不,谢谢!

/.main_wrapper

<script defer type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=gpsaddthis"></script>

noptimize

/noptimize