🚀 モデルカード
このモデルは、H2O LLM Studio を使用してトレーニングされた大規模言語モデルです。トレーニングデータに基づき、複数選択形式の質問と回答を生成することができます。
🚀 クイックスタート
このモデルを使用するには、まず transformers
ライブラリをインストールする必要があります。以下のコマンドを実行してください。
pip install transformers==4.31.0
モデルがプライベートリポジトリにある場合は、パイプラインに Hugging Face トークンを提供する必要があります。
✨ 主な機能
- 168のプロンプトを使用してトレーニングされ、複数選択形式の質問と回答を生成します。
- モデルの量子化とシャーディングが可能です。
📦 インストール
ライブラリのインストール
pip install transformers==4.31.0
トークンの設定
モデルがプライベートリポジトリにある場合は、以下のいずれかの方法でトークンを設定してください。
方法1: pipeline
で token=True
を設定し、Hugging Face Hub にログインする
import huggingface_hub
huggingface_hub.login(<ACCES_TOKEN>)
方法2: トークンを直接 pipeline
に渡す
from transformers import pipeline
generate_text = pipeline(
model="fbellame/llama2-pdf-to-quizz-13b",
torch_dtype="auto",
trust_remote_code=True,
use_fast=True,
device_map={"": "cuda:0"},
token=<ACCES_TOKEN>,
)
💻 使用例
基本的な使用法
from transformers import pipeline
generate_text = pipeline(
model="fbellame/llama2-pdf-to-quizz-13b",
torch_dtype="auto",
trust_remote_code=True,
use_fast=True,
device_map={"": "cuda:0"},
token=True,
)
res = generate_text(
"Why is drinking water so healthy?",
min_new_tokens=2,
max_new_tokens=256,
do_sample=False,
num_beams=1,
temperature=float(0.3),
repetition_penalty=float(1.2),
renormalize_logits=True
)
print(res[0]["generated_text"])
高度な使用法
from h2oai_pipeline import H2OTextGenerationPipeline
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(
"fbellame/llama2-pdf-to-quizz-13b",
use_fast=True,
padding_side="left",
trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
"fbellame/llama2-pdf-to-quizz-13b",
torch_dtype="auto",
device_map={"": "cuda:0"},
trust_remote_code=True,
)
generate_text = H2OTextGenerationPipeline(model=model, tokenizer=tokenizer)
res = generate_text(
"Why is drinking water so healthy?",
min_new_tokens=2,
max_new_tokens=256,
do_sample=False,
num_beams=1,
temperature=float(0.3),
repetition_penalty=float(1.2),
renormalize_logits=True
)
print(res[0]["generated_text"])
📚 ドキュメント
トレーニング
微調整プロセスを説明する YouTube 動画はこちらです: [https://youtu.be/gXXkLVfiBVQ?si=b - RNVykuOLDPaTHb](https://youtu.be/gXXkLVfiBVQ?si=b - RNVykuOLDPaTHb)
ソースコード
このモデルを使用した GitHub プロジェクトはこちらです: [https://github.com/fbellame/pdf - to - quizz/tree/feature/local_model](https://github.com/fbellame/pdf - to - quizz/tree/feature/local_model) (ブランチ local_model および [https://github.com/fbellame/pdf - to - quizz/tree/feature/tgi](https://github.com/fbellame/pdf - to - quizz/tree/feature/tgi))
量子化とシャーディング
モデルを量子化してロードするには、load_in_8bit=True
または load_in_4bit=True
を指定します。また、複数の GPU でシャーディングするには、device_map=auto
を設定します。
モデルアーキテクチャ
LlamaForCausalLM(
(model): LlamaModel(
(embed_tokens): Embedding(32000, 5120, padding_idx=0)
(layers): ModuleList(
(0-39): 40 x LlamaDecoderLayer(
(self_attn): LlamaAttention(
(q_proj): Linear(in_features=5120, out_features=5120, bias=False)
(k_proj): Linear(in_features=5120, out_features=5120, bias=False)
(v_proj): Linear(in_features=5120, out_features=5120, bias=False)
(o_proj): Linear(in_features=5120, out_features=5120, bias=False)
(rotary_emb): LlamaRotaryEmbedding()
)
(mlp): LlamaMLP(
(gate_proj): Linear(in_features=5120, out_features=13824, bias=False)
(up_proj): Linear(in_features=5120, out_features=13824, bias=False)
(down_proj): Linear(in_features=13824, out_features=5120, bias=False)
(act_fn): SiLUActivation()
)
(input_layernorm): LlamaRMSNorm()
(post_attention_layernorm): LlamaRMSNorm()
)
)
(norm): LlamaRMSNorm()
)
(lm_head): Linear(in_features=5120, out_features=32000, bias=False)
)
モデル構成
このモデルは、H2O LLM Studio を使用してトレーニングされ、cfg.yaml の構成でトレーニングされました。独自の大規模言語モデルをトレーニングする方法については、H2O LLM Studio を参照してください。
免責事項
このリポジトリで提供される大規模言語モデルを使用する前に、この免責事項を注意深くお読みください。モデルを使用することで、以下の利用規約に同意したことになります。
- バイアスと不快な内容: 大規模言語モデルは、多様なインターネットテキストデータでトレーニングされており、バイアス、人種差別、不快な内容、またはその他不適切な内容が含まれる場合があります。このモデルを使用することで、生成された内容にバイアスがある場合や不快な内容が含まれる場合があることを認識し、受け入れるものとします。このリポジトリの開発者は、そのような内容や見解を支持または促進するものではありません。
- 制限事項: 大規模言語モデルは AI ベースのツールであり、人間ではありません。誤った、無意味な、または関係のない応答を生成する場合があります。生成された内容を批判的に評価し、裁量で使用するのはユーザーの責任です。
- 自己責任での使用: この大規模言語モデルのユーザーは、ツールの使用によって生じるすべての結果に対して完全な責任を負う必要があります。このリポジトリの開発者および貢献者は、提供されたモデルの使用または誤用によって生じる損害、損失、または危害について責任を負いません。
- 倫理的な考慮事項: ユーザーは、大規模言語モデルを責任を持って倫理的に使用することが推奨されます。このモデルを使用することで、嫌がらせ、差別、嫌悪表現、または違法もしくは有害な活動を促進する目的で使用しないことに同意します。
- 問題の報告: 大規模言語モデルによって生成されたバイアス、不快な、またはその他不適切な内容に遭遇した場合は、提供されたチャネルを通じてリポジトリの管理者に報告してください。あなたのフィードバックにより、モデルが改善され、潜在的な問題が軽減されます。
- この免責事項の変更: このリポジトリの開発者は、事前の通知なしにこの免責事項を変更または更新する権利を留保します。ユーザーは、免責事項を定期的に確認して、変更を把握する責任があります。
このリポジトリで提供される大規模言語モデルを使用することで、この免責事項に記載された利用規約を受け入れ、遵守することに同意します。この免責事項のいずれかの部分に同意しない場合は、モデルおよびそれによって生成された内容の使用を控える必要があります。
📄 ライセンス
ドキュメント内にライセンス情報は記載されていません。