SFT数据处理部分的思考

SFT数据及处理的业内共识

1.prompt的质量和多样性远重要于数据量级,微调一个 30 b 量级的base model只需要 10 w 量级的数据即可
参考:《LIMA:Less Is More for Alignment》
2.合成数据很重要!一般需要通过不同方式进行多路合成,减少合成数据的bias
参考:《Phi-3 Technical Report:A Highly Capable Language Model Locally on Your Phone》
3.可以加点预训练的数据进去,减轻灾难性遗忘现象
参考:《The Llama 3 Herd of Models》
4.一般训练一个epoch,垂域模型数据少训练3epoch去过拟合
5.可以做全量微调,就不要去做PEFT
6.SFT阶段不能太多的知识注入,过多的知识注入,或者超过模型能力本身的回答过多会导致对齐税
数据飞轮
最简单的做法,拉取线上近半个月的真实用户prompt,先用启发式规则进行清洗,然后用GPT-4o打标,留下可用的数据

为什么要用数据飞轮?

1.prompt 的生产是需要有 seed 种子的,seed的数据量和多样性有限,数据合成的质量不够高。
2.用户的问题干奇百怪,尤其是多轮聊天数据,自己生成的多轮对话数据,通常都默认模型回复的是正确的,用户会 follow 模型的回复。但线上可不是这种情况,你聊你的,我聊我的是时有发生的事情 (伪多轮)。

1.数据收集:首先,需要收集和获取大量的数据。这可以通过各种方式实现,例如用户近一个月赞踩,用户行为追踪,用户社交媒体数据等
2.数据存储和处理:收集到的数据需要进行存储和处理,以便后续的分析和应用。这可能涉及到数据仓库,数据库,云存储等技术
3.数据分析和洞察:通过对数据进行分析和挖掘,提取有价值的信息和洞察。这可以使用数据分析工具,机器学习算法等技术来实现,以发现数据中的模式,趋势和关联关系
4.数据应用和价值实现:将分析得到的洞察应用到实际场景中,创造价值。这可能包括优化业务流程,改进产品设计,个性化推荐等
5.数据反馈和增强:应用数据带来的改进和收益,进一步增加数据的质量和数量。这可能包括更好的数据收集方法,更准确的数据标注等

在这里插入图片描述

一、数据飞轮的本质(类比理解)

将数据系统想象为一个永动机,每一轮旋转都会积累更多动能(高质量数据),最终形成自增强的正反馈循环:

收集
清洗/标注
微调
部署
新提问
真实用户提问
数据池
优质训练集
更聪明模型
吸引更多用户

飞轮效应:每个环节的质量提升都会带动下一轮的数据优化,形成自我升级的生态闭环。


二、为何传统数据合成需结合飞轮机制

1. 初始种子数据的缺陷
  • 问题:人工构造的种子问题类型有限,且可能存在隐性偏见
    (例如:过于书面化,缺乏口语表达样本)
  • 飞轮修复机制:通过真实用户数据补充长尾场景案例
2. 合成数据的失真风险
  • 问题:模型生成的提问可能与真实用户分布存在偏离
    (如:合成数据中问答过于规范,实际用户存在模糊表达)
  • 飞轮校准作用:用真实数据中的“反例”修正模型认知偏差

示例对比

# 合成数据                    | # 真实用户数据
"写一首关于春天的五言绝句"   | "整点春天的诗,别太长,要押韵"
"牛顿三大定律的内容是什么?" | "物理考试复习重点求总结,急!"

三、数据飞轮的5环节详解

1. 数据收集:获取原材料
  • 核心目标:覆盖用户真实意图的全面性
  • 操作技巧
    • 用户行为埋点:记录搜索记录、对话中断率、主动点赞/踩
    • 多源采集:API日志、客服对话记录、应用内反馈表单
2. 存储与处理:打造高标准数据工厂
  • 架构示例
flowchart TDA[原始数据] --> B[清洗层:去重/去噪]B --> C[结构化层:JSON格式化]C --> D[标注层:质量分类+实体标记]D --> E[特征库:存储embedding向量]
  • 工具推荐
    • 清洗:用Python的pandas处理重复数据
    • 存储:Elasticsearch实现快速检索
    • 标注:Snorkel框架实现弱监督标注
3. 分析与洞察:挖掘数据金矿
  • 关键分析维度
    维度分析方法实战用途
    意图分布聚类分析(K-means)发现模型未覆盖的新用户需求
    对话质量二分类模型(优质/低质)过滤无效数据提升训练效率
    会话流分析序列模式挖掘(PrefixSpan算法)优化多轮对话的上下文管理策略
4. 应用与价值:数据驱动决策
  • 典型应用场景
    • 产品优化:高频出现的模糊提问 → 改进用户引导文案
    • 模型增强
      # 假设分析发现用户常问"怎么安装XXX"
      # 则定向增加对应安装指导的SFT数据
      new_prompts = generate_install_qa("XXX软件") 
      
