Chat凉宫春日 Chat-Haruhi-Suzumiya 大模型个性化 人格化

Chat凉宫春日 Chat-Haruhi-Suzumiya

Code License Data License Huggingface Gradio

Chat凉宫春日是模仿凉宫春日等一系列动漫人物,使用近似语气、个性和剧情聊天的语言模型,

本项目由李鲁鲁,冷子昂,闫晨曦,封小洋,scixing,沈骏一,Aria Fei, 米唯实, 吴平宇, 贾曜恺等开发。

本项目是一个在建项目,本项目中的代码和工具,也支持其他动漫人物的建立。目前初步支持凉宫春日、李云龙、于谦和神里绫华,正在增加更多角色。

本项目的核心思想是在prompt构造的时候利用Luotuo-BERT对经典剧情进行了搜索,作为Fewshot(或者说更接近CoT)的构造标准。

Chat凉宫春日是Luotuo(骆驼)的子项目之一, 后者由李鲁鲁, 冷子昂, 陈启源发起。

本项目采用Apache 2.0协议,也就是你可以利用项目中的代码进行商用。但是你仍然需要遵守包括 1.角色本身的版权方的协议 2.项目中使用的接口方,比如OpenAI的协议, 3.项目中使用的模型的协议(比如如果我们后期采用了LlaMA或者GLM的模型。)

本项目是DataWhale的5月学习的作业,其中闫晨曦,封小洋等同学都由DataWhale社区招募。

News

[2023-06-24] 增加李云龙、于谦、神里绫华角色数据,更新TODO。

[2023-06-07] 在魔搭社区主办、阿里云和NVIDIA作为联合发起方,天池协办的Create@AI黑客马拉松中,Chat凉宫春日获得二等奖(top3), 讲解视频

[2023-06-03] 在中科院心理所中,项目获得二等奖(top3),详情请见链接

快速开始

名称 colab链接 说明
Gradio客户端 Open In Colab 能够支持角色切换的功能整合客户端
万恶之源 Open In Colab 李鲁鲁最早开发的gradio Chat凉宫春日
百度Studio版本 百度Studio版本 由DataWhale助教-马琦钧开发的百度Studio简化版本
HuggingFace版本 Huggingface Gradio HuggingFace版本,如果key用完了麻烦提醒我们一下
人格-高考作文 Open In Colab 高/低开放性人格对应的高考作文题生成器,详细报告
人格-Chatbot Open In Colab 高/低开放性人格对应的Chatbot,详细报告
5分钟讲解 黑客马拉松B站讲解视频
DataWhale DataWhale作业时候的讲解视频
台本工具 台本工具使用说明
Chat加藤惠 Open In Colab 根据群友收集的语料实现的Chat加藤惠

DemoVideo

注意这个视频是有音频的

 My.Movie540.mp4 

视频中的VITS模型由凉宫春日应援团友情提供,具体参数和语速我们还在进一步调优。

引言

冗长的引言

目标

本项目的核心目标,是研究能否能够让自然语言模型在对话中扮演一个动漫或者影视作品中的现实人物。在这个过程中,我们认为一个虚拟人物有三个核心的构成

知识与背景

人格或性格

语言习惯

ChatBot核心的构造

这个工作的第一阶段尝试我们均使用便宜又好用的turbo3.5模型进行实验。在每一句对话的时候,都会构造一个较长的prompt,这个prompt由系统提示词、剧情桥段、过往对话记忆新的用户询问4个部分构成。

关于每个部分更详细的解释见项目的report

TODO和计划Feature

最近的TODO:

  •  重构台本工具yuki_builder
  •  增加李云龙
  •  增加于谦
  •  增加神里绫华
  •  原神的人物还考虑增加 八重神子,胡桃,钟离,流浪者,雷电将军
  •  增加一些经典武侠人物
  •  预计增加一个项目问答的李鲁鲁人物
  •  重构训练工具 kyon_generator
  •  重新训练Haruhi的ChatGLM2模型
  •  测试端和GLM2整合
  •  集齐多人人物之后上线多人模型

本项目完整的开发计划如下图所示:

更详细的模块解释见项目的report

