agentic_huge_data_base / wiki
页面 Argilla · 4.2 标注工作流·DeepWiki 中文全文译文

4.2 · 标注工作流(Annotation Workflows)

人工复核与反馈数据 · 本章是 Argilla DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Argilla 章节4.2 状态全文译文 模块检索、召回与索引、接口与服务契约、界面与交互、评测、反馈与人工复核
源码线索
  • README.md
  • argilla-server/src/argilla_server/api/schemas/v1/suggestions.py
  • argilla/README.md
  • argilla/docs/assets/images/getting_started/dataset_configurator.png
  • argilla/docs/assets/images/how_to_guides/custom_field/3d_object_viewer.png
  • argilla/docs/assets/images/how_to_guides/custom_field/images_in_two_columns.png
  • argilla/docs/assets/images/how_to_guides/custom_field/metadata_table.png
  • argilla/docs/community/adding_language.md
  • argilla/docs/getting_started/faq.md
  • argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md
模块标签
  • 检索、召回与索引
  • 接口与服务契约
  • 界面与交互
  • 评测、反馈与人工复核
  • 文档对象与元数据

中文译文

标注工作流(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/argilla-io/argilla/4.2-annotation-workflows
翻译时间:2026-05-27T08:44:34.342Z
翻译模型:deepseek-chat
原文字符数:17778
项目:Argilla (argilla)

---

标注工作流

相关源文件

以下文件被用作生成此维基页面的上下文:

  • README.md
  • argilla-server/src/argilla_server/api/schemas/v1/suggestions.py
  • argilla/README.md
  • argilla/docs/assets/images/getting_started/dataset_configurator.png
  • argilla/docs/assets/images/how_to_guides/custom_field/3d_object_viewer.png
  • argilla/docs/assets/images/how_to_guides/custom_field/images_in_two_columns.png
  • argilla/docs/assets/images/how_to_guides/custom_field/metadata_table.png
  • argilla/docs/community/adding_language.md
  • argilla/docs/getting_started/faq.md
  • argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md
  • argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md
  • argilla/docs/getting_started/quickstart.md
  • argilla/docs/how_to_guides/annotate.md
  • argilla/docs/how_to_guides/custom_fields.md
  • argilla/docs/how_to_guides/dataset.md
  • argilla/docs/how_to_guides/distribution.md
  • argilla/docs/how_to_guides/import_export.md
  • argilla/docs/how_to_guides/index.md
  • argilla/docs/how_to_guides/query.md
  • argilla/docs/how_to_guides/record.md
  • argilla/docs/index.md
  • argilla/docs/reference/argilla/client.md
  • argilla/docs/reference/argilla/datasets/dataset_records.md
  • argilla/docs/reference/argilla/records/metadata.md
  • argilla/docs/reference/argilla/records/records.md
  • argilla/docs/reference/argilla/records/responses.md
  • argilla/docs/reference/argilla/records/suggestions.md
  • argilla/docs/reference/argilla/search.md
  • argilla/docs/reference/argilla/settings/fields.md
  • argilla/docs/tutorials/image_classification.ipynb
  • argilla/docs/tutorials/image_preference.ipynb
  • argilla/docs/tutorials/index.md
  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb
  • argilla/mkdocs.yml
  • argilla/src/argilla/_models/_dataset_progress.py
  • argilla/src/argilla/settings/_question.py

本页面提供了 Argilla 中标注工作流的全面指南,解释了不同的标注界面、如何在团队成员之间分配标注任务以及如何跟踪进度。关于创建和管理数据集的信息,请参阅创建和管理数据集。关于查询和过滤数据的信息,请参阅搜索和查询数据

标注工作流总览

Argilla 中的标注工作流遵循以下主要步骤:

  1. 数据集创建:定义包含字段和问题的数据集
  2. 记录添加:向数据集添加记录
  3. 标注:通过用户界面标注记录
  4. 进度跟踪:监控完成状态
  5. 导出:导出已标注的数据集用于模型训练
flowchart TD
    subgraph "数据集设置(Python SDK)"
        A1["使用设置创建数据集"] --> A2["向数据集添加记录"]
        A2 --> A3["添加初始建议(可选)"]
    end

    subgraph "标注(用户界面)"
        B1["查看记录"] --> B2["标注记录"]
        B2 --> B3["提交、保存草稿或丢弃"]
    end

    subgraph "进度与导出"
        C1["跟踪标注进度"] --> C2["导出已标注数据集"]
        C2 --> C3["训练/改进模型"]
    end

    A3 --> B1
    B3 --> C1
    C3 -.-> A3

来源:

  • argilla/docs/how_to_guides/annotate.md
  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb

标注界面

Argilla 的标注界面设计灵活且高效,提供两种主要的查看模式:

聚焦视图

默认视图一次只显示一条记录,允许标注者集中精力处理每条记录。此视图适用于:

  • 包含多个问题的复杂数据集
  • 需要仔细关注的详细文本或图像
  • 偏好顺序检查的场景

!聚焦视图

批量视图

以垂直列表形式同时显示多条记录。此视图针对以下场景进行了优化:

  • 快速标注大量记录
  • 获取数据集概览
  • 有效应用过滤器和搜索
  • 批量标记相似项目

!批量视图

graph TD
    subgraph "标注界面"
        Header["头部(导航、设置)"]
        LeftPane["左侧面板(控制面板 + 记录)"]
        RightPane["右侧面板(标注表单)"]
        LeftBottomPanel["左下方面板(指南)"]
        RightBottomPanel["右下方面板(进度)"]

        Header --- LeftPane
        Header --- RightPane
        LeftPane --- LeftBottomPanel
        RightPane --- RightBottomPanel

        subgraph "控制面板"
            SearchBar["搜索"]
            Filter["过滤"]
            Sort["排序"]
            ViewSelector["视图选择器(聚焦/批量)"]
        end

        subgraph "标注表单"
            Questions["问题"]
            SubmitButton["提交(Enter)"]
            DraftButton["保存为草稿(Ctrl+S)"]
            DiscardButton["丢弃(Backspace)"]
        end
    end

来源:

  • argilla/docs/how_to_guides/annotate.md
记录状态生命周期

在标注过程中,Argilla 中的记录会经历各种状态:

状态描述可转换至
待处理没有响应的记录草稿、已提交、已丢弃
草稿有部分响应的记录已提交、已丢弃
已提交完全标注的记录草稿、已丢弃
已丢弃被拒绝的记录草稿、已提交
stateDiagram-v2
    [*] --> 待处理
    待处理 --> 草稿: 保存为草稿
    待处理 --> 已提交: 提交
    待处理 --> 已丢弃: 丢弃
    草稿 --> 已提交: 提交
    草稿 --> 已丢弃: 丢弃
    已提交 --> 草稿: 编辑
    已提交 --> 已丢弃: 丢弃
    已丢弃 --> 草稿: 编辑
    已丢弃 --> 已提交: 提交

来源:

  • argilla/docs/how_to_guides/annotate.md
键盘快捷键

Argilla 用户界面提供了键盘快捷键,以提高标注效率:

操作按键
提交响应Enter
保存为草稿Ctrl+S(Mac 上为 Cmd+S
丢弃记录Backspace
在问题之间移动 / 方向键
选择标签123
在记录之间移动 / 方向键
激活文本区域Shift+Enter
退出文本区域Esc

来源:

  • argilla/docs/how_to_guides/annotate.md

任务分配

Argilla 提供了在团队成员之间高效分配标注任务的功能。这对于需要多个标注者的大型数据集尤其有用。

配置任务分配

任务分配通过创建数据集时的 TaskDistribution 设置进行配置:

# 配置任务分配的示例
settings = rg.Settings(
    fields=[rg.TextField(name="text")],
    questions=[rg.LabelQuestion(name="label", labels=["positive", "negative"])],
    distribution=rg.TaskDistribution(min_submitted=2)  # 每条记录需要 2 个标注
)
flowchart TD
    subgraph "任务分配配置"
        A["数据集设置"] --> B["TaskDistribution"]
        B --> C["min_submitted=N"]
    end

    subgraph "标注者分配"
        D["记录队列"] --> E["自动分配"]
        E --> F1["标注者 1 队列"]
        E --> F2["标注者 2 队列"]
        E --> F3["标注者 N 队列"]
    end

    subgraph "完成逻辑"
        G["记录"] --> H{"响应数 ≥ min_submitted?"}
        H -- "是" --> I["标记为完成"]
        H -- "否" --> J["保留在队列中"]
    end

    C --> E
    F1 --> G
    F2 --> G
    F3 --> G

来源:

  • argilla/docs/how_to_guides/dataset.md
  • argilla/docs/how_to_guides/distribution.md
  • argilla/src/argilla/settings/_task_distribution.py
进度跟踪

Argilla 提供了内置的进度跟踪功能,用于监控标注过程:

  1. 数据集进度条:显示数据集的整体完成情况
  2. 个人进度面板:显示单个标注者的统计信息

您还可以通过 Python SDK 以编程方式跟踪进度:

# 获取进度统计信息
progress = dataset.progress

# 检查整体进度
completion_percentage = progress.completion_percentage
total_pending = progress.pending_records
total_completed = progress.completed_records

# 检查特定用户的进度
for user_progress in progress.users:
    print(f"用户:{user_progress.user.username}")
    print(f"已提交:{user_progress.submitted}")
    print(f"待处理:{user_progress.pending}")

来源:

  • argilla/docs/how_to_guides/distribution.md
  • argilla/docs/how_to_guides/annotate.md

高级标注功能

使用模型建议

Argilla 支持向记录添加模型生成的建议,以加快标注过程。建议在用户界面中会显示一个闪烁图标(✨):

# 向记录添加建议
record = rg.Record(
    fields={"text": "这是一个示例文本"},
    suggestions=[
        rg.Suggestion(
            question_name="label",
            value="positive",
            score=0.95,
            agent="model_name"
        )
    ]
)
dataset.records.log([record])
sequenceDiagram
    participant User
    participant SDK as Argilla SDK
    participant Server
    participant UI as Argilla UI

    User->>SDK: 使用设置创建数据集
    SDK->>Server: 创建数据集

    User->>SDK: 添加记录
    SDK->>Server: 添加记录

    User->>SDK: 生成模型预测
    User->>SDK: 向记录添加建议
    SDK->>Server: 使用建议更新记录

    User->>UI: 访问数据集
    UI->>Server: 获取带有建议的记录
    Server-->>UI: 返回带有建议的记录

    UI->>User: 显示带有建议的记录(✨)
    User->>UI: 接受或修改建议
    UI->>Server: 提交响应

    User->>SDK: 检索已标注的记录
    SDK->>Server: 获取带有响应的记录
    Server-->>SDK: 返回已标注的记录
    SDK->>User: 返回用于模型训练的数据集

来源:

  • argilla/docs/how_to_guides/record.md
  • argilla/docs/reference/argilla/records/suggestions.md
  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb
搜索、过滤和排序

Argilla 提供了强大的数据探索功能,帮助标注者浏览大型数据集:

  1. 关键词搜索:在所有字段或特定字段中搜索
  2. 语义搜索:使用向量嵌入查找与参考记录相似的记录
  3. 过滤:按元数据、响应或建议进行过滤
  4. 排序:按插入时间、更新时间或自定义元数据进行排序
graph TD
    subgraph "数据探索功能"
        A["搜索"] --> A1["关键词搜索"]
        A --> A2["语义搜索"]

        B["过滤"] --> B1["元数据过滤"]
        B --> B2["响应过滤"]
        B --> B3["建议过滤"]

        C["排序"] --> C1["基于时间的排序"]
        C --> C2["元数据排序"]
        C --> C3["分数排序"]
    end

    subgraph "SDK 中的使用"
        D1["rg.Query"] --> D11["query 参数"]
        D1 --> D12["filter 参数"]

        D2["rg.Filter"] --> D21["字段条件"]
        D2 --> D22["多个条件"]

        D3["rg.Similar"] --> D31["向量相似度"]
    end

    A1 --- D11
    B1 --- D21
    B2 --- D21
    B3 --- D21
    A2 --- D31

示例:

# 按关键词搜索
query = rg.Query(query="重要关键词")
matching_records = dataset.records(query=query)

# 按元数据过滤
filter_condition = rg.Filter(("metadata.category", "==", "finance"))
filtered_records = dataset.records(rg.Query(filter=filter_condition))

# 按响应状态过滤
status_filter = rg.Filter(("response.status", "==", "submitted"))
submitted_records = dataset.records(rg.Query(filter=status_filter))

# 按向量相似度搜索
similar_query = rg.Similar(name="my_vector", value=[0.1, 0.2, ...])
similar_records = dataset.records(similar_query)

来源:

  • argilla/docs/how_to_guides/query.md
  • argilla/docs/how_to_guides/annotate.md
  • argilla/docs/reference/argilla/search.md

标注任务类型

Argilla 通过不同的问题配置支持各种标注任务类型:

文本分类

用于将文本分类到预定义的类别中,通过 LabelQuestionMultiLabelQuestion 进行配置。

示例工作流:

  1. 创建包含文本字段和标签问题的数据集
  2. 添加包含文本内容的记录
  3. 可选地添加模型生成的标签建议
  4. 通过选择适当的标签进行标注
  5. 导出已标注的数据集用于模型训练
Token 分类

用于命名实体识别和序列标注,通过 SpanQuestion 进行配置。

示例工作流:

  1. 创建包含文本字段和跨度问题的数据集
  2. 添加包含文本内容的记录
  3. 可选地添加模型生成的实体建议
  4. 通过选择文本跨度并分配实体类型进行标注
  5. 导出已标注的数据集用于模型训练
偏好标注

用于对输出进行排序或评分,通过 RankingQuestionRatingQuestion 进行配置。

示例工作流:

  1. 创建包含多个文本字段或自定义字段的数据集
  2. 添加包含不同输出变体的记录
  3. 通过对输出进行排序或评分进行标注
  4. 导出已标注的数据集用于偏好学习
图像标注

用于图像分类或多模态任务,通过 ImageField 和各种问题类型进行配置。

示例工作流:

  1. 创建包含图像字段和适当问题的数据集
  2. 添加包含图像 URL 或文件路径的记录
  3. 可选地添加模型生成的建议
  4. 根据任务要求标注图像
  5. 导出已标注的数据集用于模型训练

来源:

  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb
  • argilla/docs/tutorials/image_classification.ipynb
  • argilla/docs/tutorials/image_preference.ipynb
  • argilla/docs/reference/argilla/settings/questions.md
  • argilla/docs/reference/argilla/settings/fields.md

导出用于模型训练

标注完成后,您可以通过多种方式导出数据集用于模型训练:

# 导出到 Hugging Face Hub
dataset.to_hub(repo_id="my-username/my-dataset")

# 导出到磁盘
dataset.to_disk("path/to/directory")

# 导出为 Hugging Face datasets 格式
hf_dataset = dataset.records.to_datasets()

# 导出为 Python 数据结构
records_dict = dataset.records.to_dict()
records_list = dataset.records.to_list(flatten=True)

导出的数据随后可用于训练或微调模型,如各种教程笔记本中所示。

来源:

  • argilla/docs/how_to_guides/import_export.md
  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb

与模型改进周期的集成

Argilla 中的标注工作流是持续模型改进周期的一部分:

graph TD
    A["初始数据集"] --> B["初始模型训练"]
    B --> C["添加模型建议"]
    C --> D["人工标注"]
    D --> E["导出已标注数据集"]
    E --> F["模型微调"]
    F --> G["改进后的模型"]
    G --> C

这个迭代过程允许通过人工反馈持续改进模型。教程展示了各种任务的工作流,演示了如何在已标注数据上训练模型,并使用它们为新数据生成建议。

来源:

  • argilla/docs/tutorials/text_classification.ipynb
  • argilla/docs/tutorials/token_classification.ipynb
  • argilla/docs/tutorials/image_classification.ipynb