> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liquid.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# LFM2-8B-A1B

> 8B parameter Mixture-of-Experts model with 1.5B active parameters (deprecated - use LFM2.5-8B-A1B instead)

export const TextLlamacpp = ({ggufRepo, samplingFlags}) => <div>
<p><strong>Install:</strong></p>
<CodeBlock language="bash">
{`brew install llama.cpp`}
</CodeBlock>
<p><strong>Run:</strong></p>
<CodeBlock language="bash">
{`llama-cli -hf ${ggufRepo} -c 4096 --color -i \\
    ${samplingFlags}`}
</CodeBlock>
<p>The <code>-hf</code> flag downloads the model directly from Hugging Face. For other installation methods and advanced usage, see the <a href="/docs/inference/llama-cpp">llama.cpp guide</a>.</p>
</div>;

export const TextSglang = ({modelId, toolCallParser, samplingParams}) => <div>
<p><strong>Install:</strong></p>
<CodeBlock language="bash">
{`uv pip install "sglang>=0.5.10"`}
</CodeBlock>
<p><strong>Launch server:</strong></p>
<CodeBlock language="bash">
{toolCallParser ? `sglang serve \\
    --model-path ${modelId} \\
    --host 0.0.0.0 \\
    --port 30000 \\
    --tool-call-parser ${toolCallParser}` : `sglang serve \\
    --model-path ${modelId} \\
    --host 0.0.0.0 \\
    --port 30000`}
</CodeBlock>
<p><strong>Query (OpenAI-compatible):</strong></p>
<CodeBlock language="python">
{`from openai import OpenAI

client = OpenAI(base_url="http://localhost:30000/v1", api_key="None")

response = client.chat.completions.create(
    model="${modelId}",
    messages=[{"role": "user", "content": "What is machine learning?"}],
    ${samplingParams || "temperature=0.3,"}
)

print(response.choices[0].message.content)`}
</CodeBlock>
</div>;

export const TextVllm = ({modelId, samplingParams, maxTokens}) => <div>
<p><strong>Install:</strong></p>
<CodeBlock language="bash">
{`pip install vllm==0.14`}
</CodeBlock>
<p><strong>Run:</strong></p>
<CodeBlock language="python">
{`from vllm import LLM, SamplingParams

llm = LLM(model="${modelId}")

sampling_params = SamplingParams(${samplingParams}max_tokens=${maxTokens || 512})

output = llm.chat("What is machine learning?", sampling_params)
print(output[0].outputs[0].text)`}
</CodeBlock>
</div>;

export const TextTransformers = ({modelId, samplingParams}) => <div>
<p><strong>Install:</strong></p>
<CodeBlock language="bash">
{`pip install "transformers>=5.2.0" torch accelerate`}
</CodeBlock>
<p><strong>Download & Run:</strong></p>
<CodeBlock language="python">
{`from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "${modelId}"
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    device_map="auto",
    dtype="bfloat16",
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

inputs = tokenizer.apply_chat_template(
    [{"role": "user", "content": "What is machine learning?"}],
    add_generation_prompt=True,
    return_tensors="pt",
    tokenize=True,
    return_dict=True,
).to(model.device)

output = model.generate(**inputs, ${samplingParams}max_new_tokens=512)
input_length = inputs["input_ids"].shape[1]
response = tokenizer.decode(output[0][input_length:], skip_special_tokens=True)
print(response)`}
</CodeBlock>
</div>;

<a href="/lfm/models/text-models" className="back-button">← Back to Text Models</a>

<Warning>
  This model is deprecated. Use [LFM2.5-8B-A1B](/lfm/models/lfm25-8b-a1b) for improved performance and a 128K context length.
</Warning>

LFM2-8B-A1B is Liquid AI's Mixture-of-Experts model, combining 8B total parameters with only 1.5B active parameters per forward pass. This delivers the quality of larger models with the speed and efficiency of smaller ones—ideal for on-device deployment.

<div style={{display: 'flex', gap: '0.5rem', margin: '0.5rem 0 1.5rem 0'}}>
  <a href="https://huggingface.co/LiquidAI/LFM2-8B-A1B" style={{padding: '0.35rem 0.7rem', borderRadius: '4px', fontSize: '0.85rem', fontWeight: 600, textDecoration: 'none', backgroundColor: '#fbbf24'}}><span style={{color: '#000'}}>HF</span></a>
  <a href="https://huggingface.co/LiquidAI/LFM2-8B-A1B-GGUF" style={{padding: '0.35rem 0.7rem', borderRadius: '4px', fontSize: '0.85rem', fontWeight: 600, textDecoration: 'none', backgroundColor: '#60a5fa'}}><span style={{color: '#000'}}>GGUF</span></a>
  <a href="https://huggingface.co/mlx-community/LFM2-8B-A1B-8bit" style={{padding: '0.35rem 0.7rem', borderRadius: '4px', fontSize: '0.85rem', fontWeight: 600, textDecoration: 'none', backgroundColor: '#c4b5fd'}}><span style={{color: '#000'}}>MLX</span></a>
  <a href="https://huggingface.co/onnx-community/LFM2-8B-A1B-ONNX" style={{padding: '0.35rem 0.7rem', borderRadius: '4px', fontSize: '0.85rem', fontWeight: 600, textDecoration: 'none', backgroundColor: '#86efac'}}><span style={{color: '#000'}}>ONNX</span></a>
</div>

## Specifications

| Property       | Value            |
| -------------- | ---------------- |
| Parameters     | 8B (1.5B active) |
| Context Length | 32K tokens       |
| Architecture   | LFM2 (MoE)       |

<div className="use-cases">
  <CardGroup cols={3}>
    <Card title="MoE Efficiency" icon="microchip">
      8B quality, 1.5B inference cost
    </Card>

    <Card title="On-Device" icon="mobile">
      Runs on phones and laptops
    </Card>

    <Card title="Tool Calling" icon="wrench">
      Native function calling support
    </Card>
  </CardGroup>
</div>

## Quick Start

<Tabs>
  <Tab title="Transformers">
    <TextTransformers modelId="LiquidAI/LFM2-8B-A1B" samplingParams="do_sample=True, temperature=0.3, min_p=0.15, repetition_penalty=1.05, " />
  </Tab>

  <Tab title="llama.cpp">
    <TextLlamacpp ggufRepo="LiquidAI/LFM2-8B-A1B-GGUF" samplingFlags="--temp 0.3 --min-p 0.15 --repeat-penalty 1.05" />
  </Tab>

  <Tab title="vLLM">
    <TextVllm modelId="LiquidAI/LFM2-8B-A1B" samplingParams="temperature=0.3, min_p=0.15, repetition_penalty=1.05, " />
  </Tab>

  <Tab title="SGLang">
    <TextSglang modelId="LiquidAI/LFM2-8B-A1B" toolCallParser="lfm2" />
  </Tab>
</Tabs>
