🚀 Yugo55A-GPT 4bit
Yugo55A-GPT 是由 datatab 開發的一款 4bit 模型,在塞爾維亞語大語言模型評估中展現出了優秀的性能。它通過 mergekit 對多個預訓練語言模型進行合併,為文本生成等任務提供了強大的支持。
✨ 主要特性
- 多模型融合:融合了多個優秀的預訓練語言模型,如 datatab/Yugo55-GPT-v4、mlabonne/AlphaMonarch-7B 等,綜合各模型的優勢。
- 高性能表現:在塞爾維亞語大語言模型評估的多個指標上取得了優異的成績。
- 易於使用:提供了詳細的使用示例,方便用戶快速上手。
📦 安裝指南
!pip -q install git+https://github.com/huggingface/transformers # need to install from github
!pip install -q datasets loralib sentencepiece
!pip -q install bitsandbytes accelerate
💻 使用示例
基礎用法
from IPython.display import HTML, display
def set_css():
display(HTML('''
<style>
pre {
white-space: pre-wrap;
}
</style>
'''))
get_ipython().events.register('pre_run_cell', set_css)
import torch
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained(
"datatab/Yugo55A-GPT", torch_dtype="auto"
)
tokenizer = AutoTokenizer.from_pretrained(
"datatab/Yugo55A-GPT", torch_dtype="auto"
)
高級用法
from typing import Optional
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
def generate(
user_content: str, system_content: Optional[str] = ""
) -> str:
system_content = "Ispod je uputstvo koje opisuje zadatak, upareno sa unosom koji pruža dodatni kontekst. Napišite odgovor koji na odgovarajući način kompletira zahtev."
messages = [
{
"role": "system",
"content": system_content,
},
{"role": "user", "content": user_content},
]
tokenized_chat = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
).to("cuda")
text_streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
output = model.generate(
tokenized_chat,
streamer=text_streamer,
max_new_tokens=2048,
temperature=0.1,
repetition_penalty=1.11,
top_p=0.92,
top_k=1000,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
do_sample=True,
)
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
以下是一些具體的調用示例:
generate("Nabroj mi sve planete suncevog sistemai reci mi koja je najveca planeta")
generate("Koja je razlika između lame, vikune i alpake?")
generate("Napišite kratku e-poruku Semu Altmanu dajući razloge za GPT-4 otvorenog koda")
🏆 評估結果
結果通過 Aleksa Gordić 發佈的塞爾維亞語大語言模型評估獲得:serbian-llm-eval。由於硬件資源限制,評估是在模型的 4 位版本上進行的。
MODEL |
ARC-E |
ARC-C |
Hellaswag |
BoolQ |
Winogrande |
OpenbookQA |
PiQA |
Yugo55-GPT-v4-4bit |
51.41 |
36.00 |
57.51 |
80.92 |
65.75 |
34.70 |
70.54 |
Yugo55A-GPT |
51.52 |
37.78 |
57.52 |
84.40 |
65.43 |
35.60 |
69.43 |
🔗 合併詳情
合併方法
這是使用 mergekit 創建的預訓練語言模型的合併。該模型使用 linear 合併方法進行合併。
合併的模型
以下模型被包含在合併中:
🧩 配置
以下 YAML 配置用於生成此模型:
models:
- model: datatab/Yugo55-GPT-v4
parameters:
weight: 1.0
- model: datatab/Yugo55-GPT-DPO-v1-chkp-300
parameters:
weight: 1.0
- model: mlabonne/AlphaMonarch-7B
parameters:
weight: 0.5
- model: NousResearch/Nous-Hermes-2-Mistral-7B-DPO
parameters:
weight: 0.5
merge_method: linear
dtype: float16
📄 許可證
本項目採用 MIT 許可證。