Claude Opus 5 is now live on CometAPI →

GPT-5.5 vs Claude Sonnet 4.6 vs Gemini 3.1 Pro: Czego nie powie Ci żaden benchmark

CometAPI
AnnaJun 12, 2026
GPT-5.5 vs Claude Sonnet 4.6 vs Gemini 3.1 Pro: Czego nie powie Ci żaden benchmark

Istnieje pewien specyficzny rodzaj spotkania, które odbywa się w każdym zespole budującym na granicznych LLM-ach. Ktoś udostępnia najnowszą tabelę wyników benchmarków. Ktoś inny zauważa, że rankingi przetasowały się od zeszłego miesiąca. Trzecia osoba zwraca uwagę, że model, którego zespół aktualnie używa, spadł o dwie pozycje w jakimś wskaźniku, o którym nikt z nich nie słyszał trzy tygodnie temu. Pod koniec spotkania nikt nie ma pewności, czy migrować, i rozmowa zostaje zarezerwowana ponownie na kolejny kwartał.

Problemem tego spotkania nie są ludzie, którzy w nim uczestniczą. Problemem jest to, że benchmarki mierzą zadania syntetyczne, a Twój produkt nie jest zadaniem syntetycznym. Tabela wyników mówi, jak model wypada na MMLU, na SWE-bench Verified, na GPQA Diamond — testach zaprojektowanych przez badaczy tak, aby dało się je mierzyć między modelami. Żaden z tych testów nie wygląda jak polecenia, które Twoja aplikacja wysyła w produkcji. Żaden nie oddaje, jak model radzi sobie z konkretnym typem nieuporządkowanego, ukształtowanego przez domenę wejścia, które generują Twoi użytkownicy.

Ten tekst przechodzi przez dokładne ćwiczenie, którego benchmarki nie potrafią zrobić. Trzy konkretne prompt’y, zaprojektowane do wysłania do GPT-5.5, Claude Sonnet 4.6 i Gemini 3.1 Pro przez ten sam punkt końcowy zgodny z OpenAI, z tymi samymi ustawieniami temperatury i bez dodatkowego promptowania. Prompt’y obejmują trzy kategorie, które dotykają większości produkcyjnych obciążeń: strukturalną ekstrakcję z nieuporządkowanego dokumentu, zadanie planowania silnie oparte na rozumowaniu oraz generowanie kodu w warunkach ograniczeń. Poniższe obserwacje to wzorce zachowań, które zespoły prowadzące tego rodzaju porównania konsekwentnie raportują — wzorce, które zobaczysz sam, jeśli uruchomisz te prompt’y we własnym środowisku.

Na tabelach wyników te trzy modele różnią się w SWE-bench Verified o 0,8 punktu procentowego. W praktyce zachowują się bardzo różnie. Wybór między nimi nie dotyczy tego, który ma najwyższe wyniki w benchmarkach — chodzi o to, który wzorzec zachowania pasuje do Twojego obciążenia.

Co mierzą benchmarki, a co im umyka

Benchmarki istnieją, bo muszą. Dostawcy modeli potrzebują znormalizowanych testów, by składać deklaracje o możliwościach, badacze — by publikować porównania, a reszta z nas — by mieć jakikolwiek obiektywny punkt wyjścia do oceny modeli. Są użyteczne. Są też niekompletne w sposób, który ma znaczenie w produkcji.

Warto explicite wskazać trzy konkretne ograniczenia, bo każde z nich pojawia się w przykładach promptów poniżej.

  • Benchmarks measure isolated capability, not behaviour patterns. SWE-bench Verified powie Ci, czy model potrafi rozwiązać określony typ problemu z GitHuba. Nie powie Ci, czy model ma tendencję do nadmiernego inżynierowania prostych problemów, czy zadaje pytania doprecyzowujące, gdy prompt jest niejednoznaczny, ani czy od razu produkuje wynik o strukturze, o którą prosiłeś. To są rzeczy, które będziesz obserwować na co dzień w produkcji.
  • Benchmarks are tuned to. Gdy wydanie modelu wyróżnia jego wynik w konkretnym benchmarku, to sygnał, że model był przynajmniej częściowo optymalizowany pod ten benchmark. Rzeczywista wydajność a wydajność w benchmarku mogą się rozjechać — czasem istotnie — gdy model wyjdzie poza warunki, dla których benchmark został zaprojektowany.
  • Benchmarks aggregate. Różnica 0,8 punktu procentowego w wyniku SWE-bench Verified może ukrywać fakt, że Model A jest dużo lepszy w jednej konkretnej kategorii zadań i gorszy w innej, podczas gdy Model B jest równy „w przekroju”. Agregacja spłaszcza informacje, których potrzebujesz do podjęcia decyzji.

