Kontakt

Tylko dane osobowe.
Na czarno.

Noir to mały LLM wyspecjalizowany w maskowaniu: dostaje dokument i polecenie, co ukryć, a zwraca listę pasujących fragmentów. Dokumenty, które mają wyjść na zewnątrz, przetworzysz wcześniej na samym firmowym CPU. Gdy przewijasz stronę, przez dokument przesuwa się linia światła.

JA担当の山田太郎です。お電話は03-0000-1234までお願いします。

ENPlease call Emily Carter at (555) 010-4477 before March 3.

DEFrau Anna Becker wohnt in der Lindenstraße 12, 10115 Berlin.

HRIvan Horvat (42 godine) javio je da je na bolovanju.

Rozmiar0.8B・0.67GB
Języki4 językijapoński, angielski, niemiecki, chorwacki
Rodzaje danych48 rodzajów

* Przykładowe teksty, nazwiska i numery są fikcyjne. Animacja powyżej to odtwarzany pokaz.

Polecenia wydajesz
zwykłymi słowami.

„Dane osobowe”, „dane kontaktowe”, „ale bez wieku”. Polecenie formułujesz tak, jak mówisz na co dzień, a w tym samym dokumencie znikają inne miejsca. Klikaj przyciski albo po prostu patrz.

Temat: Wzorzec Handel – potwierdzenie warunków umowy

Wzorzec Handel, Dział Administracji, Sz. P. Jan Przykładowy

Dzień dobry, z tej strony Anna Wzorcowa z firmy Kocie Dane sp. z o.o.

W piątek 20 listopada chciałabym omówić przedłużenie umowy. Opłata miesięczna pozostaje bez zmian: 4800 zł.

Słyszałam, że prowadzący sprawę pan Adam Zmyślony (42 lata) jest dziś nieobecny z powodu bólu pleców.

Proszę o kontakt pod numerem 22 000 12 34 albo na adres [email protected].

Adres do wysyłki: ul. Przykładowa 1/2, 5. piętro, 00-000 Wzorowo

* To pole jest pokazem działania i odtwarza ustalone odpowiedzi (prawdziwy model tu nie pracuje). Wszystkie przykładowe teksty są fikcyjne.

Rzadziej niż 120B
maskuje za dużo.

Na 100 dokumentach japońskich i 100 angielskich porównaliśmy Noir z gpt-oss-120b (117 mld parametrów), wydając obu to samo polecenie. Kartki u góry pokazują przykład każdego rodzaju błędu. Słupki poniżej to odsetek takich błędów: im krótszy słupek, tym lepszy wynik.

* Pomiar we własnym teście (listopad 2026, Q4_K_M, razem z ogólnymi regułami dla e-maili, telefonów, adresów URL i dat). Szczegółowe warunki na końcu strony.

Im mniej ścisłe polecenie,
tym większa różnica.

Liczbę pominięć porównujemy na wadze. Opada ta szala, na której pominięć jest więcej. Gdy polecenie wyraźnie wylicza rodzaje danych, modele idą łeb w łeb, ale przy ogólnym poleceniu w rodzaju „dane osobowe” albo z dopiskiem „ale bez…” różnica rośnie.

Noir0%

gpt-oss-120b0%

* Łącznie japoński i angielski. Odsetek pominięć (%, 1 kratka = 1%). Podział poleceń: lista rodzajów – 69 dokumentów, ogólne polecenie – 104, polecenie z wyjątkiem – 27.

4 języki,
wynik dla każdego.

Dla każdego języka mamy osobną wersję Noir (japoński i angielski mają wspólną). Na żółto zaznaczono liczby lepsze niż u gpt-oss-120b.

  • W chorwackim i niemieckim pominięć jest prawie tyle samo co u gpt-oss-120b. Większość z nich to daty i godziny w zapisie europejskim, takie jak „02.11.2026” czy „14:12 Uhr”.
  • Według naszych szacunków po dodaniu dwóch reguł wychwytujących takie daty i godziny odsetek pominięć spadnie z 31 do 23% w chorwackim i z 25 do 15% w niemieckim, czyli poniżej wyniku gpt-oss-120b (24% i 19%). Planujemy włączyć je do produktu. w planach

W odpowiedzi
dostajesz JSON.

Noir zwraca listę znalezionych miejsc, pogrupowaną według tego, czego dotyczą. Ciągi znaków są dokładnie takie jak w dokumencie, więc można je od razu wyszukać w tekście i podmienić.

Przesyłkę kierujemy do pana Adama Zmyślonego.
Telefon pana Zmyślonego: 22 000 12 34,
e-mail: [email protected].
  • id: ta sama osoba albo rzecz trafia pod jeden numer („Adama Zmyślonego” i „Zmyślonego”).
  • type: nazwa jednej z 48 etykiet. Jest zwracana w języku promptu (po japońsku np. „人名”).
  • mentions: ciągi znaków dokładnie tak, jak zapisano je w dokumencie. Jeśli nic nie pasuje: [].
W poniższym dokumencie znajdź wszystko,
co pasuje do zakresu. … (skrót)
Wynik to wyłącznie tablica JSON: [{"id": "E1",
 "type": "...", "mentions": ["..."]}]
