MetaのLlama:言語モデルを超えて

Llamaの進化:現状への挑戦

MetaのLlamaは、大規模言語モデル(LLM)の状況を急速に変革しました。2023年2月に最初に発表されたLlamaは、継続的な進化を遂げ、当初の設計をはるかに超える機能を拡張してきました。以前はクローズドソースモデルによって制御されていた領域に、完全にオープンソースではないにしても、斬新なアプローチを提供し、混乱をもたらしました。

Llamaが最初に登場したとき、それは巨大テクノロジー企業による大規模なクローズドソースLLMの優位性に挑戦しました。Meta AIは、より小さく、より汎用的なモデルに焦点を当てる戦略を採用しました。その中心的な考え方は、膨大な数のトークンでトレーニングされたこれらの小さなモデルは、特殊なタスクのために再トレーニングおよび微調整するのがより簡単で、費用対効果が高いということでした。このアプローチは、これまで以上に大規模でリソースを大量に消費するモデルを構築するという傾向とは対照的でした。

しかし、Llamaの’オープンソース’の性質は議論の対象です。Meta Llamaライセンスには、商用利用および許容される使用に関する特定の制限が含まれています。これらの制限は間違いなく正当化できますが、Open Source Initiativeの厳密なオープンソースの定義とは矛盾します。これにより、Llamaが本当にオープンソースとして適格かどうかについての議論が続いています。

法的課題の克服:著作権の懸念

Llamaの開発には、法的なハードルがなかったわけではありません。2023年、Metaは、著作権で保護された書籍がLlamaのトレーニングに許可なく使用されたと主張する著者から2件の集団訴訟に直面しました。これらの訴訟は、大規模言語モデルのトレーニングデータを取り巻く複雑な著作権問題を浮き彫りにしています。これまでのところ、裁判所は著者の主張にあまり同情的ではありません。

機能の拡張:Llamaの成長するモデルファミリー

2023年後半以降、Meta AIはLlamaファミリーを大幅に拡大しました。モデルはもはやテキストベースのインタラクションに限定されません。現在のLlamaエコシステムには、テキストと視覚入力の両方を処理できるマルチモーダルモデル、コード解釈とツール統合のために設計されたモデルが含まれます。さらに、Metaは、潜在的なリスクと攻撃を特定して軽減するためのLlama Guardと呼ばれる安全コンポーネントを導入しました。これらは、’Llama Stack’と呼ばれる全体的なフレームワークの一部となるように設計されています。

Meta AIのモデルカードから要約した、Llamaファミリーの主要なモデルのいくつかを詳しく見てみましょう。

Llama Guard 1:インタラクションの保護

Llama Guard 1は、Llama 2に基づく70億パラメーターのモデルです。ユーザープロンプト(プロンプト分類)とLLM応答(応答分類)の両方でコンテンツを分類する、入出力セーフガードとして機能します。このモデルは、Llamaベースのシステムとのより安全で責任あるインタラクションを保証するのに役立ちます。

Llama Guardは、潜在的な危害を分類するために6レベルの分類法を採用しています。

  • **暴力と憎悪:**個人またはグループに対する暴力または憎悪を助長するコンテンツ。
  • **性的コンテンツ:**性的に露骨な内容、または子供を搾取、虐待、危険にさらすコンテンツ。
  • **銃器および違法な武器:**銃器およびその他の武器の違法な販売、使用、または改造に関連するコンテンツ。
  • **規制または管理された物質:**薬物、アルコール、またはタバコの違法な使用または販売を促進するコンテンツ。
  • **自殺と自傷行為:**自殺または自傷行為を奨励または指示するコンテンツ。
  • **犯罪計画:**違法行為を促進または計画するコンテンツ。

Code Llama 70B:コーディング能力のトライアド

Code Llama 70Bは、Llamaのコーディング機能を大幅に拡張しました。このモデルは、3つの異なるバリアントで利用できます。

  • **Code Llama:**一般的なコード合成と理解のために設計された基本モデル。コードを生成し、コード機能を説明し、デバッグを支援できます。
  • Code Llama – Python: Pythonプログラミングに特化したバージョン。このモデルは、Pythonコードの生成と理解に最適化されており、Python開発者にとって貴重なツールとなっています。
  • **Code Llama – Instruct:**指示に従い、より安全な展開を保証することに焦点を当てたバリアント。このモデルは、特定のガイドラインと安全プロトコルに準拠するコードを生成するのに特に役立ちます。

