Image-Text-to-Text
Transformers
Safetensors
English
qwen3_5
qwen3.5
chat
creative-writing
altworld
conversational
Instructions to use Altworld/Astrea-R8-Chat-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Altworld/Astrea-R8-Chat-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Altworld/Astrea-R8-Chat-9B") 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)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Altworld/Astrea-R8-Chat-9B") model = AutoModelForMultimodalLM.from_pretrained("Altworld/Astrea-R8-Chat-9B", 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Altworld/Astrea-R8-Chat-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Altworld/Astrea-R8-Chat-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Altworld/Astrea-R8-Chat-9B", "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/Altworld/Astrea-R8-Chat-9B
- SGLang
How to use Altworld/Astrea-R8-Chat-9B 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 "Altworld/Astrea-R8-Chat-9B" \ --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": "Altworld/Astrea-R8-Chat-9B", "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 "Altworld/Astrea-R8-Chat-9B" \ --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": "Altworld/Astrea-R8-Chat-9B", "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 Altworld/Astrea-R8-Chat-9B with Docker Model Runner:
docker model run hf.co/Altworld/Astrea-R8-Chat-9B
Model card: production vLLM validation, live endpoints, serving profile, data acknowledgements
Browse files
README.md
CHANGED
|
@@ -18,6 +18,11 @@ Astrea R8 Chat is Altworld.io's 9B-parameter Qwen3.5 fine-tune for ordinary
|
|
| 18 |
conversation, grounded instruction following, and creative prose. It is the
|
| 19 |
native-chat release of the Astrea R8 line.
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
The bundled template is deliberately usable without a system prompt. When
|
| 22 |
`enable_thinking` is absent or false, it inserts Qwen's closed empty thinking
|
| 23 |
block and starts the visible answer immediately. Explicit thinking remains
|
|
@@ -99,6 +104,32 @@ The exact recommended runtime class may change as Qwen3.5 support lands in
|
|
| 99 |
stable Transformers/vLLM releases. Follow the base model's official runtime
|
| 100 |
instructions and pin a tested revision in production.
|
| 101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
## Serving notes
|
| 103 |
|
| 104 |
- Do not add a fictional roleplay system message for ordinary chat.
|
|
@@ -117,11 +148,12 @@ instructions and pin a tested revision in production.
|
|
| 117 |
low-temperature indirectness/confusion even though the facts remained in
|
| 118 |
context; higher temperature answered it directly. Applications should test
|
| 119 |
their own dialogue distributions.
|
| 120 |
-
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
|
|
|
| 125 |
- Identity behavior is a trained convention, not evidence of consciousness or
|
| 126 |
an independent person.
|
| 127 |
- English dominates the fine-tuning and evaluation evidence.
|
|
@@ -134,3 +166,21 @@ instructions and pin a tested revision in production.
|
|
| 134 |
Base model: [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B),
|
| 135 |
licensed under Apache License 2.0. This derivative is released under the same
|
| 136 |
license. See `NOTICE` for attribution and modification information.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
conversation, grounded instruction following, and creative prose. It is the
|
| 19 |
native-chat release of the Astrea R8 line.
|
| 20 |
|
| 21 |
+
**Try it:** [chat.altworld.io](https://chat.altworld.io) (free daily turns,
|
| 22 |
+
no account needed) · [api.altworld.io](https://api.altworld.io)
|
| 23 |
+
(OpenAI-compatible API) · [astrea.altworld.io](https://astrea.altworld.io)
|
| 24 |
+
(docs and release notes)
|
| 25 |
+
|
| 26 |
The bundled template is deliberately usable without a system prompt. When
|
| 27 |
`enable_thinking` is absent or false, it inserts Qwen's closed empty thinking
|
| 28 |
block and starts the visible answer immediately. Explicit thinking remains
|
|
|
|
| 104 |
stable Transformers/vLLM releases. Follow the base model's official runtime
|
| 105 |
instructions and pin a tested revision in production.
|
| 106 |
|
| 107 |
+
## Serving with vLLM (production-validated)
|
| 108 |
+
|
| 109 |
+
This checkpoint powers Altworld's own endpoints on vLLM 0.25, validated on
|
| 110 |
+
an A40 and on 2× RTX 3090 (`--tensor-parallel-size 2`): identity contract,
|
| 111 |
+
no accidental fiction, streaming, stop tokens, and seed-fixed sampling
|
| 112 |
+
reproducibility all pass on this engine.
|
| 113 |
+
|
| 114 |
+
```bash
|
| 115 |
+
vllm serve Altworld/Astrea-R8-Chat-9B \
|
| 116 |
+
--dtype bfloat16 \
|
| 117 |
+
--max-model-len 32768 \
|
| 118 |
+
--gpu-memory-utilization 0.90
|
| 119 |
+
```
|
| 120 |
+
|
| 121 |
+
- The base architecture supports 262,144 tokens of context natively; serve
|
| 122 |
+
whatever your VRAM affords (32k fits comfortably on 2×24 GB alongside the
|
| 123 |
+
BF16 weights — the hybrid linear-attention layers keep the KV footprint
|
| 124 |
+
small).
|
| 125 |
+
- On consumer dual-GPU boards without P2P, set `NCCL_P2P_DISABLE=1` or
|
| 126 |
+
tensor-parallel start-up can deadlock.
|
| 127 |
+
- Sampling profiles we serve in production: factual/plain
|
| 128 |
+
`temperature 0.2, top_p 0.95`; conversational/creative
|
| 129 |
+
`temperature 0.8, min_p 0.025, repetition_penalty 1.08`.
|
| 130 |
+
- GGUF: llama.cpp supports the Qwen3.5 family; official quants of this
|
| 131 |
+
fine-tune are planned — watch this org.
|
| 132 |
+
|
| 133 |
## Serving notes
|
| 134 |
|
| 135 |
- Do not add a fictional roleplay system message for ordinary chat.
|
|
|
|
| 148 |
low-temperature indirectness/confusion even though the facts remained in
|
| 149 |
context; higher temperature answered it directly. Applications should test
|
| 150 |
their own dialogue distributions.
|
| 151 |
+
- Engine portability: the production engine (vLLM 0.25, BF16) passes the
|
| 152 |
+
full release gate battery, and the Fireworks source runtime matched it. A
|
| 153 |
+
local MLX-LM smoke run was weaker on identity and user/model-name
|
| 154 |
+
separation at temperature 0.2 despite numerically matched logits — treat
|
| 155 |
+
runtime, kernels, and sampling implementation as part of the artifact and
|
| 156 |
+
validate your exact engine before depending on it.
|
| 157 |
- Identity behavior is a trained convention, not evidence of consciousness or
|
| 158 |
an independent person.
|
| 159 |
- English dominates the fine-tuning and evaluation evidence.
|
|
|
|
| 166 |
Base model: [Qwen/Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B),
|
| 167 |
licensed under Apache License 2.0. This derivative is released under the same
|
| 168 |
license. See `NOTICE` for attribution and modification information.
|
| 169 |
+
|
| 170 |
+
Fine-tuning preference data used gold responses generated by MIT-licensed
|
| 171 |
+
open-weight models (GLM-5.2 and DeepSeek-V4-Flash) under deterministic task
|
| 172 |
+
checks and an independent judge gate, with on-policy generations from the
|
| 173 |
+
Astrea lineage as rejected sides. No closed-source model outputs were used
|
| 174 |
+
at any stage.
|
| 175 |
+
|
| 176 |
+
## Acknowledgements
|
| 177 |
+
|
| 178 |
+
Early-stage data ancestry draws on openly licensed community datasets:
|
| 179 |
+
Athanorlite-DPO (CC-BY-4.0), jondurbin/gutenberg-dpo-v0.1 (CC-BY-4.0),
|
| 180 |
+
nbeerbower/gutenberg2-dpo and gutenberg-moderne-dpo (Apache-2.0),
|
| 181 |
+
Pageshift-Entertainment/LongPage (public-domain text, CC-BY-4.0
|
| 182 |
+
annotations), allenai/tulu-3-sft-mixture (ODC-BY, license-filtered slices),
|
| 183 |
+
and nothingiisreal/Reddit-Dirty-And-WritingPrompts (Apache-2.0, SFW file
|
| 184 |
+
only). Thanks to the Qwen team for the Apache-2.0 base model.
|
| 185 |
+
|
| 186 |
+
Questions or regressions: open a Discussion on this repository.
|