Llama 3.3 70B Instruct FP8 Dynamic
Llama-3.3-70B-Instruct-FP8-dynamicは最適化された大規模言語モデルで、活性化関数と重みをFP8データ型に量子化することで、GPUメモリの必要量を削減し、計算スループットを向上させ、多言語の商用および研究用途をサポートします。
ダウンロード数 6,060
リリース時間 : 12/11/2024
モデル概要
命令微調整されたテキストモデルは、アシスタントのようなチャットシーンに適しており、事前学習モデルは様々な自然言語生成タスクに適応できます。また、Llama 3.3モデルは、そのモデルの出力を利用して他のモデルを改善することもサポートしており、合成データ生成や蒸留を含みます。
モデル特徴
FP8量子化最適化
活性化関数と重みをFP8データ型に量子化することで、GPUメモリの必要量を約50%削減し、行列乗算の計算スループットを約2倍に向上させ、同時にディスク容量の必要量も約50%削減します。
多言語サポート
英語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語、ドイツ語などの多言語をサポートし、異なる言語環境の商用および研究用途に適しています。
効率的なデプロイ
vLLMバックエンドを使用した効率的なデプロイをサポートし、OpenAI互換のサービスと互換性があります。
モデル能力
テキスト生成
多言語サポート
チャットアシスタント
自然言語処理
命令微調整
使用事例
商用および研究
多言語チャットアシスタント
異なる言語環境の商用および研究用途に適しており、アシスタントのようなチャットシーンをサポートします。
自然言語生成
事前学習モデルは様々な自然言語生成タスクに適応できます。
モデル改善
合成データ生成
モデルの出力を利用して他のモデルを改善することができ、合成データ生成や蒸留を含みます。
🚀 Llama-3.3-70B-Instruct-FP8-dynamic
このモデルは、Meta-Llama-3.1アーキテクチャに基づいており、重みと活性化関数をFP8データ型に量子化することで最適化されています。複数言語に対応し、商用および研究用途に適しています。
🚀 クイックスタート
このモデルは、vLLMバックエンドを使用して効率的にデプロイできます。以下は使用例です。
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
model_id = "RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic"
number_gpus = 1
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, 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, tensor_parallel_size=number_gpus)
outputs = llm.generate(prompts, sampling_params)
generated_text = outputs[0].outputs[0].text
print(generated_text)
vLLMはOpenAI互換のサービングもサポートしています。詳細はドキュメントを参照してください。
✨ 主な機能
- モデルアーキテクチャ:Meta-Llama-3.1
- 入力:テキスト
- 出力:テキスト
- モデルの最適化:
- 重みの量子化:FP8
- 活性化関数の量子化:FP8
- 想定される使用例:複数言語での商用および研究用途を想定しています。命令調整されたテキスト専用モデルは、アシスタントのようなチャットに適しており、事前学習モデルはさまざまな自然言語生成タスクに適応できます。Llama 3.3モデルは、合成データ生成や蒸留など、他のモデルの改善にも利用できます。Llama 3.3コミュニティライセンスでこれらの使用例が許可されています。
- 対象外の使用:適用される法律や規制(貿易コンプライアンス法律を含む)に違反する方法での使用。許容使用ポリシーおよびLlama 3.3コミュニティライセンスで禁止されている他の方法での使用。英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディー語、スペイン語、タイ語以外の言語での使用。
- リリース日:2024年11月12日
- バージョン:1.0
- ライセンス:llama3.3
- モデル開発者:RedHat (Neural Magic)
📦 インストール
このモデルは、以下の環境でデプロイできます。
Red Hat AI Inference Serverでのデプロイ
podman run --rm -it --device nvidia.com/gpu=all -p 8000:8000 \
--ipc=host \
--env "HUGGING_FACE_HUB_TOKEN=$HF_TOKEN" \
--env "HF_HUB_OFFLINE=0" -v ~/.cache/vllm:/home/vllm/.cache \
--name=vllm \
registry.access.redhat.com/rhaiis/rh-vllm-cuda \
vllm serve \
--tensor-parallel-size 8 \
--max-model-len 32768 \
--enforce-eager --model RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic
詳細はRed Hat AI Inference Serverのドキュメントを参照してください。
Red Hat Enterprise Linux AIでのデプロイ
# Download model from Red Hat Registry via docker
# Note: This downloads the model to ~/.cache/instructlab/models unless --model-dir is specified.
ilab model download --repository docker://registry.redhat.io/rhelai1/llama-3-3-70b-instruct-fp8-dynamic:1.5
# Serve model via ilab
ilab model serve --model-path ~/.cache/instructlab/models/llama-3-3-70b-instruct-fp8-dynamic
# Chat with model
ilab model chat --model ~/.cache/instructlab/models/llama-3-3-70b-instruct-fp8-dynamic
詳細はRed Hat Enterprise Linux AIのドキュメントを参照してください。
Red Hat Openshift AIでのデプロイ
# Setting up vllm server with ServingRuntime
# Save as: vllm-servingruntime.yaml
apiVersion: serving.kserve.io/v1alpha1
kind: ServingRuntime
metadata:
name: vllm-cuda-runtime # OPTIONAL CHANGE: set a unique name
annotations:
openshift.io/display-name: vLLM NVIDIA GPU ServingRuntime for KServe
opendatahub.io/recommended-accelerators: '["nvidia.com/gpu"]'
labels:
opendatahub.io/dashboard: 'true'
spec:
annotations:
prometheus.io/port: '8080'
prometheus.io/path: '/metrics'
multiModel: false
supportedModelFormats:
- autoSelect: true
name: vLLM
containers:
- name: kserve-container
image: quay.io/modh/vllm:rhoai-2.20-cuda # CHANGE if needed. If AMD: quay.io/modh/vllm:rhoai-2.20-rocm
command:
- python
- -m
- vllm.entrypoints.openai.api_server
args:
- "--port=8080"
- "--model=/mnt/models"
- "--served-model-name={{.Name}}"
env:
- name: HF_HOME
value: /tmp/hf_home
ports:
- containerPort: 8080
protocol: TCP
# Attach model to vllm server. This is an NVIDIA template
# Save as: inferenceservice.yaml
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
annotations:
openshift.io/display-name: llama-3-3-70b-instruct-fp8-dynamic # OPTIONAL CHANGE
serving.kserve.io/deploymentMode: RawDeployment
name: llama-3-3-70b-instruct-fp8-dynamic # specify model name. This value will be used to invoke the model in the payload
labels:
opendatahub.io/dashboard: 'true'
spec:
predictor:
maxReplicas: 1
minReplicas: 1
model:
modelFormat:
name: vLLM
name: ''
resources:
limits:
cpu: '2' # this is model specific
memory: 8Gi # this is model specific
nvidia.com/gpu: '1' # this is accelerator specific
requests: # same comment for this block
cpu: '1'
memory: 4Gi
nvidia.com/gpu: '1'
runtime: vllm-cuda-runtime # must match the ServingRuntime name above
storageUri: oci://registry.redhat.io/rhelai1/modelcar-llama-3-3-70b-instruct-fp8-dynamic:1.5
tolerations:
- effect: NoSchedule
key: nvidia.com/gpu
operator: Exists
# make sure first to be in the project where you want to deploy the model
# oc project <project-name>
# apply both resources to run model
# Apply the ServingRuntime
oc apply -f vllm-servingruntime.yaml
# Apply the InferenceService
oc apply -f qwen-inferenceservice.yaml
# Replace <inference-service-name> and <cluster-ingress-domain> below:
# - Run `oc get inferenceservice` to find your URL if unsure.
# Call the server using curl:
curl https://<inference-service-name>-predictor-default.<domain>/v1/chat/completions
-H "Content-Type: application/json" \
-d '{
"model": "llama-3-3-70b-instruct-fp8-dynamic",
"stream": true,
"stream_options": {
"include_usage": true
},
"max_tokens": 1,
"messages": [
{
"role": "user",
"content": "How can a bee fly when its wings are so small?"
}
]
}'
詳細はRed Hat Openshift AIのドキュメントを参照してください。
🔧 技術詳細
このモデルは、llm-compressorを使用して作成されました。以下は作成コードのスニペットです。
from transformers import AutoModelForCausalLM, AutoTokenizer
from llmcompressor.modifiers.quantization import QuantizationModifier
from llmcompressor.transformers import oneshot
# Load model
model_stub = "meta-llama/Llama-3.3-70B-Instruct"
model_name = model_stub.split("/")[-1]
tokenizer = AutoTokenizer.from_pretrained(model_stub)
model = AutoModelForCausalLM.from_pretrained(
model_stub,
device_map="auto",
torch_dtype="auto",
)
# Configure the quantization algorithm and scheme
recipe = QuantizationModifier(
targets="Linear",
scheme="FP8_dynamic",
ignore=["lm_head"],
)
# Apply quantization
oneshot(
model=model,
recipe=recipe,
)
# Save to disk in compressed-tensors format
save_path = model_name + "-FP8-dynamic"
model.save_pretrained(save_path)
tokenizer.save_pretrained(save_path)
print(f"Model and tokenizer saved to: {save_path}")
📚 ドキュメント
このモデルは、よく知られたOpenLLM v1、OpenLLM v2、HumanEval、およびHumanEval+ベンチマークで評価されました。すべてのケースで、モデルの出力はvLLMエンジンを使用して生成されました。
評価詳細
評価詳細を表示
MMLU
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU-CoT
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=4064,max_gen_toks=1024,tensor_parallel_size=1 \
--tasks mmlu_cot_llama \
--apply_chat_template \
--num_fewshot 0 \
--batch_size auto
ARC-Challenge
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3940,max_gen_toks=100,tensor_parallel_size=1 \
--tasks arc_challenge_llama \
--apply_chat_template \
--num_fewshot 0 \
--batch_size auto
GSM-8K
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=4096,max_gen_toks=1024,tensor_parallel_size=1 \
--tasks gsm8k_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 8 \
--batch_size auto
Hellaswag
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",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="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",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="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=1 \
--tasks truthfulqa \
--num_fewshot 0 \
--batch_size auto
OpenLLM v2
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=4096,tensor_parallel_size=1,enable_chunked_prefill=True \
--apply_chat_template \
--fewshot_as_multiturn \
--tasks leaderboard \
--batch_size auto
MMLU Portuguese
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_pt_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU Spanish
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_es_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU Italian
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_it_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU German
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_de_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU French
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_fr_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU Hindi
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_hi_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
MMLU Thai
lm_eval \
--model vllm \
--model_args pretrained="RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic",dtype=auto,max_model_len=3850,max_gen_toks=10,tensor_parallel_size=1 \
--tasks mmlu_th_llama \
--fewshot_as_multiturn \
--apply_chat_template \
--num_fewshot 5 \
--batch_size auto
HumanEval and HumanEval+ Generation
python3 codegen/generate.py \
--model RedHatAI/Llama-3.3-70B-Instruct-FP8-dynamic \
--bs 16 \
--temperature 0.2 \
--n_samples 50 \
--root "." \
--dataset humaneval
Sanitization
python3 evalplus/sanitize.py \
humaneval/RedHatAI--Llama-3.3-70B-Instruct-FP8-dynamic_vllm_temp_0.2
Evaluation
evalplus.evaluate \
--dataset humaneval \
--samples humaneval/RedHatAI--Llama-3.3-70B-Instruct-FP8-dynamic_vllm_temp_0.2-sanitized
精度
カテゴリ | ベンチマーク | Llama-3.3-70B-Instruct | Llama-3.3-70B-Instruct-FP8-dynamic (このモデル) | 回復率 |
---|---|---|---|---|
OpenLLM v1 | MMLU (5-shot) | 81.60 | 81.31 | 99.6% |
MMLU (CoT, 0-shot) | 86.58 | 86.34 | 99.7% | |
ARC Challenge (0-shot) | 49.23 | 51.96 | 105.6% | |
GSM-8K (CoT, 8-shot, strict-match) | 94.16 | 94.92 | 100.8% | |
Hellaswag (10-shot) | 86.49 | 86.43 | 99.9% | |
Winogrande (5-shot) | 84.77 | 84.53 | 99.7% | |
TruthfulQA (0-shot, mc2) | 62.75 | 63.21 | 100.7% | |
Average | 77.94 | 78.39 | 100.6% | |
OpenLLM v2 | MMLU-Pro (5-shot) | 51.89 | 51.50 | 99.3% |
IFEval (0-shot) | 90.89 | 90.92 | 100.0% | |
BBH (3-shot) | 63.15 | 62.84 | 99.5% | |
Math-lvl-5 (4-shot) | 0.17 | 0.33 | N/A | |
GPQA (0-shot) | 46.10 | 46.30 | 100.4% | |
MuSR (0-shot) | 44.35 | 43.96 | 99.1% | |
Average | 49.42 | 49.31 | 99.8% | |
Coding | HumanEval pass@1 | 83.20 | 83.70 | 100.6% |
HumanEval+ pass@1 | 78.40 | 78.70 | 100.4% | |
Multilingual | Portuguese MMLU (5-shot) | 79.76 | 79.75 | 100.0% |
Spanish MMLU (5-shot) | 79.33 | 79.17 | 99.8% | |
Italian MMLU (5-shot) | 79.15 | 78.84 | 99.6% | |
German MMLU (5-shot) | 77.94 | 77.95 | 100.0% | |
French MMLU (5-shot) | 75.69 | 75.45 | 99.7% | |
Hindi MMLU (5-shot) | 73.81 | 73.71 | 99.9% | |
Thai MMLU (5-shot) | 71.98 | 71.77 | 99.7% |
📄 ライセンス
このモデルは、llama3.3ライセンスの下で提供されています。
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