Instructions to use zai-org/GLM-5.3-Flash with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use zai-org/GLM-5.3-Flash with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="zai-org/GLM-5.3-Flash") 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("zai-org/GLM-5.3-Flash") model = AutoModelForMultimodalLM.from_pretrained("zai-org/GLM-5.3-Flash", 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
- HuggingChat
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use zai-org/GLM-5.3-Flash with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "zai-org/GLM-5.3-Flash" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "zai-org/GLM-5.3-Flash", "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/zai-org/GLM-5.3-Flash
- SGLang
How to use zai-org/GLM-5.3-Flash 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 "zai-org/GLM-5.3-Flash" \ --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": "zai-org/GLM-5.3-Flash", "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 "zai-org/GLM-5.3-Flash" \ --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": "zai-org/GLM-5.3-Flash", "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 zai-org/GLM-5.3-Flash with Docker Model Runner:
docker model run hf.co/zai-org/GLM-5.3-Flash
Please map reasoning effort levels
Currently, these new models only support low, high, and max. A lot of harnesses have medium and xhigh options. When using these, the user has to change the reasoning effort for every single session.
It would be beneficial if the template mapped these efforts:
mediummapped tohighxhighmapped tomax
Could this be handled in the harness config instead? Otherwise the template would have to enumerate every common reasoning-field name and map them all, which doesn't seem reasonable.
At least with Claude's code, you can't. Users have to change the default "effort" for every session, otherwise the prompts fail with an error saying that's not a supported effort.
Claude's code does support setting a default effort, but if you do, it doesn't let you change it during a session.
At least medium and xhigh seem to be consistently used across multiple harnesses. This issue also happened with qwen3.8-27b recently, some users had to create a custom chat template to fix it (See https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates )
At least with Claude's code, you can't. Users have to change the default "effort" for every session, otherwise the prompts fail with an error saying that's not a supported effort.
Claude's code does support setting a default effort, but if you do, it doesn't let you change it during a session.
At least
mediumandxhighseem to be consistently used across multiple harnesses. This issue also happened with qwen3.8-27b recently, some users had to create a custom chat template to fix it (See https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates )
We'll discuss this on our side and follow up.
At least with Claude's code, you can't. Users have to change the default "effort" for every session, otherwise the prompts fail with an error saying that's not a supported effort.
Claude's code does support setting a default effort, but if you do, it doesn't let you change it during a session.
At least
mediumandxhighseem to be consistently used across multiple harnesses. This issue also happened with qwen3.8-27b recently, some users had to create a custom chat template to fix it (See https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates )
We'll discuss this on our side and follow up.
If you're using Claude, you should also be able to set the mapping via export CLAUDE_CODE_EFFORT_LEVEL.