Problemy z wyjściowym formatem strukturyzowanym w Ollama GPT-OSS
Nie bardzo przyjemne.
Modele GPT-OSS z Ollama mają powtarzające się problemy z obsługą strukturalnego wyjścia, zwłaszcza gdy są używane wraz z frameworkami takimi jak LangChain, OpenAI SDK, vllm i innymi.
Wiele użytkowników zgłasza problemy z generowaniem poprawnego JSON lub innych strukturalnych formatów, halucynacją modelu elementów formatu oraz niezgodnym lub pustym treścią odpowiedzi. Te problemy wynikają z obecnych luk w kompatybilności, zmianach formatu odpowiedzi (np. Harmony) oraz niekompletnym wdrażaniu schematów wyjścia zarówno przez Ollama, jak i przez trzecie API.
O GPT-OSS
To nowy bardzo ciekawy LLM od OpenAI. Spójrz tylko na te parametry:
Model | gpt-oss-120b | gpt-oss-20b |
---|---|---|
Warstwy | 36 | 24 |
Liczba parametrów | 117B | 21B |
Aktywne parametry na token | 5,1B | 3,6B |
Liczba ekspertów | 128 | 32 |
Aktywne eksperci na token | 4 | 4 |
Długość kontekstu | 128k | 128k |
Zdania w notach do wersji (tutaj i tutaj):
- Przyjazna licencja Apache 2.0: Buduj swobodnie bez ograniczeń copyleftowych ani ryzyka patentów — idealna do eksperymentowania, dostosowywania i wdrażania komercyjnego.
- Konfigurowalna siła rozumowania: Łatwo dostosuj siłę rozumowania (niski, średni, wysoki) w zależności od konkretnego przypadku użycia i potrzeb opóźnienia.
- Pełny łańcuch rozumowania: Pełny dostęp do procesu rozumowania modelu, ułatwiając debugowanie i zwiększając zaufanie do wyników. Nie jest przeznaczony do pokazywania użytkownikom końcowym.
- Dostosowywalność: Pełne dostosowanie modeli do konkretnego przypadku użycia poprzez finetuning parametrów.
- Możliwości agentowe: Użyj natywnych możliwości modeli do wywoływania funkcji, przeglądania sieci, wykonywania kodu Pythona i Strukturalnych Wyjść.
- Kwantyzacja MXFP4: Modele zostały po-trenowane z użyciem kwantyzacji MXFP4 dla wag MoE, co pozwala uruchomić gpt-oss-120b na pojedynczym GPU o pojemności 80 GB (np. NVIDIA H100 lub AMD MI300X), a model gpt-oss-20b działa w 16 GB pamięci. Wszystkie testy zostały przeprowadzone przy tej samej kwantyzacji MXFP4.
Co nie lubić? Zdania strukturalnego wyjścia… to właśnie to. Wszystkim razem ten problem jest bardzo rozczarowujący, zwłaszcza ponieważ Strukturalne Wyjście działa bardzo dobrze z Ollama i Qwen3.
Typowe problemy
- Modele takie jak gpt-oss:20b często nie potrafią generować ściślejszego JSON lub wyjścia zgodnego ze schematem, a odpowiedzi często zawierają dodatkowe komentarze lub niekompletne obiekty.
- Integracja z LangChain i OpenAI SDK często generuje błędy analizowania/walidacji ze względu na brak strukturalnego wyjścia, co sprawia, że potoki są nieprzydatne w środowiskach produkcyjnych.
- Format Harmony w gpt-oss wprowadza ślad rozumowania nawet wtedy, gdy nie jest żądany, co utrudnia analizowanie schematu w porównaniu do innych modeli, takich jak Qwen3.
- W przypadku vllm mechanizmy wdrażania strukturalnego wyjścia są albo brakujące, albo przestarzałe, więc wyjście często jest „niekierowane” i musi być ręcznie analizowane.
- Istnieją raporty o tym, że model generuje poprawne strukturalne wyjście, a następnie kontynuuje niezwiązane treści, co powoduje awarie standardowych analizatorów.
Wzorce rozwiązywania problemów i naprawy
- Niektórzy użytkownicy sugerują jawne określenie schematu JSON w promptach i próby ręcznego analizowania wyjść modelu, czasem korzystając z markerów przed- i po-świetlania.
- Inny podejście to uruchomienie warstwy post-processor lub mniejszego LLM do ponownego formatowania wyjścia GPT-OSS do pożądanego schematu, choć jest to intensywnie zużycie zasobów.
- Kilka poprawek i żądań (PRs) stopniowo poprawiło zgodność z formatem Harmony, szczególnie z nowszymi wersjami Ollama, ale pełna zgodność z poprzednimi modelami nie została jeszcze osiągnięta.
- Gdy korzysta się z vllm, poprawianie określonych funkcji może pomóc, ale ogólnie nie jest obsługiwana solidna wdrażanie schematu w tym momencie.
Zalecenia
- Unikaj całkowitego oparcia się na GPT-OSS dla ściśle strukturalnego wyjścia, dopóki pełna kompatybilność nie zostanie przywrócona w Ollama i w dół frameworkach.
- Gdzie strukturalne wyjście jest krytyczne, użyj dodatkowego analizowania lub modelu lepiej znanej zgodności ze schematem.
- Monitoruj odpowiednie problemy na GitHub (ollama/ollama, langchain-ai/langchain, vllm-project/vllm) na poprawki i aktualizacje integracji.
Podsumowując, GPT-OSS z Ollama obecnie ma problemy z wyjściem strukturalnym, głównie z powodu niekompletnego wdrażania formatu, zmian formatu Harmony i braku wsparcia w całych łańcuchach narzędzi. Ręczne rozwiązywanie problemów może pomóc, ale nie gwarantuje spójnego sukcesu.
Przydatne linki
- https://www.reddit.com/r/MachineLearning/comments/1n37qnu/d_ollamagptoss20b_cant_seem_to_generate/
- https://github.com/vllm-project/vllm/issues/23120
- https://github.com/ollama/ollama/issues/11691
- https://huggingface.co/openai/gpt-oss-20b/discussions/111
- https://github.com/langchain-ai/langchain/issues/33116
- https://ollama.com/library/gpt-oss
- https://openai.com/index/introducing-gpt-oss/
Inne artykuły Ollama
- LLM i Strukturalne Wyjście: Ollama, Qwen3 i Python lub Go
- Porównanie strukturalnego wyjścia wśród popularnych dostawców LLM — OpenAI, Gemini, Anthropic, Mistral i AWS Bedrock
- Ollama cheatsheet
- Test: Jak Ollama wykorzystuje wydajność procesora Intel i efektywne jądra
- Jak Ollama Obsługuje Prośby Wsparcia Równoległego
- Wykonanie LLM i Pasy Pci: Kluczowe Rozważania