Instructions to use swiss-ai/Apertus-8B-Instruct-2509 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use swiss-ai/Apertus-8B-Instruct-2509 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="swiss-ai/Apertus-8B-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-8B-Instruct-2509") model = AutoModelForCausalLM.from_pretrained("swiss-ai/Apertus-8B-Instruct-2509") 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
- vLLM
How to use swiss-ai/Apertus-8B-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-8B-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-8B-Instruct-2509", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/swiss-ai/Apertus-8B-Instruct-2509
- SGLang
How to use swiss-ai/Apertus-8B-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-8B-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-8B-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-8B-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-8B-Instruct-2509", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use swiss-ai/Apertus-8B-Instruct-2509 with Docker Model Runner:
docker model run hf.co/swiss-ai/Apertus-8B-Instruct-2509
Apertus tool parser
In the description you said Apertus supports tools and that supports vLLM.
If you would like to enable tools in vLLM you need to provide the following 3 parameters:
--enable-auto-tool-choice
--tool-call-parser
--chat-template
Here it is the example for Llama from vLLM
https://docs.vllm.ai/en/latest/features/tool_calling.html
chat-template seems to be here: https://github.com/swiss-ai/apertus-format/blob/main/src/templates/chat_template.jinja (please correct me if wrong)
But what about the tool-call-parser?
Any help here?
Thanks!
Thanks for the info! we were able to modify the chat_template and created our own Apertus tool parser. it's working good.. We are able to use it with Semantic Kernel (Python). Apertus is calling the tools correctly! great job! :)
@frsodano go ahead and share yours if you'd like, we will release and integrate into the inference engines when it's fully supported, right now the model rather responds to the format in the prompt than the format it was trained on (as we still need to do more training for tooling) ;)
We modified the chat_template and the llama3_json parser from vLLM to make it works with Apertus. We are solving a bug we found for Tools not having parameters, but for the rest is working fine. We are now testing it properly and then we will share it. Sharing is Caring. :)
Hi I made the tool parser for VLLM the PR is in reviex process: https://github.com/vllm-project/vllm/pull/26307
See also this PR on the 70B model: https://huggingface.co/swiss-ai/Apertus-70B-Instruct-2509/discussions/11
Hi there, do we have any implemented version of the parser that allows for tool_calling? It would be highly appreciated here too.
Another bump for this request please.
Bump
Thanks for your interest, this has been prioritized for the upcoming release of Apertus.