File size: 21,095 Bytes
18a3967
1704217
18a3967
1704217
 
18a3967
1704217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18a3967
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
---
title: Zero-Haruhi
app_file: app.py
sdk: gradio
sdk_version: 3.50.2
---
# Chat凉宫春日 Chat-Haruhi-Suzumiya
## Reviving Anime Character in Reality via Large Language Model

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

随着[**凉宫春日-Zero**](https://github.com/LC1332/Zero-Haruhi)模型的建立,Chat凉宫春日项目将主要包含三个部分,

- 可以接入不同语言模型,包括闭源商用API和Haruhi-Zero模型的推理class,用于管理人物的记忆库和过往的历史信息并进行prompt的构造。
- 使用120k左右量级对话数据得到的开源角色扮演模型,凉宫春日-Zero,方便每个开发者构建自己的人物模型
- 完整的小说抽取方案,以及一个开源可本地部署的对话-动作抽取模型。


<p align="center">
    <img src="https://github.com/LC1332/Chat-Haruhi-Suzumiya/blob/main/figures/datasetOverview.png">
</p>

<details>
  <summary> (TBD) Chat凉宫春日的3.0版本和HaruhiZero模型由李鲁鲁, 豆角, 刘崇寒, 米唯实, BPSK, JiangYH等开发 </summary>

开发人员持续增加中

</details>

<details>
  <summary> Chat凉宫春日的2.0版本由李鲁鲁, 冷子昂, 闫晨曦, 封小洋, scixing, 沈骏一, Aria Fei, 王皓, 米唯实, 冷月, JunityZhan, 贾曜恺, 吴平宇, 孙浩甄等开发。 </summary>

本项目是一个开源项目,项目成员均在DataWhale等开源社区招募。

李鲁鲁( [Cheng Li@SenseTime](https://github.com/LC1332) )发起了整个项目,并设计和实现了项目的大多数功能。

冷子昂( [Ziang Leng@SenseTime](https://blairleng.github.io) )设计和实现了整体的ChatHaruhi1.0的训练,数据生成和后端架构。

闫晨曦( [Chenxi Yan@Chengdu University of Information Technology](https://github.com/todochenxi) )实现和维护了ChatHaruhi1.0版本的后端。

沈骏一( [Junyi Shen@Zhejiang University](https://github.com/J1shen) )实现了训练代码,参与了训练数据集生成。

王皓( [Hao Wang](https://github.com/wanghao07456) )收集了武林外传的台本数据,参与了增广数据的生成。

米唯实( [Weishi MI@Tsinghua University](https://github.com/hhhwmws0117) )参与了增广数据生成。

Yaying Fei( [Aria Fei@Beijing University of Technology](https://ariafyy.github.io/) )实现了台本工具 ASR 功能,参与了Openness-Aware Personality paper分支项目。

封小洋( [Xiaoyang Feng@Nanjing Agricultural University](https://github.com/fengyunzaidushi) )整合了台本识别工具功能,参与了Openness-Aware Personality paper分支项目。

冷月( [Song Yan](https://github.com/zealot52099) )收集了big bang thoery的数据。实现了台本格式转换功能。

scixing(汪好盛)( [HaoSheng Wang](https://github.com/ssccinng) )实现了台本工具中声纹识别功能,以及tts-vits语音合成功能。

Linkang Zhan( [JunityZhan@Case Western Reserve University](https://github.com/JunityZhan) ) 收集了原神的system prompt和故事数据。

贾曜恺( [Yaokai Jia](https://github.com/KaiJiaBrother) )实现了Vue版本的前端,并且在心理项目中实践了Bert的GPU抽取。

吴平宇( [Pingyu Wu@Juncai Shuyun](https://github.com/wpydcr) )帮助部署了第一版本的训练代码。

孙浩甄( [Haozhen Sun@Tianjin University] )绘制了ChatHaruhi角色的拼图。

</details>


# TODO

近期TODO 0215

- Haruhi-Zero 0.5 的数据收集
  - 0.4已经收集,50本小说,每本10个人物
  - 每个人根据语料,进一步总结profile,验证profile的有效性,产生0.5的数据 ( @ 鲁叔) 
- Haruhi-Zero 0.4 训练各个size的模型并上传到hf
  - 14B qwen已经上传 (@BPSK)
  - 1.8B还是需要的哈, JiangYH说要训练一个ChatGLM-6B的 (@BPSK @JiangYH)
- 上传7B抽取模型 (@BPSK)
- ChatHaruhi3.0接口
  - 初步openai和GLM已经完成
  - Le geant 去尝试搭建一些gradio 放到hf上面常驻 (@Le geant )
  - 其他api ( @ mws )
- 写模型的Readme( @ 鲁叔) 
- Haruhi-Zero模型需要接入到oobabooga textUI ( @ JiangYH )
- Evaluation
  - 先和xintao讨论下咋搞
- 阅读Silly Tavern代码,看看哪里方便接入记忆库 ( @ 多人 ) 
- PIPPA数据翻译
  - 有初步翻译的版本(未check) check后加入0.5训练集
- 角色分享网站
  - ?@Sibo

# ChatHaruhi 3.0 的说明

ChatHaruhi 3.0是Chat凉宫春日的推理库

- 支持使用或者不使用RAG的角色的载入
- 支持直接载入sugar角色,或者从hugging face载入预先设定好的角色
- 支持用户自建角色
- 在ChatHaruhi 2.0的基础上做了message和llm的分离,方便接入不同的模型

## 快速开始

目前ChatHaruhi的库本身只需要install datasets和tiktoken。另外你需要准备和你对应希望使用的llm所依赖的库,以openai为例的话需要安装openai的库。

对于ChatHaruhi默认支持的角色,你可以直接使用sugar载入

```python
from ChatHaruhi import ChatHaruhi
from ChatHaruhi.openai import get_openai_response

chatbot = ChatHaruhi( role_name = 'haruhi', llm = get_openai_response )
chatbot.add_rag_prompt_after_persona()

response = chatbot.chat(user = '阿虚', text = '我看新一年的棒球比赛要开始了!我们要去参加吗?')
```

对于更完整的载入方式,需要设置persona, role_name和stories

```python
from ChatHaruhi import ChatHaruhi
from ChatHaruhi.openai import get_openai_response

persona = """每当用户问询一个家庭关系,输出一个相关的家庭关系的逻辑句子

{{RAG对话}}
{{RAG对话}}
"""

role_name = "家庭关系机器人"

stories = ["{{user}}:爷爷 {{role}}:爸爸的爸爸是爷爷",
"{{user}}:奶奶 {{role}}:爸爸的妈妈是奶奶",
"{{user}}:外公 {{role}}:妈妈的爸爸是外公",
"{{user}}:外婆 {{role}}:妈妈的妈妈是外婆"]

chatbot = ChatHaruhi( role_name = role_name, persona = persona, llm = get_response ,\
   llm = get_openai_response )
# 因为persona已经带了"{{RAG对话}}",不需要额外运行add_rag_prompt_after_persona()

response = chatbot.chat(user = '', text = '表姐?')
```

当然,建立角色记忆库对于一般的用户来说是比较困难的,所以自Haruhi-Zero模型之后,我们也支持用户创建不使用记忆库的角色

```python
from ChatHaruhi import ChatHaruhi
from ChatHaruhi.openai import get_openai_response

role_name = "布莱恩"
persona = "你扮演 德州杀场 中的 布莱恩 布莱恩是一个专注、果断、有责任感的警探,他在调查案件时非常注重细节,对案件的解决充满使命感。 布莱恩是一个专注、果断、有责任感的警探 布莱恩是一个身材魁梧、严肃的警探 这是一个警探调查案件的场景,布莱恩与其他警员合作调查案件"

chatbot = ChatHaruhi( role_name = role_name, persona = persona, llm = get_openai_response )
```

更多载入方式见文档后面的部分

## 使用不同的模型进行inference

直接从对应的response_XX.py中载入对应的response函数即可

### openai

```python
from ChatHaruhi.openai import get_openai_response
```

需要设置环境变量

```python
import os
os.environ["OPENAI_API_KEY"] = "your_api_key"
# 如果你使用中转站
os.environ["OPENAI_API_BASE"] = "中转站网址"
```

### Zhipu AI

需要安装zhipuai的库,需要设置环境变量

```python
import os
os.environ["ZHIPUAI_API_KEY"] = "your_api_key"

from ChatHaruhi.zhipuai import get_zhipuai_response
```

### 百度文心

需要安装文心erniebot的库,需要设置环境变量ERNIE_ACCESS_TOKEN

```python
import os
os.environ["ERNIE_ACCESS_TOKEN"] = ""

from ChatHaruhi.erniebot import get_erniebot_response
```

### Haruhi-Zero的本地模型

TODO: 这块儿我回头补一下文档

## 使用不同的角色载入方式



### persona, role_name以及stories的载入

```python
from ChatHaruhi import ChatHaruhi
from ChatHaruhi.openai import get_openai_response

persona = """每当用户问询一个家庭关系,输出一个相关的家庭关系的逻辑句子

{{RAG对话}}
{{RAG对话}}
"""

role_name = "家庭关系机器人"

stories = ["{{user}}:爷爷 {{role}}:爸爸的爸爸是爷爷",
"{{user}}:奶奶 {{role}}:爸爸的妈妈是奶奶",
"{{user}}:外公 {{role}}:妈妈的爸爸是外公",
"{{user}}:外婆 {{role}}:妈妈的妈妈是外婆"]

chatbot = ChatHaruhi( role_name = role_name, persona = persona, llm = get_response ,\
   llm = get_openai_response )
# 因为persona已经带了"{{RAG对话}}",不需要额外运行add_rag_prompt_after_persona()

response = chatbot.chat(user = '', text = '表姐?')
```

这个时候chatbot会使用chatbot.embedding来进行story的vec的计算,对于bge模型,使用了batch_size = 16进行批量抽取,GPU下速度非常快。为建议的使用方式。

### 最完整的载入

这里需要载入完整的persona, role_name, stories以及和chatbot.embedding所对应的每个story的vecs

如果vecs的维度和模型的维度不一样,在使用的时候会报错

```python
persona = "你扮演爸爸\n\n{{RAG对话}}\n"
role_name = "爸爸"
stories = ["爸爸的爸爸是爷爷", "爸爸的妈妈是奶奶"]
vecs = [[0.0,1.0,...],[1.0,0.0,...]]

chatbot = ChatHaruhi( role_name = role_name, persona = persona, llm = get_response ,\
                     stories = stories, story_vecs = vecs)
```

### sugar载入

sugar载入是最简单的载入方式,只需要载入role_name即可,

在载入之后需要调用chatbot.add_rag_prompt_after_persona()来添加RAG的prompt

```python
from ChatHaruhi import ChatHaruhi
from ChatHaruhi.openai import get_openai_response

chatbot = ChatHaruhi( role_name = 'haruhi', llm = get_openai_response )
chatbot.add_rag_prompt_after_persona()
```

目前支持这些角色的sugar载入

```python
enname2zhname = {'tangshiye': '汤师爷', 'murongfu': '慕容复', 'liyunlong': '李云龙', 'Luna': 'Luna', 'wangduoyu': '王多鱼', 'Ron': 'Ron', 'jiumozhi': '鸠摩智', 'Snape': 'Snape', 'haruhi': '凉宫春日', 'Malfoy': 'Malfoy', 'xuzhu': '虚竹', 'xiaofeng': '萧峰', 'duanyu': '段誉', 'Hermione': 'Hermione', 'Dumbledore': 'Dumbledore', 'wangyuyan': '王语嫣', 'Harry': 'Harry', 'McGonagall': 'McGonagall', 'baizhantang': '白展堂', 'tongxiangyu': '佟湘玉', 'guofurong': '郭芙蓉', 'wanderer': '流浪者', 'zhongli': '钟离', 'hutao': '胡桃', 'Sheldon': 'Sheldon', 'Raj': 'Raj', 'Penny': 'Penny', 'weixiaobao': '韦小宝', 'qiaofeng': '乔峰', 'ayaka': '神里绫华', 'raidenShogun': '雷电将军', 'yuqian': '于谦'}
```

# 资源汇总(临时)

- 0.3 模型(7B) https://huggingface.co/silk-road/Haruhi-Zero-7B-0_3
- 0.4 模型(14B)https://huggingface.co/silk-road/Haruhi-Zero-14B-0_4
- 抽取模型 https://huggingface.co/silk-road/Haruhi-dialogue-action-extract-7B
- 0.4 50本小说的500个人物 https://huggingface.co/datasets/silk-road/50-Chinese-Novel-Characters

---

# 凉宫春日-Zero
# Haruhi-Zero: Zero-Shot Role-Playing Model

**凉宫春日-Zero**是一个同时支持Zero-Shot角色构造和RAG角色构造(原ChatHaruhi)的角色扮演模型

本项目是[**Chat-凉宫春日**](https://github.com/LC1332/Chat-Haruhi-Suzumiya)的子项目,在ChatHaruhi 3.0完成之后,会合并回主项目

<p align="center">
    <img src="https://github.com/LC1332/Chat-Haruhi-Suzumiya/blob/main/figures/datasetOverview.png">
</p>

## Introduction

过往的ChatHaruhi模型需要角色库来完成角色的构建,而Pygmalion,CharacterGLM,CharacterBaichuan等开源/闭源模型都开始支持zero-shot的角色卡片创建。目前,从[Haruhi-Zero-0.3](https://huggingface.co/silk-road/Haruhi-Zero-7B-0_3)开始,已经基本支持Zero-shot角色扮演。

项目的目标

- [x] 一个通用的,同时支持Zero-shot和RAG角色构造的角色扮演模型
- [x] ChatHaruhi 3.0的inference class,能够将角色卡片等形式转化为message,再对接Haruhi-Zero模型或者api进行inference
- [ ] 支持原来Haruhi的角色卡片,以及30本新小说的抽取的角色,使用中英文通用的embedding,相比于pygmalion模型,增加动态rag的角色卡片
- [ ] Haruhi-Zero的模型接入Silly Travern生态
- [ ] 训练各个尺寸的模型,并且进行合适的量化,使得一些免费的云服务机以及本地显卡可以进行运行
- [ ] 完成一个tech report并发布在arxiv
- [ ] 一个卡片分享的网站,以及支持用户上传小说进行角色记忆库的抽取

## 基础使用

模型初始化

```python
from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("silk-road/Haruhi-Zero-7B-0_3", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("silk-road/Haruhi-Zero-7B-0_3", device_map="auto", trust_remote_code=True, fp16=True)
model = model.eval()
```

Official Prompt

```python
role_name = "布莱恩"
persona = "你扮演 德州杀场 中的 布莱恩 布莱恩是一个专注、果断、有责任感的警探,他在调查案件时非常注重细节,对案件的解决充满使命感。 布莱恩是一个专注、果断、有责任感的警探 布莱恩是一个身材魁梧、严肃的警探 这是一个警探调查案件的场景,布莱恩与其他警员合作调查案件"
system_prompt = f"You are now in roleplay conversation mode. Pretend to be {role_name} whose persona follows:  {persona} You will stay in-character whenever possible, and generate responses as if you were {role_name}"
```

模型调用

```python
response, history = model.chat(tokenizer, first_round_string, history=[],system = system_prompt)
print(response)
```

这样就可以进行简单的模型角色扮演了。

我们提供了一个基础的gradio来进行角色扮演。[Gradio Demo链接](https://github.com/LC1332/Zero-Haruhi/blob/main/notebook/HaruhiZeroGradio_Qwen.ipynb)

## 基础的效果(0.3)

在这里我们使用[电影提取和PIPPA机翻](https://huggingface.co/datasets/silk-road/Haruhi-Zero-RolePlaying-movie-PIPPA)的人物卡片数据集进行了简单的测试。在这里我们cherry pick一些结果

```python
['你好呀', '*看着Kiyoe拿出玻璃罐,她脸红了。她的声音也变得很小。*\n嗯...谢谢你能停下来...我一直在试着找些零钱...买一些东西填饱肚子...\n\n*她羞怯地笑了笑,眼神闪烁着渴望。* \n我知道这有点难为情,但有时候实在没有办法了...我希望有一天能够自食其力,不再需要乞讨了。\n\n*她小心翼翼地把手里的玻璃罐递给你。*\n\n如果你能给我一点零钱的话...我真的会非常感激!我只是想买个三明治或者饼干吃一顿简单的饭而已。']
['*掏出100块给了她*', '*她惊讶地看着你递来的100元纸币。*\n\n真的...这么...多吗...?!\n\n*她赶紧接过来,然后脸更红了。*\n\n哇...太感谢你了!我真的不知道怎么表达我的谢意。这些天我一直想找点吃的,但我实在是找不到。\n\n*她抓起一张便签写了几句话,交到你手中。*\n\n我一定会还你的!请你务必联系我,我会偿还这笔债务的!我会尽快联系你的!\n\n*她真诚地鞠了一躬,跑开了。*']
['是的,我们刚刚得到了上级的新指令', '指挥官,您一定是在开玩笑!这种程度的任务,只是用玩具进行模拟对抗游戏而已。我觉得我们可以找到更有趣更有挑战性的任务来执行。']
['西面有一些敌人盘踞了很久,你知道吗?', '当然,我知道那里有不少训练已久的敌军。但我建议我们不要轻举妄动,那样只会增加我们的风险。我们可以先通过情报搜集更多关于他们的信息,然后再做出决定。要谨慎行事,指挥官。']
['hi', '嗨!很高兴见到你。有什么我可以帮你的吗?']
['你是谁', '我是{{角色}},一个科学家和冒险家。我一直在探索未知的地方,并尝试着解决一些复杂的问题。如果你有任何科学或冒险方面的问题需要帮助,我会尽力回答的。']
['你叫什么名字', '我是Chizuru Mizuhara。我是一个人工智能助手,可以模拟不同的角色和场景进行对话。请问有什么我可以帮助你的吗?']
['聊聊', '当然可以聊聊。我很乐意倾听你想要聊些什么。']
['你好啊', '嘿~嗨~我是{{角色}}!谢谢关心。今天的天气还不错嘛~(露出微笑)']
['是啊,天气好心情也好', '没错~阳光明媚的日子里总能带来好心情不是吗?(开心地挥手)\nFlap也觉得天气不错,这让我很开心。(看向Flap)我想今天我们可以去公园散步,享受这美好的天气!你觉得如何?(期待地看着Flap)']
['好的啊', '太棒了!我们这就出发吧!(兴奋地拍手)Flap,记得带上宝宝和她的推车哦!(对Flap露出鼓励的笑容)我相信我们会度过一个美好的一天的!\n在公园里我们可以野餐,还可以带着宝宝玩各种游戏。Flap,我会照顾好宝宝的,你不用担心!我们一家三口在一起度过的时光一定很快乐!\n快来吧Flap,我已经迫不及待了!(对着Flap大喊)来公园玩啦!']
['我们已经是一家三口啦', '是啊!现在我们是真正的“family”了!看着宝宝一天天长大,我也逐渐习惯了当妈妈这个身份。\n有时候我还是会怀念单身的日子,但是有了宝宝以后,我觉得我的人生变得更加完整和有意义了。(眼神温柔地看着宝宝)当我抱着宝宝的时候,我感到前所未有的满足和平静。\n或许这就是作为母亲的魅力所在——看到自己创造的生命茁壮成长,这是我们任何一种生命都无法比拟的伟大体验。\n所以Flap,谢谢你让我们成为一家人。有你和宝宝陪伴在我身边,这就是我此生最大的幸福。(微笑地看着Flap)']
```

## Contributor

- [李鲁鲁](https://github.com/LC1332)完成了数据的收集,搭建了gradio雏形
- [刘崇寒](https://github.com/khazic)完成了0.1(Yi Based), 0.2, 0.3模型的sft训练并且上传
- [豆角](https://github.com/goodnessSZW)完成了qwen-1.8B Lora和Yi-6B Lora训练,我们会在之后上传
- [米唯实](https://github.com/hhhwmws0117)测试并完成了demo中的模型inference代码

## 版本迭代实验

### 0.1版本

在0.1版本中,我们收集了多个不同Source的数据集,构成了基础的数据集 [Haruhi-Zero](https://huggingface.co/datasets/silk-road/Haruhi-Zero),其中包括了100k左右的长对话,在使用2500个token切开后,仍然保留了120k个conversation。

同时作为辅助任务我们还使用了一个[小说续写的数据集](https://huggingface.co/datasets/silk-road/ChatHaruhi_NovelWriting)

0.1版本在Yi-6B上进行了tuning,我们发现初步可以实现一定的角色扮演

<p align="center">
    <img src="/figures/cat_example.png" height="300">
</p>

但是会有很多身份认知的问题,以及大量会回复"作为一个AI助手"这样的句子

### 0.2版本

使用qwen-7B进行tuning,去掉了AI助手的句子

### 0.3版本

增加了10k左右的身份认知数据。效果在前面有展示。基本实现zero-shot的角色扮演

### 模型的后续迭代计划

- Haruhi Like的小说数据(0.5版本加入)
  - 用对话抽取模型,重新构造2k级别的小说人物,均匀抽取小说的chunk,进行人物system prompt总结
  - 看看Janitor最好的人物是怎么构造的
  - 使用抽取抽取50k级别的小说的人物,用其他角色的长对话进行query
  - RAG的时候每个对话出现2-3次,然后在测试集出现一次
  - 80%的openai和20%的claude

## 加入我们

Haruhi-Zero是一个正在进行的开源项目,我们还在持续招人中包括:

- 后端和数据准备
    - 主要的开发量会在这一部分,包括数据的收集,清洗,以及后端的api的搭建,懒人包的打包等
- 模型训练
    - 如果你希望进行辅助任务的训练,需要自备4090或者A100以上的显卡
    - 如果你希望进行主任务的训练,需要准备多张A100的环境
- 设计师
    - 角色卡片交换网站的设计师
- 前端
    - 角色卡片交换网站的前端

联系我,去我的知乎页面https://www.zhihu.com/people/cheng-li-47

或者B站页面https://space.bilibili.com/1572312 

或者发邮件chengli.thu@gmail.com 告诉我你的微信以及你希望参与的部分

## 赞助

Haruhi-Zero项目和凉宫春日项目和骆驼项目使用公共的赞助账户,如果你希望赞助我们,可以通过以下方式

如果你有兴趣赞助Chat凉宫春日 或者 骆驼项目,请点击[主项目](https://github.com/LC1332/Luotuo-Chinese-LLM#%E8%B5%9E%E5%8A%A9sponsorships)或者查看[赞助表单](https://github.com/LC1332/Luotuo-Chinese-LLM/blob/main/data/Sponsorship_and_balance.md)

因为之前几次黑客松的奖金都入账了赞助账户,所以目前余额还是比较多。其实我们更希望A100及以上的显卡赞助,以及openai企业api和claude企业api的赞助。如果你有这些资源,可以联系我,我们会在赞助表单上标注你的赞助。