文本风格迁移(负责人:冯威)
1. 任务定义与目标
任务定义:文本风格迁移旨在在保持原始语义与关键信息完整不变的前提下,将源文本转化为目标风格。
目标:本次项目实训聚焦于两种风格迁移场景:
文学风格迁移:将输入文本转换为指定经典作品的写作风格,重现其惯用词汇、典型句式、修辞手法及人物对话模式。
猫咪解题风格迁移: 在数学或逻辑推理问答中注入拟人化“猫咪”语气标记与装饰性表情,既保证推理正确性,又呈现“喵~”风格的活泼俏皮效果。
2. 明确技术选型
2.1 数据集的收集与特征分析
通过收集相应数据集发现数据大多是非平行语料,无法直接用于监督微调,
两类主流解决方案如下:
- 使用类似于回翻技术来构造伪平行语料进行监督微调
- 采用类似于GAN的思想,通过引入判别器网络对生成序列进行域判别,构建生成器-判别器的最小最大博弈框架,使生成器在隐式监督下逼近目标语言分布
结论:利用预训练模型通过构造特定的风格提示词生成伪风格化数据来构建初始训练集,进行快速验证,后续预研 GAN 对抗训练框架。
2.2 微调方法
框架对比:
- 全量参数微调:对预训练语言模型的所有参数进行更新,对下游任务最有针对性,但是其容易过拟合。
- 部分参数微调:采用类似于Adapter,LoRA以及Prefix-Tuning的方法,通过冻结大部分模型参数,仅微调少量关键参数,以降低计算成本并提高训练效率。
结论:为在保留已增强的数学推理能力前提下进行风格迁移,我们放弃全量微调,采用部分参数微调,并最终选用 Prefix‑Tuning —— 它无需切换或重载模型,仅替换前缀向量即可实现多风格切换。
2.3 损失函数选择
文本风格迁移的效果可以从内容保留度,风格化程度以及生成语句的通顺度三方面来衡量,所以初步设想使用如下三种损失:
自重建损失:以原句风格前缀和内容前缀为条件,重建输入句子,最小化负对数似然。
风格分类损失:对生成句子进行交叉熵监督,确保输出符合目标风格。
循环重建损失: 将一次迁移生成的句子用原始风格前缀再生成回原风格,最小化重建误差,以增强内容保持。
3. 完成风格化数据的获取
3.1 西游记古今对照语料获取:
数据来源:
- 古典原文:利用 `requests` + `BeautifulSoup` 调用 Wikisource API批量下载“第1回”到“第60回”各章节内容
- 现代白话译文:购买电子版内容,同时将其拆分成 100 个 TXT 文件:raw/modern/01.txt … raw/modern/100.txt
句级对齐技术实现:
1.数据预处理: 通过preprocess()方法
古文与白话文进行了统一的预处理,包括简繁转换、分句切分和短句过滤。
2. 初步对齐: 基于 BERT 语义模型提取句级语义向量,并通过双向最大余弦相似度匹配策略完成初步对齐(对应 align_sentences()
方法)
3. 对齐优化: 使用如下方法优化对齐质量
-
关键词重叠度:使用
keyword_overlap()
方法检测句子中的关键词重叠情况。 -
句长比例规则:通过
length_ratio_filter()
方法,确保句对在长度上的合理匹配
4.语义增强与过滤: 使用 DeepSeek API 对边界样本进行置信打分和语义增强。
结论:最终构建出一套结构清晰、语义对齐的高质量伪平行语料库。
3.2 猫咪解题风格语料获取:
为了构建具备“猫咪风格”的解题语料,我们基于原始问答数据设计了提示词模板,并调用学校提供的 DeepSeek API 实现自动风格化重写。使用提示词,引导模型在不损失数学逻辑的正确性和研究性的条件下输出更具风格特征的回答文本。
4. 完成 Prefix-Tuning 方法的初步实现,并对 LoRA 与 Prompt 工程进行对比验证
完成了 Prefix-Tuning 方法的初步实现,并在猫咪解题风格语料上与 LoRA 及 Prompt 工程进行了对比实验,评估了各方法在风格迁移质量方面的表现。
4.1 Prefix-Tuning 方法实现
基于Qwen2.5-1.5B-Instruct模型,采用Activation 级Prefix方案对预训练语言模型进行了微调。该方法通过在模型输入前添加可训练的前缀向量,实现了在冻结原始模型参数的情况下,仅调整少量参数以适应特定任务。
4.2 LoRA 与 Prompt 工程对比验证
为了全面评估参数高效微调方法的效果,引入了 LoRA和 Prompt 工程两种技术进行对比实验。
-
LoRA 方法:通过在模型的注意力层中引入低秩矩阵,实现了在冻结原始模型参数的同时,仅调整少量新增参数以适应新任务。实验结果显示,LoRA方法在分析过程中存在明显逻辑错误,同时使用了错误的专业术语;此外,模型还出现了轻度过拟合的迹象。
-
Prompt 工程:通过设计特定的提示词,引导预训练模型生成符合目标风格的文本,实验结果显示,Prompt‑Engineering的方法使用了错误的专业术语,以及风格化不足程度严重不足。
文本风格迁移功能进度总结:
目前,已完成文本风格迁移任务的核心实现工作,包括技术选型和风格化数据获取同时完成了 Prefix-Tuning 方法的初步实现,并与 LoRA 和 Prompt 工程进行了对比验证。接下来,将重点缓解 Prefix-Tuning 方法的过拟合问题,计划通过引入内容Prefix和任务Prefix,同时采用三种损失函数来进一步优化模型表现。