LFM3-Omni-2B-MLX-4bit
4-bit MLX version of LFM3-Omni-2B for Apple Silicon. The weights take 1.96 GB, plus 0.15 GB for the audio codec in audio_tokenizer/.
The language backbone uses 4-bit affine quantization with groups of 64, except for the token embedding (also the output layer) and the value and feed-forward down projections in the layers that llama.cpp's Q4_K_M upgrades, which use 6 bits. The vision tower and projector, the audio encoder and projector, the depth decoder and the audio codec in audio_tokenizer/ stay in BF16. It is the smallest variant and loses some accuracy, so 8-bit is the recommended trade-off.
Find architecture and usage details in the original model card.
Use with MLX-VLM
Requires MLX-VLM 0.7.11 or later:
pip install -U "mlx-vlm>=0.7.11"
# Speech recognition
python -m mlx_vlm.generate --model LiquidAI/LFM3-Omni-2B-MLX-4bit --temperature 0 \
--system "Perform ASR in English." --prompt "" --audio speech.wav
# Text to speech (24 kHz WAV)
python -m mlx_vlm.generate --model LiquidAI/LFM3-Omni-2B-MLX-4bit \
--system "Perform TTS in American English using a female voice." \
--prompt "The quick brown fox jumps over the lazy dog." \
--output-modality audio --output tts.wav
# Image question
python -m mlx_vlm.generate --model LiquidAI/LFM3-Omni-2B-MLX-4bit --temperature 0 \
--system "Answer questions about the provided image. Base every answer only on what can be seen. Respond with text." \
--image image.png --prompt "What does the sign say?"
Text answers use greedy decoding (--temperature 0). Speech output samples with audio_temperature=0.4 and audio_repetition_penalty=1.2 by default. The original model card lists the voices, languages and other system prompts. More options in the MLX guide.