Cześć, jestem Tomek
Buduję systemy oparte na dużych modelach językowych.Takie, które działają na produkcji.
Od ponad piętnastu lat jestem backend developerem (prawie cały ten czas w Pythonie), a od kilku lat prowadzę projekty oparte na AI. Mam doświadczenie zarówno z modelami dostępnymi w chmurze, jak i z tymi uruchamianymi lokalnie (kilka z nich utrzymuję na własnym sprzęcie w domu).
Czym się zajmuję
Wszystko wokół modelu, żeby system działał.
Model to zwykle najmniejszy problem. Trudniejsze jest to, co go otacza: dane wejściowe, kontrola wyników, koszty i to, czy ludzie mogą im ufać. Tym się zajmuję.
Przetwarzanie dokumentów i obrazów
Ekstrakcja danych, klasyfikacja i uzupełnianie informacji na dużą skalę. Każdy wynik ma ocenę pewności, niepewne przypadki trafiają do weryfikacji, a do systemu źródłowego nic nie jest zapisywane bez potwierdzenia. Najwięcej pracy jest nie w prompcie, tylko w tym, co dzieje się przed nim i po nim: w sprawdzaniu, wykrywaniu duplikatów i w śladzie, który pokazuje, skąd wziął się dany rekord.
Asystenci znający firmowe dokumenty
Asystenci, którzy odpowiadają na pytania na podstawie materiałów firmy i wskazują źródło każdej odpowiedzi. Pracuję z modelami OpenAI i Anthropic, a tam, gdzie dane nie mogą opuścić firmy, z otwartymi modelami uruchamianymi na własnej infrastrukturze. Więcej czasu poświęcam jakości wyszukiwania i testom odpowiedzi niż samemu interfejsowi.
Agenci i automatyzacje
Cotygodniowy raport, uzgadnianie danych, przenoszenie informacji między systemami. Agent działa według harmonogramu, ma ustalony budżet, zapisuje, co zrobił, i daje znać, gdy coś się nie uda. Każda operacja, która coś zmienia w zewnętrznym systemie, wymaga wcześniejszego zatwierdzenia.
Od prototypu do produkcji
Prototyp, który dobrze wypadł na pokazie, ale nie nadaje się jeszcze do codziennej pracy, to częsty punkt wyjścia. Zostawiam to, co działa, dokładam testy, monitoring i obsługę błędów, i zamieniam go w usługę, którą może utrzymywać ktoś inny.
Realizacje
Kilka systemów, które zbudowałem.
Konkretne rzeczy i skala, w jakiej działają.
Odczyt danych z dokumentów
6 500+ pozycji cenowych z 2 100+ stron
Dwa systemy do przetwarzania dokumentów. Pierwszy czyta gazetki promocyjne: każda strona jest wstępnie klasyfikowana, pozycje z cenami odczytuje model wizyjny, a konflikty między nakładającymi się stronami trafiają do weryfikacji przez człowieka. Z 2 100+ stron powstało 6 500+ pozycji z cenami, każda z odniesieniem do strony źródłowej.
Drugi zamienia zdjęcie etykiety produktu w rekord wartości odżywczych: dwa przebiegi OCR, model wypełniający ustalony schemat, walidator z regułami wiarygodności, wykrywanie duplikatów i zatwierdzenie przez człowieka przed zapisem.
Produkcja treści dla trzech marek
100+ postów zaplanowanych i wyprodukowanych
Kolejkowane generowanie tekstów, grafik i krótkich wideo dla trzech marek, każda z własnym stylem i własnymi etapami zatwierdzania. Post przechodzi od szkicu przez akceptację do produkcji, a renderowanie rusza dopiero po niej.
Każdy materiał powstały z udziałem AI dostaje przy renderowaniu odpowiednie oznaczenie, więc wymóg informowania o tym jest wbudowany w proces, a nie sprawdzany na końcu.
Własna infrastruktura AI
3 węzły GPU, otwarty model klasy 280B
Trzy węzły GPU, dwa z nich spięte w tensor parallel przez 200 GbE, serwują otwarty model mixture-of-experts klasy 280B przez vLLM za API zgodnym z OpenAI, a do tego generowanie obrazów, upscaling i usuwanie tła.
Zastępuje to rozliczanie za każde wywołanie API dla ponad dziesięciu wewnętrznych aplikacji. Nocami przetwarza 800+ stron OCR-em wizyjnym. Bramka API zapisuje każde żądanie, więc wiadomo, do czego infrastruktura jest naprawdę używana.
Agenci analityczni
Budżety, logi, zatwierdzanie operacji
Agenci, którzy o ustalonej porze czytają dane z tego dnia i piszą raport. Każdy ma budżet tokenów, log wykonanych kroków i etap zatwierdzenia dla każdej zmiany w zewnętrznym systemie: agent może zaproponować zmianę, ale nie wykona jej sam.
Zachowanie w razie awarii jest zaprojektowane z góry: gdy wywołania modelu się nie powiodą, raport i tak przychodzi, z informacją o tym, czego zabrakło.