🚀 Llama-3-Open-Ko-8B-Instruct-preview
Llama-3-Open-Ko-8B-Instruct-previewは、自然言語処理の分野において、韓国語を対象とした強力な言語モデルです。このモデルは、Llama-3-8Bをベースにしており、公開されているリソースを用いて継続的に事前学習が行われています。これにより、韓国語に特化した高性能な言語処理が可能となり、新しいチャットやインストラクションモデルを作成するための優れた出発点となります。
🚀 クイックスタート
このモデルを使うには、transformers
ライブラリを利用します。以下のコードで簡単に使用できます。
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
{"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=True,
temperature=1,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
✨ 主な機能
- 公開リソースを活用した学習:このモデルは、公開されている60GB以上の重複排除されたテキストを用いて学習されています。これにより、広範な知識を持ち、多様なタスクに対応できます。
- 新しいトークナイザーを使用:Llama-3の新しいトークナイザーを使用して、177億以上のトークンで事前学習が行われています。これにより、韓国語のトークン化がより効果的に行われ、精度が向上します。
- インストラクションモデルの提供:Chat Vector paperのアイデアを適用して、Llama-3-Open-Ko-8B-Instruct-previewというインストラクションモデルを公開しています。これにより、ユーザーの指示に沿った回答が可能となります。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers torch
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
{"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=True,
temperature=1,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
高度な使用法
以下は、他の質問をする例です。
messages = [
{"role": "system", "content": "친절한 챗봇으로서 상대방의 요청에 최대한 자세하고 친절하게 답하자. 모든 대답은 한국어(Korean)으로 대답해줘."},
{"role": "user", "content": "한국의 제헌 헌법에 대해서 자세히 설명해주세요."},
]
🔧 技術詳細
Llama-3-Open-Ko-8Bモデルは、Llama-3-8Bをベースにして継続的に事前学習が行われた言語モデルです。このモデルは、公開されているリソースを用いて、60GB以上の重複排除されたテキストで学習されています。新しいLlama-3トークナイザーを使用して、17.7B以上のトークンで事前学習が行われており、これは韓国語のトークナイザー(Llama-2-Koトークナイザー)よりも若干多いトークン数です。
学習は、GoogleのTRCプログラムからの温かいサポートを受けて、TPUv5e-256上で行われました。Chat Vector paperのアイデアを適用して、Llama-3-Open-Ko-8B-Instruct-previewというインストラクションモデルを公開しています。このモデルは、まだ韓国語のインストラクションセットで微調整されていないため、preview
という名称が付けられていますが、新しいチャットやインストラクションモデルを作成するための優れた出発点となります。
📄 ライセンス
このモデルは、llama3
ライセンスの下で公開されています。詳細はLICENSEを参照してください。