news 2026/5/7 0:41:35

基于GPT-2文本生成模型微调 - GPT-2中文文本生成模型实例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于GPT-2文本生成模型微调 - GPT-2中文文本生成模型实例

大家好,我是python222_小锋老师,最近更新《AI大模型应用开发入门-拥抱Hugging Face与Transformers生态》专辑,感谢大家支持。

本课程主要介绍和讲解Hugging Face和Transformers,包括加载预训练模型,自定义数据集,模型推理,模型微调,模型性能评估等。是AI大模型应用开发的入门必备知识。

基于GPT-2文本生成模型微调 - GPT-2中文文本生成模型实例

1,gpt2-chinese-cluecorpussmall 通用文本生成实例

示例代码:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM ​ ​ def test_text_generation(): # 使用设备(GPU/CPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # print(device) ​ # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../gpt2-chinese-cluecorpussmall') ​ # 加载模型 model = AutoModelForCausalLM.from_pretrained('../gpt2-chinese-cluecorpussmall') # print(model) ​ # 设置为评估模式 model.eval() ​ model.to(device) ​ # 准备输入数据 input_ids = tokenizer.encode( text='大语言模型技术发展', # 输入文本 return_tensors='pt' # 返回PyTorch张量 ).to(device) ​ # 生成文本 output_sequences = model.generate( input_ids=input_ids, max_length=100, # 生成的文本总长度 num_return_sequences=1, # 返回的生成序列数量 no_repeat_ngram_size=2, # 避免重复的n-gram 防止相同词组重复出现,从而提高生成文本的多样性和自然性。 temperature=0.7, # 温度参数控制随机性 top_k=50, # 仅从前k个概率最高的单词中采样 top_p=0.95, # 只从前95%概率质量的词汇中进行随机采样 核采样策略 do_sample=True # 开启采样 ) ​ # print(output_sequences) ​ # 解码并打印生成的文本 for sequence in output_sequences: generated_text = tokenizer.decode(sequence, skip_special_tokens=True) print(generated_text) ​ ​ if __name__ == '__main__': for i in range(3): test_text_generation()

运行结果:

2,gpt2-chinese-ancient 古文生成实例

示例代码:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM ​ ​ def test_text_generation(): # 使用设备(GPU/CPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # print(device) ​ # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../gpt2-chinese-ancient') ​ # 加载模型 model = AutoModelForCausalLM.from_pretrained('../gpt2-chinese-ancient') # print(model) ​ # 设置为评估模式 model.eval() ​ model.to(device) ​ # 准备输入数据 input_ids = tokenizer.encode( text='悠哉', # 输入文本 return_tensors='pt' # 返回PyTorch张量 ).to(device) ​ # 生成文本 output_sequences = model.generate( input_ids=input_ids, max_length=100, # 生成的文本总长度 num_return_sequences=1, # 返回的生成序列数量 no_repeat_ngram_size=2, # 避免重复的n-gram 防止相同词组重复出现,从而提高生成文本的多样性和自然性。 temperature=0.7, # 温度参数控制随机性 top_k=50, # 仅从前k个概率最高的单词中采样 top_p=0.95, # 只从前95%概率质量的词汇中进行随机采样 核采样策略 do_sample=True # 开启采样 ) ​ # print(output_sequences) ​ # 解码并打印生成的文本 for sequence in output_sequences: generated_text = tokenizer.decode(sequence, skip_special_tokens=True) print(generated_text) ​ ​ if __name__ == '__main__': for i in range(3): test_text_generation()

运行结果:

3,gpt2-chinese-couplet 对联生成实例

实例代码:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM ​ ​ def test_text_generation(): # 使用设备(GPU/CPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # print(device) ​ # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../gpt2-chinese-couplet') ​ # 加载模型 model = AutoModelForCausalLM.from_pretrained('../gpt2-chinese-couplet') # print(model) ​ # 设置为评估模式 model.eval() ​ model.to(device) ​ # 准备输入数据 input_ids = tokenizer.encode( text='春满神州花似锦-', # 输入文本 return_tensors='pt' # 返回PyTorch张量 ).to(device) ​ # 生成文本 output_sequences = model.generate( input_ids=input_ids, max_length=19, # 生成的文本总长度 num_return_sequences=1, # 返回的生成序列数量 no_repeat_ngram_size=2, # 避免重复的n-gram 防止相同词组重复出现,从而提高生成文本的多样性和自然性。 temperature=0.7, # 温度参数控制随机性 top_k=50, # 仅从前k个概率最高的单词中采样 top_p=0.95, # 只从前95%概率质量的词汇中进行随机采样 核采样策略 do_sample=True # 开启采样 ) ​ print(output_sequences) ​ # 解码并打印生成的文本 for sequence in output_sequences: generated_text = tokenizer.decode(sequence, skip_special_tokens=True) print(generated_text) ​ ​ if __name__ == '__main__': for i in range(3): test_text_generation()

运行结果:

4,gpt2-chinese-poem 古典诗词生成实例

