-
Notifications
You must be signed in to change notification settings - Fork 3
Description
https://github.com/qqqqqf-q/Qing-Digital-Self
这是我的项目,也许你听说过weclone,是的,非常像,不过在项目开发初期真的一点都没借鉴过weclone,只是刷到过,虽然重复造轮子这事确实不怎么样,优点在于提供了更多平台的数据提取经验,这是我第一个也是目前唯一一个有结构的,有实用性的有用户的项目,看到别人用我项目训练出来的ai真的很高兴🤔别人给我多点一个star我真的能开心一整天
简单描述一下:用qq/wx/tg的用户双向聊天记录数据(不包含群聊和照片)对llm进行sft,让llm模仿你的说话风格等等
下面这些问题困扰我许久,我也没有系统性的学习过机器学习这方面,需要请教一下大佬
1.数据的顺序问题
打字打慢了导致qa对不上,但是如果有上下文那么是可以看懂的,但是对大模型来说这就比较致命了
比如
q:句1,2
a:句3回答1
q:句4
a:回答2,4
大模型主要是单段对话,这感觉导致了模型能力下降
2.分段问题
例如
a:等会出去看电影
a:和同学
a:试了电脑能玩
a:我是手腕流
(以上的对话怎么想也不通畅吧喂)
(不知怎么的...这里b呢?)
原文:
a:等会出去看电影(
b:[引用上条]a
自己?
a:和同学
a:[此条信息回复的是这一段对话的上面,无引用]试了电脑能玩
我是手腕流
以20-60s的策略来划分数据,确实解决了分段问题,但是数据量会大量减少,很多时候可能过了几十分钟才会回答,但也是回答之前的问题
3.数据提取问题还是哪里的问题
依旧上面的对话,看原对话截图,这...怎么少了点东西?
主要原因:数据来源是解密qq的数据库,但是text字段可以解密出来,但是表情包,图片等仍然是无法解密的,会呈现无规律乱码,目前靠算法先清洗一遍然后llm clean的时候打分,如果存在乱码(此处是表情包图片无法解密所以呈现乱码)则打低分,不被选入
这也是llm会输出乱码的原因,如果是[suzume]这样的真实存在的表情包还好但是这里是乱码
这里...有很明显的提取或者数据清洗或者分段问题
4.错别字
以现在llm的能力,学错别字容易影响原模型能力吧,虽然错别字和原字有关联但是会影响微调吧
5.full finetune和lora和qlora微调,区别大吗
full finetune的成本实在太高...
6.模型大小,因为资金原因没钱租更大的卡去微调14b以上的模型,效果会更好吗?但是此时我的训练集大概只有15mb(其中system prompt占一半),会偏少吗?我训练了1.5b/7b/14b,其实效果并没有差太多?(除了知识量)隔壁weclone说32b-70b效果最好,但是我没有这么多资金去测试
7.数据混合,因为“灾难性遗忘”,需要往c2c数据混入普通训练的qa数据,多少比例数据比较好?有推荐的公开数据集吗?
之前测试了大约5:5的比例,但模型最后失去了人格化,变的比较assistant,有时候甚至不知道自己的名字
8.指令遵循问题和混乱输出问题
微调后的llm失去了遵循的能力,我问一个问题,他可能会回答“你这是xxx量表吗?而不是回答问题”
大约40%的概率可以正常输出答案编号的字母
以及输出一堆和问题有关但又无关紧要的内容
不存在模板问题,可能需要优化下system prompt
好奇这是训练数据中的哪部分的错误