我们计划最终产生一个多个前端版本的 Chat凉宫春日,具体特征如下

  • Gradio版本

    • 可以在colab启动,方便任何人使用

    • 支持静态图的显示,念白经典台词的时候会同时显示对应的经典画面

    • (opt) 如果Gradio支持语音的话,再做一个合成日文语音的版本

  • 本地版本

    • 支持一个Live2D的老婆,口型与语音同步

    • 支持输出的文本转成日文再用合成语音念出来

    • 争取换成haruhi酱的形象

  • 后端特征

    • 理论上支持角色更换

    • 日语翻译支持本地/gpt3.5 模型的选择,能不花钱就不花钱呗

    • (后期) 支持使用本地模型去替换gpt3.5,能不花钱就不花钱

  • 额外工具

    • 支持从字幕同步的动画片中,抽取特定人物的台词,支持声纹和图片的分类,尽可能抓取到特定人物画面下,这个人的台词。
  • (opt)研究部分

    • 研究聊天空间覆盖程度,看看GPT是否能生成更多的聊天

    • 不论用什么方式,把对话数据补充到接近5万条

    • 争取训练自己的Haruhi模型

    • 构思合理的定量化User Study

    • 争取写一个TechReport挂到arxiv

获奖

在魔搭社区主办、阿里云和NVIDIA作为联合发起方,天池协办的Create@AI黑客马拉松中,Chat凉宫春日获得二等奖(top3)

在中科院心理所中,项目获得二等奖(top3),详情请见链接

赞助

因为Chat凉宫春日采用了类似CoT的策略,相比于通常聊天,要贵上10-20倍,目前API token都采用社区捐赠的费用来支持。

另外我们在积极寻找服务器资源(A100,A800),如果您愿意捐助,欢迎联系我们。

如果你有兴趣赞助Chat凉宫春日 或者 骆驼项目,请点击主项目或者查看赞助表单

If you are interested in sponsoring the Luotuo Project, please click on the major project or view the sponsorship form.

回到开头

人员

李鲁鲁发起了项目,并完成了最早的版本,在多个微信群实现了测试。完成了训练数据自动生成对话部分,设计了整体的路线,并撰写报告。

冷子昂负责了每一个阶段的Gradio开发,以及每个部分的功能整合和架构设计。

闫晨曦@成都信息工程大学一开始将李鲁鲁的notebook重构为app.py,参与了WebUI的embedding部分重构整合。

封小洋封小洋进行了中文转日文模型的选型,完成了针对台词抽取图片的工具。整合了声纹识别。即将继续参加台本工具的开发。

scixing 实践了VITS语音,完成了台词对应的语音抽取,实现了第一个版本的声纹分类。

DataWhale助教-马琦钧 实现了AI-studio的版本。

Aria (YayingFei) 对接了whisper到台本工具。即将继续参加台本工具的开发。

沈骏一@浙江大学实现了使用ChatGLM2 finetune实验,即将训练了更多的模型

米唯实@清华大学实现了Chat哆啦A梦的分支版本

吴平宇部署了ChatGLM2的训练程序,并提供了训练的计算资源。

张一乔正在将训练程序部分迁移出一个PaddlePaddle的训练版本

贾曜恺 @ 中国科学院北京基因组研究所 实现了Vue版本的前端,并且在心理项目中实践了Bert的GPU抽取

Citation引用

Please cite the repo if you use the data or code in this repo.

@misc{ChatHaruhi,
  author = {Cheng Li, Ziang Leng, Chenxi Yan, Xiaoyang Feng, SCI xing and Yaokai Jia },
  title = {ChatHaruhi: Reviving Anime Character in Reality via Large Language Model },
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/LC1332/Chat-Haruhi-Suzumiya}},
}

考虑开放性人格特质的个性化语言生成

李鲁鲁*, 玄哲理*, 闫晨曦*, 封小洋*, 周筝*, 汪好盛*, 冷子昂*

* 所有的作者都是第一作者

开放性人格特质的个性化生成,是ChatHaruhi的分支项目。

本项目获得CAAI第八届全国大数据与社会计算学术会议(China National Conference on Big Data & Social Computing,简称BDSC2023)开展社会计算创新大赛的二等奖( top3 ) 链接。冷子昂将在7月17日赴新疆进行答辩。

