为AI合成数据,并即时添加反馈!
Distilabel是一个合成数据和AI反馈的框架,适用于需要基于验证研究论文的快速、可靠和可扩展的管道的工程师。
如果你只是想快速上手,我们建议你查看文档。好奇并想了解更多?继续阅读!
为什么使用Distilabel?
Distilabel可以用于生成合成数据和AI反馈,适用于广泛的项目,包括传统的预测性NLP(分类、提取等)或生成式和大语言模型场景(指令执行、对话生成、评判等)。Distilabel的编程方法使您能够构建可扩展的数据生成和AI反馈管道。Distilabel的目标是通过快速生成基于验证研究方法的高质量、多样化数据集来加速您的AI开发,并利用AI反馈进行生成和评判。
通过数据质量提升AI输出质量
计算成本高,输出质量重要。我们帮助您专注于数据质量,一次性解决这两个问题的根本原因。Distilabel帮助您合成和评估数据,让您将宝贵的时间花在实现和保持数据的高质量标准上。
掌控您的数据和模型
用于微调您自己的LLM的数据所有权并不容易,但Distilabel可以帮助您开始。我们通过一个统一的API集成来自任何LLM提供商的AI反馈。
通过快速迭代正确的研究和LLM提高效率
利用最新的研究论文来合成和评估数据,同时确保灵活性、可扩展性和容错性。这样您可以专注于改进数据和训练模型。
社区
我们是一个开源的社区驱动项目,我们很乐意听取您的意见。以下是参与的一些方式:
-
社区聚会:聆听或在我们每两周一次的活动中发言。
-
Discord:在#argilla-general和#argilla-help频道获取社区的直接支持。
-
路线图:计划会有所变化,但我们喜欢与社区讨论这些计划,因此鼓励您参与。
人们用Distilabel构建了什么?
Argilla社区使用Distilabel创建了令人惊叹的数据集和模型。
- 1M OpenHermesPreference 是一个由teknium/OpenHermes-2.5派生出的~100万个AI偏好的数据集,展示了我们如何使用Distilabel 大规模合成数据。
- 我们的distilabeled Intel Orca DPO数据集和改进的OpenHermes模型展示了我们如何通过AI反馈 过滤掉50% 的原始数据集来提高模型性能。
- haiku DPO数据 说明了如何利用最新的研究论文来创建一个特定任务的数据集,并提高数据集的质量。
安装
pip install distilabel --upgrade
需要Python 3.9+
此外,还提供以下附加选项:
anthropic
:通过AnthropicLLM
集成使用Anthropic API中可用的模型。cohere
:通过CohereLLM
集成使用Cohere中可用的模型。argilla
:将生成的数据集导出到Argilla。groq
:通过groq
Python客户端使用Groq中可用的模型。hf-inference-endpoints
:通过InferenceEndpointsLLM
集成使用Hugging Face推理端点。hf-transformers
:通过TransformersLLM
集成使用transformers包中可用的模型。litellm
:通过LiteLLM
集成使用LiteLLM
调用任何使用OpenAI格式的LLM。llama-cpp
:通过LlamaCppLLM
集成使用llama-cpp-python Python绑定。mistralai
:通过MistralAILLM
集成使用Mistral AI API中可用的模型。ollama
:通过OllamaLLM
集成使用Ollama及其可用的模型。openai
:通过OpenAILLM
集成使用OpenAI API模型,或基于OpenAI的其余集成,依赖其客户端作为AnyscaleLLM
、AzureOpenAILLM
和TogetherLLM
。vertexai
:通过VertexAILLM
集成使用Google Vertex AI专有模型。vllm
:通过vLLM
集成使用vllm服务引擎。
示例
要运行以下示例,您必须安装带有openai
附加选项的distilabel
:
pip install "distilabel[openai]" --upgrade
然后运行:
from distilabel.llms import OpenAILLM
from distilabel.pipeline import Pipeline
from distilabel.steps import LoadDataFromHub
from distilabel.steps.tasks import TextGeneration
with Pipeline(
name="simple-text-generation-pipeline",
description="A simple text generation pipeline",
) as pipeline:
load_dataset = LoadDataFromHub(output_mappings={"prompt": "instruction"})
generate_with_openai = TextGeneration(llm=OpenAILLM(model="gpt-3.5-turbo"))
load_dataset >> generate_with_openai
if __name__ == "__main__":
distiset = pipeline.run(
parameters={
load