3つのバリアントはすべて、70億、130億、340億、700億のパラメーターの異なるサイズで利用できます。Code Llamaとそのバリアントは、主に英語および関連するプログラミング言語での商用および研究用に設計されています。Code Llamaが強力なコーディング能力を持っていることを示唆する十分な証拠があります。

Llama Guard 2:強化された安全分類

Llama Guard 2は、その前身の基盤の上に構築され、強化された安全分類機能を提供します。Llama 3に基づくこの80億パラメーターのモデルは、MLCommonsのハザード分類法に沿って、11のカテゴリにわたって安全ラベルを予測するようにトレーニングされています。

Llama Guard 2がカバーするハザードカテゴリは次のとおりです。

  • **S1: 暴力犯罪:**暴力的な犯罪行為に関連するコンテンツ。
  • **S2: 非暴力犯罪:**非暴力的な犯罪に関連するコンテンツ。
  • **S3: 性犯罪:**性的犯罪を含むコンテンツ。
  • **S4: 児童性的搾取:**子供を性的に搾取、虐待、または危険にさらすコンテンツ。
  • **S5: 専門的なアドバイス:**専門分野(医療、法律、金融など)における資格のない、または誤解を招くアドバイス。
  • **S6: プライバシー:**プライバシーを侵害したり、同意なしに個人情報を開示したりするコンテンツ。
  • **S7: 知的財産:**知的財産権を侵害するコンテンツ。
  • **S8: 無差別兵器:**広範囲かつ無差別に危害を加える兵器に関連するコンテンツ。
  • **S9: 憎悪:**個人またはグループに対する憎悪または偏見を表明するコンテンツ。
  • **S10: 自殺と自傷行為:**自殺または自傷行為を促進または指示するコンテンツ。
  • **S11: 性的コンテンツ:**性的に露骨な内容。

Meta Llama 3:対話における多様性

Meta Llama 3は、80億と700億のパラメーターの2つのサイズで提供され、事前トレーニング済みバリアントと指示調整済みバリアントの両方があります。指示調整済みモデルは、特にダイアログベースのアプリケーションに最適化されており、チャットボットや会話型AIシステムに適しています。

Prompt Guard:悪意のある入力からの防御

Prompt Guardは、ジェイルブレイク(安全制限を回避する試み)やプロンプトインジェクション(巧妙に作成された入力によってモデルの出力を操作する試み)など、悪意のあるプロンプトを検出するように設計された分類器モデルです。Meta AIは、最適なパフォーマンスを達成するために、アプリケーション固有のデータでPrompt Guardを微調整することを推奨しています。

Llama Guardとは異なり、Prompt Guardは特定のプロンプト構造を必要としません。文字列入力で動作し、安全または安全でない(2つの異なる重大度レベルで)として分類します。これは、ラベルのみを出力するBERTモデルです。

Llama Guard 3:マルチモーダルおよび多言語の安全性

Llama Guard 3には、Llama Guard 3 1B、Llama Guard 3 8B、Llama Guard 3 11B-Visionの3つのバージョンがあります。最初の2つはテキストのみのモデルですが、3番目のモデルはLlama 3.2 11B-Visionモデルの視覚理解機能を組み込んでいます。すべてのバージョンは多言語対応(テキストのみのプロンプトの場合)であり、MLCommonsコンソーシアムによって定義されたハザードカテゴリに準拠しています。

Llama Guard 3 8Bは、カテゴリS14(コードインタープリターの悪用)にも使用できます。Llama Guard 3 1Bモデルは、この特定のカテゴリに最適化されていないことに注意することが重要です。

Llama Guard 2のハザードカテゴリを拡張したものは次のとおりです。

  • S1: 暴力犯罪
  • S2: 非暴力犯罪
  • S3: 性犯罪
  • S4: 児童性的搾取
  • S5: 名誉毀損
  • S6: 専門的なアドバイス
  • S7: プライバシー
  • S8: 知的財産
  • S9: 無差別兵器
  • S10: 憎悪
  • S11: 自殺と自傷行為
  • S12: 性的コンテンツ
  • S13: 選挙
  • S14: コードインタープリターの悪用

Meta Llama 3.1:多言語生成モデル

Meta Llama 3.1コレクションは、80億、700億、4050億のパラメーターサイズ(テキスト入力、テキスト出力)の事前トレーニング済みおよび指示調整済み生成モデルを含む、多言語大規模言語モデルで構成されています。

サポートされている言語は次のとおりです:英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語。

Meta Llama 3.2:強化された対話機能