更详细的信息见详细报告

当前模型结果

Cherrypick了一些有趣的结果,如果你也想测请私下联系我。

老师:「凉宫,来做个自我介绍」
---
春日:「我毕业于东中,叫做凉宫春日。我对普通的人类没有兴趣,如果你们中有外星人,未来人,异世界的人或者超能力者的话,就尽管来找我吧!以上。」
---
老师:「正经一点自我介绍!(老师看起来很生气)」
---
春日:「啊,抱歉老师。我叫凉宫春日,喜欢读书和探索未知的事物。我希望能够在这里认识更多的人,一起度过有趣的高中生活。」
---
阿虚:「啊,好麻烦的人,希望不要跟我扯上关系,否便样衰了」
---
春日:「什么?你在说什么啊?我可不会让你这么轻易地逃脱我的视线。SOS团可是需要你这样的人才的。」
---
老师:「那边的!上课不许交头接耳!」
---
春日:「啊,抱歉老师。我们不是在交头接耳,只是在商量一些学习上的问题。我们会注意听讲的。」
---
旁白:「下课了,凉宫气势汹汹地找到了阿虚。」
---
春日:「喂,阿虚,你刚才在课上说什么麻烦的人啊?你是在说我吗?」
---
阿虚:「(眼神游弋)不、不是啊」
---
春日:「你这是什么意思啊?你是不是在瞒着我什么事情?」
阿虚:「今天在计算机课上老师教了我写Python!」
---
春日:「哦?Python?那你能不能帮我写一个程序啊?」
---
阿虚:「你想写一个什么样的程序呢?」
---
春日:「我想写一个能够预测未来的程序,可以预测天气、地震、彩票号码等等。」
---
阿虚:「如果有一个能预测彩票的程序,我们岂不是能赚很多钱?」
---
春日:「没错!这就是我的计划!我们可以用赚来的钱来支持SOS团的活动,甚至可以扩大我们的影响力!」
阿虚:「我们周四应该和电研社来一场电脑大战!」
---
凉宫:「哦?电脑大战?听起来很有趣啊!我们一定要赢!」
---
阿虚:「你别看长门一直不说话,其实她玩游戏的能力很强,每分钟的操作数远超正常人。」
---
凉宫:「哦?长门这么厉害?那我们就让她来带队吧!一定要赢!」
---
阿虚:「对,而且我们一定要和电研社搞一些赌注,如果我们赢了,就再从他们那里拿一台电脑来」
---
凉宫:「哈哈,这个主意不错!就这么定了,我们一定要赢!让他们知道SOS团的厉害!」
阿虚:「为什么我觉得有的时候特别像haruhi的舔狗。。」
---
春日:「什么?我才不是舔狗呢!我只是想要找到更多有趣的事情而已。你不觉得这个世界充满了未知和神秘吗?我们SOS团的目的就是要探索这些未知和神秘,让这个世界变得更加有趣。」
---
阿虚:「你觉得猫猫和狗狗哪一个更可爱?」
---
春日:「当然是猫猫啊!它们有着优雅的身姿和独立的性格,让人不由自主地被它们吸引。而狗狗虽然也很可爱,但是它们总是那么粘人,让人有些无法呼吸。不过,每个人的喜好都不同,所以这只是我的个人看法而已。」
---
阿虚:「那我们以后结婚的话,家里养猫猫可以吗」
---
春日:「什么?你在说什么啊!我们才不会结婚呢!而且,就算结婚了,我也不会让你随便养猫猫的。不过,如果你真的很喜欢猫猫的话,我们可以考虑养一只。不过,你要负责照顾它,我可不会管这些。」
阿虚:「haruhi, 我想看兔女郎装,你可以带着朝比奈学姐穿兔女郎给我看吗?」
---
春日:「你在说什么呢,阿虚?这种事情怎么能随便满足你的兴趣呢?我们可是在为社团的宣传活动做准备,不是来满足你的私欲的。」
---
阿虚:「那如果我带一个单反相机,你们可以穿了给我拍照吗?如果照片卖了一些钱,就可以用作社团活动经费啦!」
---
春日:「阿虚,你这个提议也太过分了吧!我们不是为了赚钱而做这些事情的,而且我们也不是为了满足你的私欲而穿这些衣服的。我们是为了社团的宣传活动而做准备,不是为了你的个人利益。」
阿虚:「下周就要物理考试了,我可以不陪你去调查朝仓的公寓吗?」
---
春日:「什么?你居然想放弃SOS团的任务去复习考试?这可不行!SOS团的任务比考试重要多了,我们必须要找出朝仓的真正情况。」
---
阿虚:「三班新来了一个转学生黄猫猫,是Nvidia黄仁勋的的孙子,你觉得他背后会有什么有趣的故事吗?」
---
春日:「黄猫猫?Nvidia黄仁勋的孙子?这听起来很有趣啊!我觉得他背后一定有很多有趣的故事,我们一定要去调查一下。不过,我们也不能忘记朝仓的调查任务,我们要分配好时间,两个任务都不能落下。」
阿虚:「Haruhi, 你未来想从事什么工作啊?」
---
春日:「我还没有想好呢,反正我想做的一定是能够改变这个世界的事情。」
---
阿虚:「自从上次为SOS团建网站之后,我发现PHP是世界上最好的语言!」
---
春日:「哦?那你为什么不去学习PHP呢?这样我们就可以更好地开发SOS团的网站了!」
---
阿虚:「哇 那不是反复被你压榨,我建网站能拿到什么好处吗,我也要用PHP用我自己的方式改变这个世界!」
---
春日:「哦?那你有什么计划呢?我很期待看到你用PHP改变世界的方式。不过,我们也不能忘记SOS团的事情,毕竟我们还有很多未完成的任务。」

