v0.3.4

EricLBuehler/mistral.rsv0.3.4Nov 28, 2024by EricLBuehler

AI Summary

Release adding Qwen2-VL and Idefics 3/SmolVLM support with a 6x prompt performance boost. Introduced more efficient non-PagedAttention KV cache and public tokenization API.

Key Highlights

  • Qwen2-VL support
  • Idefics 3/SmolVLM support
  • 6x prompt performance boost
  • More efficient non-PagedAttention KV cache implementation
  • Public tokenization API
  • Python wheels now support Windows, Linux, and Mac with x84_64 and aarch64

New Features

  • Preallocated KV cache
  • Metal qmatmul mat-mat product (5.4x performance increase)
  • Attention-fused softmax for Metal
  • FP8 support on Metal
  • VLlama vision model ISQ support
  • Perplexity calculation for ISQ models

Full Release Notes

## New features
- Qwen2-VL support
- Idefics 3/SmolVLM support
- ️‍🔥 6x prompt performance boost (all benchmarks faster than or comparable to MLX, llama.cpp)!
- 🗂️ More efficient non-PagedAttention KV cache implementation!
- Public tokenization API

## Python wheels
The wheels now include support for Windows, Linux, and Mac with x84_64 and aarch64.

## MSRV
1.79.0

## What's Changed
* Update Dockerfile by @Reckon-11 in https://github.com/EricLBuehler/mistral.rs/pull/895
* Add the Qwen2-VL model by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/894
* ISQ for mistralrs-bench by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/902
* Use tokenizers v0.20 by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/904
* Fix metal sdpa for v stride by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/905
* Better parsing of the image path by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/906
* Add some Metal kernels for HQQ dequant by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/907
* Handle assistant messages with 'tool_calls' by @Jeadie in https://github.com/EricLBuehler/mistral.rs/pull/824
* Attention-fused softmax for Metal by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/908
* Metal qmatmul mat-mat product (5.4x performance increase) by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/909
* Support --dtype in mistralrs bench by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/911
* Metal: Use mtl resource shared to avoid one copy by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/914
* Preallocated KV cache by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/916
* Fixes for kv cache grow by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/917
* Dont always compile with fp8, bf16 for cuda by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/920
* Expand attnmask on cuda by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/923
* Faster CUDA prompt speeds  by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/925
* Paged Attention alibi support by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/926
* Default to SDPA for faster VLlama PP T/s by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/927
* VLlama vision model ISQ support by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/928
* Support fp8 on Metal by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/930
* Bump rustls from 0.23.15 to 0.23.18 by @dependabot in https://github.com/EricLBuehler/mistral.rs/pull/932
* Calculate perplexity of ISQ models by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/931
* Integrate fast MLX kernel for SDPA with long seqlen by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/933
* Always cast image to rgb8 for qwenvl2 by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/936
* Fix etag missing in hf hub by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/934
* Fix some examples for vllama 3.2 by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/937
* Improve memory efficency of vllama by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/938
* Implement the Idefics 3 models (Idefics 3, SmolVLM-Instruct) by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/939
* Expose a public tokenization API by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/940
* Prepare for v0.3.4 by @EricLBuehler in https://github.com/EricLBuehler/mistral.rs/pull/942

## New Contributors
* @Reckon-11 made their first contribution in https://github.com/EricLBuehler/mistral.rs/pull/895

**Full Changelog**: https://github.com/EricLBuehler/mistral.rs/compare/v0.3.2...v0.3.4