Prodigy v1.12:OpenAI整合,Prompt Engineering,Task Routers和部署文档!
目录
- 引言 🌟
- Prodigy简介
- 2.1 Spacey:流行的Python自然语言处理库
- 2.2 Prodigy:快速训练和评估机器学习模型的数据标注工具
- Prodigy版本1.12的新功能介绍
- 3.1 使用大型语言模型的新recipes
- 3.2 支持任务路由器
- 3.3 输出Term List的OpenAI Fetch Recipe
- 3.4 Prodigy界面上的进度条改进
- Prodigy新功能深入解析
- 4.1 使用OpenAI进行预注释的ner.openai.correct.recipe
- 4.2 提供主题信息的ner.openai.correct.recipe
- 4.3 A/B测试和竞技赛的Prompt engineering
- 4.4 大规模数据分发和问题解决的Task Router
- Prodigy其他新功能介绍
- 5.1 部署Prodigy
- 5.2 使用Parquet文件作为输入
- 5.3 使用模式文件进行筛选的Filter by Patterns
- 5.4 Prodigy训练命令的新功能
- 5.5 优化的Python功能
- 下一个版本的展望
- 结论
- 参考资料
引言 🌟
你好,我是Vincent,也是一个机器学习工程师。我目前在Explosion这家公司负责Spacey,这是一个流行的Python自然语言处理库。此外,我们还开发了Prodigy,这是一个现代化的数据标注工具,可以帮助您更快地训练和评估机器学习模型。最近,我们发布了Prodigy的1.12版本,并引入了一些令人兴奋的新功能。在本文中,我将逐一介绍这些新功能,并深入解析它们的使用方法和优势。
Prodigy简介
2.1 Spacey:流行的Python自然语言处理库
在了解Prodigy之前,让我简要介绍一下我们公司的另一个项目,Spacey。Spacey是一款流行的Python自然语言处理库,提供了许多强大的功能和工具,用于处理和分析文本数据。无论是实体识别、情感分析还是文本分类,Spacey都可以帮助您轻松完成。
2.2 Prodigy:快速训练和评估机器学习模型的数据标注工具
现在,让我们来了解一下Prodigy。Prodigy是一个专为训练和评估机器学习模型而设计的数据标注工具。它提供了一个简洁而友好的界面,让开发者能够轻松标注各种类型的数据,从而生成高质量的训练样本。Prodigy还支持自定义的标注任务和流程,因此您可以根据自己的需求定制标注过程。
Prodigy版本1.12的新功能介绍
3.1 使用大型语言模型的新recipes
在Prodigy的1.12版本中,我们引入了一些新的recipes,可以与大型语言模型进行集成。这些recipes可以帮助您使用预训练的语言模型对数据进行预注释。例如,我们新增了ner.openai.correct.recipe,它可以利用大型语言模型识别出数据示例中的命名实体,并自动生成标注。这样可以节省大量手动标注的时间,提高标注效率。
3.2 支持任务路由器
为了更好地分配标注任务和管理标注人员,我们引入了任务路由器的概念。任务路由器是一个 Python 函数,用于根据不同的规则将任务分配给标注人员。例如,您可以根据注释人员的语言或专业领域,将特定的任务分配给他们。此外,我们还提供了一些预定义的任务路由器,方便您快速配置和使用。
3.3 输出Term List的OpenAI Fetch Recipe
如果您正在处理命名实体识别任务,并且需要一个包含特定术语的列表作为起点,那么我们的OpenAI Fetch Recipe会很有用。该Recipe可以让您向OpenAI请求生成特定领域的术语列表。例如,如果您正在处理滑板技巧的命名实体识别任务,您可以使用该Recipe生成一个滑板技巧的术语列表。
3.4 Prodigy界面上的进度条改进
在1.12版本中,我们对Prodigy界面上的进度条进行了改进。现在,您可以看到标注进度的更细致的信息,并且可以使用不同的进度条类型。这样可以帮助您更好地了解项目的进展情况,并更好地掌握标注任务的进度。
Prodigy新功能深入解析
4.1 使用OpenAI进行预注释的ner.openai.correct.recipe
ner.openai.correct.recipe是一个新的Recipe,可以利用OpenAI的大型语言模型对数据进行预注释。通过使用这个Recipe,您可以快速生成大量的标注数据,并将其作为训练模型的起点。当然,预训练的模型并不完美,您可能还需要手动校正和纠正生成的标注。然而,这个Recipe可以极大地提高您的工作效率。
4.2 提供主题信息的ner.openai.correct.recipe
除了普通的命名实体识别任务之外,ner.openai.correct.recipe还支持提供主题信息的标注。这意味着您可以告诉OpenAI预训练的模型需要关注哪些特定的主题。例如,如果您希望模型识别与职业相关的实体,您可以提供一些关于职业的示例,让模型了解这些实体的上下文和特征。
4.3 A/B测试和竞技赛的prompt engineering
对于在使用OpenAI进行预注释时希望进行A/B测试或竞技赛的用户,我们还提供了相应的recipes。这些recipes可以帮助您比较不同的提示(prompt)的性能,选择最佳的提示方式。您可以使用这些recipes来评估不同提示方式下模型的生成效果,从而选出最佳的标注策略。
4.4 大规模数据分发和问题解决的Task Router
为了更好地处理大规模数据标注和协调多个标注人员,我们引入了任务路由器。任务路由器是一个非常灵活和强大的功能,可以帮助您将任务分配给不同的标注人员,并解决标注过程中的问题。您可以编写自定义的任务路由器,根据不同的规则和需求分配任务,也可以使用预定义的任务路由器来快速配置任务分发流程。
Prodigy其他新功能介绍
5.1 部署Prodigy
我们现在还提供了部署Prodigy的详细指南。您可以通过阅读文档,了解如何使用Docker来部署Prodigy,并掌握一些相关注意事项。这样,您可以更方便地将Prodigy集成到您的工作流程中。
5.2 使用Parquet文件作为输入
除了传统的数据输入格式,如JSON和CSV,我们还新增了对Parquet文件的支持。Parquet是一种高效的列式存储文件格式,可以在处理大规模数据时提供更好的性能和存储效率。通过使用Parquet文件作为输入,您可以更好地管理和处理大规模数据。
5.3 使用模式文件进行筛选的Filter by Patterns
Filter by Patterns是一个全新的recipes,可以帮助您根据模式文件进行数据筛选。模式文件定义了一系列模式,用于匹配和提取您感兴趣的数据。您可以使用这个recipes来创建一个特定的数据子集,将注意力集中在与您任务相关的数据上。
5.4 Prodigy训练命令的新功能
我们对Prodigy的训练命令进行了一些改进,并新增了对共参考模型的支持。现在,您可以使用Prodigy的训练命令来训练共参考模型,并将其用于实体关系标注等任务。虽然这个功能还处于实验阶段,但我们希望它可以帮助您更轻松地进行共参考模型的训练和使用。
5.5 优化的Python功能
在1.12版本中,我们还对Python功能进行了一些优化和扩展。例如,我们新增了iter_dataset_examples函数,它返回一个生成器而不是一个列表。对于处理大规模数据集的用户来说,这可以节省大量内存的使用。此外,我们还修复了一些Bug,提升了整体的稳定性和性能。
下一个版本的展望
在1.12版本的基础上,我们正在努力开发下一个版本的Prodigy。下一个版本将支持Spacey llm,并将进一步提升标注体验和效率。我们将持续关注用户的反馈和需求,并努力将这些反馈和需求转化为实际的功能和改进。
结论
Prodigy的1.12版本带来了许多令人兴奋的新功能,如使用大型语言模型进行预注释、任务路由器、Term List的输出、界面上的进度条改进等。这些新功能将帮助您更高效地进行数据标注,减少手动操作的时间和工作量。我们还展望了下一个版本,将进一步提升Prodigy的功能和性能。无论是初学者还是有经验的机器学习工程师,Prodigy都是一个强大而实用的工具,可以帮助您更轻松地训练和评估机器学习模型。
参考资料
- Prodigy官方文档:https://prodi.gy/docs/
- Spacey官方网站:https://spacy.io/
- OpenAI官方网站:https://openai.com/