Image-Text-to-Text
Transformers
Safetensors
GGUF
qwen3_5
alpie
169pi
qwen3.5
vision-language
multimodal
reasoning
coding
video-understanding
multilingual
indic
long-context
9b
apache-2.0
conversational
Instructions to use 169Pi/Alpie_seed with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use 169Pi/Alpie_seed with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="169Pi/Alpie_seed") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("169Pi/Alpie_seed") model = AutoModelForMultimodalLM.from_pretrained("169Pi/Alpie_seed", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use 169Pi/Alpie_seed with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "169Pi/Alpie_seed" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "169Pi/Alpie_seed", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/169Pi/Alpie_seed
- SGLang
How to use 169Pi/Alpie_seed with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "169Pi/Alpie_seed" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "169Pi/Alpie_seed", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "169Pi/Alpie_seed" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "169Pi/Alpie_seed", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use 169Pi/Alpie_seed with Docker Model Runner:
docker model run hf.co/169Pi/Alpie_seed
Update README.md
Browse files
README.md
CHANGED
|
@@ -105,7 +105,6 @@ Training used eight NVIDIA H100 GPUs, with 3,034 GRPO steps across five phases.
|
|
| 105 |
> **Evaluation Settings Note:** All benchmarks were evaluated with extended thinking enabled (`enable_thinking: true`), a maximum generation length of `max_tokens: 65536`, and `temperature: 0.0`.
|
| 106 |
>
|
| 107 |
> Alpie Seed scores are from the FP16 model and do not apply to the 2-bit, 3-bit, or 4-bit variants. **Bold** indicates the best score in each row. Comparison-model scores are taken from published model cards and reports (including the [Qwen3.5-9B model card](https://huggingface.co/Qwen/Qwen3.5-9B)).
|
| 108 |
-
|
| 109 |
### 🧮 Language
|
| 110 |
|
| 111 |
<div style="background-color: #FAF5FF; border: 1.5px solid #C4B5FD; border-radius: 14px; padding: 12px; margin-bottom: 24px; box-shadow: 0 4px 12px rgba(88, 37, 179, 0.05); overflow-x: auto;">
|
|
@@ -285,6 +284,8 @@ Training used eight NVIDIA H100 GPUs, with 3,034 GRPO steps across five phases.
|
|
| 285 |
</table>
|
| 286 |
</div>
|
| 287 |
|
|
|
|
|
|
|
| 288 |
- SWE-Bench Verified: resolved rate using Mini-SWE-agent, with retries disabled.
|
| 289 |
- Comparison-model scores were not re-run by 169Pi, and harnesses, prompts, and benchmark versions differ, so cross-model comparisons are indicative rather than strictly like-for-like. Scores vary with dataset versions, prompts, evaluation harnesses, and inference settings.
|
| 290 |
- Empty cells (--) indicate scores not yet available or not applicable.
|
|
@@ -299,4 +300,220 @@ Training used eight NVIDIA H100 GPUs, with 3,034 GRPO steps across five phases.
|
|
| 299 |
Qwen3.5 support requires a recent Transformers release (Transformers 5 or later).
|
| 300 |
|
| 301 |
```bash
|
| 302 |
-
pip install -U "transformers>=5.2.0" torch torchvision pillow accelerate
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
> **Evaluation Settings Note:** All benchmarks were evaluated with extended thinking enabled (`enable_thinking: true`), a maximum generation length of `max_tokens: 65536`, and `temperature: 0.0`.
|
| 106 |
>
|
| 107 |
> Alpie Seed scores are from the FP16 model and do not apply to the 2-bit, 3-bit, or 4-bit variants. **Bold** indicates the best score in each row. Comparison-model scores are taken from published model cards and reports (including the [Qwen3.5-9B model card](https://huggingface.co/Qwen/Qwen3.5-9B)).
|
|
|
|
| 108 |
### 🧮 Language
|
| 109 |
|
| 110 |
<div style="background-color: #FAF5FF; border: 1.5px solid #C4B5FD; border-radius: 14px; padding: 12px; margin-bottom: 24px; box-shadow: 0 4px 12px rgba(88, 37, 179, 0.05); overflow-x: auto;">
|
|
|
|
| 284 |
</table>
|
| 285 |
</div>
|
| 286 |
|
| 287 |
+
|
| 288 |
+
|
| 289 |
- SWE-Bench Verified: resolved rate using Mini-SWE-agent, with retries disabled.
|
| 290 |
- Comparison-model scores were not re-run by 169Pi, and harnesses, prompts, and benchmark versions differ, so cross-model comparisons are indicative rather than strictly like-for-like. Scores vary with dataset versions, prompts, evaluation harnesses, and inference settings.
|
| 291 |
- Empty cells (--) indicate scores not yet available or not applicable.
|
|
|
|
| 300 |
Qwen3.5 support requires a recent Transformers release (Transformers 5 or later).
|
| 301 |
|
| 302 |
```bash
|
| 303 |
+
pip install -U "transformers>=5.2.0" torch torchvision pillow accelerate
|
| 304 |
+
```
|
| 305 |
+
|
| 306 |
+
### Serve with vLLM (OpenAI-compatible API)
|
| 307 |
+
|
| 308 |
+
Start the standard Alpie Seed 9B server:
|
| 309 |
+
|
| 310 |
+
```bash
|
| 311 |
+
vllm serve 169Pi/Alpie_seed \
|
| 312 |
+
--port 8000 \
|
| 313 |
+
--max-model-len 262144 \
|
| 314 |
+
--reasoning-parser qwen3
|
| 315 |
+
```
|
| 316 |
+
|
| 317 |
+
To enable automatic tool-call parsing, use this command instead:
|
| 318 |
+
|
| 319 |
+
```bash
|
| 320 |
+
vllm serve 169Pi/Alpie_seed \
|
| 321 |
+
--port 8000 \
|
| 322 |
+
--max-model-len 262144 \
|
| 323 |
+
--reasoning-parser qwen3 \
|
| 324 |
+
--enable-auto-tool-choice \
|
| 325 |
+
--tool-call-parser qwen3_coder
|
| 326 |
+
```
|
| 327 |
+
|
| 328 |
+
The API is available at `http://localhost:8000/v1`. The tool-calling options enable vLLM to parse model-generated tool calls; your application is still responsible for executing the requested tools and returning their results.
|
| 329 |
+
|
| 330 |
+
### Run with Transformers
|
| 331 |
+
|
| 332 |
+
The following examples load the full vision-language checkpoint using `AutoModelForImageTextToText` and `AutoProcessor`. They retain the model's multimodal architecture. The `enable_thinking` argument is passed to the chat template to select the response mode.
|
| 333 |
+
|
| 334 |
+
#### 1. Thinking mode (`enable_thinking=True`)
|
| 335 |
+
|
| 336 |
+
```python
|
| 337 |
+
import torch
|
| 338 |
+
from transformers import AutoModelForImageTextToText, AutoProcessor
|
| 339 |
+
|
| 340 |
+
MODEL_ID = "169Pi/Alpie_seed"
|
| 341 |
+
|
| 342 |
+
processor = AutoProcessor.from_pretrained(MODEL_ID)
|
| 343 |
+
model = AutoModelForImageTextToText.from_pretrained(
|
| 344 |
+
MODEL_ID,
|
| 345 |
+
torch_dtype="auto",
|
| 346 |
+
device_map="auto",
|
| 347 |
+
)
|
| 348 |
+
model.eval()
|
| 349 |
+
|
| 350 |
+
messages = [
|
| 351 |
+
{
|
| 352 |
+
"role": "user",
|
| 353 |
+
"content": [
|
| 354 |
+
{"type": "text", "text": "Explain why the sky appears blue."}
|
| 355 |
+
],
|
| 356 |
+
}
|
| 357 |
+
]
|
| 358 |
+
|
| 359 |
+
inputs = processor.apply_chat_template(
|
| 360 |
+
messages,
|
| 361 |
+
tokenize=True,
|
| 362 |
+
add_generation_prompt=True,
|
| 363 |
+
enable_thinking=True,
|
| 364 |
+
return_dict=True,
|
| 365 |
+
return_tensors="pt",
|
| 366 |
+
).to(model.device)
|
| 367 |
+
|
| 368 |
+
with torch.inference_mode():
|
| 369 |
+
output_ids = model.generate(
|
| 370 |
+
**inputs,
|
| 371 |
+
max_new_tokens=4096,
|
| 372 |
+
do_sample=True,
|
| 373 |
+
temperature=0.7,
|
| 374 |
+
top_p=0.8,
|
| 375 |
+
)
|
| 376 |
+
|
| 377 |
+
new_tokens = output_ids[0, inputs["input_ids"].shape[1]:]
|
| 378 |
+
response = processor.decode(new_tokens, skip_special_tokens=True)
|
| 379 |
+
print(response)
|
| 380 |
+
```
|
| 381 |
+
|
| 382 |
+
#### 2. Non-thinking mode (`enable_thinking=False`)
|
| 383 |
+
|
| 384 |
+
```python
|
| 385 |
+
import torch
|
| 386 |
+
from transformers import AutoModelForImageTextToText, AutoProcessor
|
| 387 |
+
|
| 388 |
+
MODEL_ID = "169Pi/Alpie_seed"
|
| 389 |
+
|
| 390 |
+
processor = AutoProcessor.from_pretrained(MODEL_ID)
|
| 391 |
+
model = AutoModelForImageTextToText.from_pretrained(
|
| 392 |
+
MODEL_ID,
|
| 393 |
+
torch_dtype="auto",
|
| 394 |
+
device_map="auto",
|
| 395 |
+
)
|
| 396 |
+
model.eval()
|
| 397 |
+
|
| 398 |
+
messages = [
|
| 399 |
+
{
|
| 400 |
+
"role": "user",
|
| 401 |
+
"content": [
|
| 402 |
+
{"type": "text", "text": "Explain why the sky appears blue in two sentences."}
|
| 403 |
+
],
|
| 404 |
+
}
|
| 405 |
+
]
|
| 406 |
+
|
| 407 |
+
inputs = processor.apply_chat_template(
|
| 408 |
+
messages,
|
| 409 |
+
tokenize=True,
|
| 410 |
+
add_generation_prompt=True,
|
| 411 |
+
enable_thinking=False,
|
| 412 |
+
return_dict=True,
|
| 413 |
+
return_tensors="pt",
|
| 414 |
+
).to(model.device)
|
| 415 |
+
|
| 416 |
+
with torch.inference_mode():
|
| 417 |
+
output_ids = model.generate(
|
| 418 |
+
**inputs,
|
| 419 |
+
max_new_tokens=512,
|
| 420 |
+
do_sample=True,
|
| 421 |
+
temperature=0.7,
|
| 422 |
+
top_p=0.8,
|
| 423 |
+
)
|
| 424 |
+
|
| 425 |
+
new_tokens = output_ids[0, inputs["input_ids"].shape[1]:]
|
| 426 |
+
response = processor.decode(new_tokens, skip_special_tokens=True)
|
| 427 |
+
print(response)
|
| 428 |
+
```
|
| 429 |
+
|
| 430 |
+
#### 3. Tool calling with Transformers
|
| 431 |
+
|
| 432 |
+
Transformers can format the available tool definitions into the prompt. The model generates a tool-call request; your application must parse the request, execute the corresponding function, append the tool result, and ask the model to continue. This example demonstrates generating and inspecting a tool call; it does not execute external tools automatically.
|
| 433 |
+
|
| 434 |
+
```python
|
| 435 |
+
import json
|
| 436 |
+
import torch
|
| 437 |
+
from transformers import AutoModelForImageTextToText, AutoProcessor
|
| 438 |
+
|
| 439 |
+
MODEL_ID = "169Pi/Alpie_seed"
|
| 440 |
+
|
| 441 |
+
processor = AutoProcessor.from_pretrained(MODEL_ID)
|
| 442 |
+
model = AutoModelForImageTextToText.from_pretrained(
|
| 443 |
+
MODEL_ID,
|
| 444 |
+
torch_dtype="auto",
|
| 445 |
+
device_map="auto",
|
| 446 |
+
)
|
| 447 |
+
model.eval()
|
| 448 |
+
|
| 449 |
+
tools = [
|
| 450 |
+
{
|
| 451 |
+
"type": "function",
|
| 452 |
+
"function": {
|
| 453 |
+
"name": "get_weather",
|
| 454 |
+
"description": "Get the current weather for a city.",
|
| 455 |
+
"parameters": {
|
| 456 |
+
"type": "object",
|
| 457 |
+
"properties": {
|
| 458 |
+
"city": {
|
| 459 |
+
"type": "string",
|
| 460 |
+
"description": "The city to check.",
|
| 461 |
+
}
|
| 462 |
+
},
|
| 463 |
+
"required": ["city"],
|
| 464 |
+
},
|
| 465 |
+
},
|
| 466 |
+
}
|
| 467 |
+
]
|
| 468 |
+
|
| 469 |
+
messages = [
|
| 470 |
+
{
|
| 471 |
+
"role": "user",
|
| 472 |
+
"content": [
|
| 473 |
+
{"type": "text", "text": "What is the weather like in Patna?"}
|
| 474 |
+
],
|
| 475 |
+
}
|
| 476 |
+
]
|
| 477 |
+
|
| 478 |
+
inputs = processor.apply_chat_template(
|
| 479 |
+
messages,
|
| 480 |
+
tools=tools,
|
| 481 |
+
tokenize=True,
|
| 482 |
+
add_generation_prompt=True,
|
| 483 |
+
enable_thinking=True,
|
| 484 |
+
return_dict=True,
|
| 485 |
+
return_tensors="pt",
|
| 486 |
+
).to(model.device)
|
| 487 |
+
|
| 488 |
+
with torch.inference_mode():
|
| 489 |
+
output_ids = model.generate(
|
| 490 |
+
**inputs,
|
| 491 |
+
max_new_tokens=1024,
|
| 492 |
+
do_sample=True,
|
| 493 |
+
temperature=0.7,
|
| 494 |
+
top_p=0.8,
|
| 495 |
+
)
|
| 496 |
+
|
| 497 |
+
new_tokens = output_ids[0, inputs["input_ids"].shape[1]:]
|
| 498 |
+
generated_text = processor.decode(new_tokens, skip_special_tokens=False)
|
| 499 |
+
print("Model output:")
|
| 500 |
+
print(generated_text)
|
| 501 |
+
|
| 502 |
+
# Tool execution is application-side. Inspect the generated tool-call
|
| 503 |
+
# structure, validate its arguments, and dispatch only to tools you trust.
|
| 504 |
+
```
|
| 505 |
+
|
| 506 |
+
For image or video inputs, provide the corresponding image/video content items in the user message and use the same `AutoProcessor` + `AutoModelForImageTextToText` loading pattern. See the upstream Qwen3.5 documentation for multimodal message examples and framework-specific details.
|
| 507 |
+
|
| 508 |
+
## Citation
|
| 509 |
+
|
| 510 |
+
If you use Alpie Seed 9B in your work, please cite:
|
| 511 |
+
|
| 512 |
+
```bibtex
|
| 513 |
+
@misc{alpie_seed_9b_2026,
|
| 514 |
+
title = {Alpie Seed 9B},
|
| 515 |
+
author = {{169Pi AI}},
|
| 516 |
+
year = {2026},
|
| 517 |
+
howpublished = {\url{https://huggingface.co/169Pi/Alpie_seed}}
|
| 518 |
+
}
|
| 519 |
+
```
|