🚀 西班牙閒聊版DialoGPT-medium
這是一個基於Transformer解碼器的GPT - 2模型,專為西班牙語單輪對話任務而調整。我們對微軟的DialoGPT - medium 3.45億參數模型進行了微調,遵循CLM(因果語言建模)目標。
🚀 快速開始
本模型是一個經過微調的GPT - 2模型,適用於西班牙語單輪對話任務。以下將詳細介紹其使用方法。
✨ 主要特性
- 基於Transformer解碼器架構,專為西班牙語單輪對話任務定製。
- 微調自微軟的DialoGPT - medium模型,具有3.45億參數。
- 遵循CLM(因果語言建模)目標進行訓練。
📦 安裝指南
暫未提及安裝步驟,若需使用可參考Hugging Face相關模型的安裝方法。
💻 使用示例
基礎用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
CHAT_TURNS = 5
MAX_LENGTH = 1000
model = AutoModelForCausalLM.from_pretrained('ITG/DialoGPT-medium-spanish-chitchat')
tokenizer = AutoTokenizer.from_pretrained('ITG/DialoGPT-medium-spanish-chitchat')
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model.to(device)
for i in range(CHAT_TURNS):
user_input = input(f"Step - {i} >> user prompt ->")
with torch.no_grad():
user_inputs_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt")
user_inputs_ids = user_inputs_ids.to(device)
chat_history = model.generate(user_inputs_ids, max_length=MAX_LENGTH, pad_token_id=tokenizer.eos_token_id)
step_model_answer = tokenizer.decode(chat_history[:, user_inputs_ids.shape[-1]:][0], skip_special_tokens=True)
print(f"Step - {i} >> DialoGPT-spanish model answer -> {step_model_answer}")
示例對話展示
角色 |
回覆 |
用戶 |
Hola, buenos dias |
機器人 |
Buenos días |
用戶 |
¿Qué tal estás? |
機器人 |
Fenomenal, gracias. |
用戶 |
¡Tengo hambre! |
機器人 |
Quizá picar algo te ayude. |
用戶 |
Estoy triste |
機器人 |
Siento escuchar eso. |
用戶 |
¿Tienes personalidad? |
機器人 |
Soy un bot. |
用戶 |
¡Cuenta un chiste! |
機器人 |
En realidad no tengo tanta gracia. |
用戶 |
Jajajajajajajaja |
機器人 |
¡Me alegro de que te rías! |
📚 詳細文檔
數據集
我們使用了Bot Framework Tools倉庫中可用的數據集之一。我們處理了西班牙語專業風格的個性閒聊數據集,該文件可在此處下載。
微調超參數
超參數 |
值 |
驗證集劃分比例 |
20% |
訓練批次大小 |
8 |
學習率 |
5e - 4 |
最大訓練輪數 |
20 |
熱身訓練步數比例 |
6% |
權重衰減 |
0.01 |
優化器 (beta1, beta2, epsilon) |
AdamW (0.9, 0.999, 1e - 08) |
監控指標 (delta, patience) |
驗證損失 (0.1, 3) |
在不同數據集或風格上微調
如果您想微調自己的對話模型,我們建議您從DialoGPT模型開始。您可以查看原始GitHub倉庫。
侷限性
- 此模型使用了來自GPT - 2論文的原始英文分詞器。雖然未考慮西班牙語分詞,但在文本編碼的語法結構上有相似之處。這種重疊可能有助於模型將其知識從英語遷移到西班牙語。此外,GPT - 2分詞器的BPE(字節對編碼)實現可以為每個Unicode字符串分配一個表示。
摘自GPT - 2論文:
由於我們的方法可以為任何Unicode字符串分配概率,這使我們能夠在任何數據集上評估我們的語言模型,而無需考慮預處理、分詞或詞彙表大小。
- 此模型僅用於西班牙語單輪閒聊對話。
- 此模型的生成能力受限於上述微調數據集的範圍。
- 此模型生成簡短回答,以專業風格為西班牙語提供一般上下文對話。
📄 許可證
本模型採用CC - BY - NC - ND - 4.0許可證。