🚀 Alpha-Instruct:強大的雙語語言模型
Alpha-Instruct是我們最新推出的語言模型,在韓語和英語方面均展現出卓越的能力。它採用“進化模型融合”技術開發,能出色完成複雜的語言任務和邏輯推理。我們基於社區驅動的理念進行開發,從不同社區汲取靈感和創意,同時也致力於與社區分享我們的見解,提供Alpha-Instruct創建過程中所使用的數據、方法和模型的詳細信息。

🚀 快速開始
Alpha-Instruct是我們運用“進化模型融合”技術開發的最新語言模型。該方法按1:1的比例使用來自KoBEST和Haerae的特定任務數據集,最終得到名為“Alpha-Ko-8B-Evo”的模型。以下是用於融合的模型:
為了優化和提升Alpha-Instruct,我們使用了精心策劃的高質量數據集來“修復”模型的輸出,顯著提高了其在人類偏好方面的得分。我們特別使用 ORPO 進行這個“修復”(基於人類反饋的強化學習)階段。所使用的數據集包括:
部分數據集在訓練時進行了部分使用和翻譯,並且我們確保在評估過程中沒有數據汙染。這種方法有效地平衡了人類偏好和模型能力,使Alpha-Instruct非常適合對用戶滿意度和性能都有較高要求的實際場景。
✨ 主要特性
- 雙語能力:在韓語和英語方面均表現出色,能處理多種語言任務。
- 先進技術:採用“進化模型融合”技術,結合社區驅動的開發方法,使模型在複雜語言任務和邏輯推理中表現卓越。
- 高性能表現:在LogicKor測試中取得了6.62的優異成績,可與70B模型相媲美,展示了8B模型的高效和強大。
📊 基準測試結果
LogicKor測試結果
模型 |
單輪對話 |
多輪對話 |
總體得分 |
MLP-KTLim/llama-3-Korean-Bllossom-8B |
4.238 |
3.404 |
3.821 |
Alpha-Ko-Evo |
5.143 |
5.238 |
5.190 |
Alpha-Ko-Instruct (alt) |
7.095 |
6.571 |
6.833 |
Alpha-Ko-Instruct |
7.143 |
6.065 |
6.620 |
Alpha-Ko-Instruct-marlin (4bit) |
6.857 |
5.738 |
6.298 |
注:自報告(使用“alpha”模板的默認設置,三次測試的平均值)。
KoBEST測試結果
任務 |
beomi/Llama-3-Open-Ko-8B-Instruct |
maywell/Llama-3-Ko-8B-Instruct |
Alpha-Ko-Evo |
Alpha-Ko-Instruct |
kobest總體 |
0.6220 |
0.6852 |
0.7229 |
0.7055 |
kobest_boolq |
0.6254 |
0.7208 |
0.8547 |
0.8369 |
kobest_copa |
0.7110 |
0.7650 |
0.7420 |
0.7420 |
kobest_hellaswag |
0.3840 |
0.4440 |
0.4220 |
0.4240 |
kobest_sentineg |
0.8388 |
0.9194 |
0.9471 |
0.9244 |
kobest_wic |
0.5738 |
0.6040 |
0.6095 |
0.5730 |
注:參考選擇“融合”模型。
💻 使用示例
基礎用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "allganize/Llama-3-Alpha-Ko-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "system", "content": "당신은 인공지능 어시스턴트입니다. 묻는 말에 친절하고 정확하게 답변하세요."},
{"role": "user", "content": "피보나치 수열이 뭐야? 그리고 피보나치 수열에 대해 파이썬 코드를 짜줘볼래?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=False,
repetition_penalty=1.05,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
📞 聯繫方式
- 聯繫人:Ji soo Kim (jisoo.kim@allganize.ai)
- 貢獻者:
- Sangmin Jeon (sangmin.jeon@allganize.ai)
- Seungwoo Ryu (seungwoo.ryu@allganize.ai)
🙏 特別感謝
感謝 @beomi 提供的優秀模型!
📄 許可證
本模型的使用受 META LLAMA 3 COMMUNITY LICENSE AGREEMENT 約束。
📚 引用信息
如果您在研究中使用了本模型,請按以下方式引用:
@misc{alpha-instruct,
author = {Ji soo Kim},
title = {Alpha-Instruct: Allganize Bilingual Model},
year = {2024},
publisher = {Hugging Face},
journal = {Hugging Face repository},
url = {https://huggingface.co/allganize/Llama-3-Alpha-Ko-8B-Instruct},
}
如需瞭解更多關於Alpha-Instruct的信息和技術細節,請關注我們的更新並訪問我們的網站(即將上線)。