使用Llama 3.1创建合成数据集以调优你的大型语言模型
使用Llama 3.1创建合成数据集以调优你的大型语言模型
在数据驱动的人工智能领域,数据是核心资产。开发高质量数据集既复杂又昂贵,因此很多实验室和开发者选择使用合成数据集。本文将介绍如何利用大型语言模型Llama 3.1 405B创建合成数据集,并展示整个过程的关键步骤,从数据生成到数据集上传。
Llama 3.1 405B的特点与应用
模型特点
Llama 3.1 405B是Meta最新推出的语言模型家族中的一员,不仅体现在其巨大的规模,还在于其推理能力的显著提升。与之前的8B和70B版本相比,405B模型在各项基准测试中表现出色,已接近一些最佳闭源模型的表现。
应用场景
该模型特别适合用于合成数据生成,如检索增强生成(RAG)和监督微调(SFT)等复杂工作流。由于其能力强大,Llama 3.1可以在多种实际应用中发挥重要作用,例如在自然语言处理任务中生成用户指令和响应对。
数据集构建步骤
设置API密钥
为了使用Nvidia的API远程访问Llama 3.1 405B模型,开发者需要获取其API密钥。通过Nvidia NIM平台,申请免费信用额度,然后将API密钥设置在代码中:
client = OpenAI(base_url="https://integrate.api.nvidia.com/v1",api_key=os.environ["NVIDIA_API_KEY"]
)
MODEL = "meta/llama-3.1-405b-instruct"
生成子主题
在构建数据集时,涵盖各种场景是至关重要的。为此,可以定义子主题,允许Llama 3.1生成多个指令/响应对。以下代码展示了如何生成五个与Git相关的子主题:
n_subtopics = 5
TOPIC_GENERATION_PROMPT_TEMPLATE = "请根据Git主题生成{n_subtopics}个子主题。"
生成指令
针对每个子主题,生成对应的用户指令是关键步骤。虽然目标是一百条指令,但生成的最终数量往往会有所减少。这是实际操作中的常见情况,尤其是在请求大型模型生成时。
INSTRUCTION_PROMPT_TEMPLATE = "对于子主题{sub_topic}生成{n_instructions}条指令。"
生成响应
对于每条指令,接下来需要生成相关的响应。为了确保响应的质量,生成时需要关注其信息量、简洁性和相关性。
RESPONSE_PROMPT_TEMPLATE = "针对指令生成相关响应。指令是: {instruction}"
响应过滤
使用Nemotron 4
尽管生成了各种指令和响应,不是每一个都能满足质量标准。为此,利用Nvidia的Nemotron 4模型来评估并筛选低质量响应。Nemotron 4提供的评估标准涵盖了帮助程度、正确性、连贯性等多个维度。
helpfulness_THRESHOLD = 3
verbosity_THRESHOLD = 2.5
synthetic_data = [data for i, data in enumerate(synthetic_data) if not (score_list[i]["helpfulness"] < helpfulness_THRESHOLD or score_list[i]["verbosity"] > verbosity_THRESHOLD)]
数据集推送
HuggingFace登录与数据上传
生成并过滤后的合成数据集,最后一步是将其推送至HuggingFace平台以方便后续使用。首先需要登录HuggingFace,并提供API令牌进行身份验证。
from huggingface_hub import login
login()
完成登录后,通过以下代码将数据集上传至HuggingFace:
with open(f'synthetic_data_filtered.jsonl', 'r') as f:data = [json.loads(line) for line in f]
dataset = Dataset.from_list(data)
dataset_dict = DatasetDict({"train": dataset})
dataset_dict.push_to_hub("your_huggingface_username/git-prompt-dataset")
结论
通过以上步骤,我们成功利用Llama 3.1 405B创建了一个合成数据集,并借助Nemotron 4模型过滤并优化了数据质量,最后将数据集上传至HuggingFace。这一过程展示了合成数据集构建的各个环节,为需要进行指令微调的大型语言模型开发者提供了实用的指导。
相关文章:
使用Llama 3.1创建合成数据集以调优你的大型语言模型
使用Llama 3.1创建合成数据集以调优你的大型语言模型 在数据驱动的人工智能领域,数据是核心资产。开发高质量数据集既复杂又昂贵,因此很多实验室和开发者选择使用合成数据集。本文将介绍如何利用大型语言模型Llama 3.1 405B创建合成数据集,并…...
js可不使用document直接根据id获取id元素
今天在用原生js写demo的时候发现一个有意思的小现象,那就是可以直接根据元素的id去获取对应的元素。 起先是我定义了四个btn,每个btn都是根据getElementById来获取元素,然后给元素绑定事件,在调试的时候都挺好,到了后…...
【竞技宝】CS2:HLTV2024职业选手排名TOP8-broky
北京时间2025年1月7日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP8为FAZE战队的broky。 选手简介 broky是一位来自拉脱维亚的职业CS选手,现年23岁。2018年7月,broky获得了FPL资格,连续几季在榜上前5。他的首次赛场留名是跟随拉脱维亚本土战队Wolsung出征BES…...
Apache Paimon-实时数据湖
一、Apache Paimon是什么? Flink社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推出新一代的 Streaming Lakehouse 技术,促进数据在数据湖上真正实时流动起来,并为用户提供实时离线一体化的开发体验。 …...
hpm使用笔记————使用usb作为从机接收来自上位机的数据然后通过spi主机发送给spi从机
历程整合 环境要求任务需求任务实现代码实现任务测试功能测试 结束 环境 hpm_sdk v 1.7.0ses v8.10 要求 例程demo USB-CDC 作为从机接收,然后把接收到的数据转发给SPI,SPI传输出去 任务需求 USB使用cherry协议栈进行开发 作为device设备(…...
数据结构(查找算法)
1. 查找的概念 在一堆数据中,找到我们想要的那个数据,就是查找,也称为搜索,很容易想到,查找算法的优劣,取决于两个因素: 数据本身存储的特点查找算法本身的特点 比如,如果数据存储…...
private前端常见算法
1.数组 合并两个有序数组(简单-5) https://leetcode.cn/problems/merge-sorted-array/description/?envTypestudy-plan-v2&envIdtop-interview-150 移除元素(简单-4) https://leetcode.cn/problems/remove-element/descr…...
Go语言之十条命令(The Ten Commands of Go Language)
Go语言之十条命令 Go语言简介 Go语言(又称Golang)是由Google开发的一种开源编程语言,首次公开发布于2009年。Go语言旨在提供简洁、高效、可靠的软件开发解决方案,特别强调并发编程和系统编程。 Go语言的基本特征 静态强类…...
Residency 与 Internship 的区别及用法解析
Residency 与 Internship 的区别及用法解析 在英文中,“residency” 和 “internship” 都与职业培训相关,但它们的使用场景和具体含义存在显著差异。本文将详细解析这两个词的区别,以及它们在不同语境下的应用。 Residency 的定义及使用场景…...
成品电池综合测试仪:电子设备性能与安全的守护者|鑫达能
在现代科技和工业领域,电池作为能量储存和转换的关键组件,其性能的稳定性和可靠性至关重要。为了确保电池在各种应用场景中都能发挥最佳性能,成品电池综合测试仪应运而生。这一设备不仅能够对电池的各项性能指标进行全面、准确的检测…...
Taro地图组件和小程序定位
在 Taro 中使用腾讯地图 1.首先在项目配置文件 project.config.json 中添加权限: {"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}} }2.在 app.config.ts 中配置&#x…...
深入了解 SSL/TLS 协议及其工作原理
深入了解 SSL/TLS 协议及其工作原理 一. 什么是 SSL/TLS?二. SSL/TLS 握手过程三. SSL/TLS 数据加密与传输四. 总结 点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都在歌唱 一. 什么是 SSL/TLS? 安全套接层&am…...
【计算机操作系统:二、操作系统的结构和硬件支持】
第2章 操作系统的结构和硬件支持 2.1 操作系统虚拟机 操作系统虚拟机是一种通过软件技术对硬件资源进行抽象和虚拟化的机制,使用户能够以逻辑方式访问和使用计算机资源。 定义与概念: 虚拟机是操作系统虚拟化技术的核心产物,通过模拟硬件资…...
51单片机——步进电机模块
直流电机没有正负之分,在两端加上直流电就能工作 P1.0-P1.3都可以控制电机,例如:使用P1.0,则需要把线接在J47的1(VCC)和2(OUT1)上 1、直流电机实验 要实现的功能是:直…...
当算法遇到线性代数(四):奇异值分解(SVD)
SVD分解的理论与应用 线性代数系列相关文章(置顶) 1.当算法遇到线性代数(一):二次型和矩阵正定的意义 2.当算法遇到线性代数(二):矩阵特征值的意义 3.当算法遇到线性代数࿰…...
SASS 简化代码开发的基本方法
概要 本文以一个按钮开发的实例,介绍如何使用SASS来简化CSS代码开发的。 代码和实现 我们希望通过CSS开发下面的代码样式,从样式来看,每个按钮的基本样式相同,就是颜色不同。 如果按照传统的方式开发,需要开发btn &…...
40.TryParse尝试转化为int类型 C#例子
也许这个时候学有点晚,但是不管怎样都学了 尝试转化,不能转化就返回bool类型的假 它会直接给括号里面的int类型赋值 代码: using System; using System.Timers; public class Program {static void Main(){int a;bool i;while (true){Get…...
【微服务】2、网关
Spring Cloud微服务网关技术介绍 单体项目拆分微服务后的问题 服务地址问题:单体项目端口固定(如黑马商城为8080),拆分微服务后端口各异(如购物车808、商品8081、支付8086等)且可能变化,前端难…...
红队-shell编程篇(上)
声明 通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一、建立Shell文件 1. Shell简介 Shell是一种命令行界面&am…...
电子价签会是零售界的下一个主流?【新立电子】
电子价签,作为一种能够替代传统纸质标签的数字显示屏,已经在零售行业中展现出其巨大的潜力。它具有实时更新、集中管理、高效节能的特点,实现价格的实时更新,大大减少更新价格的工作量和时间。为消费者带来更加便捷、准确的购物体…...
【读书笔记】《人间信》
《人间信》麦家一、这是一本什么样的书? 《人间信》是麦家的最新长篇小说。用麦家自己的话说,这是"一本从心底里喊出来的书"——压抑了几十年、深到看不见底的话,终于被大声喊了出来。 著名作家王蒙对此书的评价是:&quo…...
3分钟解锁QQ音乐加密格式:终极QMC解密转换完整指南
3分钟解锁QQ音乐加密格式:终极QMC解密转换完整指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经下载了QQ音乐的歌曲,却发现只能在特定…...
B站视频下载器终极指南:轻松下载4K大会员高清视频
B站视频下载器终极指南:轻松下载4K大会员高清视频 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法离线观看B站精…...
Ollama本地大模型新玩法:PasteMD剪贴板美化工具深度体验
Ollama本地大模型新玩法:PasteMD剪贴板美化工具深度体验 1. 为什么PasteMD是文本处理的革命性工具 在日常工作中,我们经常遇到这样的困扰: 从会议录音转写的文字稿杂乱无章,关键信息淹没在大量口语化表达中复制粘贴的代码片段丢失…...
一键部署nlp_gte_sentence-embedding_chinese-large:GPU环境配置全攻略
一键部署nlp_gte_sentence-embedding_chinese-large:GPU环境配置全攻略 想要在GPU环境下快速部署强大的中文文本向量模型吗?nlp_gte_sentence-embedding_chinese-large作为当前效果最好的中文通用文本表示模型之一,能够将任意中文文本转换为…...
Intv_AI_MK11前端设计(Frontend Design)实战:从UI稿到响应式代码
Intv_AI_MK11前端设计实战:从UI稿到响应式代码 1. 引言:设计到代码的鸿沟 每个前端开发者都经历过这样的痛苦:拿到精美的UI设计稿后,需要花费大量时间手动编写HTML/CSS代码。特别是当设计稿包含复杂布局或响应式需求时ÿ…...
Kotaemon镜像实战:快速搭建技术支持智能问答机器人
Kotaemon镜像实战:快速搭建技术支持智能问答机器人 1. Kotaemon镜像简介 Kotaemon是由Cinnamon开发的开源项目,它是一个专注于文档问答(DocQA)的RAG UI界面。这个镜像为终端用户和开发者提供了一个开箱即用的解决方案,帮助快速搭建基于检索…...
【计算机网络】TCP三次握手与四次挥手,看完这篇就懂了
在当今互联网时代,TCP协议作为网络通信的基石,其核心机制——三次握手与四次挥手,直接影响着数据传输的可靠性和效率。你是否好奇为什么建立连接需要三次交互,而关闭连接却要四次?本文将用通俗易懂的语言,带…...
EasyAnimateV5-7b-zh-InP图生视频模型:VMware虚拟机5分钟快速部署指南
EasyAnimateV5-7b-zh-InP图生视频模型:VMware虚拟机5分钟快速部署指南 1. 为什么选择EasyAnimateV5-7b-zh-InP 在众多AI视频生成模型中,EasyAnimateV5-7b-zh-InP以其专注图生视频的能力脱颖而出。与常见的文生视频模型不同,它专门针对"…...
Java的java.lang.runtime.ObjectMethods记录类方法自动生成的底层机制
Java记录类方法自动生成的底层机制探秘 在Java 14中引入的记录类(Record)简化了不可变数据载体的定义,而其背后的java.lang.runtime.ObjectMethods类则是实现自动生成equals()、hashCode()和toString()等核心方法的关键。这一机制通过编译时…...
