Instructions to use qwqqq6/Pelican-1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use qwqqq6/Pelican-1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="qwqqq6/Pelican-1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("qwqqq6/Pelican-1") model = AutoModelForCausalLM.from_pretrained("qwqqq6/Pelican-1", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.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(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use qwqqq6/Pelican-1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "qwqqq6/Pelican-1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "qwqqq6/Pelican-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/qwqqq6/Pelican-1
- SGLang
How to use qwqqq6/Pelican-1 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 "qwqqq6/Pelican-1" \ --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": "qwqqq6/Pelican-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "qwqqq6/Pelican-1" \ --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": "qwqqq6/Pelican-1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use qwqqq6/Pelican-1 with Docker Model Runner:
docker model run hf.co/qwqqq6/Pelican-1
้น้น-1 (Pelican-1)
A tiny specialized chat model that turns a short prompt into a full HTML page (usually with inline SVG) of a pelican riding a bicycle โ including optional CSS @keyframes animation.
ๅบไบ Qwen3.5-0.8B ็ๅฐๆจกๅ๏ผๆ็ฎ็ญๆ็คบ่ฏๅๆไธๆด้กต HTML๏ผๅคไธบๅ
่ SVG๏ผ๏ผ็ปไธๅช้ช่ช่ก่ฝฆ็้น้น๏ผไนๅฏ่พๅบๅธฆ CSS @keyframes ็ๅจ็ป้กตใ
Model details / ๆจกๅไฟกๆฏ
| Display name | ้น้น-1 |
| Repo / file id | Pelican-1 / pelican-1 |
| Base model | Qwen/Qwen3.5-0.8B |
| Method | LoRA SFT (rank 64, alpha 128, dropout 0.05), then merged |
| Continue-from | runs/v1/epoch2 adapter, then v2 train |
| Released adapter epoch | v2 epoch1 (optimizer step 297) |
| Train / eval rows | 2737 / 138 (data_v2) |
| Tokens / epoch (approx) | ~10.55M reply tokens |
| License | Apache-2.0 (same as base model) |
Why epoch1 (not epoch3)
Eval CE from logs/train_v2.log (lower is better):
| step | overall | animation | modifier | standard | saved |
|---|---|---|---|---|---|
| 0 (start) | 0.4597 | 0.498 | 0.472 | 0.349 | โ |
| 297 | 0.4869 | 0.558 | 0.495 | 0.303 | epoch1 |
| 595 | 0.5438 | 0.656 | 0.540 | 0.273 | epoch2 |
| 891 | 0.5862 | 0.706 | 0.591 | 0.287 | epoch3 |
Overall / animation / modifier losses rose after epoch1 (overfitting). Standard split was best at epoch2. Release picks epoch1 for best overall CE among saved checkpoints.
Intended use / ็จ้
- Fun demos, โpelican riding a bicycleโ HTML/SVG generation (Simon Willisonโstyle pelican test, plus Chinese prompts).
- Animation prompts that ask for spinning wheels / HTML+SVG motion via CSS.
- Not a general assistant. Off-topic prompts often still emit HTML (wrong subject or empty bike).
Prompt & chat format / ๆ็คบไธๅฏน่ฏๆ ผๅผ
Use the base Qwen3.5 chat template with thinking disabled (enable_thinking=False). Training used userโassistant pairs only (no system prompt).
Example (Python / Transformers):
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
m = "PATH/TO/Pelican-1" # HF folder: release/v2/hf
tok = AutoTokenizer.from_pretrained(m)
model = AutoModelForCausalLM.from_pretrained(m, torch_dtype=torch.bfloat16, device_map="auto")
messages = [{"role": "user", "content": "Generate an SVG of a pelican riding a bicycle"}]
prompt = tok.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
)
enc = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**enc, max_new_tokens=4000, temperature=0.7, top_p=0.95)
print(tok.decode(out[0][enc["input_ids"].shape[1]:], skip_special_tokens=True))
Rendered shape (thinking off):
<|im_start|>user
Generate an SVG of a pelican riding a bicycle<|im_end|>
<|im_start|>assistant
<think>
</think>
Chinese example: ้น้น้ช่ช่ก่ฝฆ or ็จ HTML ๅ SVG ๅไธไธช้น้น้ช่ช่ก่ฝฆ็ๅจ็ป.
Ollama
cd gguf
ollama create pelican-1 -f Modelfile
ollama run pelican-1 "Generate an SVG of a pelican riding a bicycle"
Files in this release / ๆฌๅ ๆไปถ
hf/โ merged full weights (safetensors) + tokenizer +chat_template.jinja+ Apache-2.0LICENSElora/โ raw PEFT adapter (adapter_model.safetensors, rank 64) forruns/v2/epoch1gguf/โpelican-1-F16.gguf,pelican-1-Q8_0.gguf(+Modelfile)images/โ sample rendersCHECKPOINT.txtโ checkpoint choice notes
Sample outputs / ๆ ทๅผ
(Sample PNGs are from the v2 generation set rendered for review; the packaged weights are the merged epoch1 adapter.)
Known limitations / ๅทฒ็ฅๅฑ้
- Modifier prompts (night, rain, scarf, hat, sunglasses, snow) are still weak โ attributes often ignored or washed out.
- Off-topic prompts (capital of France, poem, cat on a bike) frequently still produce pelican/HTML-ish or wrong pages instead of a normal answer.
- Some drawings fail structurally (broken SVG, empty bicycle, poster-like layouts).
- Animation quality varies; CSS
@keyframesmay be present while motion looks wrong. - Base is multimodal-capable Qwen3.5; this release is textโHTML fine-tune only โ do not expect vision input support in the pelican packaging.
- GGUF: F16 and Q8_0 files were produced with turboquant
convert_hf_to_gguf.py(archqwen35). Packaging had to patchqwen35.block_count25โ24 (HF has 24 layers). Even after that, the local turboquantllama-clistill failed to load with missingblk.23.nextn.eh_proj.weight(MTP/nextn tensors this runtime expects). Treat GGUF as experimental / may need a matching Ollama or llama.cpp; prefer the HF folder for now.Q4_K_Mwas not produced (llama-quantizebinary not in that build).
Training sketch / ่ฎญ็ปๆ่ฆ
- Hardware: GPU-Server-01 (Docker), project
/workspace/pelican - Script:
scripts/train_lora.pyโ LoRA on attn/MLP projections, chunked CE,enable_thinking=Falsechat template - v2 data: SFT rebuild with animation-focused HTML (CSS spin/bob), paraphrases; 2737 train / 138 eval
- Hyperparams (v2
run.json): lr 1e-4, 3 epochs, rank 64 / alpha 128, step_tokens 32768, max_len 24576, seed 20261105
License
Apache License 2.0, matching Qwen3.5-0.8B. See hf/LICENSE.
Citation / ่ด่ฐข
- Base: Qwen team โ Qwen3.5
- Pelican HTML test meme: Simon Willison and the broader โdraw a pelican on a bicycleโ eval culture
- Downloads last month
- 36



