Instructions to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="steampunque/Voxtral-Mini-3B-2507-MP-GGUF", filename="Voxtral-Mini-3B-2507.Q6_K_H.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with llama.cpp:
Install from brew
brew install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H # Run inference directly in the terminal: llama-cli -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H # Run inference directly in the terminal: llama-cli -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H # Run inference directly in the terminal: ./llama-cli -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H # Run inference directly in the terminal: ./build/bin/llama-cli -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Use Docker
docker model run hf.co/steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
- LM Studio
- Jan
- Ollama
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Ollama:
ollama run hf.co/steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
- Unsloth Studio
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for steampunque/Voxtral-Mini-3B-2507-MP-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for steampunque/Voxtral-Mini-3B-2507-MP-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for steampunque/Voxtral-Mini-3B-2507-MP-GGUF to start chatting
- Pi
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Run Hermes
hermes
- Atomic Chat new
- Docker Model Runner
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Docker Model Runner:
docker model run hf.co/steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
- Lemonade
How to use steampunque/Voxtral-Mini-3B-2507-MP-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull steampunque/Voxtral-Mini-3B-2507-MP-GGUF:Q6_K_H
Run and chat with the model
lemonade run user.Voxtral-Mini-3B-2507-MP-GGUF-Q6_K_H
List all available models
lemonade list
Best chat template to force transcription mode?
Hi I'm looking for the best multilingual voice to text model I can run locally using llama-server strictly for transcription purposes, and this looks like it might work for that purpose, I read through your model description and applied the relevant fix for this model to work correctly. Could you please provide the best jinja template to pass to llama-server to force transcription only mode for a specific language? Thanks in advance.
I don't use upstream llama server, so don't know anything about how to set templates with it. I implemented my own autotokenizer in a downstream server based off llama.cpp server. Basically all you need to do is append lang:{SL}[TRANSCRIBE] to the end of the normal assistant prompt where {SL} is the language code such as en, de, etc.
It seems to work quite well.
You should be aware the audio function in llama.cpp is broken since b7410, the end of the audio will be chopped off. https://github.com/ggml-org/llama.cpp/issues/18419 . Also the voxtral problem https://github.com/ggml-org/llama.cpp/issues/17868 was ignored for some unknown reason so may always have to be fixed by hand in future builds.
I don't use upstream llama server, so don't know anything about how to set templates with it. I implemented my own autotokenizer in a downstream server based off llama.cpp server. Basically all you need to do is append lang:{SL}[TRANSCRIBE] to the end of the normal assistant prompt where {SL} is the language code such as en, de, etc.
It seems to work quite well.You should be aware the audio function in llama.cpp is broken since b7410, the end of the audio will be chopped off. https://github.com/ggml-org/llama.cpp/issues/18419 . Also the voxtral problem https://github.com/ggml-org/llama.cpp/issues/17868 was ignored for some unknown reason so may always have to be fixed by hand in future builds.
I did a little bit of digging into the audio truncation issue and after a couple of tests it became clear that the model only transcribes up to the last 30s segment, so a 48s audio file would stop at 30s , a 1m20s file at exactly 1m, etc.
I made a quick python wrapper which calculated the time difference until the next 30s segment and added silence for that duration, now the text is fully transcribed as expected.
I'm also using this jinja template which allows me to pass the desired language dynamically in the request using "chat_template_kwargs".
{%- if messages | length > 0 -%}[INST][BEGIN_AUDIO]
{%- for message in messages -%}
{%- if message.role == 'user' and loop.last -%}
{{ message.content }}
{%- endif -%}
{%- endfor -%}
[/INST]lang:{{ lang_code | default('en') }}[TRANSCRIBE]
{%- endif -%}
The model does an alright job, even tho the error rate is higher using llama.cpp at any quant level (even bf16) compared to running the full model using transformers or vllm.
Edit: I have no clue why the content of my post looks like it's been crossed out.
I don't use upstream llama server, so don't know anything about how to set templates with it. I implemented my own autotokenizer in a downstream server based off llama.cpp server. Basically all you need to do is append lang:{SL}[TRANSCRIBE] to the end of the normal assistant prompt where {SL} is the language code such as en, de, etc.
It seems to work quite well.You should be aware the audio function in llama.cpp is broken since b7410, the end of the audio will be chopped off. https://github.com/ggml-org/llama.cpp/issues/18419 . Also the voxtral problem https://github.com/ggml-org/llama.cpp/issues/17868 was ignored for some unknown reason so may always have to be fixed by hand in future builds.
I did a little bit of digging into the audio truncation issue and after a couple of tests it became clear that the model only transcribes up to the last 30s segment, so a 48s audio file would stop at 30s , a 1m20s file at exactly 1m, etc.
I made a quick python wrapper which calculated the time difference until the next 30s segment and added silence for that duration, now the text is fully transcribed as expected.
I'm also using this jinja template which allows me to pass the desired language dynamically in the request using "chat_template_kwargs".
{%- if messages | length > 0 -%}
<s>[INST][BEGIN_AUDIO]
{%- for message in messages -%}
{%- if message.role == 'user' and loop.last -%}
{{ message.content }}
{%- endif -%}
{%- endfor -%}
[/INST]lang:{{ lang_code | default('en') }}[TRANSCRIBE]
{%- endif -%}
The model does an alright job, even tho the error rate is higher using llama.cpp at any quant level (even bf16) compared to running the full model using transformers or vllm.
Edit: I have no clue why the content of my post looks like it's been crossed out.
You need to put special chars in a codeblock as I show here or markdown will interpret as format commands. Silence padding is certainly a workaround for the truncation padding but there were also some other hacks in the new code, which may or may not be doing distortion on the audio. I just reverted my downstream to the old code before the hack that broke it that will work too if you are fluent in c++ rebasing. Agree the model is OK but certainly not flawless. Extremely interesting result comparing against transformers/vllm. Most models here seem to recommend sglang or vllm or transformers for the best inference engine for some reason llama.cpp does not come up in the conversation. Ollama seems to have a grand vision for some future unified anything in anything out engine https://ollama.com/blog/multimodal-models and they dropped use of llama.cpp specifically due to the multimodal instability, clearly not being maintained at all even for simple issues that come up but Ollama guys think the whole approach used in llama.cpp is wrong and a complete ripup needed for proper multimodal. I will not debug it further since its a complete waste of time to post issues and just have them ignored. Best of luck with your transcribing and translating.