Inferencja (inference) w sztucznej inteligencji to proces, w którym wytrenowany wcześniej model wykorzystuje zdobytą wiedzę do analizy nowych danych i wygenerowania wyniku.
Najprościej:
trening uczy model, a inferencja pozwala mu wykorzystać to, czego się nauczył.
Jeżeli model językowy został wytrenowany na ogromnej ilości tekstów, podczas inferencji otrzymuje konkretne zapytanie użytkownika i na jego podstawie generuje odpowiedź.
Trening a inferencja
To jedno z podstawowych rozróżnień w AI.
Trening
Podczas treningu model analizuje dane i dostosowuje swoje parametry, aby nauczyć się określonych zależności.
Przykładowo model może analizować miliony zdjęć kotów i psów, ucząc się rozpoznawać cechy charakterystyczne obu grup.
Inferencja
Po zakończeniu treningu parametry modelu są wykorzystywane do analizy nowych danych.
Model otrzymuje zdjęcie, którego wcześniej nie widział, i przewiduje:
„To jest kot.”
Można więc przyjąć prostą zasadę:
Training → nauka
Inference → wykorzystanie wiedzy
Inferencja w ChatGPT
Gdy wpisujesz pytanie do modelu językowego, model wykonuje proces inferencji.
Otrzymuje:
prompt + kontekst
i na tej podstawie generuje odpowiedź.
Model nie przeprowadza wtedy treningu od nowa.
Wykorzystuje parametry, które zostały wcześniej wyuczone podczas procesu treningowego.
To właśnie dlatego odpowiedź może zostać wygenerowana w czasie rzeczywistym.
Jak działa inferencja modelu językowego?
W przypadku dużego modelu językowego proces można bardzo uprościć:
tekst użytkownika → tokenizacja → model → przewidywanie kolejnych tokenów → odpowiedź
Model analizuje kontekst i oblicza prawdopodobieństwa kolejnych elementów tekstu.
Następnie wybierane są kolejne tokeny, aż zostanie wygenerowana cała odpowiedź.
Nie oznacza to jednak, że model podczas inferencji „wyszukuje gotową odpowiedź w bazie danych”.
Generuje ją na podstawie wyuczonych parametrów i aktualnego kontekstu.
Tokeny a inferencja
Modele językowe nie przetwarzają tekstu dokładnie tak jak człowiek.
Tekst jest najpierw dzielony na tokeny.
Token może odpowiadać:
- całemu słowu,
- części słowa,
- znakowi,
- fragmentowi tekstu.
Podczas generowania odpowiedzi model przewiduje kolejne tokeny.
Dlatego długość kontekstu i liczba tokenów mają znaczenie dla kosztu oraz szybkości inferencji.
Inferencja a czas odpowiedzi
Jednym z ważnych parametrów systemów AI jest czas potrzebny na wykonanie inferencji.
Użytkownik oczekuje, że model odpowie możliwie szybko.
Na szybkość wpływają między innymi:
- moc GPU,
- moc CPU,
- ilość pamięci,
- przepustowość pamięci,
- wielkość modelu,
- długość kontekstu,
- sposób optymalizacji modelu,
- zastosowana kwantyzacja.
Dlatego dwa urządzenia mogą uruchamiać ten sam model, ale generować odpowiedzi z zupełnie różną szybkością.
Inferencja a kwantyzacja
Kwantyzacja, o której warto pamiętać przy analizie modeli AI, jest często stosowana właśnie po to, aby usprawnić inferencję.
Model może zostać zmniejszony np. z reprezentacji 16-bitowej do 8- lub 4-bitowej.
Dzięki temu potrzebuje mniej pamięci, a na odpowiednim sprzęcie może wykonywać obliczenia szybciej.
Może jednak wystąpić pewna utrata jakości.
Dlatego kwantyzacja jest kompromisem pomiędzy:
jakością → rozmiarem → szybkością → wymaganiami sprzętowymi.
Inferencja lokalna
Model AI nie musi być uruchamiany na serwerze w chmurze.
Można przeprowadzać inferencję lokalnie, czyli bezpośrednio na własnym komputerze lub innym urządzeniu.
Ma to kilka zalet:
- dane mogą pozostać na urządzeniu,
- nie jest konieczne wysyłanie każdego zapytania do chmury,
- można korzystać z modelu bez stałego połączenia z internetem,
- odpada część kosztów związanych z usługami API.
Minusem mogą być wymagania sprzętowe.
Duże modele mogą potrzebować znacznej ilości pamięci i wydajnego procesora lub GPU.
Inferencja w chmurze
Alternatywą jest inferencja wykonywana na serwerach dostawcy usługi.
Użytkownik wysyła dane do API, serwer wykonuje obliczenia, a następnie zwraca wynik.
Tak działa wiele komercyjnych usług AI.
Zaletą jest brak konieczności posiadania własnego, bardzo wydajnego sprzętu.
Kosztem jest natomiast konieczność korzystania z infrastruktury zewnętrznego dostawcy oraz potencjalne opłaty za wykorzystanie modeli.
Inferencja a AI na urządzeniach
Inferencja ma coraz większe znaczenie również w urządzeniach takich jak:
- smartfony,
- laptopy,
- samochody,
- kamery,
- urządzenia IoT,
- systemy przemysłowe.
Przykładowo kamera może analizować obraz lokalnie i rozpoznawać określone obiekty bez przesyłania całego nagrania do chmury.
Takie podejście jest jednym z zastosowań edge AI.
Inferencja a hallucinations
Szybka inferencja nie oznacza automatycznie poprawnej odpowiedzi.
Model AI może podczas inferencji wygenerować halucynację, czyli przekonująco brzmiącą, ale nieprawdziwą informację.
Inferencja jest więc procesem generowania wyniku przez model, a nie gwarancją jego prawdziwości.
To ważne szczególnie w zastosowaniach, w których błędna odpowiedź może mieć poważne konsekwencje.
Inferencja a parametry modelu
W czasie inferencji model wykorzystuje swoje wytrenowane parametry.
Można to porównać do egzaminu.
Trening jest nauką materiału.
Inferencja jest egzaminem, podczas którego model wykorzystuje zdobytą wiedzę do rozwiązania nowego problemu.
Model nie musi ponownie „uczyć się” całego materiału za każdym razem, gdy otrzyma nowe pytanie.
Przykład
Wyobraźmy sobie model wytrenowany do rozpoznawania samochodów.
Podczas treningu otrzymał miliony zdjęć.
Po zakończeniu treningu pokazujemy mu nowe zdjęcie:
zdjęcie samochodu, którego wcześniej nie widział.
Model analizuje obraz i zwraca:
„Samochód – 97% prawdopodobieństwa.”
To właśnie jest inferencja.
Model wykorzystuje wiedzę zdobytą podczas treningu do wykonania zadania na nowych danych.
Podsumowanie
Inferencja (inference) to proces wykorzystania wytrenowanego modelu AI do generowania wyników na podstawie nowych danych.
Najważniejsze rozróżnienie:
Trening → model się uczy.
Inferencja → model wykorzystuje to, czego się nauczył.
W przypadku AI inferencja ma ogromne znaczenie dla:
- szybkości działania modeli,
- kosztów korzystania z AI,
- wymagań sprzętowych,
- zużycia energii,
- możliwości uruchamiania modeli lokalnie.
Można powiedzieć, że trening buduje „wiedzę” modelu, a inferencja pozwala mu tę wiedzę wykorzystać w praktyce.


