news 2026/10/5 5:49:56

基于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/10/2 17:04:12

为什么选Sambert做中文TTS?多发音人优势与部署价值分析

为什么选Sambert做中文TTS?多发音人优势与部署价值分析 1. 开箱即用:Sambert多情感中文语音合成真能“零配置”上手吗? 很多人第一次听说Sambert,是在某个需要快速生成中文语音的深夜——比如要给短视频配旁白、给内部培训材料加…

作者头像 李华
网站建设 2026/10/2 22:25:32

Git Cola终极指南:5分钟掌握图形化Git操作

Git Cola终极指南:5分钟掌握图形化Git操作 【免费下载链接】git-cola git-cola: The highly caffeinated Git GUI 项目地址: https://gitcode.com/gh_mirrors/gi/git-cola Git Cola是一款基于Python开发的Git图形用户界面工具,它通过简洁直观的界…

作者头像 李华
网站建设 2026/10/3 22:05:44

ESPHome JK-BMS:打造智能家居电池管理系统的完整指南

ESPHome JK-BMS:打造智能家居电池管理系统的完整指南 【免费下载链接】esphome-jk-bms ESPHome component to monitor and control a Jikong Battery Management System (JK-BMS) via UART-TTL or BLE 项目地址: https://gitcode.com/gh_mirrors/es/esphome-jk-bm…

作者头像 李华
网站建设 2026/10/2 22:25:33

CVAT任务管理终极指南:5个高效技巧让团队协作事半功倍

CVAT任务管理终极指南:5个高效技巧让团队协作事半功倍 【免费下载链接】cvat Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/10/2 22:25:32

为什么桌面AI客户端成为高效工作者的秘密武器?

为什么桌面AI客户端成为高效工作者的秘密武器? 【免费下载链接】chatbox Chatbox是一款开源的AI桌面客户端,它提供简单易用的界面,助用户高效与AI交互。可以有效提升工作效率,同时确保数据安全。源项目地址:https://gi…

作者头像 李华
网站建设 2026/10/2 23:21:39

Saber:跨平台开源手写笔记应用的技术架构与实现深度解析

Saber:跨平台开源手写笔记应用的技术架构与实现深度解析 【免费下载链接】saber A (work-in-progress) cross-platform libre handwritten notes app 项目地址: https://gitcode.com/GitHub_Trending/sab/saber Saber是一款基于Flutter框架开发的跨平台手写笔…

作者头像 李华