Budowanie Asystenta AI
W tym odcinku rozmawiamy o tym, jak zaprojektowaliśmy i stworzyliśmy asystenta AI dla serwisu eduweb, napędzanego 25 milionami znaków transkryptów i innych naszych materiałów oraz jak sprawiliśmy, że potrafi odpowiadać kontekstowo z uwzględnieniem konkretnej lekcji czy kursu, ale też całej ogólnej wiedzy. To przełom w edukacji, który pozwoli na bardziej spersonalizowaną naukę. Przetestujcie na eduweb.pl!
Jasne, już dopytuję. Czyli podsumowując, można powiedzieć tak, że asystent jest, mówiąc bardzo kolokwialnie i w cudzysłowie, wytrenowany na rzeczach, które można znaleźć na Eduwebie, ale nie tylko, bo ma też dostęp do Po pierwsze, wybranych dokumentów z internetu, czyli na przykład dokumentacji narzędzi, z którymi pracujemy i pracują osoby, które uczą się na Eduwebie, a także ma dostęp ewentualnie do różnych innych naszych rzeczy, takie jak zasoby z Ahoy, e-booków i jeszcze coś, o czym powinniśmy wiedzieć. Nie, na ten moment to jest tyle. Więcej sekretów może będę zdradzał w kolejnych tygodniach.
tutaj zadziałały. No bo moim zadaniem jest tutaj to, żeby na dane pytanie, na daną konwersację odnaleźć istotne dla konwersacji fragmenty wiedzy Eduweba, a następnie przygotować to wszystko w taki sposób, żeby asystent był w stanie tę odpowiedź wygenerować. No właśnie, jak to się technicznie dzieje, to jest jakby istotne. Czyli jak działa asystent w takim razie pod spodem? Skoro już wiemy, że jakby co ma, na czym może operować i jeszcze jedno pytanie pośrednie, żeby pójść jakimś całym tokiem rozumowania, to asystent może też uzyskiwać dostęp do nowych materiałów i nowej wiedzy, czy jest to zamknięty byt? Może ją wykorzystywać ze względu na to, że tak naprawdę ten trening, o którym wspomniałeś, to nie jest na przykład fine tuning, który jest raczej sztywną techniką albo trudną gdzieś tam do dalszego rozwoju.
Natomiast jest to po prostu posługiwanie się wyłącznie informacjami zawartymi do kontekstu, czyli to tak jakbyśmy weszli na chart GPT. I zadając pytanie, dokleili kawałek jakiegoś artykułu i poprosili o odpowiedź na podstawie tego artykułu. Wówczas, na przykład jeżeli mamy teraz nową wersję jakiegoś frameworka, jakiejś technologii, to normalnie GPT-4 o tym nie wie, bo jego wiedza jest skończona Którymś tam punkcie czasu. Natomiast w przypadku asystenta Edu on ma taką informację z dwóch powodów. Po pierwsze znalazł kursy na Eduwebie, które też mogą być jeszcze trochę w przeszłości, bo na przykład dla technologii Node.js mamy kurs nagrany powiedzmy rok temu.
Po drugie, korzysta on ze swoich zasobów jakby wiedzy ogólnej, którą tak nazywamy, czyli de facto wszystkiego tego, co możecie zapytać na przykład chat GPT i wam udzieli odpowiedzi i to jest też wiedza, którą taki asystent ma. I po trzecie, w wybranych przypadkach korzysta z zasobów internetowych, bo nie w każdym przypadku dajemy mu dostęp do wszystkich zasobów. Ale do stron, co do których mamy pewność, że mamy uprawnienia, mamy prawa autorskie, możemy wziąć na przykład fragmenty dokumentacji, na te strony też asystent może zajrzeć i udzielić nam odpowiedzi, która w kontekście zawiera te informacje. Po drugie, przy udzielaniu odpowiedzi asystent Nie korzysta z takiego gotowego modelu, tak jak Adam powiedział, przygotowanego techniką fine-tuningu czy inną, która pozwala po prostu zbudować jakiś zamknięty nowy model danych, z którego korzysta taki asystent, tylko korzysta właśnie z tych rzeczy na bieżąco.
Te rzeczy są w pewien sposób skatalogowane, ta cała wiedza w pewien sposób jest ułożona, otagowana, w pewien sposób dostępna dla niego na bieżąco. I to, co robi asystent, to po prostu wysyła odpowiednie zapytanie czy odpowiedni prompt. My korzystamy z API OpenAI, najczęściej z GPT-4, ale nie zawsze, o tym pewnie Adam też powie, do tego, żeby właśnie te informacje przesłać i uzyskać odpowiednią odpowiedź. W tej odpowiedzi kontekstem jest po pierwsze to, co znajdzie na Eduwebie. Ale drugą rzeczą, którą uwzględnia, są też te dane z zewnątrz, o których wspomnieliśmy, czyli np. z ogólnej wiedzy czy z dokumentacji. I takie dwa komponenty na ogół odpowiedzi asystent stara się przygotować po to, żeby nie tylko dać kontekst z Eduweba, ale też jakiś kontekst z zewnątrz na zadane pytanie.
No dobra, i teraz skoro to mamy, to nasuwa się znowu szereg takich dodatkowych pytań. Czyli właśnie, po pierwsze to, jak technicznie jest to zorganizowane, czyli jak ta wiedza pod spodem jest ułożona i czy właśnie jest to wyzwanie, żeby ją ułożyć w taki sposób, żeby faktycznie asystent wiedział, z których danych skorzystać i które dane wykorzystać do użycia odpowiedzi, bo zakładam, że te wszystkie dane nie są dla niego dostępne natychmiast, bo inaczej takie zapytanie dość długo by trwało. Więc to jest pierwsza rzecz, którą warto by było wyjaśnić. No i może od tego zacznijmy. Tak, to jest wielowymiarowe. Natomiast samo przygotowanie treści, wyobraźmy sobie w ogóle taką konwersację z asystentem, czyli na przykład podsumuj dla mnie tę lekcję.
Takie sytuacje w tym przypadku zdarzają się dość rzadko ze względu na to, że rzeczywiście materiały na Eduwebie są wysokiej jakości. W momencie, gdy podepniemy asystenta pod wyniki wyszukiwania, to tam mogą wyskoczyć różne rzeczy, od reklam przez np. Jakieś przypadkowe strony, które zawierają treści, których po prostu nie chcemy na Eduwebie, a w tym przypadku mogłyby się wczytać. Więc jakość bazy treści, z którą pracujemy, jest niesamowicie ważna. W przypadku Eduweba krytyczne są te transkrypty, które w tym momencie w przypadku wygenerowanych automatycznie potrafią jeszcze nie zawierać tych słów kluczowych, które są tutaj istotne.
Jaki problem rozwiązujemy, to oni są w stanie sięgnąć czy podsunąć nam pomysł, podsunąć rozwiązanie, podsunąć źródło wiedzy, w którym na przykład kiedyś o nim czytaliśmy albo może okazać się przydatne tak tu i teraz. I dla mnie to jest ogromna wartość, którą mam w tym momencie właśnie w tej prywatnej wersji Alice, gdzie mogę po prostu zadać pytanie o to, Nie zadając bezpośrednio tego pytania, tylko opisując ogólnie problem, z którym mam do czynienia, a ona na przykład podrzuca mi linki do artykułów, które kiedyś tam czytałem. I takie towarzyszenie z mojego punktu widzenia jest niesamowicie istotne. Druga rzecz jest taka, że
W moim przypadku największą korzyścią jest jednak to zastosowanie tu i teraz, to towarzyszenie, to rozszerzanie naszych kompetencji, przebijanie tych barier, nawet intelektualnych, które na przykład poprzez realizowanie Rzeczy, które dzisiaj sprawiają nam problem albo zajęłyby nam dużo czasu, z pomocą Alice jestem w stanie zrealizować w bardzo krótkim czasie i poświęcić po prostu czas na rzeczy inne, w przypadku których na przykład nie jest w stanie mi pomóc. No i tyle. I to jest dla mnie super istotne. Czyli mamy kilka składowych. Po pierwsze, ważne jest to, żeby wziąć pod uwagę, jakby wartość dają same odpowiedzi asystenta.
Same w sobie odpowiedzi asystenta są cenne i wartościowe i pozwalają nam spojrzeć trochę z innej perspektywy na przykład na proces naszej nauki. Po drugie, dość istotne jest też kontekst, czyli samo to, że będziemy mogli asystenta zapytać o to, jakiej kolejnej lekcji się uczyć na Eduwebie, też ma ogromne Znaczenie w kontekście tej trochę lepszej i bardziej zwinnej nauki w przyszłości. To co będzie mega ciekawe, to spersonalizowanie asystenta i dostosowanie go do naszej ścieżki rozwoju, a także posiadanie takiej wersji osobistego tutora, który towarzyszy nam całą naszą wersję tego rozwoju realizując. Mi się to spina w kompletną prawie całość. W zasadzie ostatnim elementem, który jest brakujący, a nad którym też pracujemy i uważam, że jest bardzo ważny, jest to to, w jaki sposób asystent będzie w stanie serwować nam wiedzę i odpowiedzi.
Budowanie Asystenta. Można powiedzieć, że mega interesujący dla mnie kierunek, ciekawy jest taki, w którym my tak naprawdę wykorzystujemy asystenta do tego, żeby nie tylko podpowiadał co zrobić, ale po prostu to robił, czyli de facto układał z dostępnych materiałów Gotowy czy to plan nauki, czy to gotowe lekcje, wplatał w to obrazy, wplatał w to wideo, wplatał w to gify, odniesienia do dokumentacji, fragmenty kodu, które można łatwo skopiować.
Okej, widzę, że Adam nie ma nic tutaj więcej do dodania i chyba... Nie, wydaje mi się, że nie mam i nie chcę też tak przeciągać, ale chciałem tylko tak od siebie dodać, że właśnie to projektowanie narzędzi wykorzystujących czy integrujących duże modele językowe w tym momencie jest bardzo tak na topie. Natomiast z punktu widzenia produkcyjnego jest tam wiele, nawet nie tyle wyzwań, co pytań, które nie mają odpowiedzi, w sensie odpowiedzi, których nie mają nawet twórcy z OpenAI, twórcy GPT-4. I jesteśmy takie naprawdę pozostawieni trochę sami sobie z tym, żeby na przykład dostosować nawet takie proste pytanie.
które tu i teraz są wyzwaniem. Wyzwaniem jest na pewno stabilność API, czyli stabilność połączenia z OpenAI. Jest sam wątek skuteczności w ogóle modeli językowych. Z którymi musimy sobie radzić. Przykładowo w tym momencie ewidentnie jest widoczny spadek skuteczności dla języka polskiego. No i to jest coś poza naszą kontrolą i o tym też warto pamiętać. Jednocześnie też pojawiają się offline'owe wersje dużych modeli językowych, które stają się coraz lepsze. Akurat w języku polskim mówią średnio, Na przykład na Eduwebie wykorzystuję także API Deeply do tego, żeby tłumaczyć sobie treści na język angielski i chociaż asystent mówi w języku polskim, to tak naprawdę w tle niekoniecznie tak jest.
Pokazano wszystkie 13 dopasowań. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.
Adam przedstawia projekt asystenta AI, jego funkcjonalności i dostęp do treści Eduweba oraz internetowych źródeł.
Adam opisuje, jak asystent działa i korzysta z informacji z Eduweba oraz internetowych źródeł.
Adam omawia możliwość dostępu asystenta do nowych materiałów i procesy ulepszania asystenta.
Adam wyjaśnia, jak asystent organizuje i dostarcza odpowiedzi na podstawie treści Eduweba i zewnątrz.
Adam szczegółowo opisuje proces przygotowywania treści do asystenta, w tym użycie API OpenAI i tokeny.
Adam omawia wyzwania techniczne i zabezpieczenia związane z asystentem, w tym bezpieczeństwo użytkowników i zabezpieczenia przed złośliwymi zapytaniami.
Rozmowa o kluczowych elementach asystenta AI, takich jak wartość odpowiedzi, kontekst, personalizacja i sposób serwowania treści.
Wzmianki o wyzwaniach związane z integrowaniem dużych modeli językowych oraz możliwościach dostosowywania treści do różnych odbiorców.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.
Kliknij, aby znaleźć fragmenty, w których pada.