# Strands Decider 2B na polskich i angielskich poleceniach (pomiar 11.10.2026)

Autor: Robert Marczyński, ekspertodsztucznejinteligencji.pl. Licencja plików własnych: CC BY 4.0.

## Pytanie
Jak trafnie otwarty model decyzyjny Strands Decider 2B (AWS, Strands Labs) rozpoznaje intencję w krótkich poleceniach po
polsku w porównaniu z tymi samymi poleceniami po angielsku, czy jego pewność jest skalibrowana i jak wypada wobec
Clef-flash od Cloudflare na tych samych parach i przy tym samym pytaniu. Plan analizy spisałem przed instalacją modelu
(protokol.md).

## Model i środowisko
- `StrandsAgents/strands-decider-2B-qwen3.5-v1-2610`, rewizja 216d1ccb46a9e9b036eb9187b248db98480f77d4 (model referencyjny
  od 9.10.2026), na bazie `Qwen/Qwen3.5-2B-Base` w rewizji b1485b2fa6dfa1287294f269f5fb618e03d52d7c. Licencja Apache 2.0.
- Kod: github.com/strands-labs/strands-decider, commit 0ac22a97e584f3ccf87cc9b8cc5fdbad57cdf534, wywołanie
  `load_engine(..., device="mps").ask(...)`, jedno zdanie na wywołanie.
- Apple M5 Pro, 48 GB, MPS. Python 3.11.15, torch 2.14.1, transformers 5.19.0, peft 0.21.2.
- Pilot: 100 par uruchomionych dwa razy, decyzje 200/200 identyczne, różnica prawdopodobieństw 0.

## Dane i pytanie do modelu
- MASSIVE 1.1 (Amazon, CC BY 4.0), część testowa, pl-PL i en-US łączone po `id`. Analiza główna: te same 1000 par,
  które wylosowałem 2.10.2026 do pomiaru Clefa (ziarno 20261002). Uzupełnienie: pozostałe 1974 pary części testowej.
- `state`: samo zdanie. Pytanie `choice`: "Which intent does the user's request express?", 60 opcji, identyfikator =
  etykieta MASSIVE, opis = etykieta z podkreślnikami zamienionymi na spacje. Ten sam schemat co w pomiarze Clefa.
- Pytanie dodatkowe, osobne wywołanie: "Which area does the user's request concern?", 18 opcji = scenariusze MASSIVE.

## Miary
Trafność top-1, trafność obszaru z przewidzianej intencji, makro-F1, ECE (15 przedziałów, na surowym prawdopodobieństwie
wybranej opcji), wieloklasowy wynik Briera (oba liczone na prawdopodobieństwach, które model zwraca już po kalibracji temperaturą; „surowe” znaczy tu: nie pole confidence), sparowany bootstrap różnicy (10 000 losowań, ziarno 20261002) i dokładny test
McNemara. Porównanie z Clef-flash na decyzjach opublikowanych w ../clef-pl-2026-10/decyzje.jsonl.

## Wynik analizy głównej (1000 par)
| Miara | Po polsku | Po angielsku |
| --- | --- | --- |
| Trafność intencji, 60 opcji | 64,4% | 70,4% |
| Trafność obszaru z przewidzianej intencji | 76,8% | 81,7% |
| Makro-F1 | 0,625 | 0,676 |
| ECE | 0,076 | 0,068 |
| Wynik Briera | 0,507 | 0,415 |
| Decyzje z pewnością od 0,9 (błędne), analiza po fakcie | 323 (36) | 421 (43) |
| Tokeny wejścia na decyzję, średnio | 680,65 | 677,25 |
| Mediana czasu na Macu | 0,239 s | 0,238 s |
| Clef-flash, trafność intencji na tych samych parach | 88,1% | 89,4% |
| Trafność przy pytaniu o 18 obszarów | 59,3% | 63,7% |

Różnica PL−EN: −6,0 punktu procentowego, 95-procentowy przedział od −8,4 do −3,5; tylko po polsku trafnych 49 par, tylko
po angielsku 109, test McNemara p < 0,001. Decider minus Clef-flash: −23,7 punktu po polsku (przedział od −26,6 do −20,8)
i −19,0 po angielsku (od −21,7 do −16,2).

