AIGC 诗歌创作实战指南与避坑手册
引言
AI 写诗并非玄学,而是基于大语言模型的文本生成任务。它既能生成具有赛博浪漫色彩的诗句,也可能出现强行押韵或逻辑不通的情况。本文将从技术原理、代码实现到前端集成,系统讲解如何利用 AIGC 进行诗歌创作。
AIGC 写诗原理
核心机制是'给定上文,预测下一个 token'。模型通过训练数据学习语言规律,本质上是一场超大规模的文本接龙游戏。
中文诗的特殊挑战
- 押韵:英文只需关注词尾,中文需遵循《平水韵》等格律,否则读起来像相声。
- 平仄:需要控制节奏感,否则会出现'拖拉机横冲直撞'的韵律。
- 意境:AI 擅长字面组合,但难以理解深层情感和文化隐喻。
主流模型训练机制
训练数据
- 古诗文网爬虫:全唐诗、全宋词及现代诗数据。
- 清洗规则:去除无效字符,统一语气词映射。
- 数据增强:随机替换词汇以增加多样性。
Loss 函数优化
在交叉熵损失基础上增加押韵惩罚项,引导模型学习正确的韵脚。
def rhyme_penalty(logits, target_tokens, rhyme_dict):
"""
logits: 模型预测的下一个 token 分布
target_tokens: 正确答案
rhyme_dict: 《平水韵》映射表
"""
penalty = 0
if target_tokens[-1] in rhyme_dict:
rhyme_class = rhyme_dict[target_tokens[-1]]
for token_id, logit in enumerate(logits):
if idx2token[token_id] in rhyme_dict:
if rhyme_dict[idx2token[token_id]] != rhyme_class:
# 不押韵就狠狠扣分
logits[token_id] -= 5.0
return logits
实操上手:Python 实现
使用 Hugging Face 上的预训练模型快速验证。
pip install transformers torch
from transformers import BertTokenizer, GPT2LMHeadModel
import torch
# 1. 模型&tokenizer 一步到位
tokenizer = BertTokenizer.from_pretrained()
model = GPT2LMHeadModel.from_pretrained()
model.()
prompt = *
inputs = tokenizer(prompt, return_tensors=)
torch.no_grad():
outputs = model.generate(**inputs, max_length=, do_sample=, temperature=, top_p=, repetition_penalty=)
poem = tokenizer.decode(outputs[], skip_special_tokens=)
(poem)



