Getting Started with Hugging Face ML Intern: Your First ML Agent
TL;DR · AI 摘要
Hugging Face推出的ML Intern通过自然语言描述自动生成代码和训练模型,显著提升研发效率。
核心要点
- ML Intern支持自然语言描述任务,自动生成代码并部署模型,减少手动编码工作量。
- 基于Hugging Face生态,集成论文搜索、数据集处理和GPU训练,提升研发流程自动化。
- 在GPQA基准测试中,小模型在10小时内性能从10%提升至32%,验证其实际效果。
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- Hugging Face ML Intern
- 核心功能
- 自然语言任务描述
- 代码自动生成
- 模型训练部署
- 技术架构
- Hugging Face生态集成
- smolagents框架
- GPU训练服务(HF Jobs)
- 应用案例
- GPQA基准测试性能提升
金句 / Highlights
值得收藏与分享的关键句。
ML Intern的工作流在10小时内将小模型在GPQA基准测试性能从10%提升至32%。
与传统聊天机器人不同,ML Intern采用迭代工作流持续优化模型。
工具集成HF Jobs、Trackio等Hugging Face生态组件,实现端到端自动化。
与 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 工具以及一些令牌。
令牌
为何需要?
推荐权限
HF_TOKEN/think
访问 Hugging Face Hub、推理服务提供商、GPU 沠箱和训练任务。
写入
(推荐)或
读取
如果你仅计划探索且不打算上传任何内容
GITHUB_TOKEN当代理查找参考实现时,搜索公共
GitHub
仓库。
细粒度
令牌具有
只读
访问公共仓库的权限
如果跳过 HF_TOKEN,CLI 在首次启动时会提示你输入一个,除非你正在运行完全本地化的模型。如果你不确定如何创建任一令牌,请查看 Hugging Face 访问令牌和 GitHub 个人访问令牌的官方指南。
# 安装 ML Intern
复制并运行以下命令。
git clone git@github.com:huggingface/ml-intern.git
cd ml-intern
uv sync
uv tool install -e .完成之后,ml-intern 可以从任何目录运行。快速检查一下:
ml-intern --help将以下内容添加到你的 .env 文件中,或在你的 shell 中导出等效变量。
HF_TOKEN=hf_your_token_here
GITHUB_TOKEN=ghp_your_token_here# 比较交互模式和无头模式
在开始第一次运行之前,了解代理支持的两种模式会有帮助。
#### // 使用交互模式
运行以下命令启动你的机器学习代理。
ml-intern这将打开一个聊天会话。你可以描述你的需求,代理会规划步骤,在执行高风险操作前请求批准,并在工作过程中持续更新你。你甚至可以在对话中通过以下命令切换模型:
/model一些适合初学者的提示:
- "在 Hub 上找到一个小型分类数据集,并向我展示如何使用 datasets 库加载它。" "总结这篇论文并列出它使用的数据集:[arXiv 链接]。" "为 Qwen2.5-0.5B 在一个小型公共数据集上编写一个最小的低秩适应(LoRA)微调脚本。现在不要启动训练,只需编写脚本。"
#### // 使用无头模式
ml-intern "fine-tune llama on my dataset"此模式使用单个提示并自动批准操作。代理会一直运行直到完成或达到迭代限制。这种模式适合你将它部署到 GitHub Action 中进行夜间实验。
当你熟悉后,一些有用的标志:
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 上的数据集并编写加载脚本。
提示:
在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存为 load_dataset.py。不要运行训练。在开始之前,请确保你的 .env 文件中包含 HF_TOKEN 和 GITHUB_TOKEN。
#### // 在交互模式中运行
你打开一个聊天会话,输入提示,观察其运行过程,并根据需要进行后续操作。
运行此命令:
然后在 > 提示符后输入你的提示:
在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset_interactive.py。不要运行训练。输出:
正在初始化代理运行时...
用户: 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):
"""从 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 之前,你还可以提出后续问题。
#### // 以无头模式运行
一条命令即可,代理从开始到结束运行后退出。
ml-intern --max-iterations 15 --no-stream \
"在 Hub 上找到 rotten_tomatoes 数据集,并编写一个简短的 Python 脚本,使用 datasets 加载它并打印第一个示例。保存到 /tmp/load_dataset.py。不要运行训练。"已加载 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):
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,可以运行:
ml-intern --model ollama/llama3.1:8b "Summarize the README in this repository."或者,如果你使用 vLLM 运行模型:
ml-intern --model vllm/meta-llama/Llama-3.1-8B-Instruct "Your prompt"如果你的本地模型服务器运行在自定义端点上,可以通过环境变量进行配置:
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)。这些追踪记录对调试特别有用,因为它们能让你检查代理的每一步推理过程。如果出现异常,你可以在代理追踪查看器中打开会话,精准定位代理做出错误决策的位置。
你还可以控制会话期间追踪记录的共享方式:
/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 文件并重新安装包来自定义工具:
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