Llama-3.3-70B-Instruct

この記事は約21分で読めます。

モデル情報

Meta Llama 3.3 多言語大型言語モデル(LLM)は、70B(テキストイン/テキストアウト)の事前トレーニング済みで指令調整済みの生成モデルです。Llama 3.3 指令調整テキスト専用モデルは、多言語対話ユースケースを最適化し、一般的な業界ベンチマークにおいて多数のオープンソースおよびクローズドチャットモデルを凌駕しています。

モデル開発者:Meta

モデルアーキテクチャ:Llama 3.3は、最適化されたトランスフォーマーアーキテクチャを使用する自己帰属型言語モデルです。調整済みバージョンでは、人間好みに合わせるための有用性と安全性のための監督細かい調整(SFT)と人間のフィードバックを用いた強化学習(RLHF)を使用します。

モデル名 トレーニングデータ パラメータ 入力モダリティ 出力モダリティ コンテキスト長 GQA トークン数 ナレッジカットオフ
Llama 3.3 (テキストのみ) 公開されているオンラインデータの新しいミックス 70B 多言語テキスト 多言語テキストおよびコード 128k Yes 15T+ 2023年12月

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

Llama 3.3モデル。トークン数は事前トレーニングデータのみを指します。すべてのモデルバージョンは、推論スケーラビリティを改善するためGrouped-Query Attention(GQA)を使用します。

モデルリリース日:

70B Instruct:2024年12月6日 ステータス:これはオフラインデータセットでトレーニングされた静的モデルです。調整モデルの今後のバージョンは、コミュニティフィードバックでモデル安全性を改善するにつれてリリースされます。

ライセンス:カスタムの商用ライセンス、Llama 3.3 コミュニティライセンス契約は以下で入手可能:https://github.com/meta-llama/llama-models/blob/main/models/llama3_3/LICENSE

モデルに関する質問やコメントの送信先:モデルのREADMEにフィードバックやコメントを提供する方法が記載されています。Llama 3.3をアプリケーションで使用する方法に関する技術情報については、こちらをご覧ください。

意図された使用

意図されたユースケース Llama 3.3は、多言語での商用および研究使用を意図しています。指令調整テキスト専用モデルは、アシスタントのようなチャットに適していますが、事前トレーニングモデルは自然言語生成タスクに適応可能です。Llama 3.3モデルはまた、そのモデルの出力を利用して他のモデルを改善する能力もサポートしています。これには、合成データ生成と蒸馏が含まれます。Llama 3.3 コミュニティライセンスはこれらのユースケースを許可します。

範囲外の使用:適用される法律や規制(包括して貿易コンプライアンス法)に違反するいかなる方法での使用も含まれます。Acceptable Use PolicyおよびLlama 3.3 コミュニティライセンスによって禁止されている他の使用方法も含まれます。このモデルカードで明示的にサポートされている言語以外の言語での使用も含まれます。

注意:Llama 3.3はサポートされている8言語以上のより広範な言語コレクションでトレーニングされています。開発者は、Llama 3.3 コミュニティライセンスとAcceptable Use Policyに準拠し、安全かつ責任ある方法でLlama 3.3を追加言語で使用することに責任を持ちます。

使用方法

このレポジトリには、transformersとオリジナルllamaコードベースで使用するためのLlama-3.3-70B-Instructの2つのバージョンが含まれています。

transformersでの使用

transformers >= 4.43.0以降では、Transformersパイプライン抽象を使用して会話推論を実行するか、generate()関数を利用してAutoクラスを活用できます。

transformersインストールをpip install --upgrade transformersで更新してください。

以下はTransformersでの使用例です:

import transformers
import torch
from modelscope import snapshot_download

model_id = snapshot_download("LLM-Research/Llama-3.3-70B-Instruct")

pipeline = transformers.pipeline(
    "text-generation",
    model=model_id,
    model_kwargs={"torch_dtype": torch.bfloat16},
    device_map="auto",
)

messages = [
    {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
    {"role": "user", "content": "Who are you?"},
]

outputs = pipeline(
    messages,
    max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])

transformersでのツール使用

LLaMA-3.3は、複数のツール使用フォーマットをサポートしています。プロンプトフォーマットングガイドはこちらをご覧ください。

ツール使用は、Transformersのチャットテンプレートを通じてもサポートされます。以下は、単純なツールの例を示します:

