大模型训练整体上分为三个阶段:预训练、SFT(监督微调)以及RLHF(基于⼈类反馈的强化学习)
预训练(Pre-training )
预训练的过程类似于从婴⼉成⻓为中学⽣的阶段,在这个阶段我们会学习各种各样的知识,我们的语⾔习惯、知识体系等重要部分都会形成;对于⼤模型来说,在这个阶段它会学习各种不同种类的语料,学习到语⾔的统计规律和⼀般知识
监督微调(SFT,Supervised Fine Tuning )
SFT的过程类似于从中学⽣成⻓为⼤学⽣的阶段,在这个阶段我们会学习到专业知识,⽐如⾦融、法律等领域,我们的头脑会更专注于特定领域。对于⼤模型来说,在这个阶段它可以学习各种⼈类的对话语料,甚⾄是⾮常专业的垂直领域知识,在监督微调过程之后,它可以按照⼈类的意图去回答专业领域的问题
基于⼈类反馈的强化学习(RLHF,Reinforcement Learningfrom Human Feedback )
RLHF的过程类似于从⼤学⽣步⼊职场的阶段,在这个阶段我们会开始进⾏⼯作,但是我们的⼯作可能会受到领导和客户的表扬,也有可能会受到批评,我们会根据反馈调整⾃⼰的⼯作⽅法,争取在职场获得更多的正⾯反馈。对于⼤模型来说,在这个阶段它会针对同⼀问题进⾏多次回答,⼈类会对这些回答打分,⼤模型会在此阶段学习到如何输出分数最⾼的回答,使得回答更符合⼈类的偏好
⼤模型是如何⽣成内容的?
简单来说就是靠"猜"!虽然⾮常不可思议,但事实就是这样,现阶段所有的 NLP 任务,都不意味着机器真正理解这个世界,它只是在玩⽂字游戏,进⾏⼀次⼜⼀次的概率解谜,本质上和我们玩报纸上的填字游戏是⼀个逻辑。只是我们靠知识和智慧,AI 靠概率计算。
基于LLM演进出最主流的两个⽅向:BERT和GPT
其中 BERT 是之前最流⾏的⽅向,⼏乎统治了所有 NLP 领域,并在⾃然语⾔理解类任务中发挥出⾊(例如⽂本分类、情感倾向判断等)
⽽GPT ⽅向则较为薄弱,事实上在 GPT3.0 发布前,GPT ⽅向⼀直是弱于 BERT的(GPT3.0 是 ChatGPT 背后模型 GPT3.5 的前身)
GPT和BERT的区别?
下⾯⽤程序演示「⽣成下⼀个字」。你可以⾃⼰修改 prompt 试试。还可以使⽤相同的 prompt 运⾏多次
安装 OpenAI Python 库
pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple/
然后执行下面的代码
# 查看openai api支持的基座模型
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv() # 从我们的env文件中加载出对应的环境变量
import os
os.environ["http_proxy"] = "http://127.0.0.1:1083"
os.environ["https_proxy"] = "http://127.0.0.1:1083"
client = OpenAI()
prompt = '今天天气真'
def get_completion(prompt, model="gpt-4o-mini"):
messages = [{"role": "user", "content": prompt}]
response = client.chat.completions.create(
model=model,
messages=messages,
max_tokens=20
)
# print(response)
return response.choices[0].message.content
print(get_completion(prompt))
输出内容