Poniższe ćwiczenie ma na celu wydobycie dokładnie tych informacji, które agregacja w benchmarkach zaciera. Celem nie jest ogłoszenie zwycięzcy — lecz wskazanie pytań, które powinieneś zadawać, gdy uruchamiasz to samo ćwiczenie na własnych promptach.

Konfiguracja

Trzy prompt’y, wybrane, bo odpowiadają kategoriom, przez które przechodzi większość obciążeń produkcyjnych. Konfiguracja: każdy prompt wysłany do wszystkich trzech modeli z identycznymi parametrami (temperatura 0,3, bez nadpisywania system promptu, domyślny format odpowiedzi), dostęp przez pojedynczy punkt końcowy zgodny z OpenAI, aby porównanie było „jabłko do jabłka” — bez osobliwości SDK poszczególnych dostawców, różnych mapowań parametrów, ryzyka, że któryś model dostanie specjalne traktowanie przez konstrukcję żądania.

Same prompt’y poniżej, w blokach kodu do skopiowania i uruchomienia. Opisy zachowań za każdym z nich to wzorce, które zespoły konsekwentnie raportują przy tego typu porównaniach — wzorce udokumentowane w wielu zewnętrznych badaniach z 2026 r., i takie, których powinieneś się spodziewać, gdy uruchomisz te prompt’y u siebie. Uruchomienie ich samodzielnie jest celem; artykuł daje ramę i wyjściowe prompt’y, by to zrobić.

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["COMET_API_KEY"],  # or replace with your API key
    base_url="https://api.cometapi.com/v1",  # one endpoint, multiple models
)

MODELS = [
    "gpt-5.5",
    "claude-sonnet-4-6",
    "gemini-3.1-pro",
]


def run_comparison(prompt: str, temperature: float = 0.3) -> dict[str, str]:
    """
    Send the same prompt to all three models and return their responses.
    """
    responses = {}

    for model in MODELS:
        result = client.chat.completions.create(
            model=model,
            messages=[
                {
                    "role": "user",
                    "content": prompt,
                }
            ],
            temperature=temperature,
        )

        responses[model] = result.choices[0].message.content

    return responses


# Example usage
if __name__ == "__main__":
    prompt = "Summarise the key risks in this contract."

    outputs = run_comparison(prompt)

    for model, response in outputs.items():
        print(f"\n--- {model} ---")
        print(response)

Prompt 1: Strukturalna ekstrakcja z nieuporządkowanego dokumentu

To chleb powszedni połowy funkcji LLM wypuszczanych w 2026 r. Weź nieustrukturyzowane wejście — e-mail, zgłoszenie do supportu, transkrypt spotkania, zeskanowany formularz — i wyodrębnij konkretne pola do ustrukturyzowanego obiektu. Poniższy prompt prosi każdy model o wyodrębnienie siedmiu pól z celowo chaotycznego e-maila do działu obsługi klienta, zawierającego informacje niepełne, sprzeczne sygnały oraz jedno pole, które w ogóle nie występuje w tekście źródłowym.

Prompt

You are processing customer support emails. Extract the followingseven fields from the email below into a JSON object with exactlythese keys: - customer_name (string)- order_id (string)- issue_type (one of: "shipping", "product_quality", "billing",  "returns", "other")- urgency (one of: "low", "medium", "high")- requested_action (string)- affected_product (string)- escalation_history (any prior contact about this issue, if mentioned) 