# まず、ツールを定義
def get_current_temperature(location: str) -> float:
    """
    Get the current temperature at a location.

    Args:
        location: The location to get the temperature for, in the format "City, Country"
    Returns:
        The current temperature at the specified location in the specified units, as a float.
    """
    return 22.  # A real function should probably actually get the temperature!

# 次に、チャットを作成し、チャットテンプレートを適用
messages = [
  {"role": "system", "content": "You are a bot that responds to weather queries."},
  {"role": "user", "content": "Hey, what's the temperature in Paris right now?"}
]

inputs = tokenizer.apply_chat_template(messages, tools=[get_current_temperature], add_generation_prompt=True)

通常通りテキストを生成できます。モデルがツールコールを生成した場合は、次のようにチャットに追加してください:

tool_call = {"name": "get_current_temperature", "arguments": {"location": "Paris, France"}}
messages.append({"role": "assistant", "tool_calls": [{"type": "function", "function": tool_call}]})

そして、ツールを呼び出し、結果をツールロールで次のように追加してください:

messages.append({"role": "tool", "name": "get_current_temperature", "content": "22.0"})

その後、generate()を再度呼び出して、モデルがチャットでツール結果を使用できるようにします。これはツールコールの非常に簡単な紹介です - 詳細については、LLaMAプロンプトフォーマットドキュメントとTransformersツール使用ドキュメントをご覧ください。

bitsandbytesでの使用

モデルチェックポイントは、bitsandbytesとtransformersを使用して8ビットおよび4ビットでさらにメモリを最適化できます。

以下は使用例です:

import torch
from modelscope import AutoModelForCausalLM, AutoTokenizer

model_id = "LLM-Research/Llama-3.3-70B-Instruct"
quantization_config = BitsAndBytesConfig(load_in_8bit=True)

quantized_model = AutoModelForCausalLM.from_pretrained(
    model_id, device_map="auto", torch_dtype=torch.bfloat16, quantization_config=quantization_config)

tokenizer = AutoTokenizer.from_pretrained(model_id)
input_text = "What are we having for dinner?"
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")

output = quantized_model.generate(**input_ids, max_new_tokens=10)

print(tokenizer.decode(output[0], skip_special_tokens=True))

4ビットでロードするには、load_in_4bit=Trueを渡してください。

llamaでの使用

レポジトリ内の手順に従ってください。

オリジナルチェックポイントをダウンロードするには、以下のhuggingface-cliを利用する例コマンドをご覧ください:

modelscope download LLM-Research/Llama-3.3-70B-Instruct --include "original/*" --local_dir Llama-3.3-70B-Instruct

ハードウェアとソフトウェア

トレーニング要因 私たちはカスタムトレーニングライブラリ、MetaのカスタムビルドGPUクラスタ、および事前トレーニング用のプロダクションインフラストラクチャを使用しました。細かい調整、注釈、評価もプロダクションインフラストラクチャで実行されました。

トレーニングエネルギー使用 トレーニングでは、以下の表に従って、H100-80GB(TDP 700W)タイプハードウェアで累積39.3M GPU時間の計算を使用しました。トレーニング時間は各 モデルのトレーニングに必要な合計GPU時間であり、電力消費は使用されたGPUデバイスのピーク電力容量を、電力使用効率に調整したものです。

トレーニング温室効果ガス排出 推定される場所ベースの温室効果ガス排出量は、トレーニングのために11,390トンCO2eqでした。2020年以来、Metaはグローバル運\n作において温室効果ガス排出のネットゼロを維持しており、電気使用量的100%を再生可能エネルギーとマッチさせています。したがって、トレーニングのための市場ベースの温室効果ガス排出量は0トンCO2eqです。

モデル トレーニング時間(GPU時間) トレーニング電力消費量(W) 場所ベースのトレーニング温室効果ガス排出量(トンCO2eq) 市場ベースのトレーニング温室効果ガス排出量(トンCO2eq)
Llama 3.3 70B 7.0M 700 2,040 0

トレーニングエネルギー使用量と温室効果ガス排出量を決定するために使用された方法論は、こちらで確認できます。Metaがこれらのモデルを公開しているため、他の人がトレーニングエネルギー使用量と温室効果ガス排出量を負うことはありません。

