Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://mintlify.com/docs.json",
"banner": {
"content": "🚀 New: d1 — our first decision model is now available! [Learn more →](/lfm/models/decision-models)",
"content": "🚀 New: Open d1 — run decision models locally with d1-3B and d1-omni-600M! [Learn more →](/lfm/models/decision-models)",
"dismissible": true
},
"theme": "mint",
Expand Down
4 changes: 3 additions & 1 deletion lfm/models/complete-library.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "Liquid Foundation Models"
description: "Liquid Foundation Models (LFMs) are a new class of multimodal architectures built for fast inference and on-device deployment. Browse all available models and formats here."

Check warning on line 3 in lfm/models/complete-library.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/complete-library.mdx#L3

Did you really mean 'LFMs'?

Check warning on line 3 in lfm/models/complete-library.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/complete-library.mdx#L3

Did you really mean 'multimodal'?
---

<div className="capabilities">
Expand Down Expand Up @@ -42,7 +42,7 @@
Purpose-built models for classification, routing, and scoring.
</Card>

<Card title="Liquid Nanos" icon="sparkles" href="/lfm/models/liquid-nanos">

Check warning on line 45 in lfm/models/complete-library.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/complete-library.mdx#L45

Did you really mean 'Nanos'?
Task-specific models for extraction, summarization, RAG, and translation.
</Card>

Expand Down Expand Up @@ -76,7 +76,7 @@

