モデル概要
モデル特徴
モデル能力
使用事例
🚀 h2o-danube2-1.8b-chat
h2o-danube2-1.8b-chatは、H2O.aiによってチャット用にファインチューニングされた、約18億のパラメータを持つモデルです。このモデルには3つのバージョンがあり、それぞれ異なる調整が施されています。
🚀 クイックスタート
このモデルを使用するには、まずtransformers
ライブラリをインストールする必要があります。以下のコマンドを使用してインストールできます。
pip install transformers>=4.39.3
以下は、このモデルを使用してテキスト生成を行う基本的なPythonコードの例です。
import torch
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="h2oai/h2o-danube2-1.8b-chat",
torch_dtype=torch.bfloat16,
device_map="auto",
)
# We use the HF Tokenizer chat template to format each message
# https://huggingface.co/docs/transformers/main/en/chat_templating
messages = [
{"role": "user", "content": "Why is drinking water so healthy?"},
]
prompt = pipe.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
res = pipe(
prompt,
max_new_tokens=256,
)
print(res[0]["generated_text"])
✨ 主な機能
- 多バージョン提供:ベースモデル、SFT調整済みモデル、SFT + DPO調整済みモデルの3種類のバージョンが提供されています。
- 大規模パラメータ:約18億のパラメータを持つ大規模言語モデルです。
- 長文対応:最大8,192のコンテキスト長で学習されており、長文の処理にも対応しています。
📦 インストール
GPUを搭載したマシンでtransformers
ライブラリを使用してモデルを利用するには、まずtransformers
ライブラリをインストールする必要があります。
pip install transformers>=4.39.3
💻 使用例
基本的な使用法
import torch
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="h2oai/h2o-danube2-1.8b-chat",
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "user", "content": "Why is drinking water so healthy?"},
]
prompt = pipe.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
res = pipe(
prompt,
max_new_tokens=256,
)
print(res[0]["generated_text"])
高度な使用法
# 量子化とシャーディングを使用してモデルを読み込む例
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained(
"h2oai/h2o-danube2-1.8b-chat",
load_in_8bit=True,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("h2oai/h2o-danube2-1.8b-chat")
input_text = "Why is drinking water so healthy?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to(model.device)
output = model.generate(input_ids, max_new_tokens=256)
print(tokenizer.decode(output[0], skip_special_tokens=True))
📚 ドキュメント
モデル概要
h2o-danube2-1.8b-chatは、H2O.aiによって開発された大規模言語モデルです。このモデルには3つのバージョンがあり、それぞれ異なる調整が施されています。
モデル名 | 説明 |
---|---|
h2oai/h2o-danube2-1.8b-base | ベースモデル |
h2oai/h2o-danube2-1.8b-sft | SFT調整済み |
h2oai/h2o-danube2-1.8b-chat | SFT + DPO調整済み |
モデルアーキテクチャ
このモデルは、Llama 2のアーキテクチャを調整して約18億のパラメータで構成されています。詳細については、Technical Reportを参照してください。モデルは、語彙サイズ32,000のMistralトークナイザーを使用し、最大8,192のコンテキスト長で学習されています。
ハイパーパラメータ | 値 |
---|---|
n_layers | 24 |
n_heads | 32 |
n_query_groups | 8 |
n_embd | 2560 |
vocab size | 32000 |
sequence length | 8192 |
モデルアーキテクチャの詳細は以下の通りです。
MistralForCausalLM(
(model): MistralModel(
(embed_tokens): Embedding(32000, 2560, padding_idx=0)
(layers): ModuleList(
(0-23): 24 x MistralDecoderLayer(
(self_attn): MistralAttention(
(q_proj): Linear(in_features=2560, out_features=2560, bias=False)
(k_proj): Linear(in_features=2560, out_features=640, bias=False)
(v_proj): Linear(in_features=2560, out_features=640, bias=False)
(o_proj): Linear(in_features=2560, out_features=2560, bias=False)
(rotary_emb): MistralRotaryEmbedding()
)
(mlp): MistralMLP(
(gate_proj): Linear(in_features=2560, out_features=6912, bias=False)
(up_proj): Linear(in_features=2560, out_features=6912, bias=False)
(down_proj): Linear(in_features=6912, out_features=2560, bias=False)
(act_fn): SiLU()
)
(input_layernorm): MistralRMSNorm()
(post_attention_layernorm): MistralRMSNorm()
)
)
(norm): MistralRMSNorm()
)
(lm_head): Linear(in_features=2560, out_features=32000, bias=False)
)
ベンチマーク
🤗 Open LLM Leaderboard
ベンチマーク | acc_n |
---|---|
平均 | 48.44 |
ARC-challenge | 43.43 |
Hellaswag | 73.54 |
MMLU | 37.77 |
TruthfulQA | 39.96 |
Winogrande | 69.77 |
GSM8K | 26.16 |
MT-Bench
First Turn: 6.23
Second Turn: 5.34
Average: 5.79
🔧 技術詳細
このモデルは、H2O LLM Studioを使用して学習されています。量子化とシャーディングを使用してモデルを読み込むことができます。load_in_8bit=True
またはload_in_4bit=True
を指定することで量子化を行い、device_map=auto
を設定することで複数のGPUでシャーディングを行うことができます。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
⚠️ 免責事項
このリポジトリで提供されている大規模言語モデルを使用する前に、この免責事項を注意深くお読みください。モデルを使用することは、以下の利用規約に同意することを意味します。
- 偏見と不快な内容:大規模言語モデルは、多様なインターネットテキストデータで学習されており、偏見、人種差別、不快な内容、またはその他不適切な内容が含まれる場合があります。このモデルを使用することで、生成された内容に時々偏見が見られるか、不快または不適切な内容が生成される可能性があることを認識し、受け入れるものとします。このリポジトリの開発者は、そのような内容や見解を支持、支援、または促進するものではありません。
- 制限事項:大規模言語モデルはAIベースのツールであり、人間ではありません。誤った、無意味な、または関係のない応答を生成する場合があります。生成された内容を批判的に評価し、裁量で使用することはユーザーの責任です。
- 自己責任での使用:この大規模言語モデルのユーザーは、ツールの使用によって生じるすべての結果に対して完全な責任を負う必要があります。このリポジトリの開発者および貢献者は、提供されたモデルの使用または誤使用によって生じる損害、損失、または危害について責任を負いません。
- 倫理的な配慮:ユーザーは、大規模言語モデルを責任を持って倫理的に使用することが推奨されます。このモデルを使用することで、ハイトスピーチ、差別、嫌がらせ、または違法もしくは有害な活動を促進する目的で使用しないことに同意します。
- 問題の報告:大規模言語モデルによって生成された偏見、不快、またはその他不適切な内容に遭遇した場合は、提供されているチャネルを通じてリポジトリの管理者に報告してください。あなたのフィードバックは、モデルの改善と潜在的な問題の軽減に役立ちます。
- 免責事項の変更:このリポジトリの開発者は、事前の通知なしにこの免責事項を変更または更新する権利を留保します。免責事項を定期的に確認し、変更を把握することはユーザーの責任です。



