neuralmagic / Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

huggingface.co
Total runs: 1.2K
24-hour runs: 0
7-day runs: 0
30-day runs: 0
Model's Last Updated: October 17 2024
text-generation

Introduction of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Model Details of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Model Overview
  • Model Architecture: Llama-3.1-Nemotron
    • Input: Text
    • Output: Text
  • Model Optimizations:
    • Weight quantization: FP8
    • Activation quantization: FP8
  • Intended Use Cases: Intended for commercial and research use in multiple languages. Similarly to Llama-3.1-Nemotron-70B-Instruct , this model is intended for assistant-like chat.
  • Out-of-scope: Use in any manner that violates applicable laws or regulations (including trade compliance laws). Use in languages other than English.
  • Release Date: 10/17/2024
  • Version: 1.0
  • License(s): llama3.1
  • Model Developers: Neural Magic

This model is a quantized version of Llama-3.1-Nemotron-70B-Instruct . It was evaluated on a several tasks to assess the its quality in comparison to the unquatized model, including multiple-choice, math reasoning, and open-ended text generation. Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic achieves 99.41% recovery for the Arena-Hard evaluation, 100% for OpenLLM v1 (using Meta's prompting when available), and ToDo for OpenLLM v2.

Model Optimizations

This model was obtained by quantizing the weights and activations of Llama-3.1-Nemotron-70B-Instruct to FP8 data type, ready for inference with vLLM built from source. This optimization reduces the number of bits per parameter from 16 to 8, reducing the disk size and GPU memory requirements by approximately 50%.

Only the weights and activations of the linear operators within transformers blocks are quantized. Symmetric per-channel quantization is applied, in which a linear scaling per output dimension maps the FP8 representations of the quantized weights and activations. Activations are also quantized on a per-token dynamic basis.

Deployment
Use with vLLM

This model can be deployed efficiently using the vLLM backend, as shown in the example below.

from vllm import LLM, SamplingParams
from transformers import AutoTokenizer

model_id = "neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic"
number_gpus = 2

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, add_generation_prompt=True, 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 aslo supports OpenAI-compatible serving. See the documentation for more details.

Creation

This model was created by applying LLM-Compressor , as presented in the code snipet below.

import torch

from transformers import AutoTokenizer

from llmcompressor.transformers import SparseAutoModelForCausalLM, oneshot
from llmcompressor.transformers.compression.helpers import (  # noqa
    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: channel
                        dynamic: false
                        symmetric: true
                    input_activations:
                        num_bits: 8
                        type: float
                        strategy: token
                        dynamic: true
                        symmetric: true
                    targets: ["Linear"]
"""

model_stub = "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF"
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
)

output_dir = f"./{model_name}-FP8-dynamic"

oneshot(
    model=model,
    recipe=recipe,
    output_dir=output_dir,
    save_compressed=True,
    tokenizer=AutoTokenizer.from_pretrained(model_stub),
)
Evaluation

This model was evaluated on the well-known Arena-Hard, OpenLLM v1, and OpenLLM v2. In all cases, model outputs were generated with the vLLM engine.

Arena-Hard evaluations were conducted using the Arena-Hard-Auto repository.

OpenLLM v1 and v2 evaluations were conducted using Neural Magic's fork of lm-evaluation-harness (branch llama_3.1_instruct). This version of the lm-evaluation-harness includes versions of MMLU, ARC-Challenge and GSM-8K that match the prompting style of Meta-Llama-3.1-Instruct-evals and a few fixes to OpenLLM v2 tasks.

Accuracy
Benchmark nvidia/Llama-3.1-Nemotron-70B-Instruct-HF neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic
(this model)
Recovery
Arena Hard 85.0 84.5 99.41%
OpenLLM Leaderboard v1 80.1 80.3 100.2%
OpenLLM Leaderboard v2 40.2 39.8 99.0%
Benchmark (per-task breakdown) nvidia/Llama-3.1-Nemotron-70B-Instruct-HF neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic (this model) Recovery
OpenLLM v1
MMLU (5-shot) 83.51 83.49 99.97%
MMLU-cot (0-shot) 85.89 86.18 100.33%
ARC Challenge (0-shot) 93.09 93.09 100%
GSM-8K-cot (8-shot, strict-match) 70.13 69.98 99.78%
Hellaswag (10-shot) 87.39 87.22 99.80%
Winogrande (5-shot) 84.93 84.93 100%
TruthfulQA (0-shot, mc2) 55.97 57.12 102.05%
Average 80.1 80.3 100.2%
OpenLLM v2
MMLU-Pro (5-shot) 43.45 42.99 98.94%
IFEval (0-shot) 73.32 74.08 101.02%
BBH (3-shot) 47.12 46.88 99.5%
Math-lvl-5 (4-shot) 23.85 21.78 91.32%
MuSR (0-shot) 13.5 13.35 98.88%
Average 40.2 39.8 99%
Reproduction

The results were obtained using the following commands:

MMLU
lm_eval \
  --model vllm \
  --model_args pretrained="neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --tasks mmlu \
  --num_fewshot 5 \
  --batch_size auto
MMLU-cot
lm_eval \
  --model vllm \
  --model_args pretrained="neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --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/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --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/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --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/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --tasks hellaswag \
  --num_fewshot 10 \
  --batch_size auto
Winogrande
lm_eval \
  --model vllm \
  --model_args pretrained="neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --tasks winogrande \
  --num_fewshot 5 \
  --batch_size auto
TruthfulQA
lm_eval \
  --model vllm \
  --model_args pretrained="neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,add_bos_token=True,max_model_len=4096,tensor_parallel_size=2 \
  --tasks truthfulqa \
  --num_fewshot 0 \
  --batch_size auto
OpenLLM v2
lm_eval \
  --model vllm \
  --model_args pretrained="neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic",dtype=auto,max_model_len=4096,tensor_parallel_size=2,enable_chunked_prefill=True \
  --apply_chat_template \
  --fewshot_as_multiturn \
  --tasks leaderboard \
  --batch_size auto

Runs of neuralmagic Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic on huggingface.co

1.2K
Total runs
0
24-hour runs
0
3-day runs
0
7-day runs
0
30-day runs

More Information About Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co Model

More Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic license Visit here:

https://choosealicense.com/licenses/llama3.1

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co is an AI model on huggingface.co that provides Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic's model effect (), which can be used instantly with this neuralmagic Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic model. huggingface.co supports a free trial of the Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic model, and also provides paid use of the Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic. Support call Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic model through api, including Node.js, Python, http.

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co Url

https://huggingface.co/neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

neuralmagic Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic online free

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co is an online trial and call api platform, which integrates Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic's modeling effects, including api services, and provides a free online trial of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic, you can try Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic online for free by clicking the link below.

neuralmagic Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic online free url in huggingface.co:

https://huggingface.co/neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic install

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic is an open source model from GitHub that offers a free installation service, and any user can find Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic on GitHub to install. At the same time, huggingface.co provides the effect of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic install, users can directly use Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic install url in huggingface.co:

https://huggingface.co/neuralmagic/Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Url of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic

Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co Url

Provider of Llama-3.1-Nemotron-70B-Instruct-HF-FP8-dynamic huggingface.co

neuralmagic
ORGANIZATIONS

Other API from neuralmagic