🚀 モデルカード
このモデルは、大規模言語モデル(LLM)であり、GPT系の技術を用いて訓練されています。H2O LLM Studioを利用して訓練され、特定のデータセットを基に性能を向上させています。
🚀 クイックスタート
このモデルを使用するには、まず必要なライブラリをインストールする必要があります。GPUを搭載したマシンでtransformers
ライブラリを使用する場合、transformers
、accelerate
、torch
ライブラリをインストールしてください。
✨ 主な機能
- 多様な自然言語処理タスクに対応しています。
- 特定のデータセットで訓練されており、質の高い応答を生成します。
📦 インストール
pip install transformers==4.28.1
pip install accelerate==0.18.0
pip install torch==2.0.0
💻 使用例
基本的な使用法
import torch
from transformers import pipeline
generate_text = pipeline(
model="h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-700bt",
torch_dtype=torch.float16,
trust_remote_code=True,
use_fast=False,
device_map={"": "cuda:0"},
)
res = generate_text(
"Why is drinking water so healthy?",
min_new_tokens=2,
max_new_tokens=1024,
do_sample=False,
num_beams=1,
temperature=float(0.3),
repetition_penalty=float(1.2),
renormalize_logits=True
)
print(res[0]["generated_text"])
高度な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-700bt"
prompt = "<|prompt|>How are you?</s><|answer|>"
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_name)
model.cuda().eval()
inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")
tokens = model.generate(
**inputs,
min_new_tokens=2,
max_new_tokens=1024,
do_sample=False,
num_beams=1,
temperature=float(0.3),
repetition_penalty=float(1.2),
renormalize_logits=True
)[0]
tokens = tokens[inputs["input_ids"].shape[1]:]
answer = tokenizer.decode(tokens, skip_special_tokens=True)
print(answer)
📚 ドキュメント
概要
このモデルはH2O LLM Studioを使用して訓練されました。
モデルアーキテクチャ
LlamaForCausalLM(
(model): LlamaModel(
(embed_tokens): Embedding(32000, 4096, padding_idx=0)
(layers): ModuleList(
(0-31): 32 x LlamaDecoderLayer(
(self_attn): LlamaAttention(
(q_proj): Linear(in_features=4096, out_features=4096, bias=False)
(k_proj): Linear(in_features=4096, out_features=4096, bias=False)
(v_proj): Linear(in_features=4096, out_features=4096, bias=False)
(o_proj): Linear(in_features=4096, out_features=4096, bias=False)
(rotary_emb): LlamaRotaryEmbedding()
)
(mlp): LlamaMLP(
(gate_proj): Linear(in_features=4096, out_features=11008, bias=False)
(down_proj): Linear(in_features=11008, out_features=4096, bias=False)
(up_proj): Linear(in_features=4096, out_features=11008, bias=False)
(act_fn): SiLUActivation()
)
(input_layernorm): LlamaRMSNorm()
(post_attention_layernorm): LlamaRMSNorm()
)
)
(norm): LlamaRMSNorm()
)
(lm_head): Linear(in_features=4096, out_features=32000, bias=False)
)
モデル構成
このモデルはH2O LLM Studioを使用して訓練され、cfg.yamlの設定を使用しています。独自の大規模言語モデルを訓練する方法については、H2O LLM Studioを参照してください。
モデル検証
EleutherAI lm - evaluation - harnessを使用したモデル検証結果です。
CUDA_VISIBLE_DEVICES=0 python main.py --model hf-causal-experimental --model_args pretrained=h2oai/h2ogpt-gm-oasst1-en-2048-open-llama-7b-preview-700bt --tasks openbookqa,arc_easy,winogrande,hellaswag,arc_challenge,piqa,boolq --device cuda &> eval.log
免責事項
このリポジトリで提供される大規模言語モデルを使用する前に、この免責事項を注意深くお読みください。モデルを使用することは、以下の利用規約に同意することを意味します。
- バイアスと不快な内容: 大規模言語モデルは多様なインターネットテキストデータで訓練されており、バイアス、人種差別、不快な内容、またはその他不適切な内容が含まれる場合があります。このモデルを使用することで、生成された内容が時々バイアスを示すか、不快または不適切な内容を生成する可能性があることを認識し、受け入れるものとします。このリポジトリの開発者は、そのような内容や見解を支持、支援、または促進するものではありません。
- 制限事項: 大規模言語モデルはAIベースのツールであり、人間ではありません。誤った、無意味な、または関係のない応答を生成することがあります。生成された内容を批判的に評価し、裁量で使用するのはユーザーの責任です。
- 自己責任での使用: この大規模言語モデルのユーザーは、ツールの使用によって生じるすべての結果について完全な責任を負う必要があります。このリポジトリの開発者および貢献者は、提供されたモデルの使用または誤用に起因する損害、損失、または危害について責任を負いません。
- 倫理的な配慮: ユーザーは、大規模言語モデルを責任を持って、倫理的に使用することが推奨されます。このモデルを使用することで、ハイトスピーチ、差別、嫌がらせ、または違法もしくは有害な活動を促進する目的で使用しないことに同意するものとします。
- 問題の報告: 大規模言語モデルによって生成されたバイアス、不快、またはその他不適切な内容に遭遇した場合は、提供されたチャネルを通じてリポジトリの管理者に報告してください。あなたのフィードバックはモデルの改善と潜在的な問題の軽減に役立ちます。
- 免責事項の変更: このリポジトリの開発者は、事前通知なしにこの免責事項を変更または更新する権利を留保します。ユーザーは定期的に免責事項を確認し、変更について最新の情報を得る責任があります。
このリポジトリで提供される大規模言語モデルを使用することで、この免責事項に記載された利用規約を受け入れ、遵守することに同意するものとします。この免責事項のいずれかの部分に同意しない場合は、モデルとそれによって生成された内容の使用を控えてください。
📄 ライセンス
このモデルはApache 2.0ライセンスの下で提供されています。