Zakres:
dane osobowe, ale bez wieku
Tryb: maskowanie (bez replacements)

Dokument:
(tutaj dokument)

Jeden dokument
w około 20 sekund.

Odtwarzamy cały przebieg na CPU laptopa (bez GPU): od przeczytania dokumentu o długości ok. 900 znaków do zwrócenia miejsc do zamaskowania. Odtwarzanie jest przyspieszone 5 razy, zegar pokazuje rzeczywiste sekundy.

0.0sodtwarzanie 5×

Czytanie dokumentuWypisywanie miejsc

Zamaskowane miejsca: 0 / 0

Polecenie
imię i nazwisko, numer telefonu, adres e-mail, adres
Czytanie
ok. 140 tokenów/s
Pisanie
ok. 24 tokeny/s
Sprzęt
Core i7-11800H, 8 wątków

  • Przy tej szybkości jeden komputer, pracując dokument po dokumencie, przetwarza około 170 tys. znaków na godzinę.
  • Na GPU, przy 16 dokumentach przetwarzanych jednocześnie, 100 dokumentów zajęło około 20 sekund (gpt-oss-120b: około 90 sekund). pomiar własny

* Dokument i maskowane miejsca to pokaz (na tej stronie nie działa żaden model). Czas wyliczamy z własnych pomiarów szybkości czytania i pisania. Różne określenia tej samej osoby są łączone i maskowane za jednym razem.

Tekst podajesz pocięty
po 1000 znaków.

Długi dokument tniemy na kawałki po około 1000 znaków i podajemy modelowi jeden po drugim. Długość zbliżona do tej z uczenia zmniejsza liczbę pominięć. Na koniec wyniki są łączone i uzupełniane regułami, które wychwytują stałe wzorce: e-maile, telefony, adresy URL i daty.

Uruchomienie (llama.cpp)

llama-server -m noir-ja-en-Q4_K_M.gguf \
  -c 16384 -t 8 -np 1 --jinja --port 8191

DostępnyPobierz wagi →

  • Tryb myślenia wyłącz (enable_thinking: false) i ustaw temperature 0.
  • Model wybierasz według języka: dla japońskiego i angielskiego ja-en, dla niemieckiego de-en, dla chorwackiego hr-en.
  • Na CPU (Core i7-11800H, 8 wątków) kawałek 1000 znaków zajmuje około 20 sekund. pomiar własny

Jeden dokument.
O czerni decyduje polecenie.

Na przykładowych dokumentach możesz wypróbować różne polecenia. Gdy zmienisz polecenie, w tym samym dokumencie znikną inne miejsca. Zobaczysz też prompt wysyłany do modelu i zwracany JSON, dokładnie w takiej postaci, w jakiej są.

1Wybierz dokument

2Wybierz polecenieuruchamia się od razu

Albo samodzielnie wybierz rodzaje danych

Prompt wysyłany do modelu

Zwracany JSON

[]

Jak mierzyliśmy
i kontakt.

  • Dokumenty: po 100 w językach japońskim, angielskim, niemieckim i chorwackim. To fikcyjne dokumenty napisane na potrzeby testu – e-maile, protokoły, notatki kadrowe, faktury, informacje medyczne i inne – z oznaczonymi wzorcowo miejscami, które należy zamaskować.
  • Polecenia: do każdego dokumentu jedno z trzech – „lista rodzajów”, „ogólne polecenie” albo „polecenie z wyjątkiem”. Ten sam prompt dostał gpt-oss-120b (reasoning effort medium).
  • Miary: pominięcia = odsetek wzorcowych miejsc, które zostały niezamaskowane; nadmiar = odsetek zamaskowanych miejsc, które nie musiały zniknąć; poza zakresem = odsetek zamaskowanych miejsc innego rodzaju, niż wskazano.
  • Termin: listopad 2026, Q4_K_M. Wyniki zweryfikujemy przed oficjalną publikacją.

Sprawdź na swoich dokumentach →

Uruchom Noir na własnym komputerze

Jeden plik zip z wagami modelu, przykładowym kodem do inferencji i krótką instrukcją. Rozpakuj, postępuj według README i gotowe.

Pobierz zipcatsai-noir.zip · 672 MBHugging Face: catsaiagency/Noir-0.8B-ja-en-GGUF →

Licencja

Model Noir jest objęty licencją CatsAI Model License. Pięć najważniejszych punktów:

  • Wypróbowanie jest bezpłatne, na dowolnej maszynie: na komputerze lub na serwerze.
  • Używanie do rzeczywistej pracy wymaga płatnej licencji na każdą maszynę, na której model jest zainstalowany. Komputer deweloperski też się liczy, jeśli jest używany do rzeczywistej pracy.
  • Użytek osobisty, edukacja i badania naukowe są bezpłatne.
  • Licencja dotyczy tylko wag modelu. Przykładowy kod pozostaje otwartym oprogramowaniem.
  • Model można dalej rozpowszechniać i dostrajać. Wtedy nadal obowiązuje ta sama licencja.
Pełne warunki licencji (PDF)PolskiEnglishZapytaj o licencję →

To jest streszczenie. Wiążący jest pełny tekst w pliku PDF.

DEMO | liczby z własnych testów, reszta wstępna