🚀 俄羅斯閒聊、演繹與常識推理模型
本模型是對話系統原型的核心,具備兩大主要功能。
🚀 快速開始
該模型可用於生成閒聊回覆和基於額外事實或“常識”回答問題。以下是使用示例:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "inkoziev/rugpt_chitchat"
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.add_special_tokens({'bos_token': '<s>', 'eos_token': '</s>', 'pad_token': '<pad>'})
model = AutoModelForCausalLM.from_pretrained(model_name)
model.to(device)
model.eval()
input_text = """<s>- Привет! Что делаешь?
- Привет :) В такси еду
-"""
encoded_prompt = tokenizer.encode(input_text, add_special_tokens=False, return_tensors="pt").to(device)
output_sequences = model.generate(input_ids=encoded_prompt, max_length=100, num_return_sequences=1, pad_token_id=tokenizer.pad_token_id)
text = tokenizer.decode(output_sequences[0].tolist(), clean_up_tokenization_spaces=True)[len(input_text)+1:]
text = text[: text.find('</s>')]
print(text)
✨ 主要特性
閒聊回覆生成
以對話歷史(前1 - 10條回覆)作為輸入,模型可生成閒聊回覆。示例如下:
- Привет, как дела?
- Привет, так себе.
- <<< 期望模型生成此回覆 >>>
問題回答
模型可根據額外事實或“常識”回答問題。相關事實可通過其他模型(如 sbert_pq)從外部知識庫中提取。使用這些事實和問題文本,模型會構建語法正確且儘可能簡潔的答案,就像人類在類似交流場景中所做的那樣。相關事實應置於問題文本之前,就像對話夥伴直接說出一樣。例如:
- Сегодня 15 сентября. Какой сейчас у нас месяц?
- Сентябрь
模型不要求添加到對話上下文中的所有事實都與問題相關,因此從知識庫中提取信息的模型可以犧牲準確性來換取完整性,並添加一些額外信息。在這種情況下,閒聊模型會自行選擇上下文中的必要信息並忽略多餘信息。當前版本的模型允許在問題前添加最多5個事實。例如:
- Стасу 16 лет. Стас живет в Подольске. У Стаса нет своей машины. Где живет Стас?
- в Подольске
邏輯推理
在某些情況下,模型可以基於兩個相互關聯的前提進行邏輯推理得出答案。從兩個前提得出的結論並非明確表述,而是似乎用於推導答案。例如:
- Смертен ли Аристофан, если он был греческим философом, а все философы смертны?
- Да
算術問題解決
除了邏輯推理,模型還能解決小學1 - 2年級水平、包含兩個數字參數的簡單算術問題。例如:
- Чему равно 2+8?
- 10
📚 詳細文檔
模型變體與指標
目前發佈的模型有7.6億個參數,即達到了 sberbank - ai/rugpt3large_based_on_gpt2 的水平。以下是在預留測試樣本集上解決算術問題的準確率測量結果:
屬性 |
詳情 |
模型類型 |
不同基礎模型在算術問題解決上的準確率 |
訓練數據 |
未提及 |
基礎模型 |
算術準確率 |
sberbank - ai/rugpt3large_based_on_gpt2 |
0.91 |
sberbank - ai/rugpt3medium_based_on_gpt2 |
0.70 |
sberbank - ai/rugpt3small_based_on_gpt2 |
0.58 |
tinkoff - ai/ruDialoGPT - small |
0.44 |
tinkoff - ai/ruDialoGPT - medium |
0.69 |
“算術準確率”列中的0.91表示91%的測試問題得到了完全正確的解答。生成的答案與標準答案的任何偏差都被視為錯誤。例如,給出答案“120”而非“119”也會被記錄為錯誤。
📄 許可證
本模型採用 Unlicense 許可證。
📞 聯繫方式
如果您在使用此模型時遇到問題,或有改進建議,請發送郵件至 mentalcomputing@gmail.com。
📖 引用格式
@MISC{rugpt_chitchat,
author = {Ilya Koziev},
title = {Russian Chit - chat with Common sence Reasoning},
url = {https://huggingface.co/inkoziev/rugpt_chitchat},
year = 2022
}