当前位置: 首页 > article >正文

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的核心要义。

相关文章:

SFT数据处理部分的思考

SFT数据及处理的业内共识 1.prompt的质量和多样性远重要于数据量级,微调一个 30 b 量级的base model只需要 10 w 量级的数据即可 参考:《LIMA:Less Is More for Alignment》 2.合成数据很重要!一般需要通过…...

netsh实现TCP端口转发

服务器:192.168.31.9 端口:56000 客户端:192.168.31.2 端口:5600 客户端(本地端口5600)通过TCP连接服务器的56000端口 PC:192.168.31.5,PC实现客户端和服务器之间56000端口转发 1. …...

数据分布偏移检测:保障模型在生产环境中的稳定性

数据分布偏移检测:保障模型在生产环境中的稳定性 引言 在机器学习系统从开发环境部署到生产环境的过程中,数据分布偏移问题是影响模型性能的主要挑战之一。当训练数据与生产环境中的数据分布不一致时,即使是经过精心调优的模型也可能表现出明显的性能下降。本文将深入探讨…...

leetcode 75.颜色分类(荷兰国旗问题)

题目描述 题目分析 本题是经典的「荷兰国旗问题」,由计算机科学家 Edsger W. Dijkstra 首先提出。 要想单独解决这道题本身还是很简单的,统计0、1、2的数量然后按顺序赋值,或者手写一个冒泡排序,whatever。 但是在这一题中我们主…...

在windows上通过idea搭建doris fe的开发环境(快速成功版)

一、前置环境准备 1. 准备Linux环境,我起的虚机,使用CentOS8,4核、12G,磁盘50G 1.1.备份yum源 # 系统下载连接:magnet:?xturn:btih:9DB46A612D04763AA7DB02A0FF63EDE2EA555867&dnCentOS-8.1.1911-x86_64-dvd1.…...

MyBatis源码分析の配置文件解析

文章目录 前言一、SqlSessionFactoryBuilder1.1、XMLConfigBuilder1.2、parse 二、mappers标签的解析2.1、cacheElement2.1.1、缓存策略 2.2、buildStatementFromContext2.2.1、sql的解析 前言 本篇主要介绍MyBatis源码中的配置文件解析部分。MyBatis是对于传统JDBC的封装&…...

python爬虫笔记(一)

文章目录 html基础标签和下划线无序列表和有序列表表格加边框 html的属性a标签(网站)target属性换行线和水平分割线 图片设置宽高width,height html区块——块元素与行内元素块元素与行内元素块元素举例行内元素举例 表单from标签type属性pla…...

docker后台运行,便于后期用命令行进入它的终端

在 docker compose up --build -d 命令中,​**-d​(或 --detach)参数的作用是让容器以后台模式(detached mode)​**运行。以下是详细解释: ​**-d 参数的作用** ​后台运行容器: 默认情况下&a…...

剑指 Offer II 087. 复原 IP

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20087.%20%E5%A4%8D%E5%8E%9F%20IP/README.md 剑指 Offer II 087. 复原 IP 题目描述 给定一个只包含数字的字符串 s ,用以表示一个 IP 地址&#xf…...

DC-6靶机详解

一、主机发现 arp-scan -l靶机ip为192.168.55.159 二、端口扫描、目录枚举、指纹识别、 2.1端口扫描 nmap 192.168.55.159发现没有开放特殊端口 看来信息收集的重点要放在网页中了 2.2目录枚举 dirb http://192.168.55.1592.3指纹识别 nmap 192.168.55.159 -sV -sC -O …...

Java构造方法详解:从入门到实战

目录 一、什么是构造方法? 二、构造方法的作用 三、构造方法分类与使用 1. 默认构造方法 2. 有参构造方法 3. 构造方法重载 四、注意事项(避坑指南) 五、经典面试题解析 六、实战应用场景 七、总结 一、什么是构造方法? …...

STM32-SPI通信外设

目录 一:SPI外设简介 SPI框图​编辑 SPI逻辑 ​编辑 主模式全双工连续传输 ​编辑 非连续传输 二:硬件SPI读写W25Q64 1.接线: 2. 代码 SPI外设的初始化 生成时序 一:SPI外设简介 STM32内部集成了硬件SPI收发电路&#…...

远程控制中的云电脑是什么意思?1分钟学会用

很多常用我们ToDesk远程控制的朋友们或许会注意到无论是在PC端还是移动端中都出现有【云电脑】【来云电脑爽玩-新用户免费1小时】这些词句等信息。那么这究竟是代表什么意思呐?云电脑是什么又怎么用呐?为什么要增加云电脑?以下小编就为大家科…...

【go】Go 语言中 errors.Is 和 errors.As 的区别

Go 语言中 errors.Is 和 errors.As 的区别 核心区别概述 errors.Is 和 errors.As 是 Go 1.13 引入的错误处理函数,它们有着不同的用途: errors.Is: 判断错误链中是否包含特定的错误值(错误相等性检查)errors.As: 尝试将错误转换…...

网络爬虫【简介】

我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲视图 一、网络爬虫的定义 网络爬虫(Web Crawler),又称为网络蜘蛛、网络机器人等,是一种按照一定规则自动抓取互联网信息的程序或脚本。它…...

JPA动态查询自定义排序规则

方法1&#xff1a;使用 CASE WHEN 语句排序 // 自定义排序逻辑 // 定义“离线”排在前&#xff0c;“在线”排在后 Expression<Object> caseExpression cb.selectCase().when(cb.equal(root.get("status"), "离线"), 0).when(cb.equal(root.get(…...

