Nasze główne obszary działalności
Zajmujemy się rozwiązywaniem problemów, które wymagają wykorzystania uczenia maszynowego, do osiągnięcia zamierzonego celu. Można powiedzieć, że taki proces wymaga zdefiniowania trzech głównych obszarów tematycznych, które są dla nas codziennością.
- Uczenie maszynowe, NLP – projektujemy i trenujemy modele (sieci neuronowe czy też klasyczne podejścia np. w oparciu o Logistic Model Tree), które potrafią analizować dane, wyciągać wnioski i wspierać procesy decyzyjne. Najlepiej czujemy się w obszarze analizy języka naturalnego. Tworzymy dziedzinowe modele językowe w znacznej mierze oparte na architekturze transformers, ale mamy również epizod w uczeniu modeli podobnych do ChatGPT. Zawsze dostosowujemy technikę rozwiązania problemu, do rozwiązywanego problemu.
- Analiza danych, przygotowywanie zbiorów – jedną z naszych głównych specjalności jest strukturyzacja danych nieustrukturyzowanych. Tworzymy dedykowane bazy wiedzy oraz zbiory treningowe, które możemy wesprzeć procesem augmentacji, przeprowadzonym na dużą skalę w naszym laboratorium. Proces przeprowadzamy w oparciu o autorskie rozwiązanie, które cały czas rozwijamy w nowych kierunkach.
- Inżynieria oprogramowania – oczywiście całość rozwiązań kończy się działającym systemem. Głównie ograniczamy się do prac backendowych, dlatego w rezultacie często wynikiem naszych prac jest pełna architektura rozwiązania (np. kontenery dockerowe) z wystawionym API dostępowym (Rest) do tworzonego systemu.

Więcej szczegółów odnośnie sposobu naszego działania

Do każdego problemu podchodzimy indywidualnie. Niezależnie od tego co przeczytasz w literaturze, z nami prawdopodobnie zrobisz to inaczej :). Zawsze prowadzimy zwartą współpracę z Klientem, który jest czynnym uczestnikiem w projekcie. Często ze względu na ryzyko indywidualnego podejścia, Klient staje się ekspertem, którego zadaniem jest ocena cząstkowych rezultatów. W ten sposób jesteśmy w stanie kontrolować oraz ograniczyć propagację błędów na kolejne fazy wytwarzania. Dodajmy, że w naszym rozumieniu wytwarzanie oprogramowania dzielimy na trzy główne etapy, które przedstawiliśmy na grafice. Pełen proces przeprowadzamy we własnej architekturze serwerowej z dala od rozwiązań chmurowych. Od uczenia i testowania modeli, procesu CI/CD na środowisku deweloperskim, aż do testów akceptacyjnych na dedykowanym środowisku testowym. Przy uprodukcyjnianiu, korzystamy z własnych repozytoriów obrazów dockerowych z kontrolowanym dostępem per użytkownik. Dbamy o bezpieczeństwo na każdym etapie, jak również wspieramy w utrzymaniu naszych rozwiązań po wdrożeniu.