🚀 千问7B角色扮演能力微调项目
本项目对千问7B模型进行微调和测试,赋予Qwen 7B角色扮演的能力,让其在文本生成任务中能够更好地模拟特定角色进行交流。
项目链接:https://github.com/LC1332/Chat-Haruhi-Suzumiya
🚀 快速开始
载入函数
from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("silk-road/ChatHaruhi_RolePlaying_qwen_7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("silk-road/ChatHaruhi_RolePlaying_qwen_7b", device_map="auto", trust_remote_code=True)
model = model.eval()
具体可查看这个notebook:https://github.com/LC1332/Chat-Haruhi-Suzumiya/blob/main/notebook/ChatHaruhi_x_Qwen7B.ipynb
示例代码
from ChatHaruhi import ChatHaruhi
chatbot = ChatHaruhi( role_name = 'haruhi', max_len_story = 1000 )
prompt = chatbot.generate_prompt(role='阿虚', text = '我看新一年的棒球比赛要开始了!我们要去参加吗?')
response, history = model.chat(tokenizer, prompt, history=[])
print(response)
chatbot.append_response(response)
目前支持role_name
、role_from_hf
、role_from_jsonl
多种角色格式载入。
✨ 主要特性
- 对千问7B模型进行微调,使其具备角色扮演能力。
- 支持多种角色格式载入,方便灵活使用。
📦 安装指南
文档未提及安装步骤,暂不展示。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("silk-road/ChatHaruhi_RolePlaying_qwen_7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("silk-road/ChatHaruhi_RolePlaying_qwen_7b", device_map="auto", trust_remote_code=True)
model = model.eval()
高级用法
from ChatHaruhi import ChatHaruhi
chatbot = ChatHaruhi( role_name = 'haruhi', max_len_story = 1000 )
prompt = chatbot.generate_prompt(role='阿虚', text = '我看新一年的棒球比赛要开始了!我们要去参加吗?')
response, history = model.chat(tokenizer, prompt, history=[])
print(response)
chatbot.append_response(response)
📚 详细文档
训练数据
模型训练与维护
- 模型是由豆角训练的。
- Qwen inference代码由米唯实编写,并接入Chatharuhi,目前进行本模型维护和bug解决。
- 李鲁鲁编写了ChatHaruhi内部的prompt组织函数。
测试示例
一个哈利波特测试示例可查看:https://github.com/LC1332/Chat-Haruhi-Suzumiya/blob/main/notebook/Harry_Potter_test_on_Qwen7B.ipynb
🔧 技术细节
文档未提及具体技术细节,暂不展示。
📄 许可证
本项目采用Apache-2.0许可证。