Generatywna AI to sztuczna inteligencja wykorzystywana do tworzenia nowych treści, takich jak tekst, obrazy, muzyka, dźwięki i filmy. Generatywna AI korzysta z modelu systemów uczących się, aby uczyć się wzorów i zależności w zbiorze danych zawierającym treści stworzone przez ludzi.
Ta technologia wykazała niesamowite możliwości w przypadku aplikacji takich jak Gemini. Być może zastanawiasz się, jak zaimplementować narzędzia generatywnej AI w swoich usługach internetowych.
Jednym z częstych zastosowań jest udostępnienie użytkownikom lepszego interfejsu do zadawania pytań o zawartość witryny. Dzięki systemom uczącym się możesz znacznie poprawić wyniki wyszukiwania użytkowników.
Utwórz lepszą wyszukiwarkę dla witryny
Możesz utworzyć interfejs, w którym użytkownicy wpisują pytanie, które jest następnie wysyłane do dużego modelu językowego (LLM), takiego jak Gemini, a potem wyświetlane są odpowiedzi.
Załóżmy, że taka funkcja istnieje w tej witrynie. Użytkownik chce się dowiedzieć, które interfejsy API są dostępne w interakcji z 2024 r., i wpisuje to zapytanie:
What are the features included in Interop 24?
Dane wyjściowe prawdopodobnie będą nieprawidłowe z kilku powodów:
- Użytkownik podał modelowi LLM zbyt mało kontekstu dotyczącego pytania, dlatego model jest bardziej podatny na podawanie błędnych odpowiedzi lub halucynacji.
- Duże modele językowe zostały prawdopodobnie wytrenowane przed utworzeniem Interop 2024 lub przed podjęciem decyzji o ich funkcjach, więc nie mają dostępu do tych informacji.
Chociaż duże modele językowe mogą znajdować bardziej aktualne informacje, zbiory danych wykorzystywane do ich trenowania są z założenia nieaktualne. Dbanie o aktualne wyniki może być bardzo kosztowne i czasochłonne.
Używanie technik tworzenia promptów
Inżynieria promptów to zestaw technik, które pozwalają uzyskać najlepsze wyniki z modeli LLM.
Jedną z metod jest zapewnienie w prompcie dodatkowego kontekstu, dzięki czemu LLM z większym prawdopodobieństwem wygeneruje treści powiązane z kontekstem.
W przypadku naszego przykładu interoperacyjności pierwszym krokiem jest podanie pełnej treści artykułu jako kontekstu. Następnie dodaj pytanie jako dane wejściowe, aby model LLM mógł na nie odpowiedzieć. Na przykład:
Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)
Input:
What are the features included in Interop 2024?
Dane wyjściowe Gemini mogą wyglądać tak:
The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL
Ta odpowiedź jest prawdopodobnie znacznie lepsza niż w przypadku prompta bez kontekstu, ponieważ odpowiedź jest oparta na podanym kontekście.
Skalowanie w górę za pomocą RAG
Zamiast odpowiadać na pytanie dotyczące pojedynczego artykułu chcemy, aby model LLM odpowiadał na więcej pytań dotyczących web.dev, korzystając z dowolnego artykułu jako dodatkowego kontekstu. Chociaż jest to możliwe w przypadku mniejszych witryn, okno kontekstu Gemini 1.5 obejmuje milion tokenów, więc większe prompty są wolniejsze i droższe w eksploatacji.
Długości danych wejściowych i wyjściowych LLM są mierzone i obliczane w tokenach, które są sposobem na reprezentowanie wspólnej sekwencji znaków w danych wejściowych. Liczba tokenów będzie zazwyczaj większa niż liczba słów. W pierwszym przykładzie dane wejściowe zawierały 775 słów reprezentowanych przez 1097 tokenów. Różne modele LLM mogą obliczać tokeny na różne sposoby. Większość z nich udostępnia interfejs API lub punkt końcowy do obliczania liczby tokenów dla danych wejściowych tekstowych.
Jednym z rozwiązań jest udostępnienie artykułów dotyczących promptów LLM. To zadanie należy podzielić na 2 części:
- Dodaj treść najpopularniejszych artykułów jako kontekst podczas wywoływania modelu LLM.
- Wyszukaj treści dotyczące artykułów związanych z tematem „Jakie funkcje są dostępne w Interop 2024?”.
Chcemy, aby wyniki z Gemini zwracały treści oparte na tych artykułach:
- Artykuł 1: web.dev/blog/submit-your-proposals-for-interop-2024
- Artykuł 2: web.dev/blog/interop-2023-wrapup
- Artykuł 3: web.dev/blog/interop-2024
Dane wejściowe powinny wyglądać tak:
Context:
Article 1:
Over the past two years... (trimmed)
Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)
Article 3:
Following on from the success of Interop 2022... (trimmed)
Input:
What are the features included in Interop 2024?
Ten kontekst powoduje oczekiwany wynik.
* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL
Dla osób znających techniki AI to podejście wykorzystuje RAG, czyli powszechną praktykę zwiększania prawdopodobieństwa uzyskania prawdziwych odpowiedzi z narzędzi generatywnej AI.
Poprawianie wyników dzięki wyszukiwaniu semantycznemu
Chociaż technika RAG może działać z normalnym wyszukiwaniem pełnotekstowym, ma też pewne wady.
- Przeszukiwanie całego tekstu pomaga AI znajdować dopasowania do słów kluczowych. Jednak modele LLM nie są w stanie określić docelowego znaczenia zapytania użytkownika. W efekcie dane wyjściowe mogą być niekompletne lub nieprawidłowe.
- Problemy mogą wystąpić, gdy słowa mają wiele znaczeń lub zapytania zawierają synonimy. Na przykład słowo „bank” (instytucja finansowa lub brzeg rzeki) może prowadzić do wyświetlania nieistotnych wyników.
- Przeszukiwanie całego tekstu może zwrócić wyniki, które zawierają słowa kluczowe, ale nie są zgodne z celem użytkownika.
Wyszukiwanie semantyczne to technika, która pozwala zwiększyć dokładność wyszukiwania dzięki skupieniu się na tych kluczowych aspektach:
- Intencja wyszukiwania: próba zrozumienia, czego szuka użytkownik. Czego próbują znaleźć lub osiągnąć?
- Kontekstualny: interpretuje słowa i wyrażenia w związku z otaczającym je tekstem, a także inne czynniki, takie jak lokalizacja użytkownika czy historia wyszukiwania.
- Związek między pojęciami: wyszukiwanie semantyczne wykorzystuje grafy wiedzy (duże sieci powiązanych podmiotów) i przetwarzanie języka naturalnego, aby zrozumieć, jak są ze sobą powiązane słowa i idee.
W efekcie, gdy tworzysz narzędzia z wyszukiwaniem semantycznym, wyniki wyszukiwania zależą od ogólnego celu zapytania, a nie od słów kluczowych. Oznacza to, że narzędzie może wykryć odpowiednie dokumenty nawet wtedy, gdy nie ma dokładnego słowa kluczowego. Może też pomijać wyniki, w których występuje słowo, ale ma ono inne znaczenie.
Obecnie możesz stosować 2 narzędzia wyszukiwania, które wykorzystują wyszukiwanie semantyczne: Vertex AI Search i Algolia AI Search.
Uzyskiwanie odpowiedzi z opublikowanych treści
Wiesz już, jak użyć inżynierii promptów, aby umożliwić LLM udzielanie odpowiedzi związanych z treściami, których nigdy nie widziała, przez dodanie kontekstu do promptu. Poznaliśmy też metodę skalowania tego podejścia od pojedynczych artykułów do całego zbioru treści za pomocą techniki generowania rozszerzonego o wyszukiwanie (RAG). Dowiedz się, jak wyszukiwarka semantyczna może jeszcze bardziej poprawić wyniki zapytań użytkowników dzięki wdrożeniu RAG w Twojej usłudze.
Narzędzia generatywnej AI mogą „hallucynować”, przez co są one w najlepszym stanie, czasem zawodne, a w najgorszym razie – aktywnie szkodliwe dla firmy. Dzięki tym technikom zarówno użytkownicy, jak i deweloperzy mogą zwiększyć niezawodność i być może budować zaufanie do wyników tych aplikacji.