5. 反馈与增强:闭环迭代
  • 质量提升循环
    while True:当前模型 = 训练(现有数据)部署后用户提问 = 收集新数据()数据缺陷 = 分析模型错误案例(当前模型, 新数据)增强数据 = 针对性补全漏洞数据(数据缺陷)合并数据 += 增强数据
    

四、实战案例解析

案例1:客服对话系统的飞轮优化
  • 初始问题:20%的客户因模型不理解方言而转人工
  • 飞轮介入
    1. 收集方言类对话样本 → 清洗后生成标注数据
    2. 微调时增加方言理解专项训练集
    3. 新版本上线后相关转人工率降至7%
案例2:代码助手的多轮对话增强
  • 痛点:用户常在三次对话后丢失上下文
  • 解决方案
    • 解析对话日志中的状态丢失节点
    • 基于真实中断案例构建强化训练样本:
    {"dialog": [{"role":"user", "content":"写一个Python排序函数"},{"role":"assistant", "content":"使用sorted()函数..."},{"role":"user", "content":"不要用内置函数自己实现"}],"label": "需要保持算法实现焦点"
    }
    

五、避开数据飞轮的常见误区

误区后果科学做法
只收集显式反馈丢失90%潜在信息结合隐式行为分析(如停留时长)
过度依赖自动化标注噪声数据污染模型人机协同校验(如置信度过滤)
迭代周期过长无法及时响应需求变化建立小时级数据更新通道

六、前沿优化方案

1. 动态数据加权

为每个训练样本分配动态权重:

weight = α * 用户重要性 + β * 数据新鲜度 + γ * 模型不确定度
  • 用户重要性:VIP用户的数据权重更高
  • 模型不确定度:使用蒙特卡洛Dropout计算置信度
2. 对抗样本挖掘

主动生成让当前模型犯错的问题,加入训练集:

adversarial_prompts = generate_hard_samples(model)
train_data += adversarial_prompts
3. 数据蒸馏技术

用大模型标注结果指导小模型训练:

原始数据 → GPT-4标注 → 训练Llama 3

七、阶段总结(思维导图版)

在这里插入图片描述

通过将数据飞轮与合成技术结合,可使模型始终保持对现实场景的强适应力,这正是打磨优秀LLM的核心要义。

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

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

相关文章

Python(学习一)

做网站有成熟的框架像FLASK、DJANGO、TORNADO,写爬虫有好用到哭的REQUESTS,还有强大到没盆友的SCRAPY 随着NUMPY、SCIPY、MATLOTLIB等众多第三方模块的开发和完善,不仅支持py支持各种数学运算,还可以绘制高质量的2D和3D图像&…

ArcGIS Pro将有文字标注底图切换为无标注底图(在线地图图源)

今天介绍一下在ArcGIS Pro将有标注的地形底图换成无标注的底图。 大家在这项目底图时候会经常调用ArcGIS Pro自带的地形图,但是这个地形图自带是有注记的,如下图。 如何更改,才可以调用无文字注记的呢? 对于一个已经切好图的有注记…

Linux第三次练习

1、创建根目录结构中的所有的普通文件 首先在根目录下面新创建一个test目录,然后将查找到的普通文件新建到test目录下 2、列出所有账号的账号名 3、将/etc/passwd中内容按照冒号隔开的第三个字符从大到小排序后输出所有内容 4、列出/etc/passwd中的第20行-25行内容…

[CISCN 2022 初赛]ezpop(没成功复现)

打开在线环境可以看到&#xff1a; 记得之前做过一个类似的就是有点像照着漏洞去复现。应该可以直接在网上找到链子去打。 www.zip查看路由是 Index/test&#xff0c;然后 post 传参 a&#xff1a; exp&#xff08;参考了别的大神的wp&#xff09;&#xff1a; <?php //…

技术-NBIOT

是什么&#xff1f; 窄带物联网&#xff08;Narrow Band Internet of Things, NB-IoT&#xff09;成为万物互联网络的一个重要分支支持低功耗设备在广域网的蜂窝数据连接&#xff0c;也被叫作低功耗广域网(LPWAN)NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接NB-Io…

Spring @Bean注解使用场景二

bean:最近在写一篇让Successfactors顾问都能搞明白的sso的逻辑的文章&#xff0c;所以一致在研究IAS的saml2.0的协议&#xff0c;希望用代码去解释SP、idp的一些概念&#xff0c;让顾问了解SSO与saml的关系&#xff0c;在github找代码的时候发现一些代码的调用关系很难理解&…

pip install和conda install的区别

这里写目录标题 一、什么是 Python 依赖&#xff08;Python Dependencies&#xff09;&#xff1f;1. 依赖的作用2. 如何管理 Python 依赖3. 依赖管理问题4. 依赖锁定总结 二、使用pip安装包venv隔离环境方法 1&#xff1a;使用 venv&#xff08;推荐&#xff09;创建虚拟环境激…

R语言高效数据处理-自定义EXCEL数据排版

