Wiele modeli Gemini ma duże okna kontekstu obejmujące milion lub więcej 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ć do modelu w jednym momencie. Długie okno kontekstu Gemini otwiera wiele nowych przypadków użycia i paradygmatów programistycznych.
Kod, którego używasz już w przypadku generowania tekstu lub danych wejściowych multimodalnych, będzie działać bez zmian w przypadku długiego kontekstu.
Ten dokument zawiera omówienie możliwości, jakie dają modele z oknami kontekstu o wielkości co najmniej miliona tokenów. Na stronie znajdziesz krótkie omówienie okna kontekstu oraz informacje o tym, jak deweloperzy powinni podchodzić do długiego kontekstu, różne rzeczywiste przypadki użycia długiego kontekstu oraz sposoby optymalizacji jego wykorzystania.
Rozmiary okien kontekstowych poszczególnych modeli znajdziesz na stronie Modele.
Czym jest okno kontekstu?
Podstawowy sposób korzystania z modeli Gemini polega na przekazywaniu do nich informacji (kontekstu), na podstawie których generują one odpowiedź. Okna kontekstowe można porównać do pamięci krótkotrwałej. 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 naszym przewodniku po modelach generatywnych.
Pierwsze kroki z długim kontekstem
Wcześniejsze wersje modeli generatywnych mogły przetwarzać tylko 8000 tokenów naraz. Nowsze modele poszły o krok dalej, akceptując 32 tys. lub nawet 128 tys. tokenów. Gemini to pierwszy model, który może przetwarzać 1 mln tokenów.
W praktyce 1 milion tokenów wyglądałby tak:
- 50 000 wierszy kodu (przy standardowej liczbie 80 znaków na wiersz)
- wszystkie SMS-y wysłane w ciągu ostatnich 5 lat;
- 8 średniej długości powieści w języku angielskim,
- Transkrypcje ponad 200 odcinków podcastów o średniej długości
W przypadku innych modeli, które mają mniejsze okna kontekstowe, często trzeba stosować strategie takie jak arbitralne usuwanie starych wiadomości, podsumowywanie treści, korzystanie z RAG z bazami danych wektorowych lub filtrowanie promptów w celu zaoszczędzenia tokenów.
Chociaż te techniki pozostają przydatne w określonych scenariuszach, rozbudowane okno kontekstu Gemini zachęca do bardziej bezpośredniego podejścia: dostarczania wszystkich istotnych informacji z góry. Modele Gemini zostały stworzone z myślą o obsłudze ogromnych kontekstów, dlatego wykazują się zaawansowanym uczeniem w kontekście. Na przykład korzystając tylko z materiałów instruktażowych w kontekście (500-stronicowy podręcznik gramatyki, słownik i ok. 400 równoległych zdań), Gemini nauczył się tłumaczyć z angielskiego na język kalamang – język papuaski, którym posługuje się mniej niż 200 osób – z jakością podobną do jakości tłumaczeń wykonywanych przez osobę, która uczy się tego języka i korzysta z tych samych materiałów. Ilustruje to zmianę paradygmatu, którą umożliwia długi kontekst Gemini, otwierając nowe możliwości dzięki solidnemu uczeniu w kontekście.
Przykłady użycia długiego kontekstu
Chociaż standardowym zastosowaniem większości modeli generatywnych jest nadal wprowadzanie tekstu, rodzina modeli Gemini umożliwia nowy paradygmat zastosowań multimodalnych. Te modele potrafią natywnie rozumieć tekst, filmy, dźwięk i obrazy. Towarzyszy im interfejs Gemini API, który przyjmuje wielomodalne typy plików, co jest wygodne.
Długi tekst
Tekst okazał się warstwą inteligencji, która leży u podstaw wielu postępów w zakresie dużych modeli językowych. Jak wspomnieliśmy wcześniej, wiele praktycznych ograniczeń LLM wynikało z niewystarczająco dużego okna kontekstu do wykonywania określonych zadań. Doprowadziło to do szybkiego przyjęcia generowania wspomaganego wyszukiwaniem (RAG) i innych technik, które dynamicznie dostarczają modelowi odpowiednie informacje kontekstowe. Obecnie, gdy okna kontekstu są coraz większe, pojawiają się nowe techniki, które otwierają nowe możliwości zastosowań.
Oto niektóre z nowych i standardowych zastosowań długiego kontekstu opartego na tekście:
- streszczanie dużych korpusów tekstowych;
- Wcześniejsze opcje podsumowywania z mniejszymi modelami kontekstowymi wymagały okna przesuwnego lub innej techniki, aby zachować stan poprzednich sekcji, gdy do modelu przekazywane były nowe tokeny.
- Pytania i odpowiedzi
- W przeszłości było to możliwe tylko w przypadku RAG ze względu na ograniczoną ilość kontekstu i niską dokładność modeli.
- Przepływy pracy agenta
- Tekst jest podstawą tego, jak agenci śledzą, co zrobili i co muszą zrobić. Brak wystarczających informacji o świecie i celu agenta ogranicza jego wiarygodność.
Uczenie się w kontekście z wieloma przykładami to jedna z najbardziej unikalnych możliwości, jakie dają modele z długim kontekstem. Badania wykazały, że zastosowanie popularnego paradygmatu „jednego przykładu” lub „wielu przykładów”, w którym model otrzymuje jeden lub kilka przykładów zadania, i zwiększenie liczby przykładów do setek, tysięcy, a nawet setek tysięcy może prowadzić do nowych możliwości modelu. Wykazano też, że to podejście z wieloma przykładami działa podobnie jak modele dostrojone do konkretnego zadania. W przypadku zastosowań, w których wydajność modelu Gemini nie jest jeszcze wystarczająca do wdrożenia w środowisku produkcyjnym, możesz wypróbować podejście z wieloma przykładami. Jak dowiesz się w sekcji poświęconej optymalizacji długiego kontekstu, buforowanie kontekstu sprawia, że ten rodzaj zadań z dużą liczbą tokenów wejściowych staje się znacznie bardziej opłacalny, a w niektórych przypadkach nawet skraca czas oczekiwania.
Długi film
Użyteczność treści wideo od dawna jest 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 obrazów, tekstu i dźwięku jednocześnie. W przypadku 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 wejściowych multimodalnych przy zachowaniu stałej wydajności.
Oto niektóre z nowych i standardowych zastosowań długiego kontekstu wideo:
- Odpowiadanie na pytania dotyczące filmu
- Pamięć wideo, jak pokazano w Project Astra od Google
- Napisy do filmów
- systemy rekomendacji filmów, które wzbogacają istniejące metadane o nowe informacje uzyskane dzięki wielomodowej analizie;
- dostosowywanie filmów na podstawie analizy zbioru danych i powiązanych metadanych filmów, a następnie usuwanie części filmów, które nie są istotne dla widza;
- Moderowanie treści wideo
- Przetwarzanie wideo w czasie rzeczywistym
Podczas pracy z filmami ważne jest, aby wziąć pod uwagę, w jaki sposób filmy są przetwarzane na tokeny, co ma wpływ na rozliczenia i limity wykorzystania. Więcej informacji o promptach z plikami wideo znajdziesz w przewodniku po promptach.
Długie nagrania audio
Modele Gemini były pierwszymi natywnie multimodalnymi dużymi modelami językowymi, które potrafiły rozumieć dźwięk. W przeszłości typowy przepływ pracy dewelopera polegał na łączeniu ze sobą wielu modeli z określonych dziedzin, np. modelu zamiany mowy na tekst i modelu zamiany tekstu na tekst, w celu przetwarzania dźwięku. Powodowało to dodatkowe opóźnienia wynikające z wykonywania wielu żądań w obie strony i spadek wydajności, który zwykle przypisuje się rozłączonym architekturam w konfiguracji z wieloma modelami.
Do nowych i standardowych zastosowań kontekstu audio należą:
- Transkrypcja i tłumaczenie w czasie rzeczywistym
- Odpowiadanie na pytania dotyczące podcastów i filmów
- Transkrypcja i podsumowanie spotkania
- Asystenci głosowi
Więcej informacji o promptach z plikami audio znajdziesz w przewodniku po promptach.
Optymalizacje długiego kontekstu
Podczas pracy z długim kontekstem i modelami Gemini podstawową optymalizacją jest używanie pamięci podręcznej kontekstu. Oprócz niemożności przetwarzania wielu tokenów w jednym żądaniu głównym ograniczeniem był koszt. Jeśli masz aplikację do „czatowania z danymi”, w której użytkownik przesyła 10 plików PDF, film i dokumenty robocze, musisz użyć bardziej złożonego narzędzia lub platformy do generowania odpowiedzi na podstawie pobranych informacji (RAG), aby przetworzyć te żądania i zapłacić znaczną kwotę za tokeny przeniesione do okna kontekstu. Możesz teraz buforować pliki przesyłane przez użytkownika i płacić za ich przechowywanie w systemie godzinowym. Koszt wejścia / wyjścia na żądanie w przypadku 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 wystarczająco często rozmawia z danymi, możesz jako deweloper znacznie obniżyć koszty.
Ograniczenia długiego kontekstu
W różnych sekcjach tego przewodnika pisaliśmy o tym, jak modele Gemini osiągają wysoką skuteczność w różnych testach wyszukiwania igły w stogu siana. Te testy uwzględniają najbardziej podstawową konfigurację, w której szukasz jednej igły. W przypadku, gdy szukasz wielu „igieł” lub konkretnych informacji, model nie działa z taką samą dokładnością. Skuteczność może się znacznie różnić w zależności od kontekstu. Jest to ważne, ponieważ istnieje nieodłączna zależność między uzyskaniem odpowiednich informacji a kosztem. W przypadku pojedynczego zapytania możesz uzyskać około 99% dokładności, ale za każdym razem, gdy je wysyłasz, musisz zapłacić za tokeny wejściowe. Aby uzyskać 100 informacji, przy wydajności na poziomie 99% prawdopodobnie trzeba będzie 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 najlepiej umieścić zapytanie w oknie kontekstu?
W większości przypadków, zwłaszcza gdy cały kontekst jest długi, model działa lepiej, jeśli zapytanie lub pytanie umieścisz na końcu promptu (po całym kontekście).
Czy dodanie większej liczby tokenów do zapytania wpłynie na skuteczność modelu?
Jeśli nie musisz przekazywać tokenów do modelu, najlepiej ich nie przekazywać. Jeśli jednak masz dużą liczbę tokenów z pewnymi informacjami i chcesz zadać pytania dotyczące tych informacji, model jest w stanie je wyodrębnić (w wielu przypadkach z dokładnością do 99%).
Jak mogę obniżyć koszty związane z zapytaniami o długim kontekście?
Jeśli masz podobny zestaw tokenów lub kontekst, którego chcesz wielokrotnie używać, buforowanie kontekstu może pomóc obniżyć koszty związane z zadawaniem pytań o te informacje.
Czy długość kontekstu wpływa na czas oczekiwania modelu?
W przypadku każdego żądania występuje pewne stałe opóźnienie, niezależnie od rozmiaru, ale ogólnie dłuższe zapytania będą miały większe opóźnienie (czas do pierwszego tokena).