模型架构与原理4609 字
如何基于GPT定制化微调训练
·全库 442 / 611
《如何基于GPT定制化微调训练》共 0.5 万字,通篇围绕 GPU、预训练、数据集、推理 展开,归在「模型架构与原理」这一层。
覆盖GPU预训练数据集推理场景缓存
适合要跟模型团队对话、得听懂他们在说什么的人
目录骨架(8 节)
- 1. 模型特性与应用场景
- 2. 数据集构建规范
- 3. 本地训练全流程实践
- 优化建议
- 1.1 多领域生成示例
- 2.1 数据格式标准
- 3.1 数据预处理方案
- 3.2 模型训练代码
示例代码
注:将ppt后缀名改为zip后解压
python版本:3.10
分享内容
- GPT模型特性与应用场景(诗词、对联、文章)
- 数据集构建规范
- 本地训练全流程实践
1. 模型特性与应用场景
GPT-2 是基于 Transformer 架构的生成式预训练模型,擅长文本续写与内容生成。Hugging Face 社区针对中文场景衍生了多个专用模型,适用于以下典型场景:
1.1 多领域生成示例
案例一:现代歌词创作
gpt-2中文歌词模型:https://huggingface.co/uer/gpt2-chinese-lyric
#lyric_gen.py
from transformers import GPT2LMHeadModel,BertTokenizer,TextGenerationPipeline
model_id = "uer/gpt2-chinese-lyric"
tokenizer = BertTokenizer.from_pretrained(model_id)
model = GPT2LMHeadModel.from_pretrained(model_id)
#创建模型推理对象
text_generator = TextGenerationPipeline(model,tokenizer)
out = text_generator("雨滴敲打玻璃窗",max_length=100,do_sample=True)
print(out)
技术要点:
- BertTokenizer :用于将输入文本转换为模型可以处理的格式。这里我们使用预训练的uer/gpt2-chinese-lyric 模型的分词器。
- GPT2LMHeadModel :GPT-2 模型的实现,专注于语言模型的生成任务。
- TextGenerationPipeline :Hugging Face 提供的简化工具,用于快速生成文本。它结合了模型和分词器,简化了推理过程。
- do_sample=True :启用随机采样,使得每次生成的文本可能不同,这有助于生成多样化的结果。
案例二:中文文言文生成
gpt-2中文文言文模型:https://hugggingface.co/uer/gpt2-chinese-ancient
#traditional_literature_gen.py
from transformers import BertTokenizer,GPT2LMHeadModel,TextGenerationPipeline
model_id = "uer/gpt2-chinese-ancient"
tokenizer = BertTokenizer.from_pretrained(model_id)
model = GPT2LMHeadModel.from_pretrained(model_id)
#device=0 指定当前的推理设备为第一块GPU;如果没有GPU环境,就去掉该参数
text_generator = TextGenerationPipeline(model,tokenizer,device=0)
out = text_generator("昔者庄周梦为胡蝶",max_length=100,do_sample=True)
print(out)
解释:
- device=0 :指定使用第一个 GPU 进行计算。如果系统有多个 GPU,可以通过改变设备编号选择
- 其他 GPU。
- max_length=100 :设置生成文本的最大长度,以确保生成的文本不会超出指定的字符数。
案例三:中文对联生成
gpt-2中文对联模型:https://huggingface.co/uer/gpt2-chinese-couplet
#couplet_gen.py
from transformers import BertTokenizer,GPT2LMHeadModel,TextGenerationPipeline
model_id = "uer/gpt2-chinese-couplet"
tokenizer = BertTokenizer.from_pretrained(model_id)
model = GPT2LMHeadModel.from_pretrained(model_id)
#device=0 指定当前的推理设备为第一块GPU;如果没有GPU环境,就去掉该参数
text_generator = TextGenerationPipeline(model,tokenizer,device=0)
out = text_generator("[CLS]五湖四海皆春色 -",max_length=28,do_sample=True)
print(out)