什么是 Argilla?#
Argilla 是一个用于 LLM 的开源数据策展平台。 使用 Argilla,每个人都可以通过更快的数据策展(使用人工和机器反馈)来构建强大的语言模型。 我们为 MLOps 周期中的每个步骤提供支持,从数据标记到模型监控。
Argilla 2.x
我们宣布 Argilla 1.29 是 Argilla 1.x 的最后一个小版本。 尽管我们将继续发布此版本的错误修复,但我们既不会添加也不会删除任何功能。 访问 2.x 文档!
📄 关于文档#
🛠️ 项目架构#
Argilla 构建于 5 个核心组件之上
Python SDK:一个 Python SDK,可以使用
pip install argilla
安装。 用于与 Argilla 服务器和 Argilla UI 交互。 它提供了一个 API 来管理数据、配置和注释工作流程。FastAPI 服务器:Argilla 的核心是一个 Python FastAPI 服务器,它通过预处理数据并将其存储在向量数据库中来管理数据。 此外,它还将应用程序信息存储在关系数据库中。 它提供了一个 REST API,用于与来自 Python SDK 和 Argilla UI 的数据进行交互。 它还提供了一个 Web 界面来可视化数据。
关系数据库:一个关系数据库,用于存储记录的元数据和注释。 SQLite 用作默认的内置选项,并与 Argilla 服务器分开部署,但也可以使用单独的 PostgreSQL。
向量数据库:一个向量数据库,用于存储记录数据并执行可扩展的向量相似性搜索和基本文档搜索。 我们目前支持 ElasticSearch 和 AWS OpenSearch,它们可以作为单独的 Docker 镜像部署。
Vue.js UI:一个 Web 应用程序,用于可视化和注释您的数据、用户和团队。 它使用 Vue.js 构建,并与 Argilla 服务器一起直接部署在我们的 Argilla Docker 镜像中。
📏 原则#
开放:Argilla 是免费、开源的,并且 100% 兼容主要的 NLP 库(Hugging Face transformers、spaCy、Stanford Stanza、Flair 等)。 实际上,您可以使用和组合您喜欢的库,而无需实现任何特定的接口。
端到端:大多数注释工具将数据收集视为每个项目开始时的一次性活动。 在实际项目中,数据收集是 ML 模型开发迭代过程的关键活动。 一旦模型投入生产,您就需要监控和分析其预测,并收集更多数据以随着时间的推移改进您的模型。 Argilla 旨在弥合这一差距,使您能够根据需要进行多次迭代。
用户和开发者体验:可持续 NLP 解决方案的关键是让每个人都更容易为项目做出贡献。 领域专家 应该能够轻松地解释和注释数据。 数据科学家 应该可以自由地试验和迭代。 工程师 应该能够控制数据管道。 Argilla 优化了这些核心用户的体验,以提高您的团队的工作效率。
超越手动标记:经典的手动标记工作流程成本高昂且效率低下,但让人参与循环至关重要。 在 新颖的 数据注释工作流程中,轻松地将手动标记与主动学习、批量标记、零样本模型和弱监督相结合**。
❔ 常见问题解答#
什么是 Argilla?
Argilla 是一个开源数据策展平台,旨在增强小型和大型语言模型 (LLM) 的开发。 使用 Argilla,每个人都可以通过更快的数据策展(使用人工和机器反馈)来构建强大的语言模型。 我们为 MLOps 周期中的每个步骤提供支持,从数据标记到模型监控。 事实上,“Argilla”这个名字的灵感来自拉丁语、意大利语甚至加泰罗尼亚语中“粘土”这个词。 正如粘土一直是人类创造力和工具制造的基本媒介一样,我们将数据视为雕刻和改进模型的必要材料。
Argilla 训练模型吗?
Argilla 不训练模型,但提供工具和集成来帮助您这样做。 使用 Argilla,您可以轻松加载数据并使用我们称为 ArgillaTrainer
的功能直接训练模型。 ArgillaTrainer
充当各种流行的 NLP 库的桥梁。 它通过为许多 NLP 任务提供易于理解的界面(使用默认预设设置),简化了训练过程,而无需转换 Argilla 格式的数据。 您可以在此处找到有关使用 Argilla 训练模型的更多信息。
旧数据集和 FeedbackDataset 之间有什么区别?
FeedbackDataset 的突出之处在于其多功能性和适应性,旨在支持更广泛的 NLP 任务,包括那些以大型语言模型为中心的任务。 相比之下,旧数据集虽然在特定领域功能更丰富,但却是为单一 NLP 任务量身定制的。 但是,在 Argilla 2.0 中,目标是逐步淘汰旧数据集,转而支持 FeedbackDataset。 有关更详细的说明,请参阅本指南。
Argilla 只能用于 LLM 吗?
不,Argilla 是一种多功能工具,适用于各种 NLP 任务。 但是,我们强调与小型和大型语言模型 (LLM) 的集成,这反映了我们对它们将在 NLP 的未来中发挥重要作用的信心。 在此页面中,您可以找到支持的任务列表。
Argilla 收费吗?
不,Argilla 是一个开源平台。 我们计划永远保持 Argilla 免费。 但是,我们确实提供 Argilla 的商业版本,称为 Argilla Cloud。
Argilla 开源版本和 Argilla Cloud 之间有什么区别?
Argilla Cloud 是我们开源平台的对应版本,提供软件即服务 (SaaS) 模型,并且不添加超出开源版本中提供的额外功能。 主要区别在于其云托管,它特别适合需要通常对个人从业者或小型企业来说不必要的功能的大型团队。 因此,Argilla Cloud 是 SAS 加虚拟私有云部署,并添加了专门与云相关的功能。 对于那些对 Argilla Cloud 下提供的不同计划感兴趣的人,您可以在我们的网站上找到详细信息。
Argilla 与 Snorkel、Prodigy 和 Scale 等竞争对手有何不同?
Argilla 因其专注于特定用例和人机循环方法而与众不同。 虽然它确实提供编程功能,但 Argilla 的核心价值在于积极让人类专家参与工具构建过程,这使其与其他竞争对手区分开来。
此外,Argilla 特别强调与其他社区工具(尤其是在 MLOps 和 NLP 领域)的顺利集成。 因此,它与 SpaCy 和 Hugging Face 等流行框架的兼容性使其非常用户友好且易于访问。
最后,Snorkel、Prodigy 或 Scale 等平台虽然更全面,但通常需要大量投入。 另一方面,Argilla 更像是 MLOps 生态系统中的一个组件,允许用户从特定用例开始,然后根据需要进行扩展。 这种灵活性对于喜欢从小处着手并随着时间的推移扩展其应用程序的用户和客户尤其有利,而不是从一开始就致力于一个包罗万象的平台。
Argilla 目前在做什么?
我们一直在努力改进 Argilla 的功能和可用性,现在专注于三管齐下的愿景:Argilla Core(开源)、Distilabel 和 Argilla JS/TS 的开发。 您可以在此处找到我们当前的项目列表。
🤝 贡献#
为了帮助我们的社区创建贡献,我们创建了我们的开发者和贡献者文档。 此外,您可以随时与我们的开发者倡导团队安排会议,以便他们可以帮助您快速入门。
🥇 贡献者#
🏘️ 社区#
🙋♀️ 加入 Argilla 在 Discord 上的社区,并在 #argilla-distilabel-general 和 #argilla-distilabel-help 中获得社区的直接支持。
⭐ Argilla Github 仓库,以随时了解新版本和教程。
🎁 我们刚刚打印了贴纸! 您想要一些吗? 免费订购贴纸。
🗺️ 路线图#
我们不断更新我们的计划和路线图,我们很乐意与我们的社区讨论这些计划和路线图。 欢迎您参与。