卫语句优化多层if else嵌套

一、卫语句的介绍 卫语句是一种编程实践&#xff0c;用于在函数或方法的开头快速处理不符合条件的情况&#xff0c;从而避免深层次的嵌套结构。它的核心思想是尽早返回&#xff0c;减少嵌套&#xff0c;使代码更加清晰易读。 二、卫语句的作用 提高可读性&#xff1a;卫语句将…...

2024华东师范大学计算机复试上机真题

2024华东师范大学计算机复试机试真题 2023华东师范大学计算机复试机试真题 2022华东师范大学计算机复试机试真题 2024华东师范大学计算机复试上机真题 2023华东师范大学计算机复试上机真题 2022华东师范大学计算机复试上机真题 在线评测&#xff1a;传动门&#xff1a;pgcode…...

3.15刷题

P6337 [COCI 2007/2008 #2] CRNE - 洛谷 #include<bits/stdc.h> using namespace std; int main(){int n;cin>>n;//横加竖 最大。n/2,n/21if(n%20){cout<<(n/21)*(n/21);}else cout<<(n/22)*(n/21);return 0; }P6338 [COCI 2007/2008 #2] PRVA - 洛…...

14.使用各种读写包操作 Excel 文件:辅助模块

一 各种读写包 这些是 pandas 在底层使用的各种读写包。无须安装 pandas&#xff0c;直接使用这些读写包就能够读写 Excel 工作簿。可以尽可能地使用 pandas 来解决这类问题&#xff0c;只在 pandas 没有提供你所需要的功能时才用到读写包。 表中没有 xlwings &#xff0c;因为…...

设计心得——多态

一、设计上的多态 无论是在网上还是书籍上&#xff0c;还是自己的文章里都反复分析过多态的原理、应用和各种常见的情况。本篇重点从设计的角度来阐述一下多态&#xff0c;而不对多态的具体的用法进行说明。在前面的知识学习中可以知道&#xff0c;多态可以分为动多态和靜多态…...

【DeepSeek】本地部署DeepSeek的完整教程(Ollama+Docker+Open WebUI)

本地部署DeepSeek的完整教程 文章目录 本地部署DeepSeek的完整教程写在前面技术需求详细步骤一. 安装Ollama软件二. 安装DeepSeek-R1模型三. 安装Docker软件四. 配置Web UI界面问题解决1. 打开`docker desktop`时,一直显示`Docker Engine stopped`2. 用`Docker`拉取`Open WebU…...

Python数据分析之数据可视化

Python 数据分析重点知识点 本系列不同其他的知识点讲解&#xff0c;力求通过例子让新同学学习用法&#xff0c;帮助老同学快速回忆知识点 可视化系列&#xff1a; Python基础数据分析工具数据处理与分析数据可视化机器学习基础 四、数据可视化 图表类型与选择 根据数据特…...

1、操作系统引论

一、操作系统 会使用linux系统 建议大家先学会linux的基础指令&#xff0c;可以看菜鸟教程网站进行学习。 1、各种定义 操作系统定义 管理计算机的 硬件 和软件资源&#xff0c; 能对各类作业进行调度&#xff0c;方便用户使用计算机的程序集合。操作系统运行在内核态&#xf…...

DeepSeek 本地化新篇章:Ollama 兼容 OpenAI API 的深度解析与部署实践

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着大语言模型(LLM)的快速发展,开发者对本地化部署和 API 兼容性的需求日益增加。Ollama 作为一个轻量级开源框架,通过兼容 OpenAI AP…...

【PTA题目解答】7-4 数气球 (20分)

1.题目 天空上有n个气球&#xff0c;第i个气球的颜色为colori​&#xff08;为全由小写字母组成的字符串&#xff09; 请你数出每种颜色的气球的数量&#xff0c;并按照颜色出现的先后顺序进行排序输出。 输入格式: 测试数据有T组(1≤T≤100)。 对于每组样例&#xff0c;第一…...

Swift 中 associatedtype 的用法详解

目录 前言 1.什么是associatedtype 2.associatedtype 的作用 1.让协议支持泛型 2.让协议支持不同的数据类型 3.结合 where 关键字限制类型 4.什么时候使用 associatedtype 5.总结 前言 在 Swift 语言中&#xff0c;泛型&#xff08;Generics&#xff09;是一个非常强大…...

java泛型通配符?及上下界(extends,super)保证安全性、灵活性、可读性

在 Java 中&#xff0c;泛型通配符&#xff08;?&#xff09;用于表示未知类型&#xff0c;通常用于增强泛型的灵活性。通配符可以与上下限结合使用&#xff0c;以限制泛型的范围。以下是通配符及上下限的使用示例&#xff1a; 1. 无界通配符 (?) 无界通配符表示可以接受任意…...

HarmonyOS NEXT - 网络请求问题(http)

HTTP&#xff08;HyperText Transfer Protocal&#xff0c;超文本传输协议&#xff09;是一种用于传输超媒体文档&#xff08;如HTML&#xff09;的应用层协议&#xff0c;它是客户端和服务器之间通信的基础&#xff1b;无论是获取数据、提交表单、上传文件&#xff0c;HTTP都扮…...

告别旧版本,功能全面升级!

小伙伴们&#xff0c;今天来给大家唠唠一款超经典的软件——格式工厂&#xff01;相信很多人都不陌生吧&#xff1f;它可是早期超多人用的视频格式转换工具呢&#xff01;但随着软件行业的发展&#xff0c;它慢慢被其他工具代替了&#xff0c;像万兴、小丸、AME这些新宠儿一出现…...