# Clef-flash po polsku i po angielsku: pomiar z 2–3 października 2026

Zbiór danych do artykułu w serwisie ekspertodsztucznejinteligencji.pl. Licencja plików własnych: CC BY 4.0
(https://creativecommons.org/licenses/by/4.0/), z uznaniem autorstwa „Robert Marczyński, ekspertodsztucznejinteligencji.pl”.

Zdania w `decyzje.jsonl` i `decyzje-uzupelnienie.jsonl` pochodzą ze zbioru MASSIVE 1.1, © Amazon.com, Inc. or its affiliates,
https://github.com/alexa/massive, licencja CC BY 4.0 (FitzGerald i in., 2022, arXiv:2204.08582). MASSIVE powstał
z angielskich danych SLURP (CC BY 4.0) przetłumaczonych na 50 języków; wersja 1.0 obejmowała 51 języków, a wersja 1.1
dodała kataloński (52). Zmiany: użyto całej części `test` (2974 pary pl-PL i en-US, z tego 1000 w analizie głównej), zmieniono
nazwy pól i dołączono wyniki modelu; treści zdań ani etykiet nie zmieniono.

## Pytanie

Clef-flash to otwarty klasyfikator Cloudflare (wydany 1 października 2026, Apache 2.0, 9,4 mld parametrów,
model bazowy Qwen3.5-9B). Jak trafnie rozpoznaje intencję w krótkich poleceniach po polsku w porównaniu z tymi
samymi poleceniami po angielsku, czy jego pewność jest skalibrowana i ile tokenów wejścia, a więc pieniędzy
w Workers AI, kosztuje jedna decyzja?

## Metoda

Protokół spisany przed pomiarem: `protokol.md` (z dziennikiem zmian, w tym z wpisem o utracie pierwszego przebiegu).

- Dane: część `test` zbioru MASSIVE 1.1, pary pl-PL i en-US łączone po `id` (etykiety identyczne w obu
  językach). Próba: 1000 par wylosowanych z ziarnem 20261002 (`ids-proba.txt`), czyli 2000 decyzji. Uzupełnienie:
  pozostałe 1974 pary części testowej (cała część: `ids-pelny.txt`), czyli 3948 decyzji, policzone po zakończeniu próby głównej.
- Model: `Cloudflare/clef-flash`, rewizja 17f0b0ad64efb65d273590632833508766b2aae6, BF16 (bez kwantyzacji), uruchomiony
  lokalnie na Apple M5 Pro z 48 GB pamięci (MPS), torch 2.11.0, transformers 5.10.2, kod `joint_schema_model.py`
  z repozytorium modelu. Bez optymalizacji „fast path”, niedostępnej na MPS.
- Pytanie do modelu, w obu językach to samo i zawsze po angielsku: jedno pole typu `choice` z instrukcją
  „Which intent does the user's request express?” i 60 opcjami. Opis opcji to etykieta MASSIVE z podkreślnikami
  zamienionymi na spacje, bez opisów pisanych ręcznie. W stanie (`state`) samo zdanie; zmieniał się tylko jego język.
- Miary z protokołu: trafność intencji (top-1), trafność obszaru (scenariusz MASSIVE, prefiks etykiety), makro-F1
  (po 59 intencjach obecnych w próbie), kalibracja (ECE, 15 przedziałów pewności) i wynik Briera; różnica trafności
  PL−EN ze sparowanym bootstrapem (10 000 losowań, ziarno 20261002) i dokładnym testem McNemara.
- Koszt: średnia liczba tokenów wejścia × 10 000 × stawka Workers AI z cennika odczytanego 2 października 2026
  (Clef-flash 0,09 USD, Clef 0,24 USD za milion tokenów wejścia; stawki za wyjście cennik nie podaje), po kursie NBP
  z 2 października 2026 (tabela 192/A/NBP/2026, 3,8881 zł). Tokenizer i kod przygotowujący wejście są w dużym
  Clefie bajt w bajt takie same jak w modelu Clef-flash, więc liczba tokenów jest ta sama.
- Pilot (100 par): w przebiegu 1 uruchomiony dwa razy, z tymi samymi decyzjami (200/200) i różnicą prawdopodobieństw 0; w przebiegu 2
  (po utracie danych, zob. protokół) te same decyzje, a prawdopodobieństwa różne na 3.–4. miejscu po przecinku. Pliki pilota
  zostają u autora.
  Do próby głównej trafiło też 98 ze 100 par pilota (to samo ziarno); pilot niczego nie stroił.

## Wynik analizy głównej (1000 par)

| Miara | Polski | Angielski |
|---|---|---|
| Trafność intencji (60 opcji) | 0,881 | 0,894 |
| Trafność obszaru (18 obszarów) | 0,924 | 0,931 |
| Makro-F1 | 0,8265 | 0,8491 |
| ECE | 0,0373 | 0,0428 |
| Wynik Briera | 0,1922 | 0,1642 |
| Średnia pewność | 0,9157 | 0,9125 |
| Tokeny wejścia na decyzję (średnio) | 1325,65 | 1322,25 |

Różnica trafności PL−EN: −1,3 punktu procentowego, 95-procentowy przedział od −2,9 do +0,3; tylko po polsku
trafne 26 decyzji, tylko po angielsku 39, test McNemara p = 0,136. Ta sama decyzja w obu językach: 921 na 1000.

## Analizy po fakcie (poza protokołem)

Policzone po obejrzeniu wyników, na prośbę recenzentów; bootstrap z tym samym ziarnem.

- Wynik Briera PL−EN: +0,0279, 95-procentowy przedział od 0,008 do 0,049. Rozkład: z decyzji błędnych 0,1795 po polsku
  (119 błędów, średnia pewność przy błędzie 0,760) wobec 0,1496 po angielsku (106 błędów, 0,727), z trafnych 0,0127 wobec 0,0147;
  około dwóch trzecich różnicy dają dodatkowe błędy, resztę wyższa pewność przy błędach.
- Decyzje z pewnością od 0,9: po polsku 814, z tego 47 błędnych (trafność 0,9423); po angielsku 809 i 28 (0,9654).
  Różnica odsetka błędnych PL−EN: +2,3 punktu, przedział od 1,2 do 3,5. Przy progu 0,8: 901 i 69 wobec 890 i 45;
  przy progu 0,85: 874 i 61 wobec 866 i 39; przy progu 0,95: 640 i 18 wobec 613 i 10; przy progu 0,97: 301 i 5 wobec 276 i 4
  (powyżej 0,95 różnica zanika).
- Pewność od 0,90 do 0,95: po polsku 174 decyzje, średnia pewność 0,931, trafność 0,833; po angielsku 196,
  0,932 i 0,908.
- Makro-F1 PL−EN: −0,0226, przedział od −0,064 do +0,003 (2000 losowań). Przy 60 etykietach zamiast 59: 0,8127 i 0,8349.
- Intencje z najwyżej 11 przykładami w próbie (182 pary): trafność 0,863 po polsku i 0,918 po angielsku, pary
  rozbieżne 1 i 11; pozostałe intencje (818 par): 0,885 i 0,889.
- ECE przy 10 przedziałach: 0,035 po polsku i 0,030 po angielsku (kolejność odwrotna niż przy 15).

## Uzupełnienie: cała część testowa (pomiar zakończony 3 października 2026 około 14:00)

Po drugim przebiegu pilota reguła z protokołu wskazała całą część testową. Analiza główna obejmuje 1000 par wybranych przed
poznaniem wyników; pozostałe 1974 pary policzono potem jako uzupełnienie, bez jej zmiany. Miary są liczone tymi samymi
wzorami co w `przygotuj.py` i z tym samym ziarnem bootstrapu (`uzupelnienie.py`, wynik w `wyniki-uzupelnienie.json`); dla 1000 par
analizy głównej skrypt daje dokładnie liczby z `wyniki.json`.

| Miara | Nowe pary, PL | Nowe pary, EN | Cała część (2974), PL | Cała część (2974), EN |
|---|---|---|---|---|
| Trafność intencji | 0,886 | 0,905 | 0,884 | 0,901 |
| Trafność obszaru | 0,921 | 0,930 | 0,922 | 0,930 |
| Makro-F1 | 0,8795 | 0,8998 | 0,8560 | 0,8803 |
| ECE (15 przedziałów) | 0,0335 | 0,0296 | 0,0319 | 0,0325 |
| Wynik Briera | 0,1794 | 0,1557 | 0,1837 | 0,1585 |
| Średnia pewność | 0,9135 | 0,9177 | 0,9143 | 0,9160 |
| Tokeny wejścia (średnio) | 1325,85 | 1322,40 | 1325,78 | 1322,35 |

Makro-F1 na nowych parach obejmuje 58 intencji: `general_greet` występuje w części testowej raz, w próbie głównej.

- Różnica trafności PL−EN na nowych parach: −1,9 punktu, przedział od −2,9 do −1,0; tylko po polsku trafne 27, tylko
  po angielsku 65, test McNemara p < 0,001 (9,3·10⁻⁵). W całej części testowej: −1,7 punktu, przedział od −2,6 do −0,9;
  53 wobec 104, p < 0,001 (5,7·10⁻⁵); ta sama decyzja w 2777 parach na 2974. W analizie głównej różnica (−1,3) mieściła się
  w granicach błędu; na nowych parach i w całej części testowej już nie.
- Wynik Briera PL−EN na nowych parach: +0,0238, przedział od 0,011 do 0,037 (w analizie głównej +0,0279).

Sprawdzenie analiz po fakcie na nowych parach (1974). Wyniki tych analiz dla całej części testowej są też
w `wyniki-uzupelnienie.json`, ale obejmują również 1000 par, na których różnice zauważono, więc ich nie sprawdzają (przy progu 0,9
w całej części: 4,9% wobec 3,7%, przedział różnicy od 0,5 do 1,9; w paśmie 0,90–0,95 różnica trafności −4,2 punktu).

- Decyzje z pewnością od 0,9: po polsku 1602, z tego 71 błędnych (4,4%); po angielsku 1599 i 61 (3,8%). Różnica odsetka
  błędnych: +0,6 punktu, przedział od −0,2 do +1,4, czyli w granicach błędu (w analizie głównej +2,3, przedział od 1,2 do 3,5).
  Przy progu 0,8: 1766 i 123 wobec 1787 i 105; 0,85: 1708 i 98 wobec 1737 i 91; 0,95: 1216 i 25 wobec 1206 i 25;
  0,97: 617 i 10 wobec 584 i 10.
- Pewność od 0,90 do 0,95: po polsku 386 decyzji, trafnych 340 (0,881); po angielsku 393 i 357 (0,908). Różnica −2,8 punktu,
  przedział od −5,9 do +0,3, czyli w granicach błędu (w analizie głównej 0,833 wobec 0,908).
- Intencje rzadkie (najwyżej 11 przykładów w próbie głównej), 425 par: trafność 0,906 po polsku i 0,927 po angielsku,
  pary rozbieżne 7 i 16; pozostałe intencje (1549 par): 0,881 i 0,899. Inaczej niż w próbie głównej przewaga angielskiego
  nie skupia się na rzadkich intencjach.
- Rozkład wyniku Briera: błędnych decyzji 225 po polsku i 187 po angielsku, średnia pewność przy błędzie 0,735 wobec 0,758 (po polsku nie wyższa);
  z błędnych 0,1670 wobec 0,1420, z trafnych 0,0124 wobec 0,0137. Całą różnicę dają dodatkowe błędy; w analizie głównej
  około jednej trzeciej dawała wyższa pewność przy błędach (0,760 wobec 0,727).

Kolejność ustaleń analitycznych (zob. dziennik w protokole): progi pewności były w `uzupelnienie.py` przed pierwszym wynikiem nowych par;
pasmo 0,90–0,95 oraz podział na intencje rzadkie i częste dołączono po pierwszym przeliczeniu, a rozkład wyniku Briera
i przedział dla pasma po pierwszej rundzie recenzji. Przedziały dla wyniku Briera i dla pasma, tak jak w analizie głównej,
są analizą po fakcie.

## Jak odtworzyć wyniki

Wszystkie wyniki próby głównej i analiz po fakcie są w `wyniki.json`; `przygotuj.py` liczy je z opublikowanego `decyzje.jsonl`
(około minuty, bez pobierania MASSIVE). Liczby z pilota pochodzą z dziennika w protokole. Test w serwisie
(`src/lib/badanie-clef.test.ts`) przelicza z decyzji liczby cytowane w artykule: trafność intencji i obszaru, ECE, wynik Briera,
średnią pewność, decyzje przy progu 0,9 i w paśmie 0,90–0,95, pary rozbieżne, tokeny i koszt, a także liczby z uzupełnienia
(z decyzji obu plików; przedziały ufności odczytuje z `wyniki-uzupelnienie.json`).

Wyniki uzupełnienia liczy `uzupelnienie.py` z `decyzje.jsonl` i `decyzje-uzupelnienie.jsonl` (około minuty).

Powtórzenie pomiaru od zera: rozpakuj MASSIVE 1.1 do katalogu `1.1/data`, uruchom
`python pomiar.py --ids ids-pelny.txt --out pelny.jsonl` (najpierw 1000 par próby głównej, potem pozostałe; samą próbę
główną daje `--ids ids-proba.txt`), następnie `python przygotuj.py` i `python uzupelnienie.py`. Jeśli `pelny.jsonl` istnieje, `przygotuj.py`
tworzy z niego `decyzje.jsonl`, a `uzupelnienie.py` plik `decyzje-uzupelnienie.jsonl`; jeśli `pelny.jsonl` nie ma, oba skrypty zgłaszają jego brak
i liczą z opublikowanych decyzji. Surowy zapis autora
(`pelny.jsonl`, około 10 MB dla całej części testowej, ze wszystkimi prawdopodobieństwami) nie został opublikowany; `analiza.py` pracuje na tym formacie.

Rozmiar pytania (`tokeny-schematu.json`, sam tokenizer, poza protokołem): schemat z 60 opcjami to 1315 tokenów,
z 18 opcjami 399, pytanie tak/nie 145. Samo zdanie: średnio 10,65 tokenu po polsku i 7,25 po angielsku przy 35,6
i 34,0 znaku.

## Pliki

- `decyzje.jsonl`: 2000 rekordów, jeden na decyzję: `id`, `jezyk`, `zdanie`, `etykieta`, `przewidziana`, `pewnosc`,
  `p_etykiety` (prawdopodobieństwo poprawnej etykiety), `suma_p2` (suma kwadratów prawdopodobieństw wszystkich
  60 opcji, do wyniku Briera), `tokeny_wejscia`, `sekundy_mac` (czas na decyzję w tym środowisku).
- `decyzje-uzupelnienie.jsonl`: 3948 rekordów dla 1974 par spoza próby głównej, w tym samym formacie.
- `wyniki.json`: podsumowanie analizy głównej. `wyniki-uzupelnienie.json`: uzupełnienie. `tokeny-schematu.json`: rozmiary pytań.
- `pomiar.py`, `analiza.py`, `przygotuj.py`, `uzupelnienie.py`, `tokeny_schematu.py`: kod. `ids-proba.txt`, `ids-pilot.txt`,
  `ids-pelny.txt`: próby.

## Ograniczenia

- Polskie zdania w MASSIVE to tłumaczenia krótkich poleceń do asystenta głosowego (średnio 36 znaków), a nie
  zgłoszenia klientów. Wynik nie przenosi się wprost na dłuższe i bardziej chaotyczne teksty; przy nich rośnie też
  koszt, bo wyliczenie kosztu zakłada zdania tej długości.
- Pytanie było po angielsku, a opcje opisano samymi angielskimi etykietami. Wariantu z polskimi nazwami kategorii nie zmierzono.
- Zmierzony jest tylko Clef-flash. Duży Clef (27 mld parametrów, około 55 GB w BF16) nie mieści się w pamięci tego
  komputera, a wersja skwantyzowana byłaby innym modelem. Nie sprawdzono, czy Workers AI zwraca te same decyzje
  (Cloudflare nie podaje precyzji, w jakiej udostępnia model), ani opóźnień API (brak konta).
- Mediana czasu na decyzję opisuje tylko to środowisko: 1,7 s w pilocie przebiegu 2 (w przebiegu 1, bez trybu
  `inference_mode`, 3,76 s) i 3,9 s w próbie głównej oraz w uzupełnieniu, gdy komputerowi brakowało wolnej pamięci (z użyciem swapu).
- Wyliczenie kosztu zakłada, że Workers AI liczy tokeny tak jak kod z repozytorium modelu.
- Analiza główna to 1000 par wybranych przed poznaniem wyników. Wynik dla pozostałych 1974 par dopisano 3 października 2026,
  w dniu publikacji artykułu, jako uzupełnienie. Wnioski z uzupełnienia opisuje artykuł: różnica w trafności wykracza poza
  granice błędu na nowych parach i w całej części testowej, a różnicy przy pewności od 0,9 nowe pary nie potwierdziły.
