モデル概要
モデル特徴
モデル能力
使用事例
🚀 fLlama 2 - Function Calling Llama 2
fLlama 2は、Hugging FaceのLlama 2モデルに関数呼び出し機能を拡張したものです。このモデルは、関数名と引数を含む構造化されたJSON引数で応答します。
🚀 クイックスタート
Llama 2 v2のリリース
LLama 2 with function calling (version 2) がリリースされ、こちらで利用可能です。
利用可能なモデル
- fLlama-7B (bitsandbytes NF4) - 無料
- fLlama-7B-chat (bitsandbytes NF4), (GGML), (GPTQ), (GPTQ-trained) - 無料
- fLlama-13B-chat (bitsandbytes NF4), (GPTQ) - 有料
✨ 主な機能
- fLlama 2は、Llama 2モデルに関数呼び出し機能を追加しています。
- モデルは、関数名と引数を含む構造化されたJSON引数で応答します。
📦 インストール
Google ColabとHuggingFaceを使用した推論
GPTQ-trained (高速 + 最高精度) - このリポジトリ
他のすべてのモデルはbitsandbytes NF4トレーニングからのものです。このモデルは、GPTQメソッドを使用して特別にトレーニングされています。
アダプターモデルであるため、現在実行するのは少し難しいです。試してみてください。
!pip install -q git+https://github.com/SunMarc/transformers.git@gptq_integration
!pip install -q git+https://github.com/SunMarc/optimum.git@add-gptq-marc
!pip install -q git+https://github.com/SunMarc/peft.git@peft_gptq
!pip install -q git+https://github.com/fxmarty/AutoGPTQ.git@patch-act-order-exllama #probably could speed this up by using wheels. takes 5 mins right now.
import transformers
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from auto_gptq.nn_modules.qlinear.qlinear_cuda_old import QuantLinear
# Script for model loading if using adapters
model_name_or_path = "ybelkada/llama-7b-GPTQ-test"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, device_map="auto") # must be auto, cannot be cpu
adapter_model_name = 'Trelis/Llama-2-7b-chat-hf-function-calling-GPTQ-trained-adapters'
GPTQ (高速 + 良好な精度)
この関数呼び出しチャットボットの自分のコピーを保存して始めましょう。
GPUランタイムを選択すると、無料のColabノートブックを使用して推論を実行できます。詳細はノートブックを参照してください。
Bits and Bytes NF4 (最も遅い推論)
このノートブック fLlama_Inference notebook を試してみてください。
GGML (ノートパソコンでの実行に最適、Macに最適)
これを実行するには、githubのggerganovからllamaccpをインストールする必要があります。
- 利用可能なモデルの下の上記のGGMLリンクからggmlファイルをダウンロードします。
- 次のようなコマンドを実行することをお勧めします。
./server -m fLlama-2-7b-chat.ggmlv3.q3_K_M.bin -ngl 32 -c 2048
これにより、ブラウザでチャットボットを実行できます。-nglは、レイヤーをMacのGPUにオフロードし、非常に良好なトークン生成速度を得ることができます。
💻 使用例
プロンプトと応答形式
関数呼び出しを行うには、入力を次のようにフォーマットする必要があります。
<s>[INST] <<SYS>>
You are a helpful research assistant. The following functions are available for you to fetch further data to answer user questions, if relevant:
{
"function": "search_bing",
"description": "Search the web for content on Bing. This allows users to search online/the internet/the web for content.",
"arguments": [
{
"name": "query",
"type": "string",
"description": "The search query string"
}
]
}
{
"function": "search_arxiv",
"description": "Search for research papers on ArXiv. Make use of AND, OR and NOT operators as appropriate to join terms within the query.",
"arguments": [
{
"name": "query",
"type": "string",
"description": "The search query string"
}
]
}
To call a function, respond - immediately and only - with a JSON object of the following format:
{
"function": "function_name",
"arguments": {
"argument1": "argument_value",
"argument2": "argument_value"
}
}
<</SYS>>
Find papers on high pressure batch reverse osmosis [/INST]
functionMetadataは、JSONオブジェクトの文字列表現である必要があります。
"functionMetaData": {
"function": "search_bing",
"description": "Search the web for content on Bing. This allows users to search online/the internet/the web for content.",
"arguments": [
{
"name": "query",
"type": "string",
"description": "The search query string"
}
]
}
そして、言語モデルは次のようにフォーマットされたJSONオブジェクトで応答する必要があります。
{
"function": "function_name",
"arguments": {
"argument1": "argument_value",
"argument2": "argument_value"
}
}
次のようなケースを処理することをお勧めします。
- 応答にJSONオブジェクトが含まれていない場合
- 応答にJSON応答以外のテキストが含まれている場合
📚 ドキュメント
ライセンスと使用方法
fLlama-7B
- Llama 2ライセンス
fLlama-13B
-
関数呼び出しの高精度化のため。
-
こちらでアクセスを購入できます: fLlama-13b: ユーザー/シートあたり19.99ユーロ。
-
ライセンスは他のユーザー/エンティティに譲渡できません。
-
より大きなモデルの商用ライセンスは要請に応じて提供されます - ronan [at] trelis [dot] comまでメールでお問い合わせください。
-
fLlamaモデルの使用は、さらにMetaライセンスの条項に従います。
データセット
このモデルのトレーニングに使用されたデータセットは、Trelis Function Calling Extended Dataset で見つけることができます。
トレーニング手順
トレーニング中に次の bitsandbytes
量子化設定が使用されました。
- quant_method: gptq
- bits: 4
- tokenizer: None
- dataset: None
- group_size: 128
- damp_percent: 0.01
- desc_act: False
- sym: True
- true_sequential: True
- use_cuda_fp16: False
- model_seqlen: None
- block_name_to_quantize: None
- module_name_preceding_first_block: None
- batch_size: 1
- pad_token_id: None
- disable_exllama: True
フレームワークバージョン
- PEFT 0.5.0.dev0
🔧 技術詳細
Llama 2モデルの詳細
Llama 2は、70億から700億のパラメータ規模の事前学習済みおよび微調整済みの生成テキストモデルのコレクションです。これは、対話ユースケースに最適化され、Hugging Face Transformers形式に変換された7B微調整済みモデルのリポジトリです。他のモデルへのリンクは、下部のインデックスにあります。
モデルの詳細
注意: このモデルの使用はMetaライセンスによって管理されています。モデルの重みとトークナイザーをダウンロードするには、ウェブサイト にアクセスし、ここでアクセスを要求する前にライセンスに同意してください。
Metaは、70億から700億のパラメータ規模の事前学習済みおよび微調整済みの生成テキストモデルのコレクションであるLlama 2ファミリーの大規模言語モデル (LLM) を開発し、公開しました。私たちの微調整済みのLLMであるLlama-2-Chatは、対話ユースケースに最適化されています。Llama-2-Chatモデルは、テストしたほとんどのベンチマークでオープンソースのチャットモデルを上回り、有用性と安全性に関する人間の評価では、ChatGPTやPaLMなどの人気のあるクローズドソースモデルと同等です。
属性 | 詳情 |
---|---|
モデル開発者 | Meta |
バリエーション | Llama 2は、7B、13B、70Bのパラメータサイズと、事前学習済みおよび微調整済みのバリエーションがあります。 |
入力 | モデルはテキストのみを入力とします。 |
出力 | モデルはテキストのみを生成します。 |
モデルアーキテクチャ | Llama 2は、最適化されたトランスフォーマーアーキテクチャを使用する自己回帰型言語モデルです。微調整バージョンは、教師付き微調整 (SFT) と人間のフィードバックによる強化学習 (RLHF) を使用して、有用性と安全性に関する人間の好みに合わせて調整されています。 |
トレーニングデータ | パラメータ | コンテンツ長 | GQA | トークン | 学習率 | |
---|---|---|---|---|---|---|
Llama 2 | 公開されているオンラインデータの新しい混合 | 7B | 4k | ✗ | 2.0T | 3.0 x 10-4 |
Llama 2 | 公開されているオンラインデータの新しい混合 | 13B | 4k | ✗ | 2.0T | 3.0 x 10-4 |
Llama 2 | 公開されているオンラインデータの新しい混合 | 70B | 4k | ✔ | 2.0T | 1.5 x 10-4 |
Llama 2ファミリーのモデル。 トークン数は事前学習データのみを指します。すべてのモデルは、グローバルバッチサイズ400万トークンでトレーニングされています。より大きなモデル - 70B - は、推論の拡張性を向上させるためにグループ化クエリアテンション (GQA) を使用しています。
属性 | 詳情 |
---|---|
モデルの日付 | Llama 2は2023年1月から7月の間にトレーニングされました。 |
ステータス | これはオフラインデータセットでトレーニングされた静的モデルです。微調整モデルの将来のバージョンは、コミュニティのフィードバックを元にモデルの安全性を改善した際にリリースされます。 |
ライセンス | カスタム商用ライセンスはこちらで入手できます: https://ai.meta.com/resources/models-and-libraries/llama-downloads/ |
研究論文 | "Llama-2: Open Foundation and Fine-tuned Chat Models" |
想定される使用方法
想定される使用ケース
Llama 2は、英語での商用および研究用途を想定しています。微調整モデルはアシスタントのようなチャットを想定しており、事前学習モデルはさまざまな自然言語生成タスクに適応できます。
チャットバージョンの期待される機能とパフォーマンスを得るには、特定のフォーマットに従う必要があります。これには、INST
と <<SYS>>
タグ、BOS
と EOS
トークン、およびそれらの間の空白と改行が含まれます (二重スペースを避けるために入力に strip()
を呼び出すことをお勧めします)。詳細はgithubの参照コードを参照してください: chat_completion
。
想定外の使用
適用される法律や規制に違反する方法での使用 (貿易コンプライアンス法律を含む)。英語以外の言語での使用。Llama 2の許容使用ポリシーおよびライセンス契約で禁止されている他の方法での使用。
ハードウェアとソフトウェア
トレーニング要因
事前学習には、カスタムトレーニングライブラリ、Metaの研究スーパークラスター、および本番クラスターを使用しました。微調整、アノテーション、および評価もサードパーティのクラウドコンピューティングで実行されました。
二酸化炭素排出量
事前学習には、A100-80GBタイプのハードウェアで累積330万GPU時間の計算が利用されました (TDPは350-400W)。推定総排出量は539tCO2eqで、その100%がMetaの持続可能性プログラムによって相殺されています。
時間 (GPU時間) | 消費電力 (W) | 排出された二酸化炭素 (tCO2eq) | |
---|---|---|---|
Llama 2 7B | 184320 | 400 | 31.22 |
Llama 2 13B | 368640 | 400 | 62.44 |
Llama 2 70B | 1720320 | 400 | 291.42 |
合計 | 3311616 | 539.00 |
事前学習中のCO2排出量。 時間: 各モデルのトレーニングに必要な総GPU時間。消費電力: 使用されるGPUデバイスごとのピーク電力容量を電力使用効率で調整したもの。排出量の100%は、Metaの持続可能性プログラムによって直接相殺されており、これらのモデルを公開しているため、他の人が事前学習コストを負担する必要はありません。
トレーニングデータ
概要
Llama 2は、公開されているソースからの2兆トークンのデータで事前学習されました。微調整データには、公開されている命令データセットと、100万を超える新しい人間によるアノテーション付きの例が含まれています。事前学習データセットと微調整データセットのどちらにもMetaユーザーデータは含まれていません。
データの新鮮さ
事前学習データは2022年9月を切り捨てていますが、一部の微調整データは2023年7月までの最新のものです。
評価結果
このセクションでは、標準的な学術ベンチマークでのLlama 1とLlama 2モデルの結果を報告します。すべての評価では、内部評価ライブラリを使用しています。
モデル | サイズ | コード | 常識推論 | 世界知識 | 読解力 | 数学 | MMLU | BBH | AGI評価 |
---|---|---|---|---|---|---|---|---|---|
Llama 1 | 7B | 14.1 | 60.8 | 46.2 | 58.5 | 6.95 | 35.1 | 30.3 | 23.9 |
Llama 1 | 13B | 18.9 | 66.1 | 52.6 | 62.3 | 10.9 | 46.9 | 37.0 | 33.9 |
Llama 1 | 33B | 26.0 | 70.0 | 58.4 | 67.6 | 21.4 | 57.8 | 39.8 | 41.7 |
Llama 1 | 65B | 30.7 | 70.7 | 60.5 | 68.6 | 30.8 | 63.4 | 43.5 | 47.6 |
Llama 2 | 7B | 16.8 | 63.9 | 48.9 | 61.3 | 14.6 | 45.3 | 32.6 | 29.3 |
Llama 2 | 13B | 24.5 | 66.9 | 55.4 | 65.8 | 28.7 | 54.8 | 39.4 | 39.1 |
Llama 2 | 70B | 37.5 | 71.9 | 63.6 | 69.4 | 35.2 | 68.9 | 51.2 | 54.2 |
グループ化された学術ベンチマークでの全体的なパフォーマンス。 コード: 私たちのモデルのHumanEvalとMBPPでの平均パス@1スコアを報告します。常識推論: PIQA、SIQA、HellaSwag、WinoGrande、ARC easyおよびchallenge、OpenBookQA、およびCommonsenseQAの平均を報告します。CommonSenseQAについては7ショットの結果を、他のすべてのベンチマークについては0ショットの結果を報告します。世界知識: NaturalQuestionsとTriviaQAでの5ショットのパフォーマンスを評価し、平均を報告します。読解力: 読解力については、SQuAD、QuAC、およびBoolQでの0ショットの平均を報告します。数学: GSM8K (8ショット) とMATH (4ショット) ベンチマークの上位1の平均を報告します。
TruthfulQA | Toxigen | ||
---|---|---|---|
Llama 1 | 7B | 27.42 | 23.00 |
Llama 1 | 13B | 41.74 | 23.08 |
Llama 1 | 33B | 44.19 | 22.57 |
Llama 1 | 65B | 48.71 | 21.77 |
Llama 2 | 7B | 33.29 | 21.25 |
Llama 2 | 13B | 41.86 | 26.10 |
Llama 2 | 70B | 50.18 | 24.60 |
自動安全性ベンチマークでの事前学習LLMの評価。 TruthfulQAについては、真実で有益な生成の割合を報告します (数値が高いほど良い)。Toxigenについては、有毒な生成の割合を報告します (数値が低いほど良い)。
TruthfulQA | Toxigen | ||
---|---|---|---|
Llama-2-Chat | 7B | 57.04 | 0.00 |
Llama-2-Chat | 13B | 62.18 | 0.00 |
Llama-2-Chat | 70B | 64.14 | 0.01 |
異なる安全性データセットでの微調整LLMの評価。 上記と同じメトリック定義。
倫理的な考慮事項と制限
Llama 2は、使用に伴うリスクを持つ新しい技術です。これまでに行われたテストは英語で行われており、すべてのシナリオをカバーしていない、またはカバーすることができない。これらの理由から、すべてのLLMと同様に、Llama 2の潜在的な出力は事前に予測することができず、モデルは場合によっては、ユーザーのプロンプトに対して不正確、偏った、またはその他の不快な応答を生成する可能性があります。したがって、Llama 2のアプリケーションを展開する前に、開発者はモデルの特定のアプリケーションに合わせた安全性テストと調整を行う必要があります。
https://ai.meta.com/llama/responsible-use-guide/ で利用可能な責任ある使用ガイドをご覧ください。