トレーニングデータ 概要:Llama 3.3は、公開されているソースからの約150兆のトークンで事前トレーニングされました。微調整データには、公開されている指令データセットが含まれており、さらに2,500万以上の合成生成された例も含まれています。

データの鮮度:事前トレーニングデータのカットオフは2023年12月です。

ベンチマーク - 英語テキスト このセクションでは、Llama 3.3の結果を以前のモデルと比較して報告します。

指令調整モデル

カテゴリ ベンチマーク ショット数 指標 Llama 3.1 8B Instruct Llama 3.1 70B Instruct Llama-3.3 70B Instruct Llama 3.1 405B Instruct
多言語理解 MMLU (CoT) 0 macro_avg/acc 73.0 86.0 86.0 88.0
多言語理解 MMLU Pro (CoT) 5 macro_avg/acc 48.3 66.4 68.9 73.3
スティーラビリティ IFEval - - 80.4 87.5 92.1 88.6
推論 GPQA Diamond (CoT) 0 正確さ 31.8 48.0 50.5 49.0
コード HumanEval 0 pass@1 72.6 80.5 88.4 89.0
コード MBPP EvalPlus (ベース) 0 pass@1 72.8 86.0 87.6 88.6
数学 MATH (CoT) 0 sympy_intersection_score 51.9 68.0 77.0 73.8
ツール使用 BFCL v2 0 overall_last_summary/macro_avg/valid 65.4 77.5 77.3 81.1
多言語 MGSM 0 em 68.9 86.0 91.1 91.6

責任と安全性

私たちの責任あるリリースアプローチの一環として、信頼と安全性リスクの管理に向けた3つの戦略を採用しました。

開発者を支援して、Llamaがサポートするターゲットオーディエンスとユースケースに対して有用で、安全で、柔軟な体験を展開できるようにします。 悪意のあるユーザーがLlamaの機能を悪用して潜在的な害を及ぼす可能性を防ぐための開発者を守ります。 私たちのモデルの誤用を防ぐためのコミュニティへの保護を提供します。 責任ある展開 Llamaは、様々なユースケースで使用されることを意図した基礎技術です。MetaのLlamaモデルが責任ある方法で展開された例は、私たちのコミュニティストーリーズウェブページで見つけることができます。私たちのアプローチは、一般的なユースケースで標準的な害に対処するモデルの安全性を調整することで、世界が技術の力から恩恵を受けられる最も有益なモデルを構築することです。開発者はその後、自分のユースケースに合わせて安全性を調整し、自分のポリシーを定義し、Llamaシステムに必要な保護措置を敷いてモデルを展開します。Llama 3.3は、私たちの責任ある使用ガイドに記載されたベストプラクティスに従って開発されました。詳細については、責任ある使用ガイドを参照してください。

Llama 3.3の指令 安全性の微調整を行う主な目的は、安全性の微調整のロバストさを研究するための貴重なリソースを研究コミュニティに提供すること、そして、さまざまなアプリケーション用にすぐに使用可能で安全で強力なモデルを提供すること、これにより開発者の安全なAIシステムの展開負荷を減らすことです。実施された安全性緩和の詳細については、Llama 3の論文を参照してください。

微調整データ 私たちは、ベンダーからの人間生成データと合成データを組み合わせた多面的なアプローチでデータ収集を行い、潜在的な安全性リスクを軽減しています。私たちは、高品質なプロンプトと応答を意図的に選択し、データ品質管理を強化するために、多くの大規模言語モデル(LLM)ベースの分類器を開発しました。

拒否とトーン Llama 3で開始した仕事に基づいて、私たちは、モデルが良性のプロンプトに対して拒否する能力とその拒否のトーンに強調を置きました。私たちは、安全性データ戦略に境界線と対抗的なプロンプトの両方を含め、安全性データ応答をトーンガイドラインに従うように修正しました。

Llama 3.3システム 大規模言語モデル、特にLlama 3.3は、孤立して展開されるのではなく、必要に応じて追加の安全性ガードレールを備えた全体的なAIシステムの一部として展開されるべきです。開発者は、エージェントシステムを構築する際にシステム保護措置を敷くことが期待されます。保護措置は、システムに内在する安全性とセキュリティリスクを軽減するだけでなく、適切な有用性と安全性のバランスを実現するためにも重要です。私たちの責任あるリリースアプローチの一環として、Llamaモデルや他のLLMと共に開発者が展開すべき保護措置、Llama Guard 3、プロンプトガード、コードシールドをコミュニティに提供しています。私たちのすべての参照実装デモは、デフォルトでこれらの保護措置を含んでおり、開発者はシステムレベルの安全性をすぐに活用できます。