注&#xff1a;以下代码均为实际数据处理中的笔记摘录&#xff0c;所以很零散 1、自定义excel表数据输出格式、布局 在实际数据处理中为了提升效率&#xff0c;将Excel报表交付给需求方时减少手动调整的环节很有必要 #1.1设置表头格式 header_style <- createStyle(font…

Word 小黑第4套

对应大猫41 上下日期是一起变动的&#xff0c;删掉第一个&#xff0c;第二个日期格式&#xff08;文件 -选项 -自定义功能区 -选上开发工具&#xff09; 点开发工具 -属性 选择相应的日期格式&#xff09; 修改标题样式时&#xff0c;标题三只有点标题二时才会显示 右击正文样…

酒店宾馆IPTV数字电视系统:创新宾客体验,引领智慧服务新潮流

酒店宾馆IPTV数字电视系统&#xff1a;创新宾客体验&#xff0c;引领智慧服务新潮流 北京海特伟业科技有限公司任洪卓于2025年3月15日发布 随着智慧酒店的不断发展&#xff0c;宾客对于酒店内的娱乐和信息服务需求日益多样化&#xff0c;传统的电视服务已难以满足现代宾客的高…

jupyter无法转换为PDF,HTMLnbconvert failed: Pandoc wasn‘t found.

无法转为PDF 手动下载工具 https://github.com/jgm/pandoc/releases/tag/3.6.3 似乎跟我想的不大一样&#xff0c;还有新的报错 https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex 不知道下的啥玩意儿 sudo apt-get install texlive-xetex texlive-fon…

如何在 VS编译器上使用 C99规定的变长数组------使用Clang工具

VS编译器默认处理代码的工具是 MSVC&#xff0c;而MSVC工具是无法处理变长数组的&#xff0c;这个时候我们就要换一个处理代码的工具了----Clang 1 int n 9; 2 int arr[n];// 数组长度可以拟定1.打开 Visual Stdudio Intaller 2.点击修改&#xff0c;鼠标下滑找到>>使用…

vue echarts封装使用

echarts 尺寸自动调节 resize.js 柱状图 components/dashboard/lineChart.vue <template><div :class"className" :style"{height:height,width:width}" /> </template><script> import echarts from echarts require(echarts/…

《计算机图形学》第二课笔记-----二维变换的推导

前言&#xff1a;为什么这么突兀的把这一节内容放在了第二课&#xff0c;第一是因为我急于求成&#xff0c;第二是因为这一章节太重要了&#xff0c;这几乎是二维三维变换的最核心的东西&#xff0c;理解了这一章节内容&#xff0c;后面的就会像打通了任督二脉一样&#xff0c;…

OTP单片机调试工具之—单线数据编码

OTP单片机调试工具在实现过程中离不开单线数据的传输&#xff0c;那么使用哪一种方式的数据编码会比较好呢&#xff1f; 我所了解的主要有以下三种&#xff1a; 1.UART&#xff08;串口&#xff09;&#xff0c;这种方式在单片机和pc之间进行传输都非常常见&#xff0c;效率比较…

背诵--2

DAY01 面向对象回顾、继承、抽象类 学习目标 能够写出类的继承格式public class 子类 extends 父类{}public class Cat extends Animal{} 能够说出继承的特点子类继承父类,就会自动拥有父类非私有的成员 能够说出子类调用父类的成员特点1.子类有使用子类自己的2.子类没有使用…

穷举vs暴搜vs深搜vs回溯vs剪枝刷题 + 总结

文章目录 全排列题解代码 子集题解代码 总结 全排列 题目链接 题解 1. 画一颗决策树 2. 全局变量&#xff1a; int[ ][ ] ret&#xff1a;用于存结果的二维数组 int[ ] path&#xff1a;用于存每次路径的答案 bool[ ] check&#xff1a;判断这个数是否已经用过&#xff0c;…

深度学习中学习率调整策略

学习率衰减策略是深度学习优化过程中的一个关键因素&#xff0c;它决定了训练过程中学习率的调整方式&#xff0c;从而影响模型收敛的速度和效果。不同的衰减策略在不同的任务和模型上可能有不同的表现&#xff0c;下面从我用到过的几个衰减策略进行记录&#xff0c;后续慢慢跟…

《Electron 学习之旅:从入门到实践》

前言 Electron 简介 Electron 是由 GitHub 开发的一个开源框架&#xff0c;基于 Chromium 和 Node.js。 它允许开发者使用 Web 技术&#xff08;HTML、CSS、JavaScript&#xff09;构建跨平台的桌面应用程序。 Electron 的优势 跨平台&#xff1a;支持 Windows、macOS 和 Linux…

UBuntu24.04-JDK7-TOMCAT7安装

jdk7 apt-get 找不到。 tomcat7 也没找到。 以下是安装成功的&#xff0c;供大家参考。 1.JAVA openjdk-7-jdk /usr/lib/jvm/java-7-openjdk-amd641.安装指定版本apt search jdk //查找版本sudo apt install default-jdk //此为默认版本sudo apt install ope…