- **GGUF** — Best for local CPU/GPU inference on any platform. Use with [llama.cpp](/deployment/on-device/llama-cpp), [LM Studio](/deployment/on-device/lm-studio), [Ollama](/deployment/on-device/ollama), or [Atomic Chat](/deployment/on-device/atomic-chat). Append `-GGUF` to any model name.
- **MLX** — Best for Mac users with Apple Silicon. Leverages unified memory for fast inference via [MLX](/deployment/on-device/mlx) or [Atomic Chat](/deployment/on-device/atomic-chat). Browse at [mlx-community](https://huggingface.co/mlx-community/collections?search=LFM).
- **ONNX** — Best for production deployments and edge devices. Cross-platform with ONNX Runtime across CPUs, GPUs, and accelerators. Append `-ONNX` to any model name.

Check warning on line 79 in lfm/models/complete-library.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/complete-library.mdx#L79

Did you really mean 'CPUs'?

Check warning on line 79 in lfm/models/complete-library.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/complete-library.mdx#L79

Did you really mean 'GPUs'?

### Quantization

Expand Down Expand Up @@ -121,6 +121,8 @@
| [LFM2-2.6B-Transcript](/lfm/models/lfm2-2.6b-transcript) | LFM2 | [✓](https://huggingface.co/LiquidAI/LFM2-2.6B-Transcript) | [✓](https://huggingface.co/LiquidAI/LFM2-2.6B-Transcript-GGUF) | ✗ | [✓](https://huggingface.co/onnx-community/LFM2-2.6B-Transcript-ONNX) | Yes (TRL) |

| **Decision Models** | | | | | | |
| [d1](/lfm/models/decision-models) | d1 | API | — | — | — | No |
| [d1-3B](/lfm/models/d1-3b) | d1 (Latest release) | [✓](https://huggingface.co/LiquidAI/d1-3B) | [✓](https://huggingface.co/LiquidAI/d1-3B-GGUF) | — | — | No |
| [d1-omni-600M](/lfm/models/d1-omni-600m) | d1 (Latest release) | [✓](https://huggingface.co/LiquidAI/d1-omni-600M) | [✓](https://huggingface.co/LiquidAI/d1-omni-600M-GGUF) | — | — | No |
| [d1](/lfm/models/d1) | d1 | API | — | — | — | No |

<Note>Looking for an older model? Deprecated models and their recommended replacements are listed on the [Deprecations](/lfm/help/deprecations) page.</Note>
132 changes: 132 additions & 0 deletions lfm/models/d1-3b.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
---
title: "d1-3B"
description: "3B parameter multimodal decision model for text and images, built on LFM2.5-VL-3B"

Check warning on line 3 in lfm/models/d1-3b.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/d1-3b.mdx#L3

Did you really mean 'multimodal'?
---

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

d1-3B is a 3.1B parameter decision model built on [LFM2.5-VL-3B](/lfm/models/lfm25-vl-3b). It evaluates text, JSON, images, or a mix and returns calibrated Noul, Choice, and Score answers in one forward pass with zero output tokens.

Check warning on line 8 in lfm/models/d1-3b.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/d1-3b.mdx#L8

Did you really mean 'Noul'?

<div style={{display: 'flex', gap: '0.5rem', margin: '0.5rem 0 1.5rem 0'}}>
<a href="https://huggingface.co/LiquidAI/d1-3B" 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/d1-3B-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>
</div>

## Specifications

| Property | Value |
|----------|-------|
| Parameters | 3.12B |
| Context Length | 32K tokens |
| Architecture | LFM2.5-VL (Dense) — LFM2.5-2.6B backbone + SigLIP2 NaFlex 400M vision encoder |

<div className="use-cases">
<CardGroup cols={3}>

<Card title="Multimodal" icon="images">
Text and images in the same state
</Card>

<Card title="Zero Output Tokens" icon="gauge-high">
Answers read from the distribution, no generation
</Card>

<Card title="Fast" icon="bolt">
Single forward pass, no autoregressive generation

Check warning on line 35 in lfm/models/d1-3b.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/d1-3b.mdx#L35

Did you really mean 'autoregressive'?
</Card>

</CardGroup>
</div>

## Quick Start

<Tabs>
<Tab title="Transformers">
**Install:**

```bash
pip install "transformers>=5.14" torch torchvision pillow
```

**Text input:**

```python
from transformers import AutoModel

model_id = "LiquidAI/d1-3B"
model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype="bfloat16", device_map="auto")

state = "I was charged twice this month, please refund one of them."
questions = {
"refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Charges, refunds, invoices", "technical": "App or site faults",
"fraud": "Suspected unauthorised use"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["Can wait", "Today", "Blocking the customer now"]},
}
output = model.system_one(state, questions)
print(output)
```

**Image input:**

```python
import io
import urllib.request

from PIL import Image
from transformers import AutoModel

model_id = "LiquidAI/d1-3B"
model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype="bfloat16", device_map="auto")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
photo = Image.open(io.BytesIO(urllib.request.urlopen(url).read()))

questions = {"cats": {"type": "choice", "instructions": "How many cats are there?",
"criteria": {"one": "One", "two": "Two", "more": "Three or more"}}}
output = model.system_one(None, questions, images=[photo])
print(output)
```
</Tab>
<Tab title="llama.cpp">
**Start the server:**

```bash
llama-server -hf LiquidAI/d1-3B-GGUF:Q8_0
```

**Text input:**

```bash
curl http://127.0.0.1:8080/v1/systemone -H "Content-Type: application/json" -d '{
"state": "I was charged twice this month, please refund one of them.",
"questions": {
"refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Charges, refunds, invoices", "technical": "App or site faults",
"fraud": "Suspected unauthorised use"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["Can wait", "Today", "Blocking the customer now"]}
}
}'
```

**Image input:**

```bash
curl -sL -o cats.jpg http://images.cocodataset.org/val2017/000000039769.jpg

curl http://127.0.0.1:8080/v1/systemone -H "Content-Type: application/json" -d @- <<JSON
{
"images": ["data:image/jpeg;base64,$(base64 < cats.jpg | tr -d '\n')"],
"questions": {
"cats": {"type": "choice", "instructions": "How many cats are there?",
"criteria": {"one": "One", "two": "Two", "more": "Three or more"}}
}
}
JSON
```
</Tab>
</Tabs>
168 changes: 168 additions & 0 deletions lfm/models/d1-omni-600m.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
---
title: "d1-omni-600M"
description: "587M parameter multimodal decision model for text, images, and audio, built on LFM2.5-Encoder-350M"

Check warning on line 3 in lfm/models/d1-omni-600m.mdx

View check run for this annotation

Mintlify / Mintlify Validation (liquidai) - vale-spellcheck

lfm/models/d1-omni-600m.mdx#L3

Did you really mean 'multimodal'?
---

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

d1-omni-600M is a 587M parameter decision model built on [LFM2.5-Encoder-350M](/lfm/models/lfm25-encoder-350m) with a SigLIP2-based vision encoder and audio encoder jointly fine-tuned for single-pass decisions. It evaluates text with images or text with audio and returns typed answers with zero output tokens.

<div style={{display: 'flex', gap: '0.5rem', margin: '0.5rem 0 1.5rem 0'}}>
<a href="https://huggingface.co/LiquidAI/d1-omni-600M" 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/d1-omni-600M-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>
</div>

## Specifications

| Property | Value |
|----------|-------|
| Parameters | 587M (381M shared trunk + 94M vision encoder + 112M audio encoder) |
| Context Length | 16K tokens |
| Architecture | LFM2.5-Encoder (Bidirectional) — 350M backbone + SigLIP2 vision + FastConformer audio |

<div className="use-cases">
<CardGroup cols={3}>

<Card title="Multimodal" icon="layer-group">
Text + images or text + audio (up to 30 s)
</Card>

<Card title="Zero Output Tokens" icon="gauge-high">
Answers read from the distribution, no generation
</Card>

<Card title="Edge-Sized" icon="microchip">
587M parameters for on-device deployment
</Card>

</CardGroup>
</div>

## Quick Start

<Tabs>
<Tab title="Transformers">
**Install:**

```bash
pip install "transformers>=5.15" torch torchvision pillow soundfile
```

**Text input:**

```python
from transformers import AutoModel

model_id = "LiquidAI/d1-omni-600M"
model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype="float16", device_map="auto")

state = "I was charged twice this month, please refund one of them."
questions = {
"refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Charges, refunds, invoices", "technical": "App or site faults",
"fraud": "Suspected unauthorised use"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["Can wait", "Today", "Blocking the customer now"]},
}
output = model.system_one(state, questions)
print(output)
```

**Image input:**

```python
import io
import urllib.request

from PIL import Image
from transformers import AutoModel

model_id = "LiquidAI/d1-omni-600M"
model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype="float16", device_map="auto")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
photo = Image.open(io.BytesIO(urllib.request.urlopen(url).read()))

questions = {"cats": {"type": "choice", "instructions": "How many cats are there?",
"criteria": {"one": "One", "two": "Two", "more": "Three or more"}}}
output = model.system_one(None, questions, images=[photo])
print(output)
```

**Audio input** (16 kHz mono, 0.5–30 s):

```python
import soundfile as sf
from transformers import AutoModel

model_id = "LiquidAI/d1-omni-600M"
model = AutoModel.from_pretrained(model_id, trust_remote_code=True, dtype="float16", device_map="auto")

wave, rate = sf.read("command.wav", dtype="int16")
assert rate == 16000

questions = {"kind": {"type": "choice", "instructions": "What kind of utterance is this?",
"criteria": {"request": "A request to do something",
"question": "A question asking for information",
"conversation": "Small talk or a greeting"}}}
output = model.system_one(None, questions, audio=wave)
print(output)
```
</Tab>
<Tab title="llama.cpp">
**Start the server:**

```bash
llama-server -hf LiquidAI/d1-omni-600M-GGUF:Q8_0 -b 4096 -ub 4096
```

**Text input:**

```bash
curl http://127.0.0.1:8080/v1/systemone -H "Content-Type: application/json" -d '{
"state": "I was charged twice this month, please refund one of them.",
"questions": {
"refund": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
"team": {"type": "choice", "instructions": "Which team should handle this?",
"criteria": {"billing": "Charges, refunds, invoices", "technical": "App or site faults",
"fraud": "Suspected unauthorised use"}},
"urgency": {"type": "score", "instructions": "How urgent is this?",
"criteria": ["Can wait", "Today", "Blocking the customer now"]}
}
}'
```

**Image input:**

```bash
curl -sL -o cats.jpg http://images.cocodataset.org/val2017/000000039769.jpg

curl http://127.0.0.1:8080/v1/systemone -H "Content-Type: application/json" -d @- <<JSON
{
"images": ["data:image/jpeg;base64,$(base64 < cats.jpg | tr -d '\n')"],
"questions": {
"cats": {"type": "choice", "instructions": "How many cats are there?",
"criteria": {"one": "One", "two": "Two", "more": "Three or more"}}
}
}
JSON
```

**Audio input:**

```bash
curl http://127.0.0.1:8080/v1/systemone -H "Content-Type: application/json" -d @- <<JSON
{
"audio": "data:audio/wav;base64,$(base64 < command.wav | tr -d '\n')",
"questions": {
"kind": {"type": "choice", "instructions": "What kind of utterance is this?",
"criteria": {"request": "A request to do something",
"question": "A question asking for information",
"conversation": "Small talk or a greeting"}}
}
}
JSON
```
</Tab>
</Tabs>
Loading
Loading