Downloads · 30 days
35
4% of all-time downloads
RedHatAI/Llama-3.1-8B-tldr-FP8-dynamic
Llama-3.1-8B-tldr-FP8-dynamic is a text generation model from RedHatAI. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as llama3.1.
- Model Architecture: LlamaForCausalLM - Input: Text - Output: Text - Model Optimizations: - Weight quantization: FP8 - Activation quantization: FP8 - Release Date: 06/06/2025 - Version: 1.0 - Intended Use Cases: This…
Downloads · 30 days
35
4% of all-time downloads
All-time downloads
783
Public
Parameters
8B
9.1 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors9.1 GB · 100%
How the weights are stored.
F8_E4M37B · 87%
From the Hugging Face model README
This model is a quantized version of RedHatAI/Llama-3.1-8B-tldr, which is fine-tuned on the trl-lib/tldr dataset. This model recovers 100% of the BERTScore (0.366) obtained by RedHatAI/Llama-3.1-8B-tldr while providing up to 1.3x speedup.
This model can be deployed efficiently using vLLM, as shown in the example below.
Run the following command to start the vLLM server:
vllm serve RedHatAI/Llama-3.1-8B-tldr-FP8-dynamic
Once your server is started, you can query the model using the OpenAI API:
from openai import OpenAI
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
post="""
SUBREDDIT: r/AI
TITLE: Training sparse LLMs
POST: Now you can use the llm-compressor integration to axolotl to train sparse LLMs!
It's super easy to use. See the example in https://huggingface.co/RedHatAI/Sparse-Llama-3.1-8B-tldr-2of4.
And there's more. You can run 2:4 sparse models on vLLM and get significant speedupts on Hopper GPUs!
"""
prompt = f"Give a TL;DR of the following Reddit post.\n<|user|>{post}\nTL;DR:\n<|assistant|>\n"
completion = client.completions.create(
model="RedHatAI/Llama-3.1-8B-tldr-FP8-dynamic",
prompt=prompt,
max_tokens=256,
)
print("Completion result:", completion)
This model was created by applying llm-compressor, as presented in the code snipet below.
from transformers import AutoTokenizer, AutoModelForCausalLM
from llmcompressor.transformers import oneshot
from llmcompressor.modifiers.quantization import QuantizationModifier
recipe = QuantizationModifier(targets="Linear", scheme="FP8_DYNAMIC", ignore=["lm_head"])
model_stub = "RedHatAI/Llama-3.1-8B-tldr"
model_name = model_stub.split("/")[-1]
model = AutoModelForCausalLM.from_pretrained(
model_stub, torch_dtype="auto", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_stub)
output_dir = f"./{model_name}-FP8-dynamic"
oneshot(
model=model,
recipe=recipe,
)
model.save_pretrained(output_dir, save_compressed=True)
tokenizer.save_pretrained(output_dir)
</details>
The model was evaluated on the test split of trl-lib/tldr using the Neural Magic fork of lm-evaluation-harness (tldr branch). One can reproduce these results by using the following command:
lm_eval --model vllm --model_args "pretrained=RedHatAI/Llama-3.1-8B-tldr-FP8-dynamic,dtype=auto,add_bos_token=True" --batch-size auto --tasks tldr
<table>
<tr>
<th>Metric
</th>
<th>Llama-3.1-8B-Instruct
</th>
<th>Llama-3.1-8B-tldr
</th>
<th>Llama-3.1-8B-tldr-FP8-dynamic<br>(this model)
</th>
</tr>
<tr>
<td>BERTScore
</td>
<td>-0.230
</td>
<td>0.366
</td>
<td>0.366
</td>
</tr>
<tr>
<td>ROUGE-1
</td>
<td>0.059
</td>
<td>0.362
</td>
<td>0.360
</td>
</tr>
<tr>
<td>ROUGE-2
</td>
<td>0.018
</td>
<td>0.144
</td>
<td>0.143
</td>
</tr>
<tr>
<td>ROUGE-Lsum
</td>
<td>0.051
</td>
<td>0.306
</td>
<td>0.306
</td>
</tr>
</table>
We evaluated the inference performance of this model using the first 1,000 samples from the training set of the trl-lib/tldr dataset.
Benchmarking was conducted with vLLM version 0.9.0.1 and GuideLLM version 0.2.1.
The figure below presents the mean end-to-end latency per request across varying request rates. Results are shown for this model, as well as two variants:

To replicate the benchmark:
from datasets import load_dataset
ds = load_dataset("trl-lib/tldr", split="train").take(1000)
ds.to_json("tldr_1000.json")
vllm serve RedHatAI/Llama-3.1-8B-tldr-FP8-dynamic
GUIDELLM__OPENAI__MAX_OUTPUT_TOKENS=128 guidellm benchmark --target "http://localhost:8000" --rate-type sweep --data tldr_1000.json
</details>The average output length is approximately 30 tokens per sample. We capped the generation at 128 tokens to reduce performance skew from rare, unusually verbose completions.