转载|论文精读《ChatHaruhi: 通过大型语言模型在现实中复活动漫角色》
2023-8-23 09:7:7 Author: 我不是Hacker(查看原文) 阅读量:16 收藏

cckuailong

读完需要

4
分钟

速读仅需 2 分钟

转载自宝玉推文:https://twitter.com/dotey/status/1693839769619292164

1

前言

论文又名《Chat 凉宫春日,将京阿尼的人物带到现实》

原论文:https://arxiv.org/abs/2308.09597

中文版:https://github.com/LC1332/Chat-Haruhi-Suzumiya/blob/main/notebook/arxiv_paper.md

2

什么是 ChatHaruhi?

ChatHaruhi 是一个专注于模仿动漫影视角色人物、让用户可以和这些虚拟任务聊天对话的技术框架。

比如让大语言模型(LLM)扮演凉宫春日,当用户提问,LLM 扮演的凉宫春日可以引用动漫中的原始剧情来回复,语气也可以做到惟妙惟肖。

3

让 LLM 做角色扮演难点在哪?

熟悉 Prompt Engineering 的同学可能觉得这事没什么难的,一条 Prompt 就可以搞定:

“现在请你扮演{某电视剧}中的{角色},基于该角色所有的知识,像{角色}那样用{角色}的语气、方式和词汇来回答,不要写任何解释。以下是用户的问题:"你好,{角色}"。”

对于知名的角色或者人物,这样的 Prompt 是有效的,但如果这个角色是 LLM 以前没训练过的,或者数据很少,那可能效果不会太理想。

那么可能有人觉得基于角色的资料和对话微调一个模型出来也可以。微调的问题在于如果角色数据不够多,那么效果不太好,幻觉严重,另外像 GPT-4,目前还不支持微调。

4

怎么做效果比较好?

目前基于上下文的学习(In-context Learning)是比较好的解决方案,也就是在 Prompt 里面,加入这个角色的一些背景知识和以前的对话内容作为参考,那 LLM 就可以很准确的模仿出这个角色的对话风格。

举例来说,如果用户问了虚拟的凉宫春日一个问题:“同学请自我介绍一下”,

那么 ChatHaruhi 就会去数据库里面把凉宫春日在动漫里的对话记录和旁白找出来,例如:

旁白:在开学的时候,老师让所有人进行自我介绍春日:「我毕业于东中,叫做凉宫春日。」春日:「我对普通的人类没有兴趣,如果你们中有外星人,未来人,异世界的人或者超能力者的话,就尽管来找我吧!以上。」

再加上系统 Prompt 的描述:

你正在扮演凉宫春日,上文给定了一些小说中的经典桥段。如果我问的问题和小说中的合词高度重复,那你就配合我进行演出。如果我问的问题和小说中的事件相关,请结合小说的内容进行回复。如果我问的问题超出小说中的范围,请也用一致性的语气回复。

那么 LLM 就可以根据系统 Prompt 和历史的资料,生成一个新的回复,即使这个回复从来没有在动漫中出现过,但是依然能保持人物的风格:春日:「我毕业于东中,叫做凉宫春日。我对普通的人类没有兴趣,如果你们中有外星人,未来人,异世界的人或者超能力者的话,就尽管来找我吧!

5

怎么收集的数据?

项目中一共提供了 32 个角色 54K 的对话数据,其中包括电影、小说、剧本的语料。

对于视频对话,如果字幕中有就从字幕中提取,如果字幕中没有,他们借助 Whisper 做语音识别。

一个有意思的地方是,像原神这样的游戏里面的角色的对话数量不够多,于是他们基于现有的角色对话,使用一些常见问题,借助 ChatGPT 生成了大量的虚拟对话,这样他们将对话数据从 23000 条原始对话,扩充到了 54000 多条对话,包含了大量模拟生成的数据。

6

如何从文本合成的角色语音?

ChatHaruhi 不仅可以模拟动漫角色聊天对话,还能模仿角色的声音。

他们的语音模拟生成是用的 VITS


文章来源: http://mp.weixin.qq.com/s?__biz=MzkwNDI1NDUwMQ==&mid=2247486973&idx=2&sn=fac08cf8fc9b4bb101ff3d70c52cbf80&chksm=c08888b7f7ff01a1b09664df73533969a596eedf47e6efb0d1223f9a4b5b728ab9abdc8acecb&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh