agentic_huge_data_base / wiki
页面 Argilla · 1 总览·DeepWiki 中文全文译文

1 · 总览(Overview)

人工复核与反馈数据 · 聚焦本章的模块关系、源码依据与实现要点。

项目Argilla 章节1 状态全文译文 模块界面与交互、检索、召回与索引、文档对象与元数据、系统架构
源码线索
  • README.md
  • argilla-frontend/CHANGELOG.md
  • argilla-frontend/components/features/annotation/container/questions/form/span/EntityLabelSelection.component.vue
  • argilla-frontend/components/features/annotation/settings/Validation.vue
  • argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationRating.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue
模块标签
  • 界面与交互
  • 检索、召回与索引
  • 文档对象与元数据
  • 系统架构
  • 安装与启动

章节正文

总览

概述

相关源文件

本章引用的主要源码文件:

  • README.md
  • argilla-frontend/CHANGELOG.md
  • argilla-frontend/components/features/annotation/container/questions/form/span/EntityLabelSelection.component.vue
  • argilla-frontend/components/features/annotation/settings/Validation.vue
  • argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationRating.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue
  • argilla-frontend/package.json
  • argilla-frontend/translation/de.js
  • argilla-frontend/translation/en.js
  • argilla-frontend/translation/es.js
  • argilla-frontend/v1/domain/entities/hub/DatasetCreation.test.ts
  • argilla-frontend/v1/domain/entities/hub/QuestionCreation.ts
  • argilla-frontend/v1/domain/entities/hub/Subset.ts
  • argilla-server/CHANGELOG.md
  • argilla-server/src/argilla_server/_version.py
  • argilla-server/src/argilla_server/api/schemas/v1/suggestions.py
  • argilla-v1/src/argilla_v1/_version.py
  • argilla/CHANGELOG.md
  • 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/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/distribution.md
  • argilla/docs/how_to_guides/query.md
  • argilla/docs/index.md
  • argilla/docs/reference/argilla/client.md
  • argilla/docs/reference/argilla/search.md
  • argilla/src/argilla/__init__.py
  • argilla/src/argilla/_models/_dataset_progress.py
  • argilla/src/argilla/_version.py
  • argilla/src/argilla/settings/_question.py

Argilla 是一个开源协作平台,专为 AI 工程师和领域专家设计,用于为 AI 模型构建高质量数据集。本文档提供了 Argilla 仓库架构、组件和关键概念的技术概述,以帮助开发者理解该系统。

系统架构

Argilla 采用客户端-服务器架构,由不同的组件处理数据标注工作流的各个方面。

Argilla · 系统架构 · 图 1
Argilla · 系统架构 · 图 1

来源:README.md:35-49, argilla-server/CHANGELOG.md:28-48

该架构包含以下部分:

  1. 客户端组件
    • Argilla SDK:用于以编程方式与服务器交互的 Python 库
    • CLI:用于服务器管理的命令行界面
  1. 服务端组件
    • Argilla 服务器:基于 FastAPI 的服务器,处理 API 请求
    • 数据库:存储数据集、记录和用户信息(PostgreSQL 或 SQLite)
    • 搜索引擎:提供搜索和过滤功能(Elasticsearch 或 OpenSearch)
    • Redis 队列:管理后台任务和作业处理
  1. 前端
    • Argilla UI:基于 Vue.js/Nuxt 的 Web 界面,用于数据集管理和标注
  1. 部署选项
    • Docker Compose 用于本地或服务器部署
    • Kubernetes 用于云部署
    • Hugging Face Spaces 用于快速设置和共享

核心数据模型

核心数据模型围绕数据集、记录和标注展开:

Argilla · 核心数据模型 · 图 2
Argilla · 核心数据模型 · 图 2

来源:argilla/src/argilla/__init__.py:14-24, argilla/src/argilla/settings/_question.py:1-10

数据模型的关键组件:

  • 数据集:数据和标注设置的核心容器
  • 设置:字段、问题和其他数据集属性的配置
  • 字段:包含待标注的数据(例如文本、图片、聊天消息)
  • 问题:定义要收集的标注内容(例如标签、评分、跨度)
  • 记录:单个数据点,包含关联的字段、元数据和标注
  • 响应:用户对记录上特定问题提供的标注
  • 建议:模型对问题的预测,可以包含置信度分数

字段和问题类型

Argilla 支持多种字段和问题类型,以满足不同的标注需求:

字段类型描述
文本字段纯文本内容rg.TextField
图片字段图片内容(URL 或 Data URL)rg.ImageField
聊天字段带角色的聊天对话rg.ChatField
自定义字段用户定义的 HTML/JS 模板rg.CustomField
问题类型描述
标签问题单标签分类rg.LabelQuestion
多标签问题多标签分类rg.MultiLabelQuestion
评分问题数值评分rg.RatingQuestion
排序问题选项的排序rg.RankingQuestion
文本问题自由文本响应rg.TextQuestion
跨度问题文本跨度高亮/选择rg.SpanQuestion