Llama 3.2コレクションは、10億および30億のパラメーターサイズ(テキスト入力、テキスト出力)の事前トレーニング済みおよび指示調整済み生成モデルを含む、多言語大規模言語モデルを備えています。これらのモデルの量子化バージョンも利用できます。Llama 3.2の指示調整済みテキストのみモデルは、多言語対話に最適化されており、エージェント検索や要約などのタスクに優れています。1Bおよび3Bモデルは、Llama 3.1のより小さく、強力ではない派生物です。

公式にサポートされている言語は、英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語です。ただし、Llama 3.2は、これら8つの言語以外にも幅広い言語でトレーニングされています。

Llama 3.2-Vision:画像推論と理解

Llama 3.2-Visionコレクションは、マルチモーダル大規模言語モデルを導入しています。これらのモデルは、画像推論用に事前トレーニングおよび指示調整されており、110億および900億のパラメーターサイズ(テキストおよび画像入力、テキスト出力)で利用できます。指示調整済みモデルは、視覚認識、画像推論、キャプション、および画像に関する一般的な質問への回答に最適化されています。

テキストのみのタスクの場合、公式にサポートされている言語は、英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語です。Llama 3.2は、より幅広い言語セットでトレーニングされていますが、画像+テキストアプリケーションの場合、英語が唯一サポートされている言語です。

Meta Llama 3.3:強力な70Bモデル

Meta Llama 3.3多言語大規模言語モデルは、700億のパラメーター(テキスト入力、テキスト出力)を持つ事前トレーニング済みおよび指示調整済み生成モデルです。

サポートされている言語:英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語。

大規模言語モデル(Llama 3.2を含む)は、単独での展開を意図していないことを理解することが重要です。これらは、適切な安全ガードレールを備えた包括的なAIシステムに統合する必要があります。開発者は、特にエージェントシステムを構築する場合、システムのセーフガードを実装することが期待されます。

Llama 3.3、Llama 3.2テキストのみモデル、およびLlama 3.1には、次のツールの組み込みサポートが含まれています。

  • **Brave Search:**Web検索を実行するためのツール呼び出し。
  • **Wolfram Alpha:**複雑な数学計算を実行するためのツール呼び出し。
  • **Code Interpreter:**モデルがPythonコードを出力できるようにするツール呼び出し。

注:Llama 3.2 visionモデルは、テキスト+画像入力でのツール呼び出しをサポートしていません

Llama Stack:統合フレームワーク

Llamaモデルの数が多いため、圧倒される可能性があります。選択と統合のプロセスを簡素化するために、MetaはLlama Stackを提供しています。このフレームワークはLlamaモデルを強調していますが、検索拡張生成(RAG)用のベクトルデータベースなど、関連機能のアダプターも提供します。

Llama Stackは現在、Python、Swift、Node、KotlinのSDKをサポートしています。次のようなさまざまなディストリビューションを提供しています。

  • **ローカルディストリビューション(Ollamaを使用):**ローカル開発およびテスト用。
  • **オンデバイスディストリビューション(iOSおよびAndroid):**モバイルデバイスにLlamaモデルを展開するため。
  • **GPU用ディストリビューション:**GPUのパワーを活用して処理を高速化するため。
  • **リモートホストディストリビューション(TogetherおよびFireworks):**クラウドベースのサービスを通じてLlamaモデルにアクセスするため。

Llama Stackの背後にある中心的な概念は、開発者がローカルでアプリケーションを構築し、その後、本番環境に簡単に移行できるようにすることです。リモートLlama Stackに対するローカル開発用のインタラクティブなLlama Stack Playgroundも提供します。

Llamaモデルの実行:多様な展開オプション

Llamaモデルは、Linux、Windows、macOS、クラウドなど、さまざまなプラットフォームに展開できます。Llama 3.2やLlama 3.2-Visionなどの量子化Llamaモデルは、Ollamaなどのツールを使用して、M4 Pro MacBook Proのようなラップトップでも、最新のハードウェアで効果的に実行できます。

Metaは、Llamaモデルの展開と使用に関する包括的なハウツーガイドを提供しています。さらに、LangChainやLlamaIndexなどの一般的なフレームワークの統合ガイドも利用できます。

要約すると、Llamaは単なる言語モデルではなくなり、安全機能、コード生成、および多言語サポートを備えたマルチモーダルAIフレームワークになりました。Metaのシステムにより、多くの場所に展開できますが、トレーニングデータに関する法的問題、およびLlamaがオープンソースであるかどうかに関する議論は続いています。