ウェブサイト検索

ラマ 3 を探索する


導入

ラマ 1 より優れているものは何ですか? LLama 2. LLama 2 より優れているものは何ですか? LLama 3. Meta は最近、次世代の最先端のオープンソース大規模言語モデルである LLama 3 を発表しました。 Llama 3 は、8B および 70B パラメーターを備えた高度な言語モデルを備えています。これらのモデルは、さまざまなタスクにわたって優れており、より優れた推論機能を提供することが証明されています。このモデルは、商用利用のほか、コミュニティによる AI アプリケーションや開発者ツールなどの革新のためにオープンソース化されています。この記事では、DigitalOcean の GPU ドロップレットを使用したモデルの機能について説明します。

Llama 3 は、Llama 2 フレームワークに基づいて構築された Meta による 4 つの LLM モデルをリリースします。これらのモデルには 8B パラメーターと 70B パラメーターの 2 つのサイズがあり、それぞれベース (事前トレーニング済み) バージョンと指示調整済みバージョンを備えています。これらは、さまざまな消費者向けハードウェア タイプでスムーズに動作するように設計されており、8K トークンのコンテキスト長を誇ります。

  • Meta-Llama-3-8b: ベース 8B モデル
  • Meta-Llama-3-8b-instruct: 基本 8b モデルの微調整バージョンを指示します
  • Meta-Llama-3-70b: ベース 70B モデル
  • Meta-Llama-3-70b-instruct: 基本 70b モデルの微調整バージョンを指示します

元の研究論文はまだ発表されていません。しかし、メタはこの論文をすぐに発表すると主張している。

前提条件

  • ハードウェア: 少なくとも 16 GB VRAM を備えた高性能 GPU (NVIDIA A100 または H100 など)。
  • ソフトウェア: Python 3.8+、PyTorch 2.x、および Hugging Face Transformers ライブラリ。
  • 環境: GPU アクセラレーションのために CUDA ツールキットと cuDNN がインストールされています。
  • モデルの重み: Meta AI から適切なライセンス許可を得て、LLaMA 3 の重みをダウンロードしました。
  • ストレージ: モデルと依存関係用に少なくとも 20 GB の空きディスク容量。

LLama 3 の機能強化

8B および 70B パラメータを備えた最新の Llama 3 モデルは、Llama 2 から大幅に前進しており、大規模な言語モデルの新たな標準を確立しています。これらは、より優れた事前トレーニングと微調整方法のおかげで、クラスのトップモデルです。トレーニング後の機能強化により、エラーが大幅に減少し、推論、コード生成、指示に従う際のモデルのパフォーマンスが向上しました。つまり、Llama 3 はこれまでよりも高度で柔軟になっています。

LLama 3 パフォーマンス ベンチマーク (出典)

Llama 3 の開発中、主な焦点は現実の状況に合わせたモデルの最適化でした。一流の評価セットは、アドバイスの求め、コーディング、要約といった 12 の重要なタスクをカバーする 1,800 のプロンプトで作成されました。さらに、検証データはモデルの過剰適合を防ぐために非公開で使用されています。 Llama 3 を他のモデルと比較した人間による評価では、さまざまなタスクやシナリオにわたって有望な結果が示されています。

このグラフは、いくつかのカテゴリにわたる人間による評価の結果と、クロード ソネット、ミストラル ミディアム、および GPT-3.5 に対するプロンプトを示しています。 (ソース)

Llama 3 の機能を強化するために、Meta は事前トレーニングのスケールアップとトレーニング後のテクニックの改良に重点を置きました。

事前トレーニングのスケールアップには、データ漏洩とコンピューティング使用量を最適化するための正確なスケーリング則の開発が含まれます。驚くべきことに、最大 15 兆トークンという大量のデータでトレーニングした後でも、モデルは改善を続けました。さまざまな並列化手法とカスタムビルドの GPU クラスターを組み合わせてトレーニングを効率化し、Llama 2 と比較して効率を 3 倍向上させました。

命令の微調整については、教師あり微調整や設定の最適化などのさまざまな手法が検討されました。さらに、トレーニング データを慎重にキュレーションし、優先ランキングから学習することで、特に推論タスクやコーディング タスクにおいてモデルのパフォーマンスが大幅に向上しました。これらの進歩により、モデルは複雑なクエリをよりよく理解し、応答できるようになります。

モデルのアーキテクチャ

Llama 3 の設計では、標準のデコーダー専用トランスセットアップがインストールされました。 Llama 2 と比較して、128,000 トークンの語彙を備えた効率的なトークナイザーがパフォーマンスの向上に役立ちました。さらに、推論中の Llama 3 モデルを高速化するために、さまざまなサイズにわたるグループ化されたクエリ アテンション (GQA) が導入されました。トレーニング中に、8,192 個のトークンのシーケンスと、文書の境界内で注意を維持するためのマスキング技術が使用されました。

