🚀 千問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許可證。