分享
16. Fine Tune - 答疑
输入“/”快速插入内容
16. Fine Tune - 答疑
飞书用户4886
2024年1月13日创建
98
254
0
0
•
Fine Tune 答疑 video
课堂沟通
课前沟通
•
发生了
OOM
?
◦
我执行多次(之前有未使用
tmux
,训练到60%多中断),发生了
OOM
;
◦
老师的建议是, 影响
内存
大小的指标有2个,
batch_size
(2)和
输入输出长度
(3072), 实验室给配的环境应该是跑的动的,如果
OOM
可以尝试把这2个值改小;
•
tensorboard输出的loss曲线震荡很大
◦
logging step是1,调大;
◦
只要loss最终
收敛
,测试指标达标的bleu-score,slot-p,
etc
,即说明是可以的
•
如果loss的结果,出现过最小,但最后反而变大了?
◦
上述现象是有可能的,不能保证跑的越多效果越好,实际在product环境,中可以多取几个
checkpoint
,取loss比较小的来比较;
•
正课沟通
•
如果定义一个全新token x,给x赋予一个含义y,然后利用token x构造很多数据,利用数据fine tune
大模型
,大模型能理解x和x表示的y吗?
◦
王老师认为是可以的,但是不太理解的是,这个陈述对应着什么样的需求和场景。大概率这样做的效果会导致
LLM
丧失通用能力,而专为表达y的训练得不偿失;
•
文本图像视频是如何进入
LLM
的? 文本图像视频,都是以embedding的方式,进入
大模型
的;下节课多模态模型详解;
•
如何微调
embedding模型
?训练的pipeline是和训练模型的pipline是一样的;只是embedding模型加载的是句对儿(双塔),需要自己定义loss,定义加载格式;可以参考sbert的网站,sentence transformer是在hugging face上封了一层,提供训练embedding模型的pipeline,自己扩展阅读;
•
CNN
,
RNN
, 快速介绍
?
•
这个笔记遗落了很多内容,主线可以是:
CNN
,
RNN
的能力和限制,transformer改良2者的点是什么,在transformer体系内2者还能做什么
◦
NLP
常用的几个网络结构,textCNN是之一,
CNN
使用局部特征表示全局特征,尝试用不同size的窗口,去和输入的特征文本做运算,得到pulling的值,过全链接层,多个窗口都在相同的输入上运算;CNN一般只能用于做分类(e.g. 输入是法律,情感,
etc
), 它无法进行生成性质的复杂操作;
◦
RNN
,比
CNN
更贴近自然语言;
循环神经网络
;有很大弊端,容易造成梯度消失或者爆炸;
◦
attention的由来
◦
CNN
,
RNN
是完全没有用了吗?也不完全,可以在transformer的头上做序列标注
•
Batch size的设定,是否是以
显存
打满为目的来设置的?显存消耗大小如何来计算?
◦
超参
的调试,其实是需要试,所以最开始试的时候,可以让batch size大一点,尝试把
显存
打满,发现没有问题,则就如此,否则就调小;
▪
todo
:如何检查
显存
运行是否满的状态?
◦
如果全量参数,batchsize一般选较大,轻量化(e.g.
LoRA
, pt2)batchsize需要尝试,有时较小比较好;
◦
显存
消耗计算,其实不容易查看,因为存在gradient_checkpoint, 它是动态策略;
•
Bad case分析:
代码块
Python
# 这个对话非常不通顺
user: 有几种档次的?
ass: 有几种档次的,但没有你要的档次的
user: 豪华型的
ass: 回答了3个豪华型列表...
◦
如果
训练数据
里,没有那样的数据,则模型就不具备这个能力,这种对话就会不像人类的对话,像在出现了幻觉的胡说八道
◦
这个也说明,数据集尽量构造成和真实的使用场景是一致的;
•
如何本地部署,微调?19课是介绍产品部署的;
•
SQL
语句生成?业界有成熟的方案
awsome text2sql
•
如果是预训练
大模型
,使用中文是不合适的,中文歧义,古语残留等中文语义现象太多;另外中文的互联网语料质量比较差,因此预训练中英文混合训练比较合适