Instructions to use hemlang/Hemlock-Qwen3.6-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use hemlang/Hemlock-Qwen3.6-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="hemlang/Hemlock-Qwen3.6-27B") 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("hemlang/Hemlock-Qwen3.6-27B") model = AutoModelForMultimodalLM.from_pretrained("hemlang/Hemlock-Qwen3.6-27B", 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use hemlang/Hemlock-Qwen3.6-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "hemlang/Hemlock-Qwen3.6-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "hemlang/Hemlock-Qwen3.6-27B", "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/hemlang/Hemlock-Qwen3.6-27B
- SGLang
How to use hemlang/Hemlock-Qwen3.6-27B 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 "hemlang/Hemlock-Qwen3.6-27B" \ --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": "hemlang/Hemlock-Qwen3.6-27B", "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 "hemlang/Hemlock-Qwen3.6-27B" \ --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": "hemlang/Hemlock-Qwen3.6-27B", "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 hemlang/Hemlock-Qwen3.6-27B with Docker Model Runner:
docker model run hf.co/hemlang/Hemlock-Qwen3.6-27B
Hemlock-Qwen3.6-27B
Vorarbeiter with the Schierling adapter merged in — an operator model that also writes Hemlock.
The combination exists because no code agent understands Hemlock. Vorarbeiter's delegation policy hands engineering work to a coding agent, which is right for every language that agent knows and wrong for this one: if the operator does not write Hemlock itself, nothing does.
What each half contributes
Measured on the TIES base, the Schierling adapter takes hembench from 10.1% to 65.0% (4/38 → 26/38 tasks), where every generated program is executed by the real interpreter and its stdout compared against expected output:
| level | TIES | + Schierling | |
|---|---|---|---|
| L1 | syntax | 1/9 | 8/9 |
| L2 | stdlib | 0/5 | 1/5 |
| L3 | algorithms | 0/7 | 5/7 |
| L4 | systems | 0/7 | 5/7 |
| L5 | translation | 0/5 | 3/5 |
| L6 | debugging | 3/5 | 4/5 |
| overall | weighted | 10.1% | 65.0% |
22 tasks fixed, 0 broken. Generated code that fails to execute drops from 30 tasks to 8.
Vorarbeiter contributes the operator behaviour: delegation of non-Hemlock engineering work to a code agent, and factual answers on topics the base sanitises. See its card for those numbers.
Benchmarks
Measured on the merged weights. Tool use is the 47-case egirl bench at temperature 0; Hemlock is hembench, where every generated program is executed by the real interpreter and its stdout compared against expected output.
| TIES | Vorarbeiter | Hemlock | Wichtel | |
|---|---|---|---|---|
| tool use | 35/47 | 41/47 | — | 47/47 |
| delegation | 0/10 | 7/10 | — | 10/10 |
| hembench | 10.1% | — | — | 67.6% |
The concern flagged when this model was uploaded — that 5,562 rows of tool-free code generation might teach the operator to write code instead of delegating — did not materialise. Adding the Hemlock adapter to a base with 0/10 delegation left it at 1/10 and lifted total tool use 35/47 → 37/47; nothing was lost. Adding the egirl tool-use adapter on top then took delegation to 10/10, which is Wichtel.
If you want the operator model, use Wichtel — same lineage plus the tool-use adapter, and it is the configuration that was benchmarked end to end. This model is the useful intermediate: the Hemlock capability without the egirl-specific tool schema baked in, which is what you want if your agent uses different tools.
MTP head
peft merge_and_unload() silently drops the 15 mtp.* tensors and current llama.cpp then
refuses to load the model. They are grafted back from the pre-merge base and verified
bit-identical. This architecture has 1,199 tensors (850 language, 333 vision, 15 MTP,
1 lm_head).
llama-server -m Hemlock-Q8_0.gguf -ngl 99 -c 8192 --jinja -fa on -np 1 \
--spec-type draft-mtp --spec-draft-n-max 4
Limitations
- stdlib is the weak spot (1/5 on the adapter's own evaluation). Check API calls against docs.
- Merge behaviour unbenchmarked at upload time — see above.
- 38 hembench tasks is a small sample; per-level scores carry wide error bars.
- Everything Vorarbeiter carries: single-turn tool use, delegation bound to egirl's tool schema, and a persistent Chinese-language gap on the censorship axis.
Lineage
Qwen/Qwen3.6-27B
└─ huihui-ai/Huihui-Qwen3.6-27B-abliterated
└─ nbeerbower/Qwen3.6-27B-TIES
└─ + Bubba-3ep (GreatFirewall ORPO)
└─ + delegation LoRA = Vorarbeiter
└─ + Schierling (Hemlock SFT) ← this model
Related
nbeerbower/Schierling-Qwen3.6-27B-LoRA— the adapter, with full training detailsnbeerbower/Vorarbeiter-Qwen3.6-27B— the base- hemlock — the language and its benchmark
- Downloads last month
- -