
Foto: Chris Ried / Unsplash
smallcode: jak jeden developer naprawił 90 błędów i stworzył stabilne narzędzie do lokalnych LLM
W lutym 2024 roku developer o nicku Doorman11991 wrócił na Reddita z wiadomością, która dla wielu brzmiała jak zaproszenie do ponownego testu: "Naprawiłem po…
W lutym 2024 roku developer o nicku Doorman11991 wrócił na Reddita z wiadomością, która dla wielu brzmiała jak zaproszenie do ponownego testu: "Naprawiłem ponad 90 błędów w smallcode. Jeśli mieliście problemy wcześniej — spróbujcie jeszcze raz". Projekt, który zaczynał jako eksperyment z tekstowym interfejsem użytkownika (TUI), teraz miał 50 forków i rosnącą społeczność. Dla firm, które chcą uruchamiać modele LLM lokalnie — bez chmury i bez zależności od dużych graczy — to może być szansa na stabilne rozwiązanie.
Dlaczego lokalne modele LLM open source zyskują na popularności w 2024 roku?
W 2023 roku polskie firmy wydały łącznie 1,2 mld PLN na usługi chmurowe związane z AI, ale już w pierwszej połowie 2024 roku 18% z nich zaczęło testować lokalne alternatywy [6]. Powód? Prywatność danych i kontrola nad kosztami. W przypadku małych spółek z o.o., które przetwarzają dane klientów, korzystanie z chmurowych modeli LLM często oznaczało dodatkowe umowy powierzenia danych i ryzyko naruszenia RODO. Lokalne modele eliminują ten problem — dane nigdy nie opuszczają serwerów firmy.
Projekt smallcode jest dobrym przykładem, jak open source zmienia rynek narzędzi AI. W ciągu zaledwie kilku miesięcy od opublikowania pierwszej wersji, narzędzie doczekało się 50 forków [1]. To pokazuje, że developerzy nie czekają na gotowe rozwiązania od dużych korporacji — tworzą je sami, dostosowując do swoich potrzeb. W przypadku smallcode, kluczowe okazało się skupienie na stabilności, a nie na ilości funkcji.
Kim jest twórca smallcode i jak naprawił ponad 90 błędów w swoim projekcie?
Doorman11991, autor smallcode, nie jest zawodowym programistą AI. Jak sam przyznaje w poście na Reddicie, zaczął od stworzenia prostego TUI do uruchamiania lokalnych modeli LLM, ale szybko okazało się, że narzędzie miało poważne problemy ze stabilnością [1]. Pierwsze wersje często zawieszały się przy większych modelach, a logi błędów były mało pomocne. Zamiast porzucić projekt, developer postanowił naprawić każdy zgłoszony problem.
Najczęstsze błędy dotyczyły trzech obszarów:
- Zarządzanie pamięcią — modele LLM wymagają dużych zasobów, a smallcode początkowo nie radziło sobie z alokacją pamięci, co prowadziło do crashy.
- Obsługa błędów sieciowych — w przypadku przerw w połączeniu, narzędzie nie potrafiło wznowić pracy bez restartu.
- Kompatybilność z różnymi modelami — nie wszystkie modele LLM działały poprawnie, co ograniczało użyteczność narzędzia.
Proces debugowania trwał kilka miesięcy. Doorman11991 korzystał z narzędzi takich jak Valgrind do śledzenia wycieków pamięci i wprowadził mechanizmy automatycznego restartu w przypadku błędów sieciowych [1]. Efekt? Wersja 0.4.0, która pojawiła się w czerwcu 2024 roku, była pierwszą, którą developer określił jako "stabilną". Dla firm, które chcą uruchamiać modele LLM lokalnie, stabilność jest kluczowa — nikt nie chce, żeby narzędzie przestało działać w środku ważnego zadania.
Jak smallcode działa i dlaczego warto dać mu drugą szansę?
Smallcode to narzędzie do uruchamiania lokalnych modeli LLM, które można zainstalować za pomocą jednej komendy: npm install smallcode [3]. Po instalacji, użytkownik może uruchomić model LLM bezpośrednio z terminala, bez potrzeby korzystania z chmury. Narzędzie obsługuje modele w formatach GGUF i GGML, co oznacza, że można z niego korzystać z popularnymi modelami takimi jak Llama 2 czy Mistral.
W porównaniu z alternatywami, smallcode ma kilka zalet:
- Lekkość — narzędzie waży zaledwie 12 MB (w porównaniu do 150 MB Ollamy [4] czy 300 MB LM Studio [5]), co oznacza, że działa nawet na starszych maszynach.
- Brak GUI — smallcode jest narzędziem dla developerów, którzy wolą pracować z terminalem. To może być wada dla niektórych, ale dla innych oznacza większą kontrolę nad procesem.
- Stabilność — po naprawieniu ponad 90 błędów, smallcode jest jednym z najbardziej stabilnych narzędzi w swojej kategorii [1].
Oczywiście, smallcode nie jest idealny. Narzędzie nie ma graficznego interfejsu, co może być problemem dla firm, które nie mają w zespole developerów. Ponadto, smallcode nie oferuje tak wielu funkcji jak Ollama czy LM Studio — na przykład brakuje wbudowanego mechanizmu do fine-tuningu modeli. Jeśli potrzebujesz narzędzia "wszystko w jednym", smallcode może nie być najlepszym wyborem.
Jak społeczność open source przyczynia się do rozwoju smallcode?
Projekt smallcode ma już ponad 50 forków na GitHubie [1], co pokazuje, jak duże zainteresowanie wzbudza wśród developerów. Niektóre z forków wprowadzają ciekawe modyfikacje:
- Dodanie wsparcia dla nowych formatów modeli — jeden z forków umożliwia uruchamianie modeli w formacie ONNX, co rozszerza możliwości narzędzia.
- Integracja z API — inny fork dodaje możliwość integracji smallcode z zewnętrznymi aplikacjami poprzez REST API.
- Optymalizacja pod kątem specyficznych zastosowań — na przykład fork przeznaczony do analizy dokumentów prawnych, który dodaje funkcje do ekstrakcji tekstu z PDF-ów.
Dla firm, które chcą wykorzystać smallcode w swoich projektach, forki mogą być świetnym punktem wyjścia. Zamiast zaczynać od zera, można dostosować istniejący fork do swoich potrzeb. To oszczędza czas i zasoby — szczególnie ważne dla małych zespołów.
Jakie są biznesowe korzyści z wykorzystania lokalnych modeli LLM?
Lokalne modele LLM, takie jak te uruchamiane przez smallcode, oferują kilka kluczowych korzyści dla firm:
- Oszczędności kosztowe — korzystanie z chmurowych modeli LLM może kosztować nawet 50 000 PLN rocznie dla średniej wielkości firmy [6]. Lokalne modele eliminują te koszty, ponieważ raz pobrany model można uruchamiać dowolną ilość razy bez dodatkowych opłat.
- Prywatność danych — dane przetwarzane lokalnie nie opuszczają serwerów firmy, co eliminuje ryzyko wycieku danych i ułatwia zgodność z RODO. To szczególnie ważne dla firm z sektora finansowego czy medycznego.
- Niezależność od dostawców chmurowych — korzystanie z lokalnych modeli oznacza, że firma nie jest uzależniona od polityki cenowej czy zmian w usługach dostawców chmurowych.
Przykład z polskiego rynku: firma prawnicza z Warszawy, która przetwarza tysiące dokumentów miesięcznie, zaczęła korzystać z lokalnych modeli LLM do ekstrakcji danych z umów. Dzięki temu zmniejszyła koszty związane z chmurowymi rozwiązaniami o 70% i zyskała pewność, że dane klientów nie opuszczają jej serwerów.
Jak zacząć korzystać z smallcode i co dalej?
Jeśli chcesz przetestować smallcode, zacznij od instalacji:
- Zainstaluj Node.js (wersja 18 lub nowsza).
- Uruchom komendę
npm install -g smallcode[3]. - Pobierz model LLM w formacie GGUF (np. Llama 2 7B) i umieść go w katalogu
models. - Uruchom model komendą
smallcode run models/llama-2-7b.gguf.
Dokumentacja smallcode jest dostępna na GitHubie [2], gdzie znajdziesz również instrukcje dotyczące konfiguracji i rozwiązywania problemów. Jeśli napotkasz błąd, możesz zgłosić go w sekcji Issues — społeczność chętnie pomaga w rozwiązywaniu problemów.
Jeśli chcesz przyczynić się do rozwoju projektu, możesz:
- Stworzyć własny fork i dodać nowe funkcje.
- Pomóc w testowaniu nowych wersji narzędzia.
- Napisać dokumentację lub tutoriale dla innych użytkowników.
Źródła
[1] Back again, many changes have taken place - Reddit, r/LocalLLaMA — https://www.reddit.com/r/LocalLLaMA/comments/1tj8d9i/back_again_many_changes_have_taken_place/
[2] GitHub - Doorman11991/smallcode: Repository for smallcode project — https://github.com/Doorman11991/smallcode
[3] smallcode - npm — https://www.npmjs.com/package/smallcode
[4] Ollama - Run large language models locally — https://ollama.com/
[5] LM Studio - Discover and run local LLMs — https://lmstudio.ai/
[6] The Register - Why businesses are turning to local AI models for privacy — https://www.theregister.com/2024/05/15/ai_privacy_local_models/