Email:---Hi there, I'm writing about order #FT-2289334 from last Tuesday. The Cascadehiking boots I received are NOT the size 11 I ordered — they'reclearly size 10 (I can see the label inside). I have a guided trekbooked in 5 days and I genuinely don't know what to do. I've beena customer for years and this is the first time something likethis has happened. Can you sort this out urgently? I'd prefer a same-day exchange ifat all possible. I'm in Manchester. Margaret W.--- Return only the JSON object. No commentary, no markdown code fences.

Na co zwrócić uwagę

Trzy rzeczy. Po pierwsze, czy model trzyma się wymaganego schematu JSON bez konfabulacji. Po drugie, jak model obsługuje pole niewystępujące w źródle (escalation_history — klient nie wspomina o wcześniejszym kontakcie w sprawie tego konkretnego problemu) — czy przyznaje, że brak danych, czy tworzy wiarygodnie brzmiące treści. Po trzecie, czy model produkuje dodatkowy komentarz poza JSON-em, zmuszając dalsze przetwarzanie do zdejmowania „otoczki”. Warto też zwrócić uwagę na pole urgency: „5 dni” to nie jest natychmiast, ale klient wyraźnie się niepokoi, co zostawia pole do interpretacji.

Co zespoły raportują konsekwentnie

GPT-5.5. Zazwyczaj produkuje czysty JSON za pierwszym razem. Zgodność ze schematem jest silna; każde wymagane pole jest obecne, a format da się przetwarzać bez wstępnego czyszczenia. Dla pól bez danych GPT-5.5 ma tendencję zwracać jawne null. Zwykle nie opakowuje JSON-a w bloki kodu Markdown ani nie dołącza wyjaśnień, co upraszcza późniejsze parsowanie. Przy niejednoznacznych decyzjach interpretacyjnych, jak ocena pilności tutaj, GPT-5.5 bywa bardziej zachowawczy niż pozostałe dwa — tam, gdzie Claude i Gemini mogą ocenić zgłoszenie jako „high” na podstawie emocjonalnego tonu klienta, GPT-5.5 często kotwiczy się w konkretnym horyzoncie 5 dni i ląduje na „medium”.

Claude Sonnet 4.6. Również produkuje czysty JSON i zwykle najprecyzyjniej z trzech trzyma się zadanego schematu. Tam, gdzie GPT-5.5 zostawia brakujące pole jako null, Claude często dodaje nieproszone pola sygnalizujące problemy z jakością danych — klucz „notes” lub „data_quality_notes”, o który nie proszono, ale zawierający faktycznie użyteczne informacje. To dodatkowe pole jest pomocne dla ludzkich reviewerów, ale powoduje błędy, jeśli Twój dalszy parser jest rygorystyczny względem schematu. To powtarzający się wzorzec u Claude: wysoka jakość, ale czasem większa szczegółowość niż proszono, wymagająca explicite ograniczeń w prompt’cie.

Gemini 3.1 Pro. Zwykle produkuje najbardziej oszczędny output z trzech. Wszystkie wymagane pola, brak pól dodatkowych, brak otaczającej prozy. Zgodność ze schematem dokładnie taka, jak proszono. Jedna warta uwagi osobliwość: dla brakujących pól Gemini ma tendencję zwracać pusty string zamiast null. Rygorystyczne parsery JSON rozróżniające te przypadki to wyłapią; luźniejsze — nie. Zachowanie jest na tyle konsekwentne, że wygląda na preferencję modelu, a nie artefakt.

Co to mówi

Wszystkie trzy modele potrafią robić ekstrakcję strukturalną. Różnice leżą w zachowaniu na obrzeżach wymaganego schematu. Jeśli Twój system downstream jest rygorystyczny i traktuje pola dodatkowe jako błąd, bezpieczniejszym wyborem są Gemini 3.1 Pro i GPT-5.5. Jeśli chcesz, by model sygnalizował problemy z jakością danych bez proszenia, Claude Sonnet 4.6 jest bardziej pomocny. Nic z tego nie pojawi się w benchmarku.

Prompt 2: Zadanie planowania wymagające rozumowania