## Uzupełnienie i cała część testowa
Pozostałe 1974 pary części testowej (3948 decyzji, bez błędów): PL 63,8%, EN 70,4%, różnica −6,5 punktu (od −8,2 do −4,9).
Cała część testowa, 2974 pary: PL 64,0%, EN 70,4%, różnica −6,4 punktu (od −7,7 do −5,0), McNemar p < 0,001. Clef-flash na
tej samej części (pomiar 2–3.10.2026): 88,4% i 90,1%.

## Ograniczenia
- Twórcy wymieniają tylko angielską wersję MASSIVE: wyłączyli ją z treningu, ale użyli jej do kalibracji i ewaluacji modelu
  (data/sources.md). Może to sprzyjać kalibracji po angielsku; polskiej wersji ten opis nie wymienia.
- W treningu duże zestawy etykiet przycinano do najwyżej 24 opcji. Pytanie z 60 opcjami wychodzi poza ten zakres.
- Opisy opcji są mechaniczne (etykiety MASSIVE), bez opisów pisanych przez człowieka. Przy pytaniu o 18 obszarów
  najczęstsze pomyłki dotyczą etykiet niejednoznacznych (qa → general, play → music), więc ten wynik mierzy też jakość nazw.
- Polskie zdania w MASSIVE to tłumaczenia krótkich poleceń do asystenta głosowego, średnio około 36 znaków.
- Czas dotyczy jednego Maca; Clef-flash liczył się 2–3.10.2026 przy innym obciążeniu komputera, więc czasów obu modeli
  nie porównuję jako wyniku.

## Analizy po fakcie (spoza protokołu)
Wariant z 24 opcjami (plan zapisany w protokole przed uruchomieniem, po analizie głównej): PL 76,0%, EN 82,9%, różnica
−6,9 punktu (od −9,1 do −4,8); względem 60 opcji +11,6 i +12,5 punktu; ECE 0,051 i 0,035. Plik decyzje-24-opcje.jsonl. Pole `confidence` od 0,9 przy 24 opcjach: trafnych 94,7% po polsku (531 decyzji) i 95,6% po angielsku (616). Rozkład z pytania o 60 opcji zawężony do tych samych 24 opcji (najbardziej prawdopodobna z nich): 75,3% i 80,8%; pytanie z 24 opcjami daje więcej o 0,7 punktu po polsku (od −0,7 do 2,1, McNemar p = 0,41) i o 2,1 punktu po angielsku (od 0,8 do 3,4, p = 0,002). Ten rachunek wymaga pełnych rozkładów prawdopodobieństw z surowego zapisu, których nie ma w opublikowanych plikach decyzji; jego wynik jest w wyniki.json (wariant_24_opcje.zawezony_rozklad_60).
Rozbicie względem 60 opcji (zestaw 24 opcji odtworzony jak w pomiar.py): z 356 polskich pomyłek przy 60 opcjach w 211
błędnie wybranej intencji nie było wśród 24 opcji (117 trafnych przy 24), w 145 była (15 trafnych); 16 decyzji trafnych
przy 60 opcjach było błędnych przy 24. Po angielsku: 187 (119), 109 (12) i 6.
Pytanie o 18 obszarów: ECE 0,178 i 0,161, średnia pewność 0,759 i 0,789 przy trafności 0,593 i 0,637. Pytanie o intencję z 60 opcjami, próg 0,9 na prawdopodobieństwie wybranej opcji: 36 błędnych z 323 (PL) i 43 z 421 (EN).
Trafność przy polu `confidence`, które zwraca sam model (przeskalowana pewność): od 0,9 trafnych 89,0% po polsku (318
decyzji) i 90,0% po angielsku (419); od 0,8: 84,1% (508) i 86,9% (594). Najczęstsze pomyłki są w wyniki.json.

## Pliki
- protokol.md: plan analizy z dziennikiem zmian.
- decyzje.jsonl, decyzje-scenariusz.jsonl, decyzje-uzupelnienie.jsonl, decyzje-24-opcje.jsonl: jeden rekord na decyzję.
- wyniki.json: miary z przygotuj.py.
- pomiar.py, przygotuj.py: skrypty; ids-*.txt: identyfikatory par.