新しい機能 今回のリリースでは、長い文脈ウィンドウ、多言語の入力と出力、開発者が第三者ツールと統合する可能性など、新しい機能が導入されています。これらの新しい機能を活用する構築では、生成AIの一般的なユースケースに適用されるベストプラクティスに加えて、特定の考慮が必要です。

ツール使用:標準的なソフトウェア開発と同様に、開発者は選択したツールとサービスとのLLMの統合を責任を持って行います。彼らは自分のユースケースに明確なポリシーを定義し、使用する第三者サービスの信頼性を評価し、この機能を使用する際の安全性とセキュリティの限界を認識する必要があります。第三者保護措置の安全な展開に関するベストプラクティスは、責任ある使用ガイドを参照してください。

多言語性:Llama 3.3は、英語に加えてフランス語、ドイツ語、ヒンディー語、イタリア語、ポルトガル語、スペイン語、タイ語の7つの言語をサポートしています。Llamaは、安全性と有用性のパフォーマンス閾値を満たす言語以外でもテキストを出力できる可能性があります。私たちは、細かい調整とシステム制御を実装せずに、サポートされていない言語での会話を行う模型を使用することを強くお勧めしません。これは、彼らのポリシーと責任ある使用ガイドで共有されたベストプラクティスに合致しています。

評価 私たちは、一般的なユースケースだけでなく特定の機能に対してもLlamaモデルを評価しました。一般的なユースケースの評価では、チャットボット、コーディングアシスタント、ツールコールを含む最も一般に構築されるアプリケーションのシステムの安全性リスクを測定します。私たちは、入力プロンプトと出力応答をフィルタリングするための専用の対抗的な評価データセットを構築し、LlamaモデルとLlama Guard 3で構成されたシステムを評価しました。アプリケーションを文脈内で評価することが重要であり、私たちは使用ケースに合わせた専用の評価データセットを構築することをお勧めします。プロンプトガードとコードシールドも、アプリケーションに関連する場合があります。

機能評価では、特定の機能に内在するLlamaモデルの脆弱性を測定し、長い文脈、多言語、ツールコール、コーディング、または記憶化を含む専用のベンチマークを作成しました。

レッドチーム 両方のシナリオに対して、私たちは対抗的なプロンプティングを通じてリスクを発見することを目的とした繰り返しのレッドチーム活動を実施しました。また、私たちは学びを活用して、私たちのベンチマークと安全性調整データセットを改善しました。 私たちは、重要なリスク領域の専門家と早期に協力し、これらの現実世界の被害の性質と、このようなモデルが社会に意図しない被害を招く可能性を理解しました。これらの会話に基づいて、レッドチームが達成しようと試みる一連の対抗的な目標、有害な情報を抽出したり、モデルを再プログラミングして潜在的に有害な能力で動作させるなど、を導き出しました。レッドチームは、サイバーセキュリティ、対抗的な機械学習、責任あるAI、および特定の地理市場における整合性問題に関するバックグラウンドを持つ多言語コンテンツ専門家を含む専門家で構成されました。