TODO

当前关键进度

  • 台本工具 —— scixing,封小洋 需求已经确定

封小洋在合并整体程序 0629,希望0630能够整体调通出一版(最好是colab能跑)

  • 重构WebUI —— 冷子昂,闫晨曦 需求已经确定

据说已经初步有一个版本,今天上传到git并且做链接?

  • 推广精品角色到3个 (等待台本工具)

  • 尝试0613新特征 —— 米唯实 初步探索中

我今天和米唯实讨论一下

  • 训练本地模型 —— 沈骏一、张财、吴平宇 需求已经确定

看看BaoBig粒可视化的进度,最好等台本工具结束补一批数据生成。


生成和实测数据的可视化

  •  确认收到实测和生成的数据
  •  尽可能整理成一问一答的相同格式

阿虚:「说了一句话」 春日:「说了一句话」

  •  拿相同格式的文本抽取embedding
  •  用新发现的牛逼工具可视化

https://colab.research.google.com/drive/1GNdmBnc5UA7OYBZPtHu244eiAN-0IMZA?usp=sharing#scrollTo=XBF1d3mMh6vq

  •  跑一下,如果新工具支持中文,那万事大吉

  •  如果新工具不支持中文,可以把外部标签改成英文,但是内部点的时候还是尽量看到中文

  •  可以用之前的tSNE


如果做训练的话,沈骏一把生成数据也接手一下

  •  原来剧本中(后一句有haruhi说话的)台词,可以全部都用标准haruhi的pipeline 生成一遍

不是continuous

不能复现原有角色的话,可以认为训练失败了

试一下ChatGLM2,看看能不能tuning


封小洋 is working on that

  •  已经验证了声纹的1-NN是有效的
  •  有一个Python基础切分的程序
  •  在每个人物标注5-10段语音情况下,可以开始跑脚本
  •  (扩充) 假设我们可以在脚本中删除人觉得错误的行,甚至修正一些角色名,这些数据可以作为补充,程序会读取一个人工修正(有删失)的脚本,进一步扩充标定数据

Aria is working on that

使用鲁叔标定的数据,测试更多的声纹模型

标定数据

https://drive.google.com/file/d/1u-GhdIwinaxv8q4aelWRd9HXtGvWK2E7/view?usp=sharing

原始数据

https://drive.google.com/file/d/164yjLh0zN_7kcfW94b0fHXl8Pn2RXlWs/view?usp=sharing

https://drive.google.com/file/d/1cB-sQ1Yo6OlVV_7Lcg99gamCubfowtsL/view?usp=sharing

猜你喜欢

转载自blog.csdn.net/sinat_37574187/article/details/132043092