Meta Llama 3.1 8B Instruct FP8
Meta-Llama-3.1-8B-InstructのFP8量子化バージョンで、多言語の商用・研究用途に適しており、アシスタントのようなチャットシナリオに特に最適化されています。
ダウンロード数 361.53k
リリース時間 : 7/23/2024
モデル概要
このモデルはMeta-Llama-3.1-8B-InstructのFP8量子化バージョンで、各パラメータのビット数を16から8に減らすことで、ディスクサイズとGPUメモリ要件を大幅に削減しました。多言語テキスト生成タスクに適しています。
モデル特徴
FP8量子化
重みと活性化をFP8データ型に量子化し、メモリ要件とディスク使用量を大幅に削減。
多言語サポート
英語、ドイツ語、フランス語、イタリア語など、複数の言語をサポート。
効率的な推論
vLLMバックエンド向けに最適化され、効率的な推論性能を提供。
モデル能力
テキスト生成
多言語サポート
チャットアシスタント
使用事例
チャットアシスタント
多言語チャットボット
複数の言語をサポートするチャットボットの構築に使用可能で、自然で流暢な会話体験を提供。
商用アプリケーション
カスタマーサポート
多言語の顧客問い合わせを処理する自動化カスタマーサポートシステムに使用。
🚀 Meta-Llama-3.1-8B-Instruct-FP8
Meta-Llama-3.1-8B-InstructをFP8形式で量子化したモデルで、複数言語の商用および研究用途に最適。
🚀 クイックスタート
このモデルは、Meta-Llama-3.1-8B-Instruct の量子化バージョンです。複数言語での商用および研究用途を想定しています。
✨ 主な機能
- 多言語対応:英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語など、複数の言語に対応しています。
- 量子化による最適化:重みと活性化関数をFP8データ型に量子化することで、ディスクサイズとGPUメモリ要件を約50%削減しています。
📦 インストール
このモデルを使用するには、vLLM
をインストールする必要があります。以下のコードでインストールできます。
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8"
sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
prompts = tokenizer.apply_chat_template(messages, tokenize=False)
llm = LLM(model=model_id)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
💻 使用例
基本的な使用法
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8"
sampling_params = SamplingParams(temperature=0.6, top_p=0.9, max_tokens=256)
tokenizer = AutoTokenizer.from_pretrained(model_id)
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": "Who are you?"},
]
prompts = tokenizer.apply_chat_template(messages, tokenize=False)
llm = LLM(model=model_id)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
高度な使用法
import torch
from datasets import load_dataset
from transformers import AutoTokenizer
from llmcompressor.transformers import SparseAutoModelForCausalLM, oneshot
from llmcompressor.transformers.compression.helpers import (
calculate_offload_device_map,
custom_offload_device_map,
)
recipe = """
quant_stage:
quant_modifiers:
QuantizationModifier:
ignore: ["lm_head"]
config_groups:
group_0:
weights:
num_bits: 8
type: float
strategy: tensor
dynamic: false
symmetric: true
input_activations:
num_bits: 8
type: float
strategy: tensor
dynamic: false
symmetric: true
targets: ["Linear"]
"""
model_stub = "meta-llama/Meta-Llama-3.1-8B-Instruct"
model_name = model_stub.split("/")[-1]
device_map = calculate_offload_device_map(
model_stub, reserve_for_hessians=False, num_gpus=1, torch_dtype="auto"
)
model = SparseAutoModelForCausalLM.from_pretrained(
model_stub, torch_dtype="auto", device_map=device_map
)
tokenizer = AutoTokenizer.from_pretrained(model_stub)
output_dir = f"./{model_name}-FP8"
DATASET_ID = "HuggingFaceH4/ultrachat_200k"
DATASET_SPLIT = "train_sft"
NUM_CALIBRATION_SAMPLES = 512
MAX_SEQUENCE_LENGTH = 4096
ds = load_dataset(DATASET_ID, split=DATASET_SPLIT)
ds = ds.shuffle(seed=42).select(range(NUM_CALIBRATION_SAMPLES))
def preprocess(example):
return {
"text": tokenizer.apply_chat_template(
example["messages"],
tokenize=False,
)
}
ds = ds.map(preprocess)
def tokenize(sample):
return tokenizer(
sample["text"],
padding=False,
max_length=MAX_SEQUENCE_LENGTH,
truncation=True,
add_special_tokens=False,
)
ds = ds.map(tokenize, remove_columns=ds.column_names)
oneshot(
model=model,
output_dir=output_dir,
dataset=ds,
recipe=recipe,
max_seq_length=MAX_SEQUENCE_LENGTH,
num_calibration_samples=NUM_CALIBRATION_SAMPLES,
save_compressed=True,
)
📚 ドキュメント
モデル概要
- モデルアーキテクチャ:Meta-Llama-3.1
- 入力:テキスト
- 出力:テキスト
- モデルの最適化:
- 重みの量子化:FP8
- 活性化関数の量子化:FP8
- 想定される使用ケース:複数言語での商用および研究用途を想定しています。Meta-Llama-3.1-8B-Instruct と同様に、アシスタントのようなチャットに使用できます。
- 対象外:適用される法律や規制(貿易コンプライアンス法を含む)に違反する方法での使用。英語以外の言語での使用。
- リリース日:2024年7月23日
- バージョン:1.0
- ライセンス:llama3.1
- モデル開発者:Neural Magic
モデルの最適化
このモデルは、Meta-Llama-3.1-8B-Instruct の重みと活性化関数をFP8データ型に量子化することで得られました。この最適化により、パラメータごとのビット数が16から8に減少し、ディスクサイズとGPUメモリ要件が約50%削減されます。
トランスフォーマーブロック内の線形演算子の重みと活性化関数のみが量子化されます。対称的なテンソルごとの量子化が適用され、単一の線形スケーリングが量子化された重みと活性化関数のFP8表現をマッピングします。LLM Compressor を使用して、UltraChatの512シーケンスで量子化が行われます。
評価
このモデルは、MMLU、ARC-Challenge、GSM-8K、Hellaswag、Winogrande、TruthfulQAで評価されました。評価は、Neural Magicのフォーク版の lm-evaluation-harness(llama_3.1_instructブランチ)と vLLM エンジンを使用して行われました。
精度
ベンチマーク | Meta-Llama-3.1-8B-Instruct | Meta-Llama-3.1-8B-Instruct-FP8(このモデル) | 回復率 |
---|---|---|---|
MMLU (5-shot) | 67.95 | 67.97 | 100.0% |
MMLU-cot (0-shot) | 71.24 | 71.12 | 99.83% |
ARC Challenge (0-shot) | 82.00 | 81.66 | 99.59% |
GSM-8K-cot (8-shot, strict-match) | 81.96 | 81.12 | 98.98% |
Hellaswag (10-shot) | 80.46 | 80.4 | 99.93% |
Winogrande (5-shot) | 78.45 | 77.90 | 99.30% |
TruthfulQA (0-shot, mc2) | 54.50 | 53.92 | 98.94% |
平均 | 73.79 | 73.44 | 99.52% |
再現方法
結果は、以下のコマンドを使用して得られました。
MMLU
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks mmlu \
--num_fewshot 5 \
--batch_size auto
MMLU-cot
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks mmlu_cot_0shot_llama_3.1_instruct \
--apply_chat_template \
--num_fewshot 0 \
--batch_size auto
ARC-Challenge
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks arc_challenge_llama_3.1_instruct \
--apply_chat_template \
--num_fewshot 0 \
--batch_size auto
GSM-8K
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks gsm8k_cot_llama_3.1_instruct \
--apply_chat_template \
--fewshot_as_multiturn \
--num_fewshot 8 \
--batch_size auto
Hellaswag
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks hellaswag \
--num_fewshot 10 \
--batch_size auto
Winogrande
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks winogrande \
--num_fewshot 5 \
--batch_size auto
TruthfulQA
lm_eval \
--model vllm \
--model_args pretrained="neuralmagic/Meta-Llama-3.1-8B-Instruct-FP8",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks truthfulqa \
--num_fewshot 0 \
--batch_size auto
📄 ライセンス
このモデルは、llama3.1 ライセンスの下で提供されています。
Phi 2 GGUF
その他
Phi-2はマイクロソフトが開発した小型ながら強力な言語モデルで、27億のパラメータを持ち、効率的な推論と高品質なテキスト生成に特化しています。
大規模言語モデル 複数言語対応
P
TheBloke
41.5M
205
Roberta Large
MIT
マスク言語モデリングの目標で事前学習された大型英語言語モデルで、改良されたBERTの学習方法を採用しています。
大規模言語モデル 英語
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERTはBERT基礎モデルの蒸留バージョンで、同等の性能を維持しながら、より軽量で高効率です。シーケンス分類、タグ分類などの自然言語処理タスクに適しています。
大規模言語モデル 英語
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instructは多言語大規模言語モデルで、多言語対話ユースケースに最適化されており、一般的な業界ベンチマークで優れた性能を発揮します。
大規模言語モデル 英語
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM - RoBERTaは、100言語の2.5TBのフィルタリングされたCommonCrawlデータを使って事前学習された多言語モデルで、マスク言語モデリングの目標で学習されています。
大規模言語モデル 複数言語対応
X
FacebookAI
9.6M
664
Roberta Base
MIT
Transformerアーキテクチャに基づく英語の事前学習モデルで、マスク言語モデリングの目標を通じて大量のテキストでトレーニングされ、テキスト特徴抽出と下流タスクの微調整をサポートします。
大規模言語モデル 英語
R
FacebookAI
9.3M
488
Opt 125m
その他
OPTはMeta AIが公開したオープンプリトレーニングトランスフォーマー言語モデルスイートで、パラメータ数は1.25億から1750億まであり、GPT-3シリーズの性能に対抗することを目指しつつ、大規模言語モデルのオープンな研究を促進するものです。
大規模言語モデル 英語
O
facebook
6.3M
198
1
transformersライブラリに基づく事前学習モデルで、様々なNLPタスクに適用可能
大規模言語モデル
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1はMetaが発表した多言語大規模言語モデルシリーズで、8B、70B、405Bのパラメータ規模を持ち、8種類の言語とコード生成をサポートし、多言語対話シーンを最適化しています。
大規模言語モデル
Transformers 複数言語対応

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5ベーシック版はGoogleによって開発されたテキスト-to-テキスト変換Transformerモデルで、パラメータ規模は2.2億で、多言語NLPタスクをサポートしています。
大規模言語モデル 複数言語対応
T
google-t5
5.4M
702
おすすめAIモデル
Llama 3 Typhoon V1.5x 8b Instruct
タイ語専用に設計された80億パラメータの命令モデルで、GPT-3.5-turboに匹敵する性能を持ち、アプリケーションシナリオ、検索拡張生成、制限付き生成、推論タスクを最適化
大規模言語モデル
Transformers 複数言語対応

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-TinyはSODAデータセットでトレーニングされた超小型対話モデルで、エッジデバイス推論向けに設計されており、体積はCosmo-3Bモデルの約2%です。
対話システム
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
RoBERTaアーキテクチャに基づく中国語抽出型QAモデルで、与えられたテキストから回答を抽出するタスクに適しています。
質問応答システム 中国語
R
uer
2,694
98