Ten prompt prosi modele o zaplanowanie wieloetapowego dochodzenia: pytanie badawcze z trzema ukrytymi ograniczeniami, które uważny model powinien zidentyfikować, zanim zsekwencjonuje pracę. Tego typu zadanie aplikacja agentowa delegowałaby LLM-owi jako etap planowania przed użyciem narzędzi.

Prompt

I'm trying to answer this research question for my team: "Is our customer churn rate higher among users who haven't usedfeature X in the last 30 days?" Produce a plan for how to investigate this. The plan should:- Identify the steps required- Sequence them with dependencies- Be actionable for a data analyst on my team Return the plan in clear, structured form.

Ukryte ograniczenia warte uwagi: pytanie nie definiuje, co znaczy „churn” (zamknięcie konta? brak logowań? brak zakupów?), nie określa, jak kontrolować zmienne zakłócające (użytkownicy o niskim zaangażowaniu odchodzą z wielu powodów niezwiązanych z feature X) i nie ustanawia bazowej grupy porównawczej. Uważny planer powinien wskazać wszystkie trzy, zanim przedstawi kroki.

Na co zwrócić uwagę

Czy model faktycznie rozumuje nad problemem, czy produkuje wiarygodnie brzmiącą sekwencję kroków, która nie trzyma się kupy po bliższej analizie. Czy identyfikuje ukryte ograniczenia bez podpowiedzi. I czy zależności między krokami są poprawne — plan, który wygląda dobrze, ale ma krok trzeci zależny od wyniku, który dostarczyłby krok piąty, jest bezużyteczny w praktyce.

Co zespoły raportują konsekwentnie

GPT-5.5. Zwykle produkuje najbardziej operacyjnie użyteczny plan. Rozumowanie bywa widoczne — GPT-5.5 wylicza swoje założenia dotyczące ukrytych ograniczeń (definicja churnu, grupa kontrolna, zmienne zakłócające), zanim rozłoży kroki, co ułatwia wychwycenie rozjazdów względem intencji. Zależności między krokami są wiarygodnie identyfikowane i oznaczone. Wyjście często obejmuje sekcję wskazującą, które kroki można zrównoleglić — o to nie proszono, ale realnie pomaga. To typ zadania, w którym ujawnia się trening GPT-5.5 pod kątem użycia narzędzi i agentowości — zachowanie planistyczne jest kształtowane założeniem, że za nim nastąpi wykonanie.

Claude Sonnet 4.6. Zwykle produkuje najbardziej „przemyślany” plan, dosłownie — plan Claude często obejmuje rozważania, których pozostałe dwa modele nie podnoszą. Przy takim pytaniu Claude prawdopodobnie wskaże problem metodologiczny korelacja vs przyczynowość, zauważy, że „nie używali feature X” może być skutkiem churnu, a nie przyczyną, i explicite zidentyfikuje ograniczenia, które nie zostały wypowiedziane, ale uważny analityk powinien je dostrzec. Minus: plan może być dłuższy niż potrzeba, a poszczególne kroki bywają nadmiernie inżynierowane względem rzeczywistego pytania. To zgodne z innymi zachowaniami Claude — ekspercka dbałość, czasem większa niż wymaga zadanie.

Gemini 3.1 Pro. Zwykle produkuje najczyściej ustrukturyzowany plan, z najklarowniejszym grafem zależności. Jakość rozumowania jest wysoka — Gemini wiarygodnie identyfikuje ukryte ograniczenia, dekomponuje problem na obronną sekwencję i produkuje instrukcje krok po kroku, które da się wykonać. Minus: plan może brzmieć nieco mechanicznie. Robi robotę, ale ma tendencję nie poruszać subtelności metodologicznych, które podnosi Claude, ani wskazówek dotyczących równoleglenia, które dodaje GPT-5.5. Pasuje to do szerszego wzorca Gemini — silny w rozumowaniu, bardziej rzemieślniczy w otaczających decyzjach.

Co to mówi

