🚀 西班牙闲聊版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许可证。