Długi kontekst

Modele 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 wejścia multimodalne, będzie działać w przypadku długiego kontekstu.

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 od 2024 r. nie jest już aktualne.

Oto kilka typowych strategii radzenia sobie z ograniczeniami dotyczącymi małych okien kontekstowych:

  • 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 wektorów
  • 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 są zdolne do nauki tłumaczenia z języka angielskiego na kalamandżański – 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 jakości tłumacza, który nauczył się z tych samych materiałów.

Ten przykład pokazuje, jak można zacząć myśleć o tym, co jest możliwe dzięki długiemu kontekstowi i możliwościom 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 interfejs Gemini API obsługuje multimodalne typy plików.

Długi tekst

Tekst okazał się warstwą inteligencji, która napędza większość dynamiki związanej z modelami 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ą stosowanie nowych przypadków użycia.

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
    • W przeszłości 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 powszechnej metody „jednego przykładu” lub „wielu przykładów”, w której modelowi przedstawia się jeden lub kilka przykładów zadania, a potem zwiększa się ich liczbę do setek, tysięcy lub 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 przypadkach, gdy wydajność modelu Gemini nie jest jeszcze wystarczająca do wdrożenia w wersji produkcyjnej, 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. W modelu Gemini 1.5 możliwości przetwarzania tekstu z długim kontekstem przekładają się na zdolność do wnioskowania i odpowiadania na pytania dotyczące danych wejściowych multimodalnych przy zachowaniu wysokiej wydajności. Gemini 1.5 Flash, testowany na problemie „igła w stogu siana” w filmie z milionem tokenów, uzyskał ponad 99,8% przywołania filmu w oknie kontekstu, a model 1.5 Pro osiągnął najwyższą 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 wpływa 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. Dotychczas typowy proces programisty polegał na łączeniu wielu modeli do przetwarzania mowy, takich jak modele „mowa na tekst” i „tekst 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 dźwięku Gemini 1.5 Pro jest w stanie znaleźć ukryty dźwięk w 100% testów, a Gemini 1.5 Flash – w 98,7% testów. Gemini 1.5 Flash obsługuje do 9,5 godziny dźwięku w ramach jednego żądania, a Gemini 1.5 Pro może przetwarzać do 19 godzin dźwięku w oknie kontekstu z 2 milionami 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 z Gemini 1.5 Flash jest około 4 razy niższy niż standardowy koszt wejścia / wyjścia, więc jeśli użytkownik będzie wystarczająco często korzystać z czatu, będzie to dla Ciebie jako dewelopera ogromną oszczędnością.

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

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 wydobyć 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 stały 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ługiego 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 sprawdza się lepiej w przypadku większości długich przypadków użycia.