LLM 大语言模型实战 (十一)-大模型全流程实践

一、LLM-SFT实践

SFT 和 FT 的关系?

• SFT 一般说的是 instuction tuning(指令训练)
• FT 一般都是针对一些特定的场景,比如分类任务,也可以是LM 任务
• 但是假设两个任务都是 LM 任务,那么两者就是一样的

prompt learning 和 instruction learning 的区别?

  • • instruction学习定义:针对每个任务,单独生成instruction(hard token),通过
    在若干个full-shot任务上进行微调,然后在具体的任务上进行评估泛化能力(zero
    shot),其中预训练模型参数是unfreeze(微调)的。
  • • 和prompt的区别:Instruction Tuning和Prompt方法的核心一样,就是去发掘语言
    模型本身具备的知识。而他们的不同点就在于,Prompt是去激发语言模型的补全能
    力,比如给出上半句生成下半句、或者做完形填空,都还是像在做language model
    任务,而Instruction Tuning则是激发语言模型的理解能力,通过给出更明显的指令,
    让模型去理解并做出正确的反馈。

提示学习与指令学习

• prompt:扣篮王拉文:精彩暴扣表演!炸。这篇文章的类别是__
• instruction: {哪个类别最好的描述了这篇新闻?扣篮王拉文:精彩暴扣表
演!炸\n选项:故事,文化,娱乐,体育,财经,房产,汽车,教育,科技,
军事,旅游,国际,股票,农业,游戏\n答案:}
• 很明显可以看出,prompt 指的是一些模板,让模型去补全,用来减少训练和
任务之间的GAP
• instruct 则更多的需要模型的理解能力。

我们一般说的 SFT 实际上指的是 instuction tuning

二、微调模型

查看gpu配置

(base) root@kaiyi-rf80qoiv60ji-main:/openbayes/home/llm-corser# nvidia-smi
Thu Oct 10 03:18:50 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.146.02             Driver Version: 535.146.02   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla V100-SXM2-16GB           On  | 00000000:07:00.0 Off |                    0 |
| N/A   38C    P0              43W / 300W |      0MiB / 16384MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+
(base) root@kaiyi-rf80qoiv60ji-main:/openbayes/home/llm-corser# 

课后作业

1、了解 kv cache、flash attention
2、跑通示例代码 (01:19:38/03:01:02)
3、用SFTTrainer 一个模型?(version, v1.py)
4、了解(version/v2.py) 里边的 DataCollatorForCompletionOnlyLLM()

为者常成,行者常至