Długi kontekst

Gemini 2.0 Flash i Gemini 1.5 Flash mają okno kontekstu o milionie tokenów, a Gemini 1.5 Pro – o 2 mln 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 w jednym momencie. Długie okno kontekstu Gemini 1.5, które zapewnia prawie idealne wyszukiwanie (ponad 99%), 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ć z długim kontekstem.

W tym przewodniku znajdziesz krótkie omówienie podstaw okna kontekstu, sposobów, w jakie deweloperzy powinni myśleć o długim kontekście, różnych przypadków użycia długiego kontekstu w praktyce oraz sposobów na optymalizację jego wykorzystania.

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

Większość modeli generatywnych utworzonych w ostatnich latach była w stanie przetwarzać tylko 8000 tokenów naraz. Nowsze modele obsługują 32 000 lub 128 000 tokenów. Gemini 1.5 to pierwszy model, który może przetwarzać 1 milion tokenów, a teraz 2 miliony tokenów dzięki Gemini 1.5 Pro.

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

Chociaż modele mogą uwzględniać coraz więcej kontekstu, wiele konwencjonalnych opinii na temat stosowania dużych modeli językowych zakłada to nieodłączne ograniczenie modelu, które w 2024 r. przestało już obowiązywać.

Oto kilka typowych strategii radzenia sobie z ograniczeniami związanymi z małymi oknami kontekstowymi:

  • losowe usuwanie starych wiadomości lub tekstu z okna kontekstowego, gdy pojawia się nowy tekst;
  • Podsumowywanie poprzednich treści i zastępowanie ich podsumowaniem, gdy okno kontekstu jest prawie pełne
  • Korzystanie z RAG w połączeniu z wyszukiwaniem semantycznym w celu przeniesienia danych z okna kontekstu do bazy danych wektorowych
  • Używanie filtrów deterministycznych lub generatywnych do usuwania z promptów określonych tekstów lub znaków w celu oszczędzania tokenów

Chociaż w pewnych przypadkach wiele z nich nadal jest odpowiednich, domyślnym miejscem rozpoczęcia jest teraz umieszczanie wszystkich tokenów w oknie kontekstu. Modele Gemini zostały zaprojektowane z długim oknem kontekstu, dzięki czemu są znacznie bardziej zdolne do uczenia się w kontekście. Na przykład dzięki wyłącznie materiałom instruktażowym (500-stronicowa gramatyka referencyjna, słownik i około 400 dodatkowych zdań równoległych) Gemini 1.5 Pro i Gemini 1.5 Flash potrafią się uczyć przekształcania z języka angielskiego na kalamaj – język papuaski, którym posługuje się mniej niż 200 mówców, a który prawie nie jest obecny w internecie – z jakością zbliżoną do tej, jaką osiąga osoba, która uczy się z tych samych materiałów.

Ten przykład pokazuje, jak można zacząć rozważać możliwości, jakie dają długi kontekst i możliwości uczenia się w kontekście modeli Gemini.

Przypadki użycia długiego kontekstu

Standardowe zastosowanie większości modeli generatywnych to nadal tekst, ale rodzina modeli Gemini 1.5 umożliwia nowy paradygmat zastosowań multimodalnych. Te modele mogą w standardowy sposób interpretować tekst, filmy, dźwięk i obrazy. Dla wygody użytkowników te interfejsy są uzupełnione o interfejs Gemini API, który obsługuje multimodalne typy plików.

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 (obecnie do 2 milionów w Gemini 1.5 Pro), 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, gdy nowe tokeny są przekazywane 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 agenci przechowują informacje o tym, co zrobili i co muszą zrobić. Brak wystarczającej ilości informacji o świecie i celu agenta ogranicza wiarygodność 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 nawet krótsze.

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 subtelności filmu, a większość narzędzi nie przetwarzała razem obrazu, tekstu i dźwięku. W modelu Gemini 1.5 możliwości przetwarzania tekstu z długim kontekstem przekładają się na zdolność do rozumowania i odpowiadania na pytania dotyczące danych wejściowych multimodalnych przy zachowaniu stałej wydajności. Gemini 1.5 Flash, testowany na problemie „igła w stogu siana” z milionem tokenów, uzyskał ponad 99,8% wspomnienia filmu w oknie kontekstu, a model 1.5 Pro osiągnął najlepszą wydajność w ramach benchmarku Video-MME.

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 1.5 były pierwszymi natywnymi multimodalnymi dużymi modelami językowymi, które potrafiły rozumieć dźwięk. Do tej pory typowy przepływ pracy programisty 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.

W przypadku standardowych ocen zbioru audio model Gemini 1.5 Pro jest w stanie znaleźć ukryte audio w 100% testów, a model Gemini 1.5 Flash – w 98,7% testów. Gemini 1.5 Flash obsługuje do 9,5 godzin dźwięku w ramach jednego żądania, a Gemini 1.5 Pro może obsłużyć do 19 godzin dźwięku w oknie kontekstu obejmującym 2 miliony tokenów. Ponadto na testowym zbiorze 15-minutowych klipów audio Gemini 1.5 Pro osiąga współczynnik błędów mowy (WER) na poziomie około 5,5%, co jest znacznie niższe niż w przypadku nawet wyspecjalizowanych modeli konwersji mowy na tekst, bez dodatkowej złożoności dodatkowego podziału danych na segmenty i wstępnego przetwarzania.

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 1.5 polega na użyciu buforowania 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 przesłane przez użytkownika i płacić za ich przechowywanie według stawki godzinowej. Koszt wejścia / wyjścia na żądanie przy użyciu Gemini 1.5 Flash jest około 4 razy niższy niż standardowy koszt wejścia / wyjścia, więc jeśli użytkownik wystarczająco często korzysta z czatu, możesz zaoszczędzić sporo na kosztach.

Ograniczenia długiego kontekstu

W różnych sekcjach tego przewodnika omawialiśmy, jak modele Gemini 1.5 osiągają wysoką skuteczność w różnych testach wyszukiwania igły w snopku. 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%, prawdopodobnie 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, działanie modelu będzie lepsze, 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 pewnymi 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%).

Jakie wyniki osiąga Gemini 1.5 Pro w standardowym teście „igła w snopku siana”?

Gemini 1.5 Pro osiąga 100% odtwarzalności do 530 tys.tokenów i ponad 99,7% odtwarzalności do 1 mln tokenów.

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.

Jak mogę uzyskać dostęp do okna kontekstu z 2 milionami tokenów?

Wszyscy deweloperzy mają teraz dostęp do okna kontekstu z 2 milionami tokenów w Gemini 1.5 Pro.

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).

Czy możliwości długoterminowego kontekstu różnią się między Gemini 1.5 Flash a Gemini 1.5 Pro?

Tak, niektóre liczby zostały wymienione w różnych sekcjach tego przewodnika, ale ogólnie Gemini 1.5 Pro zapewnia większą wydajność w przypadku większości zastosowań z długim kontekstem.