Distilabel合成数据生成框架简明教程

Distilabel 是一个用于合成数据和 AI 反馈的框架,适用于需要基于经过验证的研究论文的快速、可靠和可扩展的管道的工程师。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 

1、为什么要使用 distilabel?

Distilabel 可用于为各种项目生成合成数据和 AI 反馈,包括传统的预测性 NLP(分类、提取等)或生成和大型语言模型场景(指令跟踪、对话生成、判断等)。Distilabel 的编程方法允许你构建可扩展的数据生成和 AI 反馈管道。distilabel 的目标是通过基于经过验证的研究方法快速生成高质量、多样化的数据集,以生成和判断 AI 反馈,从而加速你的 AI 开发。

  • 通过数据质量提高你的 AI 输出质量

计算成本高昂,输出质量很重要。我们帮助你专注于数据质量,从而同时解决这两个问题的根本原因。Distilabel 可帮助你合成和判断数据,让你将宝贵的时间用于实现和保持合成数据的高质量标准。

  • 控制你的数据和模型

拥有用于微调你自己的 LLM 的数据并不容易,但 distilabel 可以帮助你入门。我们使用一个统一的 API 集成来自任何 LLM 提供商的 AI 反馈。

通过快速迭代正确的数据和模型来提高效率

使用最新研究论文综合和判断数据,同时确保灵活性、可扩展性和容错性。这样你就可以专注于改进数据和训练模型。

2、Distilabel快速入门

Distilabel 为你提供可扩展且可靠的管道所需的所有工具,用于生成合成数据和 AI 反馈。管道用于生成数据、评估模型、操作数据或任何其他常规任务。它们由不同的组件组成:步骤、任务和 LLM,它们在有向无环图 (DAG) 中链接在一起。

  • steps:步骤,这些是管道的构建块。常规步骤用于基本执行,例如加载数据、应用某些转换或任何其他常规任务。
  • tasks:任务,这些步骤依赖于 LLM 和提示来执行生成任务。例如,它们可用于生成数据、评估模型或操作数据。
  • LLMs:大模型,这些是将执行任务的模型。它们可以是本地或远程模型,也可以是开源或商业模型。

管道设计为可扩展且可靠的。它们可以以分布式方式执行,并且可以缓存和恢复。这在处理大型数据集或想要确保管道可重现时非常有用。

除此之外,管道设计为模块化和灵活的。你可以轻松地向管道添加新步骤、任务或 LLM,也可以轻松修改或删除它们。

2.1 快速安装

可以使用以下命令从 PyPI 安装带有 hf-inference-endpoints extra 包的最新版本:

pip install distilabel[hf-inference-endpoints] --upgrade

2.2 定义管道

在本指南中,我们将引导你完成创建使用 InferenceEndpointsLLM 类生成文本的简单管道的过程。管道将通过步骤 LoadDataFromHub 从 Hugging Face Hub 加载包含名为 prompt 的列的数据集,然后使用 InferenceEndpointsLLM 类使用 TextGeneration 任务根据数据集生成文本。

你可以在 Hugging Face Model Hub 中检查可用的模型并按推理状态进行筛选。

from distilabel.llms import InferenceEndpointsLLM
from distilabel.pipeline import Pipeline
from distilabel.steps import LoadDataFromHub
from distilabel.steps.tasks import TextGenerationwith Pipeline(  # name="simple-text-generation-pipeline",description="A simple text generation pipeline",
) as pipeline:  # load_dataset = LoadDataFromHub(  # output_mappings={"prompt": "instruction"},)text_generation = TextGeneration(  # llm=InferenceEndpointsLLM(model_id="meta-llama/Meta-Llama-3.1-8B-Instruct",tokenizer_id="meta-llama/Meta-Llama-3.1-8B-Instruct",),  # )load_dataset >> text_generation  # if __name__ == "__main__":distiset = pipeline.run(  # parameters={load_dataset.name: {"repo_id": "distilabel-internal-testing/instruction-dataset-mini","split": "test",},text_generation.name: {"llm": {"generation_kwargs": {"temperature": 0.7,"max_new_tokens": 512,}}},},)distiset.push_to_hub(repo_id="distilabel-example")  #

3、Distilabel安装说明

你至少需要 Python 3.9 或更高版本,最高可达 Python 3.12,因为对后者的支持仍在进行中。

要从 PyPI 安装最新版本的软件包,可以使用以下命令:

pip install distilabel --upgrade

或者,你可能还想从源代码(即最新未发布的版本)安装它,可以使用以下命令:

pip install "distilabel @ git+https://github.com/argilla-io/distilabel.git@develop" --upgrade
注意:我们从开发安装,因为这是我们用来收集所有功能、错误修复和改进的分支,这些将是下一个版本的一部分。如果你想从特定分支安装,可以将开发替换为分支名称。

3.1 附加功能

此外,作为 distilabel 的一部分,还提供了一些额外的依赖项,主要是为了增加对我们支持的一些 LLM 集成的支持。以下是可用附加功能的列表:

3.2 支持的大模型

  • anthropic:用于通过 AnthropicLLM 集成使用 Anthropic API 中可用的模型。
  • argilla:用于将生成的数据集导出到 Argilla。
  • cohere:用于通过 CohereLLM 集成使用 Cohere 中可用的模型。
  • groq:用于通过 GroqLLM 集成使用 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 绑定 llama.cpp。
  • mistralai:用于通过 MistralAILLM 集成使用 Mistral AI API 中可用的模型。
  • ollama:用于通过 OllamaLLM 集成使用 Ollama 及其可用模型。
  • openai:用于通过 OpenAILLM 集成使用 OpenAI API 模型,或基于 OpenAI 并依赖于其客户端的其他集成,如 AnyscaleLLM、AzureOpenAILLM 和 TogetherLLM。
  • vertexai:用于通过 VertexAILLM 集成使用 Google Vertex AI 专有模型。
  • vllm:用于通过 vLLM 集成使用 vllm 服务引擎。
  • sentence-transformers:用于使用 sentence-transformers 生成句子嵌入。

3.3 数据处理

  • ray:用于使用 Ray 扩展和分发管道。
  • faiss-cpu 和 faiss-gpu:用于使用 faiss 生成句子嵌入。
  • minhash:用于使用 minhash 通过 datasketch 和 nltk 进行重复检测。
  • text-clustering:用于使用 UMAP 和 Scikit-learn 进行文本聚类。

3.4 结构化生成

  • outlines:用于使用带有大纲的结构化 LLM 生成。
  • tutor:用于使用带有 Instructor 的结构化 LLM 生成。

3.5 建议/注意事项

mistralai 依赖项需要 Python 3.9 或更高版本,因此如果要使用 distilabel.llms.MistralLLM 实现,则需要使用 Python 3.9 或更高版本。

在某些情况下,例如 transformers 和 vllm,如果你使用 GPU 加速器,建议安装 flash-attn,因为它会加快推理过程,但安装需要单独进行,因为它不包含在 distilabel 依赖项中。

pip install flash-attn --no-build-isolation

此外,如果你愿意使用 llama-cpp-python 集成来运行本地 LLM,请注意,安装过程可能会根据你使用的操作系统而变得有点棘手,因此我们建议你阅读其文档中的安装部分。


原文链接:Distilabel简明教程 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/432243.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack教程-概述

什么是Webpack Webpack是一个静态资源打包工具。它以一个或多个文件作为打包入口,将整个项目所有的文件编译组合成一个或多个文件进行输出。(输出的文件即编译好的文件,就可以在浏览器上运行) Webpack官网 核心概念 entry (入口) entiry 指webpack…

企业源代码怎么保护?2024年最新推荐10款源代码加密软件

在现代企业中,源代码是核心资产之一,保护源代码安全已成为企业管理中的重中之重。源代码的泄露不仅会导致企业知识产权的流失,还可能带来竞争对手的复制和攻击。因此,采用强大的源代码加密工具已成为许多企业的必要措施。2024年&a…

深入探索 RUM 与全链路追踪:优化数字体验的利器

作者:梅光辉(重彦) 背景介绍 随着可观测技术的持续演进,多数企业已广泛采用 APM、Tracing 及 Logging 解决方案,以此强化业务监控能力,尤其在互联网行业,产品的体验直接关系着用户的口碑&…

Adaptive Graph Contrastive Learning for Recommendation

Adaptive Graph Contrastive Learning for Recommendation(KDD23) 源码: https://github.com/HKUDS/AdaGCL 摘要 图神经网络(GNNs)最近作为推荐系统中的有效协同过滤(CF)方法受到关注。基于GNN…

昇思MindSpore进阶教程-优化器

大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧 模型训练过程中,使用优化器更…

BACnet MS/TP协议解析(3)

1、MS/TP帧格式 例如数据(hex):55 FF 01 03 02 00 00 D7 0x550xff0x010x030x020x000x000xD7BACnet数据BACnet数据CRC帧头帧类型目的地址源地址BACnet数据长度,大端CRC 2、帧类型 帧类型目前定义为 0-7,8-127 为 AS…