Jakość rozumowania w tym zadaniu jest wysoka w każdym z trzech modeli. Różnice leżą w zachowaniach okołozadaniowych — co model dodaje ponad literalną prośbę. GPT-5.5 dodaje pragmatykę operacyjną (równoleglenie, wskazówki wykonawcze). Claude dodaje ekspercką dbałość (metodologia, przypadki brzegowe, niuanse statystyczne). Gemini dodaje klarowność i oszczędność. Żaden z tych wyborów nie jest zły. To, który pasuje do Twojej aplikacji, zależy od tego, co chcesz, by model zrobił, gdy skończy to, o co go poprosiłeś.

Prompt 3: Generowanie kodu w warunkach konkretnych ograniczeń

Ten prompt prosi modele o implementację niewielkiej, lecz nienaiwnej funkcji: funkcję Pythona, która przyjmuje listę zdarzeń z timestampami i zwraca najdłuższą przerwę między kolejnymi zdarzeniami (w sekundach), obsługując cztery przypadki brzegowe. Ograniczenia są explicite; celem jest przetestowanie generowania kodu pod ograniczeniami, a nie sufitu możliwości — każdy model potrafi napisać tę funkcję. To, co się różni, to sposób obsługi ograniczeń.

Prompt

Write a Python function that takes a list of timestamped events andreturns the longest gap (in seconds) between consecutive events. Requirements:- Function signature: longest_gap(events: list[datetime]) -> float- Handle these edge cases:  1. Empty list (return 0.0 or raise — your choice, but be consistent)  2. Single event  3. Duplicate timestamps  4. Unsorted input- Use only the standard library- Include type hints- Return just the function. No tests or usage examples.

Na co zwrócić uwagę

Czy model adresuje wszystkie cztery przypadki brzegowe, czy po cichu pomija niektóre. Czy adnotacje typów są precyzyjne, czy sztampowe. Czy implementacja wybiera defensywny, sensowny algorytm (sortuj, potem skanuj), czy coś egzotycznego. I czy model przestrzega ograniczenia „bez testów, bez przykładów użycia” na końcu promptu — to ten typ instrukcji, którą modele z silnym podążaniem za instrukcjami uszanują, a słabsze cicho zignorują.

Co zespoły raportują konsekwentnie

GPT-5.5. Zwykle produkuje najdokładniej „zainżynierowany” kod. Wszystkie cztery przypadki brzegowe obsłużone explicite, adnotacje typów precyzyjne (często z Optional lub Union dla wartości zwracanych w przypadkach brzegowych), oraz docstring z przykładami wywołań. Implementacja zwykle wybiera oczywisty algorytm — sortuj, skanuj, śledź maksymalną przerwę — i jest poprawna. Warto wiedzieć: GPT-5.5 często dołącza testy jednostkowe lub przykłady użycia, nawet gdy prompt explicite prosi tylko o funkcję. To koszt modeli operacyjnie pragmatycznych — dodają rzeczy, które ich zdaniem będą Ci potrzebne, nawet gdy prosisz, by tego nie robić.

Claude Sonnet 4.6. Zwykle produkuje najbardziej czytelny kod. Funkcja jest zwięzła, przypadki brzegowe obsłużone czystym wzorcem guard clause na początku, adnotacje typów trafne i minimalne. Claude często dodaje przemyślany komentarz wyjaśniający decyzję, której prompt nie jednoznacznie rozstrzyga — np. w kwestii zduplikowanych timestampów: traktowanie ich jako przerw o długości zero i wyjaśnienie dlaczego, co jest obronną decyzją, choć nie wskazaną w prompt’cie. Claude zwykle lepiej niż GPT-5.5 przestrzega ograniczenia „bez testów”. Sama funkcja jest najbardziej „utrzymywalna” z trzech. Spójne z reputacją Claude w zakresie jakości kodu: czysty, idiomatyczny, o eksperckim sznycie.

Gemini 3.1 Pro. Zwykle produkuje najbardziej oszczędny kod z trzech. Funkcja jest poprawna, przypadki brzegowe obsłużone, implementacja najkrótsza. Docstring zwykle jednozdaniowy. Adnotacje typów obecne i trafne. Rozwiązanie Gemini rzadko zawiera testy lub rozbudowane komentarze i nie przesadza z inżynierią — dokładnie zgodnie z prośbą w prompt’cie. Dla dewelopera, który chce działającą funkcję i zamierza dodać testy osobno, to najprostsza droga. Dla dewelopera, który chce, by model zrobił też „oprawę” wokół, pozostałe dwa dodają więcej (czy tego chciałeś, czy nie).