实例代码:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM ​ ​ def test_text_generation(): # 使用设备(GPU/CPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # print(device) ​ # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../gpt2-chinese-poem') ​ # 加载模型 model = AutoModelForCausalLM.from_pretrained('../gpt2-chinese-poem') # print(model) ​ # 设置为评估模式 model.eval() ​ model.to(device) ​ # 准备输入数据 input_ids = tokenizer.encode( text='床前明月光,', # 输入文本 return_tensors='pt' # 返回PyTorch张量 ).to(device) ​ # 生成文本 output_sequences = model.generate( input_ids=input_ids, max_length=35, # 生成的文本总长度 num_return_sequences=1, # 返回的生成序列数量 no_repeat_ngram_size=2, # 避免重复的n-gram 防止相同词组重复出现,从而提高生成文本的多样性和自然性。 temperature=0.7, # 温度参数控制随机性 top_k=50, # 仅从前k个概率最高的单词中采样 top_p=0.95, # 只从前95%概率质量的词汇中进行随机采样 核采样策略 do_sample=True # 开启采样 ) ​ # print(output_sequences) ​ # 解码并打印生成的文本 for sequence in output_sequences: generated_text = tokenizer.decode(sequence, skip_special_tokens=True) print(generated_text) ​ ​ if __name__ == '__main__': for i in range(3): test_text_generation()

运行结果:

5,gpt2-chinese-lyric 歌词创作生成实例

示例代码:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM ​ ​ def test_text_generation(): # 使用设备(GPU/CPU) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # print(device) ​ # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../gpt2-chinese-lyric') ​ # 加载模型 model = AutoModelForCausalLM.from_pretrained('../gpt2-chinese-lyric') # print(model) ​ # 设置为评估模式 model.eval() ​ model.to(device) ​ # 准备输入数据 input_ids = tokenizer.encode( text='我爱你,就像老鼠太大米。', # 输入文本 return_tensors='pt' # 返回PyTorch张量 ).to(device) ​ # 生成文本 output_sequences = model.generate( input_ids=input_ids, max_length=300, # 生成的文本总长度 num_return_sequences=1, # 返回的生成序列数量 no_repeat_ngram_size=2, # 避免重复的n-gram 防止相同词组重复出现,从而提高生成文本的多样性和自然性。 temperature=0.7, # 温度参数控制随机性 top_k=50, # 仅从前k个概率最高的单词中采样 top_p=0.95, # 只从前95%概率质量的词汇中进行随机采样 核采样策略 do_sample=True # 开启采样 ) ​ # print(output_sequences) ​ # 解码并打印生成的文本 for sequence in output_sequences: generated_text = tokenizer.decode(sequence, skip_special_tokens=True) print(generated_text) ​ ​ if __name__ == '__main__': for i in range(3): test_text_generation()

运行结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 4:56:07

Raylib终极入门指南:5分钟快速上手游戏开发

Raylib终极入门指南:5分钟快速上手游戏开发 【免费下载链接】raylib raysan5/raylib 是一个用于跨平台 C 语言游戏开发库。适合在进行 C 语言游戏开发时使用,创建 2D 和 3D 图形应用程序。特点是提供了丰富的图形和音频处理功能、易于使用的 API 和多种平…

作者头像 李华
网站建设 2026/4/24 15:46:50

OCR识别延迟高?cv_resnet18_ocr-detection异步处理优化

OCR识别延迟高?cv_resnet18_ocr-detection异步处理优化 1. 问题背景:OCR识别为何变慢? 你有没有遇到这种情况:上传一张图片做文字检测,等了好几秒才出结果?尤其是在批量处理几十张图时,界面卡…

作者头像 李华
网站建设 2026/5/1 23:09:33

PyInstaller终极指南:3步将Python脚本打包成独立可执行文件

PyInstaller终极指南:3步将Python脚本打包成独立可执行文件 【免费下载链接】pyinstaller Freeze (package) Python programs into stand-alone executables 项目地址: https://gitcode.com/gh_mirrors/py/pyinstaller PyInstaller是一个功能强大的Python应用…

作者头像 李华
网站建设 2026/5/4 8:42:51

RDPWrap终极解决方案:快速修复Windows远程桌面多用户连接难题

RDPWrap终极解决方案:快速修复Windows远程桌面多用户连接难题 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 还在为Windows系统更新后远程桌面无法多用户连接而…

作者头像 李华
网站建设 2026/4/18 11:00:47

Bili.Uwp:解锁Windows平台哔哩哔哩的极致体验指南

Bili.Uwp:解锁Windows平台哔哩哔哩的极致体验指南 【免费下载链接】Bili.Uwp 适用于新系统UI的哔哩 项目地址: https://gitcode.com/GitHub_Trending/bi/Bili.Uwp 在Windows平台上,Bili.Uwp作为一款专为哔哩哔哩打造的第三方客户端,通…

作者头像 李华
网站建设 2026/4/29 11:06:02

Z-Image-Turbo实时生成优化:低延迟响应系统部署实战

Z-Image-Turbo实时生成优化:低延迟响应系统部署实战 Z-Image-Turbo是阿里巴巴通义实验室开源的一款高效AI图像生成模型,作为Z-Image的蒸馏版本,它在保持高质量输出的同时大幅提升了推理速度。该模型仅需8步即可完成图像生成,具备…

作者头像 李华