「大規模言語モデルのパディング — Llama 2を用いた例」
Padding in Large Language Models An Example Using Llama 2
因果的LLMのトレーニング例をパッドするためのベストプラクティス
パディングは、大規模言語モデル(LLM)において最も文書化されていない側面の一つです。なぜでしょうか?それは、通常、LLMはパディングなしで事前学習されるためです。
ただし、カスタムデータセットでのLLMのファインチューニングには、パディングが必要です。トレーニング例を正しくパディングしないと、トレーニング中のヌルロスまたは無限ロス、過剰生成、または推論中の空の出力など、さまざまな予期しない動作が発生する可能性があります。
この記事では、まずパディングとは何か、なぜ必要なのかを説明します。次に、パディングなしで事前学習されたLLMに適切なパディング戦略を見つける方法を示します。Hugging FaceのTransformersを使用してLLMにパディングサポートを追加するための2つの異なる解決策も提案します。
記事の最後には、Llama 2のトレーニング例をパディングする方法を示す例も提供します。
- 「オーディオソース分離のマスターキー:AudioSepを紹介して、あなたが説明するものを分離します」
- 「RBIは、規制監督のためにAIを活用するために、マッキンゼーとアクセンチュアと提携します」
- このAIの論文では、非英語の言語で事前学習されたLLMsを強化するために、言語間で意味の整合性を構築することを提案しています
この記事を読むと、ドキュメントやチュートリアルを読まずに、自分自身でLLMのトレーニング例をパディングする方法を理解できるようになるはずです。
パッドとバッチ
パディングとは何か、なぜパディングするのか?
ファインチューニングに使用する例を1つ取り上げましょう。
example = "あなたはチャットボットではありません。"
この例をトークンのシーケンスに変換する必要があります。Transformersなどのライブラリでは、通常、次の手順に従ってトークン化されます:
- 与えられた語彙に基づいて、例をサブワードに分割する:
example = ["▁あなた", "▁は", "▁チャット", "ボット", "ではありません", "。"]
- 単語を語彙のインデックスで置き換えて、整数のシーケンスを得る:
example = [887, 526, 451, 263, 13563, 7451, 29889]
- シーケンスに特殊トークンを追加する:BOSトークン、EOSトークン、UNKトークン、PADトークンなど
example = [1, 887, 526, 451, 263, 13563, 7451, 29889]
注意:この例では、Llama 2のトークナイザーを使用しています。以下で詳しく説明します。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「ステレオタイプやディスインフォメーションに対抗するAIヘイトスピーチ検出」
- 「Mozilla Common Voiceにおける音声言語認識 — 音声変換」
- スタビリティAIが日本語のStableLMアルファを発表:日本語言語モデルの飛躍的な進化
- PlayHTチームは、感情の概念を持つAIモデルをGenerative Voice AIに導入しますこれにより、特定の感情で話しの生成を制御し、指示することができるようになります
- 大規模言語モデルは、テキスト評価のタスクで人間を置き換えることができるのか? このAI論文では、テキストの品質を評価するためにLLMを使用し、人間の評価の代替手段として提案しています
- 「簡単な英語プロンプトでLLMをトレーニング!gpt-llm-trainerと出会って、タスク固有のLLMをトレーニングする最も簡単な方法」
- 「Flowsに会いましょう:複雑なAI-Humanの相互作用をモデル化するための革命的なAIフレームワーク」