Co to mówi

Wszystkie trzy modele potrafią napisać tę funkcję. Różnica behawioralna polega na tym, ile pracy „wokół” model wykonuje ponad literalne żądanie — i jak dobrze przestrzega explicite instrukcji „nie dodawaj X”. GPT-5.5 przechyla się ku dokładności i kompletności, nawet gdy w prompt’cie ją odpuszczono. Claude przechyla się ku rzemiosłu (czytelny kod, przemyślane komentarze decyzji). Gemini przechyla się ku oszczędności (zrób dokładnie to, o co proszono, nic więcej). W przepływach agentowych, gdzie wynik modelu trafia bezpośrednio do produkcyjnej bazy kodu, pożądane zachowanie zależy od oczekiwań Twojego procesu review — i od tego, jak rygorystycznie trzeba przestrzegać instrukcji negatywnych.

Wzorce, które się wyłaniają

W trzech promptach powyżej wyłaniają się trzy konsekwentne wzorce behawioralne z porównań i raportów deweloperów publikowanych w 2026 r. To nie są twierdzenia o możliwościach — każdy model radzi sobie na wysokim poziomie. To tendencje, które widzisz, gdy zespoły obserwują, jak ten sam model obsługuje dziesiątki promptów. Uruchom powyższe prompt’y u siebie, a zobaczysz te same wzorce; artykuł ma dać ramę, by rozpoznać, na co patrzysz.

ModelTendencja behawioralnaNajlepiej pasuje, gdy…
GPT-5.5Operacyjnie pragmatyczny. Dodaje wskazówki wykonawcze, defensywny kod i wyjście przyjazne dalszemu przetwarzaniu. Silny w zadaniach agentowych i ukształtowanych użyciem narzędzi.Twoja aplikacja łańcuchuje wyjście modelu do dalszego wykonania — agenci, workflowy lub potoki, w których kolejny krok jest zautomatyzowany.
Claude Sonnet 4.6Ekspercka dbałość. Wskazuje kwestie wykraczające poza literalne żądanie, porusza etykę i metodologię, produkuje bardzo czytelny kod.Twoja aplikacja ma człowieka recenzującego wyjście modelu — generowanie treści, code review, analizy, gdzie liczy się rzemiosło.
Gemini 3.1 ProOszczędny i bezpośredni. Robi dokładnie to, o co proszono, nic więcej. Najczystsza zgodność ze schematem i najniższy koszt tokenów dla równoważnej pracy.Twoja aplikacja ma rygorystyczne wymagania wyjścia, przewidywalny koszt jest priorytetem lub chcesz, by model był precyzyjnym narzędziem, a nie „myślącym” partnerem.

Ważne zastrzeżenie. To tendencje, nie reguły. Każdy model można sterować w kierunku dowolnego z tych zachowań odpowiednim promptowaniem — wystarczająco szczegółowy system prompt sprawi, że Gemini doda testy, ograniczy Claude do absolutnego minimum albo skłoni GPT-5.5 do pominięcia testów jednostkowych. Chodzi o to, co każdy model robi domyślnie, zanim zaczniesz nim sterować. Z zachowaniem domyślnym będziesz żyć w produkcji, o ile aktywnie nie zaprzeczysz mu promptem.

Jak testować na własnym obciążeniu

Powyższe ćwiczenie da się powtórzyć dla każdego obciążenia — i należy to zrobić. Wyniki benchmarków są dobrym pierwszym filtrem, ale wzorce zachowań istotne dla Twojej aplikacji widać dopiero wtedy, gdy obserwujesz, jak modele radzą sobie z Twoimi konkretnymi promptami.