来源:argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue:1-96, argilla-frontend/v1/domain/entities/hub/QuestionCreation.ts:1-50

标注工作流

Argilla 中的典型标注工作流遵循以下顺序:

Argilla · 标注工作流 · 图 3
Argilla · 标注工作流 · 图 3

来源:argilla/docs/getting_started/quickstart.md:84-110, argilla/docs/how_to_guides/annotate.md:1-30

创建和管理数据集

可以使用 Python SDK 创建和管理数据集:

import argilla as rg

# 连接到 Argilla 服务器
client = rg.Argilla(
    api_url="https://your-argilla-server.com",
    api_key="your-api-key"
)

# 创建设置的数据集
settings = rg.Settings(
    guidelines="将评论分类为正面或负面。",
    fields=[
        rg.TextField(
            name="review",
            title="评论文本",
            required=True,
        ),
    ],
    questions=[
        rg.LabelQuestion(
            name="sentiment",
            title="这条评论的情感是什么?",
            labels=["positive", "negative"],
            required=True,
        )
    ],
)
dataset = rg.Dataset(
    name="sentiment_analysis",
    settings=settings,
    client=client,
)
dataset.create()

# 向数据集记录日志
dataset.records.log(
    records=[{"text": "I love this product!"}, {"text": "This is terrible."}],
    mapping={"text": "review"}
)

来源:README.md:96-137, argilla/docs/reference/argilla/client.md:1-45

UI 组件和数据集创建

Argilla UI 提供了用户友好的界面,用于数据集创建、管理和标注。UI 包括:

  1. 数据集创建界面
    • 从 Hugging Face Hub 导入数据
    • 配置字段和问题
    • 预览和自定义字段映射
  1. 标注界面
    • 聚焦视图,用于一次详细标注一条记录
    • 批量视图,用于同时标注多条记录
    • 高级过滤、搜索和排序功能
    • 键盘快捷键,用于高效标注
  1. 数据集设置
    • 管理字段、问题和元数据属性
    • 更新标注指南
    • 控制任务分配设置

来源:argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue:1-50, argilla-frontend/translation/en.js:1-50, argilla/docs/getting_started/quickstart.md:86-100

部署选项

Argilla 可以通过多种方式部署:

  1. Hugging Face Spaces(推荐用于入门):
    • 设置简单,配置最少
    • 内置 OAuth 认证
    • 可选的持久化存储
    • 可以通过 Python SDK 使用 rg.Argilla.deploy_on_spaces() 部署
  1. Docker Compose(用于本地或服务器部署):
    • 对配置有更多控制
    • 服务器、数据库、搜索引擎的独立容器
    • 适用于生产环境
  1. Kubernetes(用于云部署):
    • 使用 Helm 图表进行可扩展部署
    • 资源管理和高可用性
    • 适用于大规模生产使用

来源:argilla/docs/getting_started/quickstart.md:7-62, argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md:1-30, argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md:1-15

搜索和过滤

Argilla 提供了强大的搜索和过滤功能,帮助用户查找和处理特定记录:

  1. 文本搜索
    • 跨文本字段的基本关键词搜索
    • 带布尔运算符的高级查询语法
  1. 过滤
    • 按元数据属性过滤
    • 按响应状态过滤(待处理、已提交、已丢弃等)
    • 按建议属性过滤(代理、分数)
  1. 相似性搜索
    • 使用向量嵌入查找语义相似的记录
    • 与向量数据库集成

来源:argilla/docs/how_to_guides/query.md:1-10, argilla/docs/reference/argilla/search.md:1-5

自定义字段

Argilla 支持自定义字段,允许用户为数据创建专门的显示模板:

# 带 HTML 模板的自定义字段示例
custom_field = rg.CustomField(
    name="custom_display",
    title="自定义显示",
    template="""
    <style>
    .container {
        display: flex;
        gap: 10px;
    }
    .column {
        flex: 1;
    }
    </style>
    <div class="container">
        <div class="column">
            <h3>原始文本</h3>
            <p>{{record.fields.text}}</p>
        </div>
        <div class="column">
            <h3>翻译</h3>
            <p>{{record.fields.translation}}</p>
        </div>
    </div>
    """,
    advanced_mode=False,
    required=True,
)

来源:argilla/docs/how_to_guides/custom_fields.md:1-40

版本和发布

Argilla 遵循语义化版本控制,定期发布新功能和错误修复。当前版本可以在以下位置找到:

  • Argilla SDK:argilla/src/argilla/_version.py:15
  • Argilla 服务器:argilla-server/src/argilla_server/_version.py:18
  • Argilla 前端:argilla-frontend/package.json:3

有关变更的详细历史记录,请参阅变更日志:

  • SDK:argilla/CHANGELOG.md
  • 服务器:argilla-server/CHANGELOG.md
  • 前端:argilla-frontend/CHANGELOG.md

后续步骤

有关特定组件或功能的更多信息,请参阅以下页面: