Problemy z wyjściowym formatem strukturyzowanym w Ollama GPT-OSS
Nie bardzo ładnie.
Modely GPT-OSS z Ollama mają powtarzające się problemy z obsługą strukturalnego wyjścia, szczególnie gdy są używane wraz z frameworkami takimi jak LangChain, OpenAI SDK, vllm i innymi.
Wiele użytkowników zgłasza niepowodzenia w generowaniu poprawnego JSON-a lub innych strukturalnych formatów, halucynacje modelu dotyczące elementów formatu oraz niezgodne lub puste treści odpowiedzi. Te problemy wynikają z obecnych luk w kompatybilności, zmian w formacie odpowiedzi (np. Harmony) oraz niekompletnego wdrażania schematów wyjścia zarówno przez Ollama, jak i przez API trzecich stron. Dla szerszego kontekstu dotyczącego środowisk uruchomieniowych, przepustowości i benchmarków zobacz Wydajność LLM: Benchmarki, Bottlenecks i Optymalizacja.

O GPT-OSS
To nowy bardzo interesujący LLM od OpenAI. Sprawdź 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 eksperty na token | 4 | 4 |
| Długość kontekstu | 128k | 128k |
Uwagi wypuszczania mówią (tutaj i tutaj):
- Przyjazna licencja Apache 2.0: Buduj bez ograniczeń wynikających z copyleft lub ryzyka patentów — idealna do eksperymentowania, dostosowywania i wdrożenia komercyjnego.
- Konfigurowalny poziom rozumowania: Łatwo dostosuj poziom rozumowania (niski, średni, wysoki) w zależności od konkretnego przypadku użycia i potrzeb opóźnienia.
- Pełna łańcuchowa analiza myślenia: Pełny dostęp do procesu rozumowania modelu, co ułatwia debugowanie i zwiększa zaufanie do wyników. Nie ma na to przeznaczone do prezentacji użytkownikom końcowym.
- Dostosowywalność: Pełne dostosowanie modeli do konkretnego przypadku użycia poprzez wyrafinowanie parametrów.
- Możliwości agentowe: Użyj wewnętrznych 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 w wagach MoE, co pozwala uruchomić gpt-oss-120b na pojedynczej karcie GPU o pojemności 80 GB (np. NVIDIA H100 lub AMD MI300X) i uruchomić model gpt-oss-20b w 16 GB pamięci. Wszystkie testy zostały przeprowadzone przy tej samej kwantyzacji MXFP4.
Co nie lubić? Zdumiewająco niesprawne zachowanie strukturalnego wyjścia… to właśnie to. W ogólności, ten problem jest bardzo rozczarowujący, zwłaszcza ponieważ Strukturalne wyjście działa tak dobrze z Ollama i Qwen3.
Typowe problemy
- Modele takie jak gpt-oss:20b często nie potrafią generować ściślejszego JSON-a lub wyjścia zgodnego ze schematem, z odpowiedziami często zawierającymi dodatkowe komentarze lub niekompletne obiekty.
- Integracja z LangChain i OpenAI SDK ma tendencję do wyrzucania błędów 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 ślady rozumowania nawet wtedy, gdy nie są żądane, co komplikuje analizowanie schematu w porównaniu do innych modeli, takich jak Qwen3.
- Z vllm mechanizmy wdrażania strukturalnego wyjścia są albo brakujące, albo przestarzałe, więc wyjście często jest „nieskierowane” i musi być ręcznie analizowane.
- Istnieją doniesienia o tym, że model generuje poprawne strukturalne wyjście, a następnie kontynuuje treści niezwiązane, co narusza standardowe analizatory.
Przykładowe rozwiązania i naprawy
- Niektórzy użytkownicy sugerują jawne wskazanie schematu JSON w promocie i próby ręcznej analizy wyjścia modelu, czasem używając markerów przed- i po-splitycznych.
- Inny podejście to uruchomienie warstwy post-processor lub mniejszego LLM do ponownego sformatowania wyjścia GPT-OSS do pożądanego schematu, choć to jest intensywnie zużywające zasoby.
- Niektóre naprawy i żądania (PRs) poprawiły stopniowo zgodność z formatem Harmony, szczególnie w nowszych wersjach Ollama, ale pełna parzystość z poprzednimi modelami nie została jeszcze osiągnięta.
- Gdy korzystasz z vllm, poprawianie konkretnych funkcji może pomóc, ale ogólnie nie jest wspierana solidna zgodność ze schematem w tym momencie.
Rekomendacje
- Unikaj całkowitego oparcia się na GPT-OSS do ściślejszego strukturalnego wyjścia, dopóki pełna kompatybilność nie zostanie przywrócona w Ollama i poniższych frameworkach.
- Gdzie strukturalne wyjście jest krytyczne, użyj dodatkowego analizatora 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 trudności z wyjściem strukturalnym, głównie z powodu niekompletnego wdrażania formatu, zmian w formacie Harmony i braku wsparcia w całych łańcuchach narzędzi. Ręczne rozwiązania mogą pomóc, ale nie gwarantują spójnego sukcesu. Dla więcej informacji na temat środowisk uruchomieniowych LLM, alokacji pamięci i optymalizacji wydajności, sprawdź Wydajność LLM: Benchmarki, Bottlenecks i Optymalizacja.
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/