Wiele modeli Gemini ma duże okna kontekstu obejmujące co najmniej milion tokenów. W przeszłości duże modele językowe (LLM) były znacznie ograniczone przez ilość tekstu (lub tokenów), które można było przekazać modelowi naraz. Długie okno kontekstu Gemini umożliwia wiele nowych zastosowań i paradygmatów dla programistów.
Kod, którego używasz już w przypadkach takich jak generowanie tekstu czy wielomodalne dane wejściowe, będzie działać bez żadnych zmian w przypadku długiego kontekstu.
W tym dokumencie znajdziesz omówienie tego, co możesz osiągnąć, korzystając z modeli z oknami kontekstu obejmującymi co najmniej milion tokenów. Na tej stronie znajdziesz krótkie omówienie okna kontekstowego oraz informacje o tym, jak deweloperzy powinni myśleć o długim kontekście, o różnych zastosowaniach długiego kontekstu w praktyce oraz o sposobach optymalizacji jego używania.
Informacje o rozmiarach okna kontekstowego w przypadku poszczególnych modeli znajdziesz na stronie Modele.
Czym jest okno kontekstu?
Podstawowym sposobem korzystania z modeli Gemini jest przekazywanie informacji (kontekstu) do modelu, który następnie generuje odpowiedź. Analogią do okna kontekstowego jest pamięć krótkotrwała. W pamięci krótkotrwałej można przechowywać ograniczoną ilość informacji. To samo dotyczy modeli generatywnych.
Więcej informacji o tym, jak działają modele, znajdziesz w przewodniku na temat modeli generatywnych.
Pierwsze kroki z długim kontekstem
Wcześniejsze wersje modeli generatywnych mogły przetwarzać tylko 8000 tokenów naraz. Nowsze modele obsługują nawet 32 tys. lub 128 tys. tokenów. Gemini to pierwszy model, który obsługuje 1 mln tokenów.
W praktyce 1 milion tokenów wygląda tak:
- 50 tys. wierszy kodu (po 80 znaków na wiersz)
- wszystkie SMS-y wysłane w ciągu ostatnich 5 lat;
- 8 powieści angielskich o średniej długości
- Transkrypcje ponad 200 odcinków podcastów o średniej długości
W przypadku ograniczonych okien kontekstowych, które są powszechne w wielu innych modelach, często trzeba stosować strategie takie jak arbitralne usuwanie starych wiadomości, podsumowywanie treści, korzystanie z RAG z bazami danych wektorów lub filtrowanie promptów w celu zapisywania tokenów.
Chociaż te techniki są przydatne w określonych sytuacjach, rozbudowane okno kontekstu Gemini zachęca do bardziej bezpośredniego podejścia: przekazywania wszystkich istotnych informacji z góry. Modele Gemini zostały zaprojektowane z uwzględnieniem ogromnych możliwości kontekstowych, dzięki czemu zapewniają skuteczne uczenie się w kontekście. Na przykład korzystając tylko z materiałów instruktażowych w kontekście (500-stronicowa gramatyka referencyjna, słownik i około 400 zdań równoległych), Gemini nauczył się tłumaczyć z języka angielskiego na kalamang – język papuaski, którym posługuje się mniej niż 200 osób – z jakością zbliżoną do jakości osiąganej przez uczących się ludzi korzystających z tych samych materiałów. Przykład ten obrazuje zmianę paradygmatu, którą umożliwia długi kontekst Gemini, otwierając nowe możliwości dzięki solidnemu uczeniu się w kontekście.
Przypadki użycia długiego kontekstu
Standardowe zastosowanie większości modeli generatywnych to nadal tekst jako dane wejściowe, ale rodzina modeli Gemini umożliwia nowy paradygmat zastosowań multimodalnych. Te modele mogą natywnie interpretować tekst, filmy, dźwięk i obrazy. Dla wygody użytkowników interfejs Gemini API obsługuje pliki multimodalne.
Długi tekst
Tekst okazał się warstwą inteligencji, która napędza większość dynamiki związanej z LLM. Jak już wspomnieliśmy, praktyczne ograniczenia LLM wynikały głównie z niewystarczająco dużego okna kontekstu do wykonywania niektórych zadań. Doprowadziło to do szybkiego przyjęcia generacji wzbogaconej o wyszukiwanie (RAG) i innych technik, które dynamicznie dostarczają modelowi odpowiednich informacji kontekstowych. Obecnie, dzięki coraz większym oknom kontekstu, dostępne są nowe techniki, które umożliwiają tworzenie nowych zastosowań.
Oto kilka nowych i standardowych zastosowań długiego kontekstu tekstowego:
- Streszczanie dużych korpusów tekstowych
- Wcześniejsze opcje podsumowywania z mniejszymi modelami kontekstowymi wymagałyby okna przesuwającego lub innej techniki, aby zachować stan poprzednich sekcji podczas przekazywania nowych tokenów do modelu.
- Pytania i odpowiedzi
- Wcześniej było to możliwe tylko w przypadku RAG ze względu na ograniczoną ilość kontekstu i niskie odtwarzanie faktów przez modele.
- Przepływy pracy dotyczące agentów
- Tekst jest podstawą tego, jak agenty zachowują stan tego, co zrobili i co muszą zrobić; brak wystarczającej ilości informacji o świecie i celu agenta jest ograniczeniem niezawodności agentów
Uczenie się w kontekście na podstawie wielu przykładów to jedna z najbardziej unikalnych możliwości, które oferują modele kontekstowe o długim zasięgu. Badania wykazały, że zastosowanie popularnej metody „single shot” lub „multi-shot”, w której modelowi przedstawia się jeden lub kilka przykładów zadania, a potem zwiększa się ich liczbę do setek, tysięcy, a nawet setek tysięcy przykładów, może prowadzić do opracowania nowych możliwości modelu. Wykazano też, że podejście z wieloma przykładami działa podobnie jak modele, które zostały dostrojone pod kątem konkretnego zadania. W przypadku zastosowań, w których wydajność modelu Gemini nie jest jeszcze wystarczająca do wdrożenia w produkcji, możesz wypróbować podejście z wieloma zdjęciami. Jak zobaczysz w sekcji dotyczącej optymalizacji długiego kontekstu, buforowanie kontekstu sprawia, że tego typu zadania o dużym natężeniu wykorzystania tokenów wejściowych są znacznie bardziej opłacalne, a w niektórych przypadkach pozwalają nawet na skrócenie opóźnienia.
Długi film
Przydatność treści wideo była przez długi czas ograniczona przez brak dostępności samego medium. Trudno było przejrzeć treści, transkrypcje często nie oddawały niuansów filmu, a większość narzędzi nie przetwarzała razem obrazu, tekstu i dźwięku. Dzięki Gemini możliwości przetwarzania tekstu o długim kontekście przekładają się na zdolność do rozumowania i odpowiadania na pytania dotyczące danych multimodalnych przy zachowaniu wysokiej wydajności.
Oto kilka przykładów standardowych i w powstaniu przypadków użycia długiego kontekstu wideo:
- Pytania i odpowiedzi dotyczące filmu
- Pamięć wideo, jak w aplikacji Google Project Astra
- Napisy do filmów
- systemy rekomendacji filmów, które wzbogacają istniejące metadane o nowe informacje uzyskane dzięki multimodalnemu zrozumieniu;
- dostosowywanie filmów na podstawie zbioru danych i powiązanych z nimi metadanych, a następnie usuwanie części filmów, które nie są istotne dla widza;
- Moderowanie treści wideo
- Przetwarzanie filmów w czasie rzeczywistym
Podczas pracy z filmami należy wziąć pod uwagę, jak filmy są przetwarzane na tokeny, co ma wpływ na limity płatności i używania. Więcej informacji o promptach z plikami wideo znajdziesz w przewodniku Prompting.
Długie pliki audio
Modele Gemini były pierwszymi natywnie multimodalnymi dużymi modelami językowymi, które potrafiły interpretować dźwięk. Dotychczas typowy proces programowania polegał na łączeniu wielu modeli do przetwarzania mowy, takich jak modele konwersji mowy na tekst i tekstu na tekst. Spowodowało to wydłużenie czasu oczekiwania na wykonanie wielu zapytań z podwójnym przesyłaniem danych i obniżenie wydajności, co zwykle przypisuje się niespójnych architekturach konfiguracji wielu modeli.
Oto kilka nowych i standardowych zastosowań kontekstu audio:
- Transkrypcja i tłumaczenie w czasie rzeczywistym
- Pytania i odpowiedzi dotyczące podcastów i filmów
- Transkrypcja i streszczenie spotkania
- Asystenci głosowi
Więcej informacji o promptach z plikami audio znajdziesz w przewodniku Prompting.
Optymalizacje długiego kontekstu
Główna optymalizacja podczas pracy z długim kontekstem i modelami Gemini polega na użyciu zapamiętania kontekstu. Oprócz wcześniej wspomnianej niemożności przetworzenia dużej liczby tokenów w pojedynczym żądaniu głównym ograniczeniem był koszt. Jeśli masz aplikację „Czat z danymi”, w której użytkownik przesyła 10 plików PDF, film i kilka dokumentów służbowych, wcześniej musiałbyś pracować z bardziej złożonym narzędziem lub frameworkiem do generowania rozszerzonego wyszukiwania, aby przetworzyć te żądania i zapłacić znaczną kwotę za tokeny przeniesione do okna kontekstowego. Teraz możesz przechowywać w pamięci podręcznej pliki przesyłane przez użytkownika i płacić za ich przechowywanie według stawki godzinowej. Koszt wejścia / wyjścia za żądanie z Gemini Flash jest na przykład około 4 razy niższy niż standardowy koszt wejścia / wyjścia, więc jeśli użytkownik często korzysta z czatu, możesz zaoszczędzić sporo pieniędzy.
Ograniczenia długiego kontekstu
W różnych sekcjach tego przewodnika omawialiśmy, jak modele Gemini osiągają wysoką skuteczność w różnych testach wyszukiwania igły w stoku siana. Te testy uwzględniają najprostszą konfigurację, w której szukasz pojedynczej igły. W przypadku, gdy masz wiele „igieł” lub konkretnych informacji, których szukasz, model nie działa z taką samą dokładnością. Skuteczność może się znacznie różnić w zależności od kontekstu. Należy to wziąć pod uwagę, ponieważ istnieje nieodłączny kompromis między odzyskiwaniem odpowiednich informacji a kosztami. Możesz uzyskać wynik 99% w przypadku pojedynczego zapytania, ale za każdym razem, gdy je wysyłasz, musisz zapłacić za token wejściowy. Jeśli więc chcesz pobrać 100 elementów informacji, a potrzebna Ci wydajność na poziomie 99%, musisz wysłać 100 żądań. To dobry przykład sytuacji, w której buforowanie kontekstu może znacznie obniżyć koszty związane z korzystaniem z modeli Gemini, przy jednoczesnym zachowaniu wysokiej wydajności.
Najczęstsze pytania
Gdzie w oknie kontekstu najlepiej umieścić zapytanie?
W większości przypadków, zwłaszcza gdy cały kontekst jest długi, wydajność modelu będzie lepsza, jeśli umieścisz zapytanie lub pytanie na końcu prompta (po całym kontekście).
Czy dodanie do zapytania większej liczby tokenów powoduje spadek skuteczności modelu?
Jeśli nie musisz przekazywać tokenów do modelu, najlepiej ich nie przekazywać. Jeśli jednak masz dużą ilość tokenów z niektórymi informacjami i chcesz zadać pytania na ich temat, model jest w stanie wyodrębnić te informacje (w wielu przypadkach z dokładnością do 99%).
Jak mogę obniżyć koszty za pomocą zapytań z długim kontekstem?
Jeśli masz podobny zestaw tokenów lub kontekstu, którego chcesz używać wielokrotnie, buforowanie kontekstu może pomóc w obniżeniu kosztów związanych z zadawaniem pytań dotyczących tych informacji.
Czy długość kontekstu wpływa na opóźnienie modelu?
W przypadku każdego żądania występuje pewien określony czas oczekiwania, niezależnie od jego rozmiaru, ale dłuższe zapytania będą miały dłuższy czas oczekiwania (czas do pierwszego tokena).