🚀 Higgs-Llama-3-70B
Higgs-Llama-3-70Bは、meta-llama/Meta-Llama-3-70B をベースに追加学習されたモデルです。一般的なドメインの命令追従や推論能力に優れると同時に、ロールプレイングに特化して調整されています。
当社では、独自の命令追従とチャットデータセットを用いて教師付き微調整を行いました。その後、人間のラベラーと独自の大規模言語モデル(LLM)を組み合わせた半自動パイプラインで好みのペアを構築し、モデルのアラインメントを行うために反復的な好みの最適化を行いました。アラインメントの際には、システムメッセージに沿ったモデルの振る舞いを実現するための特別な戦略を採用しました。他の命令型モデルと比較すると、Higgsモデルはロールをより忠実に守ります。
詳細はリリースブログをご覧ください。
✨ 主な機能
評価
すべてのベンチマークは、大規模言語モデル(LLM)の場合も含め、最終的には過学習につながります。ベンチマークに特に有益なデータでの学習は、ロールプレイングの性能を向上させることはほとんどなく(場合によっては悪化させることさえあります)、当社では微調整データからベンチマークデータ(その学習例を含む)を除外するよう努めました。
ここでは、2つの新しく挑戦的なベンチマーク MMLU-Pro と Arena-Hard での結果を紹介します。MMLU-Proは人気のあるMMLUベンチマークを拡張したもので、最近リリースされた(当社のモデルの学習が終了した後にリリースされた)ため、他の公開モデルによる過学習の影響が少ないと考えられます。
MMLU-Pro
モデル |
MMLU-Pro |
GPT-4o |
72.6 |
Gemini-1.5-Pro |
69.0 |
Claude-3-Opus |
68.5 |
GPT-4-Turbo |
63.7 |
Higgs-Llama-3-70B |
63.2 |
Gemini-1.5-Flash |
59.1 |
Claude-3-Sonnet |
56.8 |
Llama-3-70B-Instruct |
56.2 |
Arena-Hard
モデル |
Arena-Hard |
GPT-4o |
79.5 |
Gemini-1.5-Pro |
72.0 |
Claude-3-Opus |
60.4 |
Higgs-Llama-3-70B |
49.6 |
Gemini-1.5-Flash |
49.6 |
Claude-3-Sonnet |
46.8 |
Claude-3-Haiku |
41.5 |
Llama-3-70B-Instruct |
41.1 |
GPT-4-0613 |
37.9 |
Mistral-Large |
37.7 |
全体的な結果
以下では、当社のモデルの性能を gpt-4o
と Llama-3-70B-Instruct
と比較しています。評価には MMLU-Pro、Arena-Hard、AlpacaEval 2.0 LC、MMLU、GPQA、DROP を使用しています。MMLU、GPQA、DROPについては、openai/simple-evals を用いて評価を行っています。その他のベンチマークについては、公式の実装を通じて評価を行っています。
|
MMLU-Pro |
Arena-Hard |
AlpacaEval 2.0 LC |
MMLU |
GPQA |
DROP (F1,3-shot) |
GPT-4o |
72.6 |
79.5* |
57.5 |
87.2 |
49.9 |
83.7 |
Higgs-Llama-3-70B |
63.2 |
49.6 |
38.6 |
80.8 |
42.1 |
81.6 |
Llama-3-70B-Instruct* |
56.2 |
41.1 |
34.4 |
80.2 |
41.3 |
81.4 |
*Llama-3-70B-Instructの場合、MMLU-Proの数値は MMLU-Proのリーダーボード から引用されています。Arena-Hardの数値は、5/21に更新されたリーダーボード から引用されています。一方、GPT-4oについては独自に実行しています。また、MMLU/GPQA/DROPの数値は simple-evals から引用されています。
💻 使用例
基本的な使用法
Transformersを使用した使用例を以下に示します。
import transformers
import torch
model_id = "bosonai/Higgs-Llama-3-70B"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "You are an AI assistant that speaks in the style of Sheldon Cooper. You are arguing with the user and is trying to prove the opposite of what the user said."},
{"role": "user", "content": "The earth is round."},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=[
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>"),
pipeline.tokenizer.eos_token_id,
],
do_sample=True,
temperature=1.0,
top_p=0.95,
)
print(outputs[0]["generated_text"][len(prompt):])
📄 ライセンス
当社のライセンス は、MetaのLLama 3 Community Licenseをベースにしています。