最適な言語モデルの作成は、最高品質のトレーニング データセットから始まります。ラマ 3 では、15 兆を超えるトークンが公的に入手可能なソースから厳選されました。これは、ラマ 2 で使用されたものの 7 倍です。このデータセットには、4 倍のコードも含まれています。このモデルは、英語以外のデータを 5% 以上含めることで多言語での使用を目指しており、30 言語をカバーしていますが、英語は依然として他の言語より優れていると予想されます。

品質を維持するために、堅牢なデータ フィルタリング パイプラインが構築され、ヒューリスティック フィルターやテキスト分類器などのメソッドも使用してモデルのパフォーマンスが向上しました。広範な実験を通じて、研究者は Llama 3 が雑学からコーディングなどに至るまで、さまざまなタスクで適切に動作することを確認しています。

LLama 3 デモ

開始する前に、huggingface.co でモデル「meta-llama/Meta-Llama-3-70B 」にアクセスできるようにしてください。

Llama 3 を使用するには、まず変圧器パッケージをアップグレードすることから始めます。

#upgrade the transformer package
pip install -U "transformers==4.40.0" --upgrade

次に、次のコード スニペットを実行します。 Hugging Face のブログ投稿には、このモデルには通常、3090 や 4090 などの GPU を含む約 16 GB の RAM が必要であると記載されています。

import transformers
import torch

model_id = "meta-llama/Meta-Llama-3-8B-Instruct"

pipeline = transformers.pipeline(
  "text-generation",
  model="meta-llama/Meta-Llama-3-8B-Instruct",
  model_kwargs={"torch_dtype": torch.bfloat16},
  device="cuda",
)

pipeline("Hey how are you doing today?")

「RuntimeError:cutlassF:起動するカーネルが見つかりません!」というエラーが表示された場合は、 」というメッセージが表示された場合は、以下のコードを試してセルを再度実行してください。

torch.backends.cuda.enable_mem_efficient_sdp(False)
torch.backends.cuda.enable_flash_sdp(False)

'generated_text': 「こんにちは、今日はどうですか?今のところ素晴らしい一日を過ごしていることを願っています!私はただ”

ここで留意すべき点がいくつかありますが、

  • この例では、「bfloat16」を使用してモデルをロードしました。元々、Meta は「bfloat16」を使用していました。そのため、最高の精度を確保するため、または評価を行うために、これを実行することをお勧めします。実際のケースでは、float16 を試してください。ハードウェアによっては、こちらの方が高速な場合があります。
  • モデルを自動的に圧縮して、8 ビット モードまたは 4 ビット モードでロードすることもできます。 4 ビット モードで実行すると必要なメモリが少なくなるため、多くのコンシューマ グレードのグラフィックス カードやそれほど強力ではない GPU と互換性があります。以下は、4 ビット モードでパイプラインをロードする方法のコード スニペットの例です。
pipeline = transformers.pipeline(
    "text-generation",
    model="meta-llama/Meta-Llama-3-8B-Instruct",
    model_kwargs={
        "torch_dtype": torch.float16,
        "quantization_config": {"load_in_4bit": True},
        "low_cpu_mem_usage": True,
    },
)

ラマ 3 の未来

現在の 8B および 70B モデルは印象的ですが、メタ研究者は 400B を超えるパラメーターを備えたさらに大きなモデルに取り組んでいます。これらのモデルはまだトレーニング中です。今後数か月間で、マルチモダリティ、多言語会話能力、より長い文脈理解、全体的により強力な機能などのエキサイティングな新機能が提供される予定です。

結論

Meta は、Llama 3 を使用して、現在入手可能な最高の独自モデルと同等の最高のオープン モデルを構築することにしました。 Meta の Llama 3 の最も優れている点は、コミュニティが開発中のこれらのモデルにアクセスできるように、早期かつ頻繁にリリースするというオープンソース精神です。リリースされたテキストベースのモデルは、Llama 3 のモデル コレクションの最初のものです。 Meta が述べているように、彼らの主な目標は、Llama 3 を多言語かつマルチモーダルにし、より拡張されたコンテキストを持ち、推論やコーディングなどのコア LLM 機能全体の全体的なパフォーマンスを向上し続けることです。

GenAI 分野での次の展開が待ちきれません。

参考文献

  • ようこそ Llama 3 - Meta の新しいオープン LLM
  • メタラマ/メタラマ-3-70B
  • 元のリポジトリ Llama-3
  • Meta Llama 3 の紹介: これまでで最も高性能なオープンに利用可能な LLM