重大以及其他リスク 私たちは、以下の重大なリスク領域を軽減するよう努めました: 1- CBRNE(化学的、生物的、放射性、核、および爆発物)の有用性 化学兵器および生物兵器の拡散に関連するリスクを評価するために、Llama 3.3モデルの使用が悪意のある行為者の計画やこれらのタイプの兵器を使用した攻撃を実行する能力を意味的に増大させるかどうかを評価するためのアップリフトテストを実施しました。

  1. 児童安全 児童安全リスク評価は、専門家チームを使用して行われ、モデルが児童安全リスクにつながる結果を生成する能力を評価し、微調整を通じて必要な適切なリスク軽減措置を通知しました。私たちは、これらの専門家レッドチームセッションを活用して、Llama 3モデル開発を通じて評価ベンチマークのカバーを広げました。Llama 3では、追加された言語を含む複数の攻撃ベクター沿いでのモデルリスクを評価するために、目的に基づく方法論を使用して新しい詳細なセッションを実施しました。また、市場固有のニュアンスや経験を考慮に入れた、違反可能性のあるコンテンツを評価するレッドチーム活動を実施するために、コンテンツ専門家と協力しました。

  2. サイバー攻撃の可能化 私たちのサイバー攻撃アップリフト研究では、LLMがハッキングタスクにおける人間の能力を、スキルレベルと速度の両面で強化することができるかどうかを調査しました。 私たちの攻撃自動化研究は、LLMがサイバー攻撃作戦で自律エージェントとして使用された場合の能力を評価することを焦点としています。特に、勒索软件攻撃の文脈です。この評価は、以前の研究とは異なり、LLMを対話型アシスタントとして考慮に入れていません。主要目的は、これらのモデルが人間の介入なしに複雑なサイバー攻撃を効果的に実行する自律エージェントとして機能するかどうかを評価することです。

コミュニティ 生成AIの安全性には専門知識とツールが必要ですが、オープンコミュニティの力がその進歩を加速させると信じています。私たちはAI連盟、AIパートナーシップ、MLCommonsを含むオープンコンソーシアムのアクティブなメンバーであり、安全性の標準化と透明度に貢献しています。私たちは、コミュニティがMLCommonsのProof of Concept評価のような分類法を採用することをお勧めし、安全性とコンテンツ評価关于の協力と透明度を促進します。私たちのPurple Llamaツールは、コミュニティが使用できるオープンソースであり、クラウドサービスプロバイダーを含む生态系统パートナーに広く配布されています。私たちは、私たちのGithubリポジトリへのコミュニティ貢献を奨励しています。

また、教育、気候、オープンイノベーションの3つのカテゴリにおいて、MetaのLlamaモデルが社会的利益に寄与する最も魅力的な応用を特定し支援するためのLlama Impact Grantsプログラムを設立しました。数百件の申請の中から選ばれた20人のファイナリストは、こちらで見つけることができます。

最後に、出力報告メカニズムやバグバウンティプログラムを含む一連のリソースを敷いており、コミュニティの助けを借りてLlama技術を絶えず改善しています。

倫理的考慮と限界 Llama 3.3の核心となる価値は、開放性、包括性、そして有益性です。それは誰にでもサービスを提供し、幅広いユースケースに対応するように設計されています。そのため、多くの異なる背景、経験、視点を持つ人々にとってアクセス可能で設計されています。Llama 3.3は、ユーザーと彼らのニーズに応え、不必要な判断や正規性を挿入することなく、時には問題視される可能性のあるコンテンツも他のケースでは貴重な目的に充当できると理解しています。それはすべてのユーザーの尊厳と自律を尊重し、革新と進歩を促す自由な考えと表現の価値を守ります。

しかし、Llama 3.3は新しい技術であり、すべての新しい技術と同様に、その使用に関連するリスクが存在します。迄今実施されたテストは、すべてのシナリオをカバーしていませんし、カバーすることもできません。これらの理由により、すべてのLLMと同様に、Llama 3.3の潜在的な出力を事前に予測することはできません。モデルは、場合によっては不正確、偏った、または他の抗議可能な応答をユーザーのプロンプトに対して生成する可能性があります。したがって、Llama 3.3モデルのアプリケーションを展開する前に、開発者は模型に合わせた安全性テストと調整を行う必要があります。

aiスピーキング

ドルフィンAIは言語学習アプリケーションのためのプロフェッショナルな発音評価API(pronunciation assessment api)ソリューションを提供します。音素、単語、文章、チャプター、発音矯正、単語矯正、クイズ、フリーダイアログ、多肢選択問題など幅広く提供しています。当社の発音評価製品(pronunciation assessment)は、英語と中国語、クラウドAPI、オンプレミス、オフラインデバイスの展開をサポートしています。当社の発音評価API(pronunciation assessment api)は、正確性、流暢性、完全性、リズムの次元をカバーする豊富な評価指標を提供し、音素、単語、文の異なるレベルの評価スコアも提供します。また、音素、単語、文の異なるレベルでの評価スコアも提供します。数千万人のユーザーに安定した効率的で安全なサービスを提供しています。ドルフィンAIの発音評価製品(pronunciation assessment)を試してみませんか?

タイトルとURLをコピーしました