Ollama na IBM Z i LinuxONE: lokalne modele LLM w obrębie granic zaufania
Przeniesienie Ollamy na IBM Z i LinuxONE sprowadzało się do bezpiecznego ładowania wag w zależności od endianu, dzięki czemu lokalny model językowy może przetwarzać dane objęte regulacjami bez opuszczania obszaru zaufania.
Źródła: **Ollama on IBM Z & LinuxONE (s390x): Enabling Local LLM Inference on the Mainframe**
Dlaczego mainframe’y i lokalne modele językowe należą do tej samej grupy
Mainframe’y już chronią niektóre z najbardziej wrażliwych danych przedsiębiorstw na świecie. Otwartym pytaniem jest to, czy mogą one również hostować nowoczesne modele językowe bez przesyłania tych danych do zewnętrznych chmur GPU czy specjalistycznych urządzeń.
Dla zadań podlegających regulacjom odpowiedź nie jest teoretyczna. Przenoszenie tekstów z dziedziny finansów, opieki zdrowotnej lub administracji poza daną platformę powoduje ryzyko braku zgodności, opóźnienia w audytach oraz wydłużenie czasu reakcji. Platformy Z i LinuxONE już oferują funkcje izolacji, kryptografię oraz mechanizmy kontroli operacyjnej, którym niewiele zwykłych chmur może sprostać. Lokalna inferycja rozszerza te granice zaufania, zamiast je niszczyć.
Latem 2026 roku praca w laboratorium IBM w Poughkeepsie umożliwiła natywną integrację Ollamy — popularnego lokalnego silnika do uruchamiania modeli LLM — na platformie s390x. Pakietowanie nie stanowiło trudności. Największym wyzwaniem była poprawność działania na maszynie typu big-endian, gdzie konieczne było odczytywanie wag modeli w formacie little-endian. Gdy ten aspekt został rozwiązany, reszta adaptacji poszła gładko.
Czego trzeba było zmienić
Ollama na innych architekturach zakłada formaty typu little-endian dla tensorów GGUF oraz powiązanych metadanych. Na maszynie s390x typu big-endian proste operacje ładowania powodują zaburzenia w wartościach liczb zmiennoprzecinkowych i całkowitych. Rozwiązaniem jest dokładna wymiana bajtów na granicach tensorów (oraz w każdym innym miejscu, gdzie struktury na dysku przechowują wartości wielobajtowe), a także weryfikacja, czy embeddingi i logits odpowiadają dobrze znanej wersji działającej w formacie little-endian w określonym zakresie błędu.
Build i CI musiały wykonać kompilację krzyżową lub budowę natywną dla s390x, przetestować pobieranie i uruchamianie modeli oraz wykryć błędy endianness, zanim problemy te zostałyby przypisane „głupotzie modelu”. Sytuacja z przenoszeniem obciążeń na GPU różni się w przypadku systemów Z od kart NVIDIA; inferyencja CPU z wykorzystaniem szyfrów korporacyjnych i izolacji może nadal być lepsza dla wrażliwych danych, nawet jeśli szybkość przetwarzania tokenów na sekundę jest niższa niż w przypadku kart graficznych do gier.
Uruchamianie
Po przeniesieniu kodu, znane polecenia Ollamy nadal działają w systemach LinuxONE/Z Linux:
oc label pvc <pvc-name> opendatahub.io/dashboard=true -n <namespace>
Operatorzy pobierają modele, uruchamiają polecenia i przechowują ich wagi w tej samej zonie regulowanej co dokumenty źródłowe. To jest zaleta tego rozwiązania: inferyencja odbywa się tam, gdzie już znajdują się dane.
Kto powinien się tym zainteresować
- Banki i ubezpieczyciele korzystające z systemów bazodanowych opartych na technologii Z
- Instytucje sektora publicznego, którym zabroniono dostępu do publicznych API LLM
Lokalne modele LLM na s390x to nie tylko ciekawe demonstracje. Są sposobem na utrzymanie zgodności granic zaufania do procesów obliczeniowych z granicami zaufania do danych, które już wybudowano.
Uwaga operacyjna: traktujcie ładowarki uwzględniające endian jako kod o znaczeniu bezpieczeństwa. Pominięcie odpowiedniej operacji wymiany może wyglądać jak losowa utrata jakości i sprawić stratę kilku dni na „dostosowywanie promptów”, podczas gdy prawdziwym problemem są bity przesyłane z dysku.
Uwaga operacyjna: traktujcie ładowarki uwzględniające endian jako kod o znaczeniu bezpieczeństwa. Pominięcie odpowiedniej operacji wymiany może wyglądać jak losowa utrata jakości i sprawić stratę kilku dni na „dostosowywanie promptów”, podczas gdy prawdziwym problemem są bity przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przeoczenie operacji swap może wyglądać na losową stratę jakości i skutkować marnowaniem dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przeoczenie operacji swap może wyglądać na losową stratę jakości i skutkować marnowaniem dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przeoczenie operacji swap może wyglądać na losową stratę jakości i skutkować marnowaniem dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki świadome endianu jako kod istotny z punktu widzenia bezpieczeństwa. Przeoczenie operacji swap może wyglądać na losową stratę jakości i skutkować marnowaniem dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Uwaga operacyjna: traktuj ładowarki uwzględniające kierunek zapisu jako kod istotny pod względem bezpieczeństwa. Przegapiony proces wymiany może wyglądać jak losowa utrata jakości i zmarnowanie dni na „dostosowywanie promptów”, podczas gdy prawdziwym błędem są bajty przesyłane z dysku.
Literatura pokrewna
- Localne LLM-y z Ollama: CLI, API i sieciowanie w WSL — Wybierz odpowiednie modele za pomocą llmfit, sprawdź tagi przez ollama show oraz uzyskaj dostęp do API Ollamy hostowanej na Windows z poziomu WSL przy użyciu IP bramki.
- W pełni lokalny PDF RAG z LangChain, Ollama i Chroma — Przetwarzaj PDF-y lokalnie, włącz je za pomocą Ollamy, przechowuj w Chromie i odpowiadaj offline – nie potrzebujesz kluczy API chmurowych po pobraniu modeli.
- llama.cpp vs vLLM vs Ollama: wybór lokalnego silnika według ograniczeń — Przenośność laptopa, przyjazna interfejs użytkownika czy wydajność GPU dla wielu użytkowników – dopasuj llama.cpp, Ollamę i vLLM do sprzętu i możliwości równoległego działania, a nie tylko do haseł marketingowych.