【Unity踩坑】Textmesh Pro是否需要加入Version Control?

问题:如果Unity 项目中用到了Textmesh pro,相关的文件是否也需要签入呢? 回答: 在使用 Unity 的 Version Control(例如 Plastic SCM 或 Git)时,如果你的项目中使用了 TextMesh Pro&#xff0c…

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测 目录 TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料预测效果

武汉正向科技 格雷母线检测方式 :车检,地检

正向科技|格雷母线原理运用-车检,地检 地上检测方式 地址编码器和天线箱安装在移动站上,通过天线箱发射地址信号,地址解码器安装在固定站(地面)上,在固定站完成地址检测。 车上检测方式 地址编码器安装在…

MySQL Mail服务器集成:如何配置发送邮件?

MySQL Mail插件使用指南?怎么优化 MySQL发邮件性能? MySQL Mail服务器的集成,使得数据库可以直接触发邮件发送,极大地简化了应用架构。AokSend将详细介绍如何配置MySQL Mail服务器,以实现邮件发送功能。 MySQL Mail&…

SegFormer网络结构的学习和重构

因为太多的博客并没有深入理解,本文是自己学习后加入自己深入理解的总结记录,方便自己以后查看。 segformer中encoder、decoder的详解。 学习前言 一起来学习Segformer的原理,如果有用的话,请记得点赞关注哦。 一、Segformer的网络结构图 网络结构&…

JavaWeb 12.Tomcat10

希望明天能出太阳 或者如果没有太阳的话 希望我能变得更加阳光一点 —— 24.9.25 一、常见的JavaWeb服务器 Web服务器通常由硬件和软件共同构成 硬件:电脑,提供服务供其他客户电脑访问 软件:电脑上安装的服务器软件,安装后能提…

TIOBE 编程指数 9 月排行榜公布 VB.Net第七

原文地址:百度安全验证 IT之家 9 月 8 日消息,TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎,今天 TIOBE 官网公布了 2024 年 9 月的编程语言排行榜&#xf…

介绍 Agent Q:迎接下一代 AI 自动化助手

引言 在科技领域,随着人工智能的不断进步,自动化工具日益成为提升效率的重要手段。今天,我将向大家介绍一款名为 Agent Q 的 AI 自动化助手。这款工具不仅能够完成复杂的任务,还支持交互式命令行操作,使得用户体验更为…

飞驰云联亮相电子半导体数智化年会 获”数据交换领域最佳厂商”

2024年9月20日,“2024第二届电子半导体/智能制造数智化年会暨品牌出海论坛”于上海隆重开幕,Ftrans飞驰云联作为国内领先的数据安全交换厂商,应邀携半导体全场景产品和解决方案亮相此次峰会。会上进行了“智象奖”评选,Ftrans飞驰…

java并发之并发关键字

并发关键字 关键字一:volatile 可以这样说,volatile 关键字是 Java 虚拟机提供的轻量级的同步机制。 功能 volatile 有 2 个主要功能: 可见性。一个线程对共享变量的修改,其他线程能够立即得知这个修改。普通变量不能做到这一点&a…

从零开始学习PX4源码5(遥控器数据)

#目录 文章目录 摘要1.PX4 遥控器控制整体流程2.PX4 遥控器输入程序3.PX4 遥控器数据外部调用接口4.PX4 遥控器手动(姿态控制)变量5.遥控器数据整体流程摘要 本节主要记录PX4代码中如何获取遥控器数据,遥控器数据如何被外界调用的过程,欢迎批评指正。 1.PX4 遥控器控制整…

JAVA-StringBuilder和StringBuffer

一、认识String类 1.认识 String在Java中是字符串类型,但与其他类型不同。它是一个类,可以创建对象的类。与int、char等自待类型有些许不同。但它仍然是java提供的一种类型。 类中有4个属性,这里主要认识一下value属性。它是实际存放字符串…

2024 IDEA软件 部署tomcat 十二步 运行web页面(html类似的)(中英文对照版本)新手小白易上手

目录 一、准备工作(三必备): 1、自己的web项目 2、idea软件(我是2023.1.2版本) 3、tomcat X.X版本 二 、正式开始步骤,不废话!! 1、 点击菜单栏中 “File”(文件&…

NASA数据集:ATLAS/ICESat-2 L3A 海洋地表高度 V006

ATLAS/ICESat-2 L3A Ocean Surface Height V006 目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 简介 该数据集(ATL12)包含全球开阔洋(包括无冰季节冰区和近海岸地区)的沿轨海面高度。 还提供了高度…