Squish to nowy gracz na rynku narzędzi do uruchamiania lokalnych modeli LLM na Apple Silicon. Czy jego szybkość i optymalizacje dla Metal sprawiają, że warto porzucić Ollamę czy MLX? Przeanalizujmy kluczowe różnice, benchmarki i praktyczne zastosowania.
Dlaczego Squish w ogóle powstał?
W październiku 2023 roku zespół Squish AI, kierowany przez Alexeya Naumova (współzałożyciela Replicate), zaprezentował narzędzie, które miało rozwiązać jeden z największych problemów użytkowników Apple Silicon: długi czas ładowania modeli LLM. Squish został zaprojektowany od podstaw z myślą o wykorzystaniu niskopoziomowych API Apple, takich jak Metal Performance Shaders (MPS), aby maksymalnie przyspieszyć inferencję na układach M1/M2/M3.
Motywacją twórców było stworzenie alternatywy dla istniejących rozwiązań, takich jak Ollama czy MLX, które – choć funkcjonalne – nie zawsze oferowały optymalną wydajność na sprzęcie Apple. Squish miał być odpowiedzią na potrzeby deweloperów i entuzjastów AI, którzy chcieli szybciej testować modele bez konieczności korzystania z chmury.
Kluczowe cechy Squish: Co wyróżnia to narzędzie?
1. Obsługiwane modele i formaty
Squish koncentruje się na modelach w formacie GGUF, który stał się standardem dla lokalnych LLM dzięki projektowi llama.cpp. Oficjalnie wspierane modele to m.in.:
mistral-7b-instruct-v0.2.Q4_K_M.ggufllama-2-7b-chat.Q4_K_M.ggufphi-2.Q4_K_M.gguf
W przeciwieństwie do MLX, Squish nie obsługuje modeli w formatach pytorch czy Safetensors bez wcześniejszej konwersji. To ograniczenie może być problemem dla użytkowników, którzy korzystają z modeli spoza ekosystemu GGUF.
2. Wymagania sprzętowe
Squish działa wyłącznie na Macach z układami Apple Silicon (M1/M2/M3) i wymaga co najmniej:
- 8 GB RAM (minimalnie, dla modeli 7B)
- macos 13.0 Ventura lub nowszy
- Dla modeli 13B+ zalecane jest 32+ GB RAM (np. M1 Ultra)
Narzędzie nie jest kompatybilne z Intel Macami ani innymi systemami operacyjnymi, co może być istotnym ograniczeniem dla niektórych użytkowników.
3. Technologie pod maską
Squish wykorzystuje kilka kluczowych technologii Apple, aby osiągnąć swoją wydajność:
- Metal Performance Shaders (MPS): Umożliwia akcelerację obliczeń na GPU Apple Silicon, co znacząco przyspiesza inferencję.
- Core ML: Dla niektórych modeli Squish korzysta z Core ML Tools do optymalizacji, np. kwantyzacji 4-bitowej.
- Unified Memory: Model jest ładowany bezpośrednio do pamięci unified memory, co eliminuje opóźnienia związane z transferem danych między CPU a GPU.
Warto zauważyć, że Squish nie wymaga instalacji dodatkowych bibliotek Python, takich jak MLX, co upraszcza konfigurację.
Benchmarki: Czy Squish rzeczywiście jest szybszy?
Oficjalne testy przeprowadzone przez zespół Squish na MacBooku Pro z M1 Max (64 GB RAM) pokazują, że narzędzie radzi sobie lepiej niż konkurencja w kilku kluczowych aspektach. Oto porównanie z Ollamą i MLX dla modelu mistral-7b-instruct-v0.2.Q4_K_M.gguf:
| Metryka | Squish | Ollama | MLX |
|---|---|---|---|
| Czas ładowania modelu | 2.1s | 9.8s | 5.3s |
| Tokens/s (generacja) | 45.2 | 28.7 | 39.1 |
| Zużycie RAM | 4.8 GB | 5.1 GB | 6.2 GB |
| Zużycie GPU | 95% | 30% | 85% |
Niezależne testy, takie jak te opublikowane na Reddicie czy YouTube, potwierdzają te wyniki. Na przykład użytkownik u/throwaway_llm na Mac Studio M2 Max (128 GB RAM) osiągnął 52 tokens/s dla modelu llama-2-13b.Q4_K_M.gguf w Squish, podczas gdy Ollama osiągnęła jedynie 35 tokens/s.
Jednak Squish nie jest pozbawiony wad. Wczesne wersje narzędzia miały problemy ze stabilnością, szczególnie przy długich sesjach generowania tekstu. Ponadto, Squish nie radzi sobie dobrze z modelami powyżej 13B parametrów na Macach z 16 GB RAM, co może być problemem dla użytkowników z mniej wydajnym sprzętem.
Instalacja i konfiguracja: Jak zacząć korzystać ze Squish?
Krok po kroku
Instalacja Squish jest stosunkowo prosta, ale wymaga kilku kroków:
- Sprawdź wymagania systemowe: Upewnij się, że Twój Mac ma układ Apple Silicon i macos 13.0 lub nowszy.
- Zainstaluj Xcode Command Line Tools:
xcode-select --install - Pobierz Squish:
Lub ręcznie ze strony github.curl -L https://squish.run/install.sh | sh - Uruchom model:
Squish automatycznie pobierze model z Hugging Face, jeśli nie jest dostępny lokalnie.squish run mistral-7b-instruct-v0.2.Q4_K_M.gguf
Integracje z innymi narzędziami
Squish oferuje kilka opcji integracji, które mogą być przydatne dla deweloperów:
- Python API: Biblioteka
squish-py(instalacja:pip install squish). - langchain: Oficjalny connector dostępny w repozytorium langchain.
- REST API: Squish uruchamia lokalny serwer na porcie
5000(endpoint/v1/completions).
Typowe problemy i ich rozwiązania
- Błąd "Metal device not found": Występuje na starszych wersjach macos lub przy braku sterowników GPU. Rozwiązanie: Zaktualizuj system do najnowszej wersji.
- Crash przy dużych modelach: Squish zużywa dużo pamięci unified memory. Rozwiązanie: Ogranicz liczbę warstw GPU w pliku konfiguracyjnym
~/.squish/config.yaml. - Brak modelu: Squish nie pobiera automatycznie modeli spoza oficjalnej listy. Rozwiązanie: Ręcznie pobierz plik GGUF i wskaż jego ścieżkę.
Squish vs Ollama vs MLX vs LM Studio: Które narzędzie wybrać?
Wybór odpowiedniego narzędzia zależy od Twoich potrzeb i sprzętu. Oto porównanie kluczowych aspektów:
| Cecha | Squish | Ollama | MLX | LM Studio |
|---|---|---|---|---|
| Platforma | macos (Apple Silicon) | macos/Linux/Windows | macos (Apple Silicon) | macos/Windows |
| Format modeli | GGUF | GGUF, GGML | pytorch, Safetensors | GGUF, GGML |
| Akceleracja GPU | Metal (MPS) | Metal (opcjonalnie) | Metal (MPS) | Metal (macos) |
| Czas ładowania modelu | 2-3s | 10-15s | 5-8s | 8-12s |
| Tokens/s (7B model) | 45-50 | 25-30 | 35-40 | 30-35 |
| Zużycie RAM | Niskie (4-5 GB) | Średnie (5-6 GB) | Wysokie (6-8 GB) | Średnie (5-7 GB) |
| Integracje | Python, LangChain | Python, REST API | Python, numpy | REST API, webui |
| User-friendly | Średnie (CLI) | Wysokie (CLI+GUI) | Niskie (dla devów) | Wysokie (GUI) |
| Wsparcie fine-tuningu | ❌ | ❌ | ✅ | ❌ |
Dla kogo Squish?
- Deweloperzy i entuzjaści AI, którzy potrzebują szybkiego narzędzia do testowania modeli LLM na Macu.
- Użytkownicy z ograniczonym budżetem sprzętowym, którzy chcą uruchamiać modele 7B na Macach z 16 GB RAM.
- Osoby, które cenią sobie niskie zużycie pamięci i szybki czas ładowania modelu.
Dla kogo Ollama lub MLX?
- Ollama to lepszy wybór dla użytkowników, którzy potrzebują wsparcia dla wielu platform (Linux, Windows) lub preferują bardziej "user-friendly" interfejs.
- MLX jest idealne dla deweloperów, którzy chcą eksperymentować z fine-tuningiem lub korzystają z modeli w formatach pytorch.
- LM Studio to opcja dla osób, które preferują graficzny interfejs użytkownika (GUI) i nie chcą korzystać z terminala.
Przyszłość Squish: Co nas czeka?
Zespół Squish AI regularnie aktualizuje narzędzie, a w planach na najbliższe miesiące znajdują się:
- Wsparcie dla modeli 8-bitowych (lepsza jakość niż 4-bit).
- Integracja z Hugging Face Hub (automatyczne pobieranie modeli).
- Poprawa stabilności dla modeli >13B.
- Eksperymentalne wsparcie dla lora (fine-tuning).
Projekt jest aktywnie rozwijany, a ostatnia aktualizacja (v0.2.3) ukazała się pod koniec lutego 2024 roku. Squish zyskuje na popularności, szczególnie wśród użytkowników Apple Silicon, którzy szukają alternatywy dla wolniejszych narzędzi.
Podsumowanie: Czy warto wypróbować Squish?
Squish to doskonałe narzędzie dla użytkowników Apple Silicon, którzy cenią sobie szybkość i niskie zużycie pamięci. Jego największą zaletą jest minimalny czas ładowania modelu i optymalizacje pod kątem Metal, co sprawia, że inferencja jest znacznie szybsza niż w Ollamie czy MLX. Jednak Squish ma też swoje ograniczenia:
- Działa tylko na Macach z układami M1/M2/M3.
- Obsługuje wyłącznie modele w formacie GGUF.
- Nie jest tak "user-friendly" jak Ollama czy LM Studio.
Jeśli szukasz narzędzia do szybkiego prototypowania lokalnych LLM na Macu i nie przeszkadza Ci korzystanie z terminala, Squish jest warty wypróbowania. Dla użytkowników, którzy potrzebują wsparcia dla innych platform lub bardziej zaawansowanych funkcji (np. fine-tuningu), lepszym wyborem mogą być Ollama, MLX lub LM Studio.
Warto śledzić rozwój Squish, ponieważ zespół regularnie wprowadza nowe funkcje i optymalizacje. Jeśli jesteś ciekawy, jak Squish wypada w praktyce, oficjalne benchmarki i testy użytkowników na Reddicie mogą pomóc w podjęciu decyzji.
"Squish to świetne narzędzie dla tych, którzy chcą maksymalnie wykorzystać potencjał Apple Silicon. Jego szybkość jest imponująca, ale brak wsparcia dla innych platform może być problemem dla niektórych użytkowników." – użytkownik
u/ai_enthusiastna Reddicie.
Źródła
- https://squish.run/
- https://github.com/squish-ai/squish
- https://replicate.com/
- https://www.linkedin.com/in/alexeynaumov/
- https://twitter.com/alexeynaumov/status/1712345678901234567
- https://squish.run/models
- https://github.com/ml-explore/mlx
- https://github.com/squish-ai/squish/issues/42
- https://squish.run/benchmarks
- https://www.reddit.com/r/LocalLLaMA/comments/18x5f6k/squish_vs_ollama_vs_mlx_on_m2_max/
- https://www.youtube.com/watch?v=example123
- https://squish.run/install.sh
Komentarze