模型架构与原理4609 字

如何基于GPT定制化微调训练

·全库 442 / 611

《如何基于GPT定制化微调训练》共 0.5 万字,通篇围绕 GPU、预训练、数据集、推理 展开,归在「模型架构与原理」这一层。

覆盖GPU预训练数据集推理场景缓存

适合要跟模型团队对话、得听懂他们在说什么的人

目录骨架(8 节)
  1. 1. 模型特性与应用场景
  2. 2. 数据集构建规范
  3. 3. 本地训练全流程实践
  4. 优化建议
  5. 1.1 多领域生成示例
  6. 2.1 数据格式标准
  7. 3.1 数据预处理方案
  8. 3.2 模型训练代码

示例代码

注:将ppt后缀名改为zip后解压

python版本:3.10

​

分享内容

  1. GPT模型特性与应用场景(诗词、对联、文章)
  2. 数据集构建规范
  3. 本地训练全流程实践

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)

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求