Praktyczny przewodnik po uruchomieniu ćwiczenia na własnym ruchu:

  1. Wybierz trzy reprezentatywne kategorie promptów. Nie trzy losowe prompt’y — trzy kategorie obejmujące Twoje obciążenie. Większość systemów produkcyjnych da się zdekomponować na kilka typów (ekstrakcja, klasyfikacja, generowanie, rozumowanie, kod, streszczanie). Wybierz te, które obejmują większość ruchu.
  2. Zbierz 20–30 przykładów na kategorię. Najlepiej z realnego ruchu. Zanonimizuj, jeśli trzeba. Chodzi o to, by prompt’y wyglądały jak te, które faktycznie widzi Twoja aplikacja, a nie jak pytania benchmarkowe. Dwadzieścia na kategorię wystarczy, by zobaczyć wzorce; trzydzieści, by zyskać pewność.
  3. Uruchom przez jeden punkt końcowy, wszystkie modele. Agregujący punkt końcowy zgodny z OpenAI dramatycznie przyspiesza pracę względem używania osobnych SDK. Kod na początku artykułu to cała konfiguracja. Ta sama temperatura, te same parametry, ten sam prompt — różnice w wyjściu to różnice modeli.
  4. Oceniaj jakościowo, zanim przejdziesz do ilości. Najpierw rzut oka na wyjścia. Wzorce zachowań zwykle są oczywiste w pierwszym tuzinie promptów. Gdy masz hipotezę, jak każdy model zachowuje się na Twoim obciążeniu, wtedy zbuduj rubrykę oceny — ale hipoteza pochodzi z obserwacji, a nie z gotowego szablonu ocen.
  5. Zwróć uwagę na to, co model dodaje. Pytanie benchmarkowe brzmi, czy model daje poprawną odpowiedź. Pytanie behawioralne brzmi, co jeszcze robi. Czy dodaje testy? Czy wyjaśnia rozumowanie? Czy zgłasza obawy? Czy produkuje dodatkowe pola, o które nie prosiłeś? W tym tkwią różnice modeli.
  6. Wybierz model dopasowany do dalszych etapów. Jeśli Twój proces downstream jest zautomatyzowany, chcesz modelu, którego zachowanie domyślne produkuje czyste, parsowalne wyjście. Jeśli downstream to review człowieka, chcesz modelu, którego zachowanie domyślne dodaje taki osąd, jakiego oczekuje reviewer. Właściwa odpowiedź zależy od tego, co dzieje się po modelu.

Konkluzja

Wybór między GPT-5.5, Claude Sonnet 4.6 i Gemini 3.1 Pro nie dotyczy tego, który model jest „najlepszy”. Chodzi o to, który model pasuje do kształtu Twojego obciążenia — a tego kształtu benchmarki nie widzą. Powyższe ćwiczenie da się powtórzyć w jedno popołudnie, jeśli masz zebrane prompt’y; wartością jest to, że przestajesz zgadywać, a zaczynasz obserwować.

Dla zespołów uruchamiających ćwiczenie samodzielnie: najprostsza konfiguracja to pojedynczy punkt końcowy zgodny z OpenAI, który wystawia wszystkie trzy modele za jednym poświadczeniem. CometAPI to jedna z dróg; kierujesz istniejący SDK OpenAI na inny base URL, a parametrem zmiennym staje się model.

Benchmarki mówią, co model potrafi. Wzorce zachowań mówią, co model zrobi domyślnie na Twoich promptach. Pierwsza odpowiedź jest opublikowana. Drugą musisz zaobserwować sam. Dwadzieścia promptów na kategorię, jedno popołudnie — i masz odpowiedź, której żadna tabela wyników nigdy nie pokaże.

Gotowy na niezawodną integrację? Przejdź do CometAPI i API doc, aby uzyskać bezproblemowy dostęp do Claude Fable 5 obok innych modeli czołowych, ujednolicone rozliczenia i niezawodność klasy enterprise. Zarejestruj się już dziś i zacznij z hojnymi kredytami dla nowych użytkowników — Twój kolejny przełomowy projekt czeka.

Gotowy na obniżenie kosztów rozwoju AI o 20%?

Zacznij za darmo w kilka minut. Dołączone kredyty na bezpłatny okres próbny. Karta kredytowa nie jest wymagana.

Czytaj więcej