Argilla 官方教程体系全览:从 FeedbackDataset 端到端入门到 LLM 微调与数据策展实战
【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argilla
Argilla 的教程(Tutorials)体系是官方为新手与资深用户准备的系统化学习路径,覆盖从「配置用户与工作区、创建数据集、分配标注任务、添加元数据与向量、收集响应与建议、过滤查询、训练与评估模型」的完整闭环,再到「用 LLM 合成数据、监督微调 Mistral 7B、为 RAG 微调 GPT-3.5、训练 RLHF 奖励模型、监控数据/模型漂移与偏见」等进阶实战。读完本文,你将掌握 Argilla 教程地图的完整结构、每条教程对应的核心技术点与仓库内可运行的笔记本资源,并了解教程背后FeedbackDataset与ArgillaTrainer两个核心类的源码级实现原理,从而能够按图索骥地开展自己的高质量数据集构建与模型微调项目。
教程体系总览:三类路径满足不同学习阶段
官方教程目录位于仓库的 tutorials.md,其设计定位是:无论你是初学者还是经验丰富的用户,都能通过这些教程逐步理解并落地 Argilla 的各项功能。整个教程体系按学习难度与数据集类型划分为三大板块:
| 板块 | 面向人群 | 核心主题 | 教程数量 |
|---|---|---|---|
| Feedback Dataset(Beginner) | 刚接触 Argilla 的新手 | 基于FeedbackDataset的端到端功能复现:从零配置到训练评估 | 9 个端到端示例 |
| Feedback Dataset(Advanced) | 有基础的进阶用户 | 数据策展与反馈收集,微调 LLM 及其他语言模型 | 15 个进阶实战 |
| Other datasets | 使用传统DatasetForTextClassification等数据集类型的用户 | 结合第三方库(SetFit、small-text、cleanlab、skweak、spacy-llm 等)的经典机器学习工作流 | 7 个专项教程 |
文档中还特别说明了一个重要的版本背景:本套教程覆盖的FeedbackDataset是完全可配置的数据集类,它将在 Argilla 2.0 中取代DatasetForTextClassification、DatasetForTokenClassification和DatasetForText2Text。不确定该用哪种数据集时,可以参考 choose_dataset 指南。教程末尾还指向了仓库中的 notebooks 文件夹,那里存放着所有可逐段运行的 Jupyter 笔记本。
Beginner 入门:FeedbackDataset 端到端九步走
入门板块的 9 个端到端示例(end2end examples)构成了一条从环境准备到模型评估的完整主线。官方强调,这些教程可以按顺序逐步跟进,也可以配合官方预先准备好的、可从 Hugging Face Hub 下载的 Argilla 兼容数据集独立练习单个示例。
1. 配置用户与工作区(Configure Users and Workspaces)
第一个示例解决的是使用 Argilla 前的「组织治理」问题:学习如何配置Users(用户)与Workspaces(工作区)。这是多角色协作数据标注的基础——通过工作区把数据集、标注成员和权限边界组织起来。在仓库中,User与Workspace是 Argilla 资源模型的一等公民,可在 argilla-v1 客户端 users 模块 与 workspaces 模块 中查看其完整定义。
2. 创建 FeedbackDataset(Create a FeedbackDataset)
第二个示例进入核心:学习如何配置一个FeedbackDataset并向其中添加FeedbackRecord。这是整个教程体系的地基,因为后续所有示例(元数据、向量、响应、建议、查询、训练)都在此数据结构之上展开。从源码看,FeedbackDataset的核心方法定义在 local/dataset.py,其中:
add_records(第 248 行起)负责向数据集批量写入FeedbackRecord;add_metadata_property(第 276 行起)与add_vector_settings(第 295 行起)分别扩展数据集的元数据属性与向量配置;prepare_for_training(第 412 行起)将标注数据转换为训练框架所需的格式;filter_by(第 511 行起)、sort_by(第 490 行起)与find_similar_records(第 529 行起)支撑后续示例的查询与语义检索能力。
3. 将记录分配给团队(Assign records to your team)
第三个示例演示了协作场景:如何轻松地将记录分配给团队成员。这是 Argilla 作为「AI 工程师与领域专家协作工具」定位的体现——每条记录可以指派给特定标注者,实现责任明确的分工式标注。
4. 为数据集添加元数据(Adding Metadata)
第四个示例讲解如何为FeedbackDataset添加元数据属性(metadata properties)。元数据是后续过滤、查询与质量分析的维度基础,例如来源渠道、语言、时间戳等结构化信息,可以显著提升数据集的可用性与可检索性。
5. 为数据集添加向量(Adding Vectors)
第五个示例关注向量能力:如何添加向量及向量设置(vector settings)。向量是语义搜索与相似记录检索的前提,add_vector_settings与find_similar_records两个方法配合,即可实现基于语义相似度的记录发现——这是后续「语义搜索标注」「RAG 数据策展」类教程的基础设施。
6. 添加响应与建议(Adding Responses and Suggestions)
第六个示例演示人机协作的核心机制:为数据集添加suggestions(模型生成的建议标注)与responses(人工标注者的真实回答)。建议可以来自预训练模型、zero-shot 模型或 LLM,标注者在此基础上确认或修正,从而大幅提升标注效率。
7. 过滤与查询数据集(Filter and Query)
第七个示例教你使用过滤与查询能力从海量记录中定位目标子集,例如按元数据值、标注状态(draft/pending/submitted/discarded)等维度筛选数据。这为「只训练高质量子集」「查看未完成标注」等日常操作提供了手段。
8. 用 ArgillaTrainer 训练模型(Train Your Model)
第八个示例进入模型训练环节:学习如何用ArgillaTrainer训练模型。这是 Argilla 与主流训练框架衔接的桥梁,其实现位于 training/base.py,构造时支持以下关键参数:
| 参数 | 说明 | 备注 |
|---|---|---|
dataset | FeedbackDataset或RemoteFeedbackDataset | 必填 |
task | 训练任务定义(TrainingTaskTypes) | 必填 |
framework | 训练框架:transformers、setfit、spacy、peft、openai、span_marker、trl、sentence-transformers | 必填 |
lang | spaCy 语言模型,仅framework="spacy"时需要 | 默认spacy.blank("en") |
model | 基线模型名称/路径,或 transformersPreTrainedModel实例 | 不指定时按框架取合理默认值 |
tokenizer | transformersPreTrainedTokenizer,仅transformers/peft/trl使用 | 可选 |
train_size | 训练集大小;spacy框架要求必须设置(需要验证集) | 默认使用全部数据 |
seed | 随机种子,保证可复现性 | 可选 |
gpu_id | 训练 spaCy 模型时使用的 GPU ID,0起;-1表示 CPU | 默认-1 |
filter_by | 按字段过滤,目前仅支持response_status,取值draft/pending/submitted/discarded | 默认不过滤 |
sort_by | SortBy对象列表,用于排序 | 默认不排序 |
max_records | 训练使用的最大记录数 | 可选 |
framework_kwargs | 传给框架训练器的参数;特殊键model_card_kwargs用于模型卡片参数 | 默认{} |
从源码调用链看,ArgillaTrainer初始化时会依次执行:filter_by→sort_by→pull(max_records=...)完成数据子集选择,再调用dataset.prepare_for_training(framework=..., task=..., train_size=..., seed=..., lang=...)将标注数据转换为对应框架的训练格式,随后交给具体框架(transformers、trl、setfit、peft、openai、spacy、span_marker、sentence_transformers,见 training/frameworks 目录)执行训练。
9. 用指标评估模型(Use Metrics to Evaluate)
最后一个入门示例讲解如何使用 metrics 模块评估训练好的模型,从而形成「数据 → 标注 → 训练 → 评估 → 迭代」的完整闭环。这九个示例串联起来,正好覆盖了上图中从数据集创建到模型评估的端到端工作流。
Advanced 进阶:LLM 微调、RLHF 与数据策展实战
进阶板块面向有经验的用户,聚焦「策展数据集 + 收集人类反馈 → 微调 LLM 与语言模型」这一当前最热门的应用方向,15 个教程按技术目标可分为五类:
LLM 微调与对齐
- Ⓜ️ 用监督微调(SFT)将 Mistral 7B 微调为聊天助手:使用
ArgillaTrainer与 TRL 库完成监督微调,是「数据反馈驱动 LLM 对齐」的标杆案例。 - 🪄 用人类反馈微调并评估 GPT-3.5 以支撑 RAG:针对 RAG 应用,通过
ArgillaTrainer+ LlamaIndex 微调与评估gpt3.5-turbo,强调「人工反馈 → 微调 → RAG 效果提升」的链路。 - 🏆 为 RLHF 训练奖励模型:教程教你收集成对比较(comparison)或人类偏好数据,并用
trl库训练奖励模型,这是 RLHF 管线中的关键一环。
高效小模型微调
- 🎛️ 用 ArgillaTrainer 微调 SetFit 模型:将 FeedbackDataset 直接用于 SetFit 微调,在少量样本下获得高效率的分类模型。
- 🎮 用 SetFit 做 zero-shot 文本分类建议:把 SetFit 的预测作为
suggestions注入数据集,先自动预标注、再人工确认。 - 💭 基于 Span 的情感分析(ABSA):训练基于 span 的 ABSA 模型(SetFit),并用 Argilla 评估标注质量。
- 🙌 用 FastFit 预测计算标注一致性指标:训练 FastFit 模型,并计算广为人知的标注者一致性(annotation agreement)指标,量化标注质量。
RAG 检索增强
- 🌠 微调 RAG 管线的检索与重排模型:通过优化检索(retrieval)与重排(reranking)模型提升 RAG 整体准确率,对应仓库中的句子相似度微调方案。
LLM 辅助标注与合成数据
- 🧸 用 spacy-llm 做文本分类与摘要建议:让 LLM 为 FeedbackDataset 生成文本分类与摘要的
suggestions。 - 🎡 用 LLM 创建合成数据与标注:组合 OpenAI、LangChain、Transformers 与 Outlines 生成合成数据及标注。
- ✏️ 用 Transformers 与 Argilla 训练 QnA 模型:基于人工标注数据,通过
ArgillaTrainer微调问答模型。
数据质量、多模态与监控
- 🖼️ 策展指令数据集用于监督微调:搭建项目来策展可用于微调指令跟随(instruction-following)模型的公开数据集。
- 📑 发挥 Markdown 的威力:视频、音频与图片:利用
TextField为 FeedbackDataset 添加多模态内容(视频、音频、图片),实现多模态数据策展。 - 👀 监控 LLM 中的伦理与偏见:Giskard 与 DPO:先用 Giskard 检测 LLM 偏见,再用 DPO(直接偏好优化)微调修正。
- 🎮 监控真实场景中的数据与模型漂移:在真实业务场景中结合多种工具监控数据漂移(data drift)与模型漂移(model drift)。
以上教程对应的训练框架均在ArgillaTrainer的Framework枚举与 frameworks 实现目录 中有对应的真实落地代码(trl.py、setfit.py、transformers.py、openai.py、spacy.py、sentence_transformers.py、span_marker.py、peft.py),说明这些教程不是演示性占位,而是与库内训练能力一一对应的实战方案。
Other datasets:经典机器学习工作流专项
第三板块面向使用传统数据集类(DatasetForTextClassification、DatasetForTokenClassification、DatasetForText2Text)的用户,7 个教程分别对接一个知名第三方库,覆盖少样本、主动学习、语义搜索、数据清洗与弱监督等经典场景:
| 教程 | 核心库 | 技术要点 |
|---|---|---|
| 🤯 Few-shot 分类 | setfit | 用 SetFit 在极少标注样本下完成文本分类 |
| 👂 少样本 + 主动学习 | setfit+small-text | 主动学习策略挑选最有价值样本交给标注者 |
| 💨 语义搜索标注 | sentence-transformers | 用嵌入相似度辅助快速标注 |
| 🧹 查找并清洗标签错误 | cleanlab | 识别数据集中可能的标注噪声 |
| 🐭 弱监督 NER | snorkel(skweak 风格) | 用弱监督规则为 NER 生成训练数据 |
| 👮 语义搜索 + 弱监督文本分类 | sentence-transformers+snorkel | 结合嵌入与弱监督规则 |
| 🔗 spacy-llm 少样本 Token 分类 | spacy-llm | 用 LLM 提示词为 token 分类生成建议 |
配套资源:可直接运行的笔记本与示例数据
所有教程的源笔记本统一存放在 docs/_source/tutorials/notebooks/ 目录下,按「任务类型-技术方案」命名,例如:
- 标注类(labelling-*):
labelling-tokenclassification-skweak-weaksupervision.ipynb、labelling-textclassification-setfit-zeroshot.ipynb、labelling-tokenclassification-using-spacy-llm.ipynb等,对应弱监督、zero-shot、LLM 辅助标注主题; - 训练类(training-*):
training-textclassification-setfit-fewshot.ipynb、training-textclassification-smalltext-activelearning.ipynb、training-textgeneration-unstructured.ipynb等,对应少样本训练与主动学习; - 监控类(monitoring-*):
monitoring-textclassification-cleanlab-explainability.ipynb、monitoring-textclassification-setfit-explainability.ipynb等,对应标签错误检测与可解释性分析; - 部署类(deploying-*):
deploying-textclassification-colab-activelearning.ipynb、deploying-texttokenclassification-fastapi.ipynb等,覆盖 Colab 协作与 FastAPI 服务化部署。
入门教程配套的示例数据位于 notebooks/data/ 目录,包含 YouTube 评论训练/测试集(yt_comments_train.csv、yt_comments_test.csv)、食谱数据(train_recipes.csv、test_recipes.csv、recipe_lg.ttl)以及active_learning/、skweak/等子目录,用户可直接下载这些数据跳过数据准备步骤,聚焦功能复现。更完整的教程清单还可参考 reference/notebooks 页面。
总结:如何规划你的 Argilla 学习路径
综合整套教程体系,可以给出三条清晰的实践路径:
- 新手路径:按 Beginner 板块的 9 个端到端示例顺序执行,从配置用户与工作区起步,依次掌握数据集创建、记录分配、元数据/向量扩展、建议与响应收集、过滤查询,最后用
ArgillaTrainer训练并用 metrics 评估——跑通整个数据飞轮。 - LLM 工程路径:从 Advanced 板块切入,用 LLM 合成数据或 zero-shot 建议启动标注,用 spacy-llm/SetFit 批量生成建议,结合 Markdown 多模态字段策展指令数据集,最终通过
ArgillaTrainer(TRL/SFT/DPO/RLHF)完成 LLM 微调与对齐,并用 Giskard 与漂移监控保障上线质量。 - 经典 ML 路径:沿用 Other datasets 板块,按需选择 SetFit 少样本、small-text 主动学习、cleanlab 数据清洗、skweak/snorkel 弱监督等方案,与既有机器学习工作流无缝衔接。
无论选择哪条路径,教程背后都是由FeedbackDataset(数据层)与ArgillaTrainer(训练层)两大核心类支撑的统一体系:前者负责把非结构化的文本、多模态数据与人工反馈组织成可查询、可过滤、可检索的高质量数据集,后者负责把标注结果平滑地送入主流训练框架。理解这两个类的源码结构,将帮助你在教程基础上举一反三,搭建属于自己的数据策展与模型迭代管线。
【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argilla
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考