
Qwen4-Exp QSA trafia na Ascend firmy Huawei: kulisy opcjonalnego PR-a prefill CANN w SGLang
- typesafeNOWOŚĆTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 za 1 mln tokenów · 348 tok/s
- OpenAINOWOŚĆOpenAI: GPT-6 Luna2026-09-2237Inteligencja
- OpenAINOWOŚĆOpenAI: GPT-6 Sol2026-09-2248Inteligencja
- AnthropicNOWOŚĆAnthropic: Claude Opus 5.52026-09-2258Inteligencja
- xAINOWOŚĆGrok 4.72026-09-2146Inteligencja
- OrcaNOWOŚĆOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $5.00 za 1 mln tokenów · 105 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 za 1 mln tokenów · 987 tok/s
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-09-1040Inteligencja
- OpenAIOpenAI: GPT-6 Astra2026-09-0453Inteligencja77Kod
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241Inteligencja76Kod
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245Inteligencja76Kod
- AnthropicAnthropic: Claude Fable 5.12026-09-0153Inteligencja82Kod
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 za 1 mln tokenów · 49 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 za 1 mln tokenów · 106 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Inteligencja72Kod
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 za 1 mln tokenów · 219 tok/s
- z-aiZ.ai: GLM 5.32026-08-1845Inteligencja75Kod
- obsidianQwen3.8 27B2026-08-1534Inteligencja68Kod
- DeepSeekDeepSeek: DeepSeek V4 Pro 08132026-08-1236Inteligencja69Kod
- xAISpaceXAI: Grok 4.62026-08-1244Inteligencja77Kod
W dniu 2026-09-30 współtwórca otworzył pull request #41855 w SGLang, zatytułowany „[NPU] Dodaj opcjonalną rzadką uwagę CANN dla Qwen4-Exp QSA prefill”, a ciekawa część to nie arytmetyka. To sprzęt. Architektura Qwen4Exp ma teraz ręcznie napisaną ścieżkę rzadkiej uwagi dla akceleratora Huawei Ascend 910C, ukrytą za flagą domyślnie wyłączoną, w szkicowym pull requeście, który nie został scalony — podczas gdy model, do którego należy ta nazwa architektury, Qwen4-Exp, nigdy nie został opublikowany w żadnej formie. Jedynym checkpointem, który przenosi tę architekturę w otwartych wagach, pozostaje Qwen3.8-Flash-Next, 125-miliardowa wersja zapoznawcza mixture-of-experts, którą dostawca wydał na Hugging Face 2026-08-24 i której karta faktycznie deklaruje architekturę jako qwen4_exp. Sam Qwen 4 — poziomy Max, Flash, Plus i 27B, które dostawca wymienił na swojej konferencji Apsara 2026-09-22 — wciąż nie ma wag, identyfikatora, ceny ani daty. To więc tekst o tym, co wiadomo do tej pory, o artefakcie inżynieryjnym, a nie o premierze: kolejny stos serwujący dostawcy po cichu uznaje, że nieopublikowana architektura jest warta wczesnego wsparcia.
Co tak naprawdę dodaje pull request
Zmiana jest celowo niewielka i celowo wąska. Pięć plików, jeden commit, +355 linii względem gałęzi głównej w commicie b87a241, z etykietą SGLang npu. Autor, w1ida, od razu podaje zamiar: opcjonalna ścieżka CANN main-attention dla Qwen4-Exp QSA eager prefill, zbudowana na torch_npu.npu_sparse_flash_attention, przy czym indekser, wybór Top-K, budżet tokenów i zawartość pamięci podręcznej KV pozostają dokładnie takie, jak były.
Sztuczka, którą stosuje, aby to osiągnąć, zasługuje na jeden akapit, ponieważ wyjaśnia, dlaczego jest to adapter układu, a nie nowy kernel uwagi. W przypadku już obróconych Q i K ścieżka pakuje pamięć podręczną jako C = [K, V] a zapytanie jako Q' = [Q, 0]. Iloczyn Q' @ C.T jest wtedy równy Q @ K.T, a ponieważ dopełnione zapytanie nic nie wnosi, softmax(scale * Q' @ C.T) @ C zwraca [P @ K, P @ V] w stosie — więc połowę V można wyciąć. Mówiąc słowami samego autora, jest to „osadzenie układu uwagi, a nie zmiana uwagi modelu ani kompresja KV niskiego rzędu”. Każda głowa KV staje się niezależną partią w natywnym układzie MLA, oryginalna skala D256 zostaje zachowana, a pomocnicze RoPE jest zerowane.
Szczegóły operacyjne są równie ważne jak matematyka:
• Włączenie — SGLANG_NPU_QSA_NATIVE_PREFILL=1, domyślnie wyłączone. Tylko zwykły ForwardMode.EXTEND jest objęty tą opcją; dekodowanie, tryby spekulatywne, mieszany forward i przechwytywanie grafu pozostają na istniejących ścieżkach, a przechwytywanie grafu całkowicie omija adapter.
• Sprzęt i typ danych — BF16 z wymiarem głowy 256, Ascend 910C (Ascend910_93*), przetestowano z CANN 9.0 i torch-npu 2.10. Każdy nieobsługiwany typ danych lub kształt w trybie cichym przechodzi do ścieżki referencyjnej.
• Kształty głów — obsługiwane lokalne (głowy Q, głowy KV) pary to (16,2), (24,2), (12,1), (6,1) i (3,1). CANN kategorycznie odrzuca stosunek zapytań do KV równy 12 — jego tiler akceptuje tylko potęgi dwójki — więc głowy są dopełniane 12→16, 6→8 lub 3→4, a dodane wyjścia są odrzucane. To najwyraźniejszy sygnał w całym PR, że sprzęt nie został zaprojektowany z myślą o proporcjach głów dla rzadkiej uwagi, a adapter absorbuje tę niezgodność, a nie to, że model zmienia dla niej kształt.
• Ograniczenia rozmiaru — pakowany jest wyłącznie wskazany fizyczny zakres pamięci podręcznej, ograniczony do 262 144 tokenów, co autor wylicza na co najwyżej 512 MiB dla spakowanego tensora K/V w formacie BF16 przy dwóch głowicach KV. Wewnętrzne -1 dopełnienie jest wykrywane i kierowane do mechanizmu zapasowego, ponieważ CANN wymaga ciągłych prawidłowych slotów; w pełni zamaskowane wiersze zachowują istniejącą konwencję zerowego wyjścia.
• Dlaczego tylko prefill — sprawdzenie zakresu i układu kopiuje dwa skalary do hosta, a tymczasowe kopie oraz natywny obszar roboczy kosztują pamięć. Ta synchronizacja jest powodem, dla którego ścieżka jest ograniczona do prefillu w trybie eager i wyłączona podczas przechwytywania.
![A capture of the SGLang GitHub pull request #41855, titled '[NPU] Add opt-in CANN sparse attention for Qwen4-Exp QSA prefill', showing an Open state with no merged marker, the line 'w1ida wants to merge 1 commit into main from npu/qsa-cann-prefill', the npu label, and the start of the Motivation section describing the Q' = [Q, 0] and C = [K, V] packing and stating that the approach avoids modifying the indexer, Top-K selection, or KV-cache layout.](https://cms.orcarouter.ai/api/media/file/2-1459.png)
Dziewięć testów, które przeszły, i wynik szybkości, który nie pochodził z tej gałęzi.
Dowody poprawności są konkretne i powtarzalne, co jest czymś więcej, niż oferuje większość PR-ów dotyczących jądra. Autor podaje, że 9 testów przechodzi w ciągu 40,772 sekundy na Ascend 910C (Ascend910_9362) z CANN 9.0 i torch-npu 2.10.0, nie wymagając checkpointu: niezerowe losowe Q/K/V w formacie BF16 względem referencji FP32 na CPU obliczonej z tych samych danych wejściowych BF16, nieuporządkowane fizyczne sloty o szerokościach 1/63/64/65/2051, domyślne i jawne skale, w pełni zamaskowane wiersze, wiersze zerowe, zerowa szerokość wyboru, nieciągłe tensory, reszty ogona przyczynowego o współczynniku kompresji 4 od 0 do 3, fizyczne mapowanie dwóch żądań ze wspólnym prefiksem, ponowne użycie zawartości pamięci podręcznej oraz lokalne kształty głów Flash-Next przy 1 i 257 wierszach zapytań.
Głównym przypadkiem jest długi prefill: 7810 tokenów zapytań wobec 65 536-tokenowego cache'a z 2051 wybranymi slotami na zapytanie, wszystkie wyniki są skończone, a osiem próbkowanych wierszy porównano z referencją FP32. Zaobserwowany względny błąd L2 osiągnął 0,209% w przypadkach małych kształtów głowic oraz 0,231% w próbkowanych wierszach długiego prefillu, wobec progów testowych wynoszących atol=0.025, rtol=0.025 i względny L2 poniżej 0,008, przy czym puste wiersze muszą być dokładnie zerowe. Szczytowa przydzielona pamięć NPU dla tego przebiegu jest podawana jako 1042,7 MiB — a autor określa ją jako metrykę alokatora PyTorch, a nie HBM karty i nie pamięć całego modelu, co jest dokładnie właściwym zastrzeżeniem, jakie należy dołączyć.
Jest jeszcze liczba, która będzie cytowana, a nie powinna. Treść PR zawiera tabelę szybkości pokazującą istniejącą lokalną ścieżkę uwagi na poziomie 2 270,79 nowych tokenów na sekundę oraz natywną upakowaną główną uwagę na 3 890,06 — wzrost 1,713× / +71,3%, przy średnim czasem do pierwszego tokenu spadającym z 3,109 s do 1,812 s. Autor wyraźnie zaznacza, że są to historyczne pomiary prototypu wykonane 2026-09-29 na dostosowanym Whittle-Next-26B-A3Bcheckpoincie, uruchomionym przy TP1 z wagami W8A8 i uwagą BF16 na 910C pod CANN 9.0, z użyciem oficjalnego sglang.bench_servingharnessu przy współbieżności 1, z sześcioma żądaniami, po jednym tokenie wyjściowym każde, oraz 36 096 tokenów buforowanego prefiksu wyłączonych z przepustowości nowych tokenów. niestanowią benchmarku gałęzi upstream w tym PR, oryginalne artefakty JSON z serwowania nie znajdują się w checkoucie, a późniejsze lokalne wyniki rzędu 5 000 tokenów na sekundę wykorzystywały dodatkową pracę nad natywnym indekserem i block4, która wyraźnie nie jest przypisywana tej zmianie. Autor zauważa również, że wagi indeksera dostosowanego checkpointu są nieaktywne, a jego budżet różni się od oryginalnego, więc nic z tego nie stanowi dowodu na poprawność indeksera ani na jakość generacji przy pełnym budżecie.
Jedno doprecyzowanie nazewnictwa, bo zmyli każdego, kto szuka checkpointu: model benchmarkowy to własny, zaadaptowany artefakt współtwórcy. Osobno „Whittle-Next” to również nazwa publicznej serii fine-tuningów MoE wywodzących się z Qwen3.8, publikowanej przez konto Hugging Face osoby trzeciej, w tym wariantu 26B-A3B przesłanego we wrześniu. Nie są to model Qwen4Exp, którego dotyczy ten PR, i nie należy ich odczytywać jako konfiguracji benchmarku stojącej za tą wartością 1,713×.
Dwa dalsze zastrzeżenia pochodzą od autora, a nie ode mnie. Pełna integracja serwowania, rozproszona równoległość tensorowa oraz kompletny model Qwen3.8-Flash-Next nie zostały zweryfikowane na tej gałęzi; współtwórca mówi, że celowe jest utrzymywanie go jako szkicu, dopóki trwa dyskusja nad integracją i kwestią zależności, a nawet pyta w treści PR, czy adapter należy do SGLang, czy do osobnego sgl-kernel-npu repozytorium. CI również nie jest czyste — blok stanu w treści PR pokazuje błędy w PR Test (Base), PR Test (Extra) i w uruchomieniu AMD ROCm 10. Opisana powyżej poprawność jest na poziomie operatora; nic w PR nie twierdzi o wyniku dokładności end-to-end ani przepustowości na zintegrowanym stosie.
Dlaczego QSA jest niezręczną częścią — w liczbach
Qwen Sparse Attention nie jest konwencjonalną warstwą uwagi, a opublikowana konfiguracja pokazuje, dlaczego dostawca akceleratorów musi napisać dla niej dedykowaną ścieżkę. Z konfiguracji Qwen3.8-Flash-Next: 48 warstw ułożonych jako dwanaście powtórzeń trzech bloków Gated DeltaNet, po których następuje jeden blok pełnej uwagi, full_attention_interval 4, rozmiar ukryty 2 560, wymiar głowicy uwagi 256, 24 głowice zapytań wobec 2 głowic KV, wymiar RoPE 64. Indeksator, który czyni uwagę rzadką, to struktura multi-query z 4 głowicami zapytań współdzielącymi 1 głowicę klucza, wymiar głowicy 128, współczynnik kompresji 4 i budżet 2 048 wybranych mikrobloków na zapytanie.
Ten budżet jest tym, co PR utrzymuje na stałym poziomie. Rozmiar bloku sparse pozostaje 1, tryb sparse pozostaje 0, tryb attention pozostaje 2, a interfejs wybranych tokenów pozostaje nietknięty; natywny indekser i optymalizacje block4 są wyraźnie poza zakresem. To jest więc adapter przykręcony pod istniejącym mechanizmem selekcji, a nie reimplementacja QSA — co również wyjaśnia, dlaczego autor może wiarygodnie twierdzić, że zawartość KV-cache pozostaje niezmieniona.

Karta modelu wprost przedstawia zamysł projektowy: zamiast wybierać pojedyncze tokeny, QSA działa na poziomie mikro-bloków, aby skrócić opóźnienie długiego kontekstu, a ta mikro-blokowa granularność — wraz z towarzyszącym jej replikowanym stanem selektora — właśnie nie mapuje się czysto na ogólny kernel paged-attention na krzemie żadnego z dostawców.
Gdzie to się wpisuje w rozbudowę warstwy serwowania Qwen4Exp
Widziany w izolacji, jeden PR w wersji roboczej dotyczący jednego akceleratora to ciekawostka. Widziany na tle reszty września, jest czwartą lub piątą deską platformy, którą składa się publicznie, zanim powstanie rodzina, której ma służyć:
• Architektura w otwartych wagach — Qwen3.8-Flash-Next, 2026-08-24, MoE o 125 mld parametrów z 6 mld aktywowanych, tabela osadzeń n-gram o 51 miliardach parametrów i głowica MTP o 4 mld, niosąca model_type: qwen4_exp i architektury Qwen4ExpForConditionalGeneration.
• Strona vLLM — #53909, PR „qwen4 fuse op” dodający jądra HyperConnection, QSA i PLE, wciąż otwarty i niezmergowany od 2026-08-26; #59279, który dodaje równoległość kontekstu dekodowania do tej samej ścieżki QSA, szkic otwarty 2026-09-29; oraz prace nad offloadem PLE, które trafiły do kodu w ciągu września.
• Strona SGLang — #38642 dla przechwytywania stanów ukrytych DFlash, #39548 dla odciążenia PLE Qwen4-Exp na CPU na Ascend, #40235 dodający host staging dla tabeli PLE opartej na plikach, a teraz #41855 dla ścieżki uwagi Ascend.
• Wątek aktywacji NPU — sglang #37570, dodający Qwen3.8-Flash-Next do SGLang na NPU z odtwarzaniem grafu, MTP i jądrami Triton (otwarty 2026-09-02, nadal otwarty, +2,590 linii w 20 plikach), oraz sgl-kernel-npu #807 dla towarzyszących jąder Triton (otwarty 2026-09-17, +4,643 linii). Oba pochodzą od tego samego współtwórcy. #41855 to warstwa uwagi, która znajduje się w ramach tego większego przedsięwzięcia aktywacji.
Dwie obserwacje, na podstawie których czytelnik może coś zrobić. Po pierwsze, cała historia Ascend Qwen4Exp opiera się na bardzo małej liczbie współtwórców — PR-y umożliwiające działanie i repozytorium kerneli mają wspólnego autora, a adapter uwagi ma innego. Ta koncentracja to rzetelne oszacowanie, jak daleko serwowanie Ascend Qwen4Exp znajduje się od bycia wspieraną ścieżką produktową, a nie eksperymentem. Po drugie, wąskie gardło na poziomie kerneli nie jest specyficzne dla dostawcy: dwa zgłoszenia w SGLang z 28 sierpnia 2026 dokumentują dekodowanie Qwen4Exp na NVIDIA DGX Spark, gdzie dominuje czas kerneli QSA, PLE i Gated DeltaNet, i gdzie zmierzono, że pamięć podręczna KV w NVFP4 pogarsza dekodowanie o około 29% względem fp8_e4m3. Warstwy uwagi i osadzeń w tej architekturze są trudną częścią wszędzie.
Czego to nie oznacza
To nie oznacza, że Qwen 4 został wydany ani że jest blisko wydania. Rodzina Qwen 4, którą Alibaba nazwała 2026-09-22 — Max, Flash, Plus i poziom 27B — pozostaje roadmapą bez karty modelu, wag, identyfikatora API, okna kontekstowego, licencji i ceny. Adapter frameworka, który celuje w wewnętrzną nazwę architektury, jest krokiem ku temu, by pewnego dnia dobrze obsługiwać tę rodzinę; nie jest krokiem ku temu, by ta rodzina istniała.
To nie znaczy, że możesz to uruchomić już dziś. PR jest szkicem z niedziałającym CI i bez daty scalenia. Nawet po scaleniu ta ścieżka wymaga Ascend 910C, BF16, CANN 9.0 z torch-npu 2.10 oraz jednego z pięciu konkretnych kształtów lokalnej głowicy, a do tego jest opcjonalna — co oznacza, że wdrożenie musi ją wybrać. Autor odmówił również potwierdzenia walidacji na poziomie serwera, czyli tej części, która faktycznie powiedziałaby, czy wytrzymuje to przy prawdziwym batchowaniu.
A to nie oznacza, że Qwen3.8-Flash-Next to obsługiwany produkt na Ascend ani gdziekolwiek indziej w wydanej kompilacji silnika. Ścieżki Qwen4Exp w obu głównych otwartych środowiskach uruchomieniowych to niezmergowane pull requesty. Nie ma wydanej wersji SGLang ani vLLM, którą można zainstalować, aby natywnie obsługiwała tę architekturę — wygoda w stylu FastAPI, jaką daje hostowany endpoint, to coś innego niż jądro, które możesz uruchomić samodzielnie, a luka między nimi jest dokładnie tym, do czego służą takie PR-y jak ten.
Na co tak naprawdę możesz zadzwonić, czekając
Jeśli powodem, dla którego interesuje Cię Qwen4Exp, jest chęć przetestowania zachowania architektury w długim kontekście, a nie jej wewnętrznych mechanizmów jądra, modelem, po który warto sięgnąć, jest warstwa, którą Alibaba faktycznie udostępnia. Qwen3.8-Flash — linia produkcyjna zbudowana na Qwen3.8-Flash-Next, z oficjalnymi wbudowanymi narzędziami i kontekstem 1 000 000 tokenów — jest dostępna na OrcaRouter jako qwen/qwen3.8-flash: wejście tekstowe, obrazowe i wideo, maksymalne wyjście 131 072 tokenów, 0,15 USD za milion tokenów wejściowych i 0,47 USD za milion tokenów wyjściowych, a odczyty z pamięci podręcznej po 0,0184 USD. To ceny katalogowe dostawcy przekazywane dalej z 0% marży po naszej stronie, więc zmiana ceny lub limitu u dostawcy dociera do Ciebie tego samego dnia, w którym zostaje ogłoszona. W ciągu ostatnich siedmiu dni karta na żywo pokazuje opóźnienie pierwszego tokenu na poziomie p50 wynoszące 4 416 ms, około 106 tokenów wyjściowych na sekundę i 2,68% wskaźnika błędów — profil warstwy tekstowej o dużym natężeniu ruchu, a nie laboratoryjnego podglądu.
Dwa uczciwe zastrzeżenia — i są to te same dwa, które zawierają pokrewne opracowania dotyczące tej architektury. Sam Qwen3.8-Flash-Next — podglądowy checkpoint FP8, czyli to, czego potrzebowałbyś, by odtworzyć lokalnie którykolwiek z tych pomiarów kerneli — nie znajduje się w naszym katalogu; udostępniana warstwa Flash to produkcyjne wdrożenie zbudowane na jego podstawie, a nie surowy artefakt podglądowy. A żadna z opisanych powyżej prac nad Ascend ani DCP nie istnieje w niczym, co możesz wywołać, ponieważ nic z tego nie zostało scalone. To, co udostępniana warstwa jednak daje, to tani sposób, by sprawdzić, czy twoje obciążenie jest dopasowane do problemu, który rozwiązują te kernele — długie, obfitujące w prefiksy prompty agentowe względem bardzo długiego kontekstu. Jeśli tak, to przepustowość i zachowanie pamięci podręcznej, które tam zaobserwujesz, to to samo zachowanie, którego ochronie będzie podporządkowane dostrajanie stosu obsługi Qwen 4.
Istnieje też argument infrastrukturalny za tym, by nie czekać na rodzinę, która nie ma daty. Niezależnie od tego, który poziom ostatecznie wygra w ofercie Qwen 4, koszt przełączenia jest kwestią routingu, a nie projektem integracyjnym, a jedno API dla ponad 200 modeli to sposób, by utrzymać tę opcję otwartą bez drugiej umowy czy zmiany kodu, gdy wagi się pojawią. Failover ma tu znaczenie z tego samego powodu w konkretny sposób: jeśli chcesz budować na niesprawdzonym poziomie, chcesz, aby żądanie przełączyło się na coś stabilnego, a nie zawiodło, gdy ścieżka, na którą postawiłeś, ma złą minutę.

Trzy pytania warte bezpośredniej odpowiedzi
Czy SGLang #41855 oznacza, że Qwen 4 już wyszedł, czy że jest dostępny w wersji zapoznawczej?
Nie, w obu kwestiach. Pull request dotyczy architektury Qwen4Exp w postaci zaimplementowanej w Qwen3.8-Flash-Nash, którą Alibaba wydała 24 sierpnia 2026 r. Nie dotyka wag Qwen 4, a żaden poziom Qwen 4 nie ma wag, których można by dotknąć. Sygnał, który należy tu odczytać, dotyczy przepustowości obsługi architektury w wersji zapowiedzi, a nie dostępności całej rodziny.
Jeśli w karcie modelu jest napisane qwen4_exp, czy to Qwen 4?
Nie — i to jest pułapka nazewnicza w całej tej historii. qwen4_exp to wewnętrzny identyfikator architektury i to właśnie jego znajdziesz w config.json dla modelu Qwen3.8-Flash-Next i jego odpowiednika FP8. „Eksperymentalna architektura” to kluczowe określenie: wagi są opublikowane, architektura jest prawdziwa, a model jest podglądem tego, na czym ma być zbudowana rodzina Qwen 4. Wyszukanie tego identyfikatora i znalezienie PR-a SGLang lub vLLM z Qwen4Exp w tytule mówi o pracach nad silnikiem, a nie o wydaniu.
Czy to historia Ascend kontra NVIDIA?
Niezupełnie. Ta sama ścieżka uwagi wymagała także dedykowanego adaptera po stronie NVIDIA — równoległości kontekstu dekodowania dla QSA w vLLM oraz natywnego rzadkiego jądra prefill dla Hoppera — a problemy z DGX Spark pokazują, że czas działania jąder QSA, PLE i Gated DeltaNet również dominuje tam podczas dekodowania. Indekser mikrobloków QSA i jego replikowany stan selektora po prostu nie są tym, czego zakładają ogólne jądra uwagi stronicowanej. Wkład Ascenda w ten wzorzec to ostrzejsze ograniczenie: tiler proporcji głów, który przyjmuje wyłącznie potęgi dwójki, co wymusza dopełnianie, które adapter musi ukrywać.
Rzecz, na którą warto zwrócić uwagę
Nie o to, czy to zostanie scalone. Adapter jest uczciwy co do tego, że jest adapterem, testy poprawności można odtworzyć bez punktu kontrolnego, a autor zaznaczył kwestię integracji, zamiast udawać, że jest rozstrzygnięta. Na co warto patrzeć, to co się dzieje po połączeniu linii włączania NPU z tą ścieżką uwagi — czy zintegrowana gałąź doczeka się uruchomienia end-to-end, którego żadna z nich nie miała, na prawdziwym batchowaniu z pełnym modelem, a nie na lokalnych tensorach o kształcie głów. To liczba 1,713× będzie krążyć i to ona została obliczona na innej kompilacji, na zaadaptowanym punkcie kontrolnym, z nieaktywnym indekserem. Zmierzona liczba na gotowym stosie byłaby warta znacznie więcej niż liczba historyczna.
Do tego czasu uczciwym podsumowaniem jest to, którego trzyma się sam PR: arytmetyka się zgadza, flaga jest domyślnie wyłączona, CI jest czerwone, a model w tytule wciąż nie istnieje.
