Instructions to use swiss-ai/Apertus-70B-Instruct-2509 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use swiss-ai/Apertus-70B-Instruct-2509 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="swiss-ai/Apertus-70B-Instruct-2509") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("swiss-ai/Apertus-70B-Instruct-2509") model = AutoModelForCausalLM.from_pretrained("swiss-ai/Apertus-70B-Instruct-2509", 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=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- HuggingChat
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use swiss-ai/Apertus-70B-Instruct-2509 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "swiss-ai/Apertus-70B-Instruct-2509" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "swiss-ai/Apertus-70B-Instruct-2509", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/swiss-ai/Apertus-70B-Instruct-2509
- SGLang
How to use swiss-ai/Apertus-70B-Instruct-2509 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 "swiss-ai/Apertus-70B-Instruct-2509" \ --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": "swiss-ai/Apertus-70B-Instruct-2509", "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 "swiss-ai/Apertus-70B-Instruct-2509" \ --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": "swiss-ai/Apertus-70B-Instruct-2509", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use swiss-ai/Apertus-70B-Instruct-2509 with Docker Model Runner:
docker model run hf.co/swiss-ai/Apertus-70B-Instruct-2509
Are <|inner_prefix|>...<|inner_suffix|> thoughts generated by released Instruct checkpoints?
Hi, I am experimenting with running Apertus Instruct through Ollama's MLX runner and have a question about thinking/deliberation output.
The official chat template supports:
enable_thinking=TrueDeliberation: enabled- assistant
thoughtsblocks rendered as<|inner_prefix|>...<|inner_suffix|>
I wired this locally so that think: true enables Deliberation: enabled, and the parser extracts <|inner_prefix|>...<|inner_suffix|> into a thinking field.
However, in smoke tests with Apertus-8B-Instruct-2509 and Apertus-70B-Instruct-2509, the models answer normally but do not emit any <|inner_prefix|>...<|inner_suffix|> spans. The API path appears to work, butthinking remains empty.
Is this expected behavior for the released Instruct checkpoints?
Concretely:
- Are Apertus Instruct models expected to generate visible/parseable
thoughtsblocks whenenable_thinking=True? - Are there recommended prompts or decoding settings that induce this behavior?
- Is
Deliberation: enabledintended only as an internal instruction, with the model usually returning only the final response? - Should downstream integrations advertise this as a thinking-capable model, or only as supporting the Apertus thinking format for replay/history?
Thanks!
This is a known issue of our limited support for instruction following in the first release. For now, I would not label the current version of Apertus as a thinking model. Our team is working on making sure the next version of Apertus improves support here, and uses thinking special tokens more frequently. Thanks for your interest, and please stay tuned!