Inżynieria kontekstu reprezentuje znaczącą zmianę w sztucznej inteligencji, odchodząc od pojedynczych podpowiedzi i zmierzając w kierunku budowania kompleksowych ekosystemów informacyjnych wokół dużych modeli językowych (LLMs). Ponieważ aplikacje AI ewoluują od podstawowych chatbotów do zaawansowanych agentów zdolnych do wykonywania skomplikowanych, wieloetapowych zadań, jakość danych wyjściowych modelu coraz bardziej zależy od dostarczonych informacji. Dlatego inżynieria kontekstu stała się niezbędna do tworzenia niezawodnych i potężnych aplikacji AI, które zapewniają imponujące doświadczenia użytkownikom.
Zmiana paradygmatu: Od podpowiedzi do systemów
Następuje przesunięcie nacisku z tworzenia pojedynczych podpowiedzi na systematyczne budowanie kompletnego ekosystemu informacyjnego wokół dużych modeli językowych (LLMs). Ponieważ aplikacje AI ewoluują od prostych chatbotów do inteligentnych agentów zdolnych do wykonywania złożonych, wieloetapowych zadań, jakość danych wyjściowych modelu staje się coraz bardziej zależna od jakości dostarczanych informacji. Liderzy branży i badacze AI uznają znaczenie tej zmiany, podkreślając potrzebę zapewnienia LLMs kompleksowego kontekstu, aby skutecznie rozwiązywać zadania. Inżynieria kontekstu obejmuje sztukę i naukę wypełniania okna kontekstu odpowiednimi informacjami, umożliwiając modelom podejmowanie dokładnych decyzji.
Centralnym argumentem jest to, że przyczyną niepowodzenia większości inteligentnych agentów jest niedobór kontekstu, a nie błąd modelu. To twierdzenie redefiniuje podstawowe wyzwanie inżynierii AI, przenosząc uwagę ze strojenia modelu na rozwój systemów wspierających informacje. Zrozumienie i opanowanie inżynierii kontekstu stało się warunkiem koniecznym do budowania niezawodnych, solidnych aplikacji AI.
Definiowanie inżynierii kontekstu
Inżynieria kontekstu to nie tylko ulepszona wersja inżynierii podpowiedzi; to unikalna dyscyplina inżynieryjna na poziomie systemu, która koncentruje się na tworzeniu dynamicznego systemu dostarczania informacji, a nie na zwykłej optymalizacji wprowadzania tekstu.
Inżynierię kontekstu można zdefiniować jako dyscyplinę inżynierską skoncentrowaną na projektowaniu i budowaniu dynamicznych systemów, które zapewniają LLMs informacje i narzędzia potrzebne do poprawnego wykonywania zadań, we właściwym formacie i we właściwym czasie.
Kluczowe komponenty:
- "Projektowanie i budowanie dynamicznych systemów": Podkreśla to, że inżynieria kontekstu jest działalnością inżynieryjną, koncentrującą się na architekturze systemu, a nie tylko na sformułowaniach. Kontekst jest wynikiem systemu, który działa przed głównym wywołaniem LLM. Inżynierowie muszą budować potoki danych, moduły pamięci i mechanizmy wyszukiwania informacji, aby przygotować pamięć roboczą LLM.
- "Poprawne informacje i narzędzia": Obejmuje fakty, dane, zawartość bazy wiedzy (poprzez RAG) i preferencje użytkownika. Narzędzia odnoszą się do możliwości, takich jak interfejsy API, funkcje lub zapytania do bazy danych. Zapewnienie zarówno wiedzy, jak i możliwości jest fundamentalne dla złożonych zadań.
- "Poprawny format, we właściwym czasie": Podkreśla znaczenie prezentacji informacji i czasu. Zwięzłe podsumowanie jest często lepsze niż surowe dane, a jasny schemat narzędzia jest bardziej skuteczny niż niejasne instrukcje. Zapewnienie kontekstu na żądanie jest kluczowe, aby uniknąć rozpraszania modelu nieistotnymi informacjami.
- "Niezawodne ukończenie zadania": To jest ostateczny cel inżynierii kontekstu. Przekształca aplikacje AI w niezawodne systemy, które mogą konsekwentnie wytwarzać wysokiej jakości dane wyjściowe. Dzięki precyzyjnemu zarządzaniu kontekstem dane wyjściowe stają się bardziej spójne, redukują halucynacje i wspierają złożone, długoterminowe przepływy pracy inteligentnych agentów.
Ewolucja od inżynierii podpowiedzi do inżynierii kontekstu
Chociaż zarówno inżynieria kontekstu, jak i inżynieria podpowiedzi mają na celu optymalizację wyjścia LLM, różnią się zakresem, charakterem i celami. Porównanie na poziomie systemu podkreśla te różnice:
- Zakres: Inżynieria podpowiedzi koncentruje się na optymalizacji pojedynczych interakcji lub ciągów tekstowych, podczas gdy inżynieria kontekstu koncentruje się na całym ekosystemie informacyjnym, obejmującym pełny cykl życia zadania.
- Dynamizm: Podpowiedzi są zwykle statyczne, podczas gdy kontekst jest generowany dynamicznie na podstawie zadania i ewoluuje podczas interakcji.
- Skład wprowadzania: Inżynierowie podpowiedzi budują dane wejściowe wokół zapytań użytkownika, podczas gdy inżynierowie kontekstu postrzegają zapytania użytkownika jako tylko jedną część większego "pakietu kontekstowego", który obejmuje instrukcje systemowe, pobrane dokumenty, wyniki narzędzi i historię konwersacji.
- Analogia: Jeśli podpowiedzi są jak pojedyncza linia w sztuce, kontekst jest całym planem filmowym, historią tła i scenariuszem, które razem zapewniają głębię i znaczenie.
Poniższa tabela dodatkowo porównuje te dwie:
Inżynieria podpowiedzi vs. Inżynieria kontekstu
Wymiar | Inżynieria podpowiedzi | Inżynieria kontekstu |
---|---|---|
Zakres | Pojedyncza interakcja, pojedynczy ciąg wejściowy | Cały przepływ pracy inteligentnego agenta, pełny ekosystem informacji |
Charakter | Statyczny lub półstatyczny, oparty na szablonach | Dynamiczny, składany w czasie rzeczywistym, ewoluuje wraz z zadaniem |
Cel | Poprowadź LLM do udzielenia wysokiej jakości odpowiedzi | Umożliwienie LLM niezawodnego wykonywania złożonych zadań w sposób ciągły |
Podstawowy produkt | Zoptymalizowane szablony podpowiedzi, zestawy instrukcji | Potoki danych, systemy RAG, moduły pamięci, menedżery stanu |
Podstawowe umiejętności | Lingwistyka, rozumowanie logiczne, projektowanie instrukcji | Architektura systemu, inżynieria danych, tworzenie oprogramowania |
Podstawowa analogia | Zadawanie precyzyjnego pytania | Budowanie obszernej biblioteki dla badacza |
Re-definiowanie inżynierii AI
To przesunięcie od inżynierii podpowiedzi do inżynierii kontekstu zmienia rolę inżynierów AI. Inżynieria podpowiedzi koncentruje się na doskonaleniu ciągów wejściowych, wymagających umiejętności w zakresie lingwistyki i logiki. Jednak gdy zadaniem staje się budowanie systemów, które dynamicznie składają te dane wejściowe z baz danych, API i pamięci, podstawowe umiejętności przesuwają się w kierunku inżynierii oprogramowania i architektury systemu.
Frameworki takie jak LangChain i LlamaIndex są popularne, ponieważ wspierają inżynierię kontekstu, oferując wzorce architektoniczne do konstruowania dynamicznych systemów składania kontekstu, takich jak Chains, Graphs i Agents.
Rozwój inżynierii kontekstu oznacza przesunięcie w rozwoju AI z dziedziny skoncentrowanej na modelach, niszowej do głównego nurtu dyscypliny inżynierii oprogramowania. Głównym wyzwaniem jest nie tylko sam model, ale cały stos aplikacji zbudowany wokół niego.
Kontekst: Sekcja i zasady
Ta sekcja szczegółowo opisuje komponenty "kontekstu" i przedstawia zasady skutecznego zarządzania.
Dekonstrukcja okna kontekstu
Okno kontekstu to suma informacji, które model może "zobaczyć" lub "zapamiętać" podczas generowania odpowiedzi. Kompletny "pakiet kontekstowy" to suma wszystkich dostarczonych informacji.
- Instrukcje/Podpowiedź systemowa: Ta podstawowa warstwa definiuje zachowanie modelu, ustawiając jego rolę, styl, zasady, ograniczenia i cele.
- Podpowiedź użytkownika: Bezpośrednie pytanie lub instrukcja zadania, która uruchamia inteligentnego agenta.
- Historia konwersacji/Pamięć krótkotrwała: Poprzednie wymiany zapewniają bezpośredni kontekst, zarządzany poprzez przycinanie lub podsumowywanie ze względu na ograniczenia okna kontekstu.
- Pamięć długotrwała: Trwała baza wiedzy, która rejestruje informacje uzyskane z interakcji, takie jak preferencje użytkownika, podsumowania projektów lub fakty wyraźnie przekazane do zapamiętania.
- Pobrane informacje/RAG: Aby przezwyciężyć odcięcie wiedzy i zapewnić odpowiedzi oparte na faktach, system dynamicznie pobiera odpowiednie informacje z zewnętrznych źródeł wiedzy.
- Dostępne narzędzia: Definiuje schematy i opisy wywoływalnych funkcji lub wbudowanych narzędzi, dając modelowi moc działania, a nie tylko wiedzy.
- Wyniki narzędzi: Wyniki wywołań narzędzi muszą być ponownie wstrzyknięte do kontekstu, aby model mógł ich używać w późniejszym rozumowaniu i działaniach.
- Ustrukturyzowany schemat wyjściowy: Definiuje oczekiwany format wyjściowy (taki jak JSON Schema), aby kierować ustrukturyzowanymi, przewidywalnymi wynikami.
Ramy "LLM jako systemu operacyjnego"
Ta analogia zapewnia solidne ramy teoretyczne do zrozumienia i praktykowania zarządzania kontekstem.
LLM jako CPU, okno kontekstu jako pamięć RAM: Ta analogia pozycjonuje okno kontekstu jako ograniczony i cenny zasób. Inżynieria kontekstu jest jak zarządzanie OS, efektywnie ładując odpowiednie informacje we właściwym czasie do pamięci roboczej.
Kontekst jądra vs. Kontekst użytkownika: Te ramy dzielą kontekst na dwie warstwy; podobnie jak przestrzeń jądra i przestrzeń użytkownika.
- Kontekst jądra: Reprezentuje zarządzany, zmienny, trwały stan inteligentnego agenta. Obejmuje podstawowe bloki pamięci i systemy plików, które LLM może obserwować, ale modyfikować tylko poprzez kontrolowane "wywołania systemowe".
- Kontekst użytkownika: Reprezentuje "przestrzeń użytkownika" lub bufor wiadomości, w którym zachodzą dynamiczne interakcje. Obejmuje wiadomości użytkownika, odpowiedzi asystenta i wywołania nieuprzywilejowanych narzędzi "programu użytkownika".
Wywołania systemowe i narzędzia niestandardowe: To rozróżnienie wyjaśnia, jak agent wchodzi w interakcje ze swoim stanem wewnętrznym i światem zewnętrznym. Wywołania systemowe modyfikują kontekst jądra, zmieniając trwały stan agenta, podczas gdy narzędzia niestandardowe wprowadzają informacje zewnętrzne do kontekstu użytkownika.
Zasady przewodnie inżynierii kontekstu
Skuteczna inżynieria kontekstu opiera się na podstawowych zasadach, wywodzących się od praktyków, w celu budowania niezawodnych systemów inteligentnych agentów.
- Ciągły i kompleksowy kontekst: Znany również jako "Zobacz wszystko", ta zasada wymaga, aby agent miał dostęp do pełnej historii operacyjnej, w tym poprzednich interakcji z użytkownikami, wyników wywołań narzędzi, wewnętrznych procesów myślowych i wyników pośrednich.
- Unikaj nieskoordynowanego paralelizmu: Umożliwienie wielu sub-agentom lub sub-zadaniom pracę równolegle bez wspólnego, stale aktualizowanego kontekstu prawie nieuchronnie prowadzi do niezgodności danych wyjściowych, sprzecznych celów i niepowodzeń.
- Dynamiczny i rozwijający się kontekst: Kontekst nie powinien być statycznym blokiem informacji. Musi być składany i rozwijany dynamicznie na podstawie postępu zadania, nabywając lub aktualizując informacje w czasie wykonywania.
- Pełne pokrycie kontekstowe: Model musi być wyposażony we wszystkie informacje, których może potrzebować, a nie tylko w najnowsze pytanie użytkownika. Cały pakiet wejściowy (instrukcje, dane, historia itp.) musi być starannie zaprojektowany.
Strategie zarządzania kontekstem:
Pisanie: Utrwalanie kontekstu:
Obejmuje to przechowywanie informacji poza oknem natychmiastowego kontekstu do przyszłego użytku, budując możliwości pamięci agenta.
- Brudnopisy: Używane do przechowywania pamięci krótkotrwałej w ramach sesji.
- Systemy pamięci: Używane do budowania pamięci długotrwałej w różnych sesjach.
Wybieranie: Pobieranie kontekstu:
Obejmuje to przenoszenie odpowiednich informacji z pamięci zewnętrznej do okna kontekstu we właściwym czasie.
- Wybieranie z pamięci/brudnopisów: Agent musi być w stanie skutecznie przeszukiwać swoją utrwaloną pamięć i brudnopisy, gdy potrzebuje przywołać przeszłą wiedzę.
- Wybieranie z narzędzi: Gdy agent ma wiele dostępnych narzędzi, skuteczne jest stosowanie technik RAG do samych opisów narzędzi, dynamicznie pobierając i udostępniając tylko najbardziej odpowiednie narzędzia na podstawie bieżącego zadania.
- Wybieranie z wiedzy: Jest to podstawowa funkcja Retrieval-Augmented Generation (RAG), dynamicznego pozyskiwania informacji faktograficznych z zewnętrznych baz wiedzy w celu zwiększenia możliwości odpowiadania modelu.
Kompresowanie: Optymalizacja kontekstu:
Obejmuje to zmniejszenie liczby tokenów używanych w kontekście przy jednoczesnym zachowaniu podstawowych informacji.
- Podsumowywanie: Używanie LLM do podsumowywania długich historii konwersacji, dokumentów lub wyników narzędzi, wydobywając kluczowe informacje.
- Przycinanie: Używanie reguł heurystycznych do ograniczenia kontekstu, takich jak po prostu usuwanie najwcześniejszych rund dialogu, gdy historia konwersacji jest zbyt długa.
Izolowanie: Partycjonowanie kontekstu:
Obejmuje to dekompozycję kontekstu na różne części w celu poprawy ostrości modelu i zarządzania złożonością zadania.
- Systemy wieloagentowe: Duże zadania można podzielić między wielu sub-agentów, z których każdy ma swój własny dedykowany, izolowany kontekst, narzędzia i instrukcje.
- Środowiska typu sandbox: Operacje, które zużywają dużą liczbę tokenów, można uruchamiać w izolowanym środowisku, zwracając tylko ostateczne kluczowe wyniki do kontekstu głównego LLM.
Zaawansowane architektury pamięci
Pamięć ma kluczowe znaczenie dla budowania inteligentnych agentów, którzy mogą się uczyć i dostosowywać. Kluczowe komponenty obejmują pamięć krótkotrwałą za pośrednictwem buforów historii dialogów i brudnopisów oraz pamięć długotrwałą dla trwałości i personalizacji.
Techniki implementacji:
- Automatyczne generowanie pamięci: System może automatycznie generować i przechowywać wspomnienia na podstawie interakcji z użytkownikiem.
- Mechanizmy refleksji: Agent może dokonać autorefleksji nad swoim zachowaniem i wynikami po wykonaniu zadań, syntetyzując wyciągnięte lekcje w nowe wspomnienia.
- Podsumowywanie dialogów: Regularnie podsumowuj przeszłe konwersacje i przechowuj podsumowania jako część pamięci długotrwałej.
Ustrukturyzowana pamięć (temporalne grafy wiedzy): Bardziej zaawansowana architektura pamięci, która przechowuje nie tylko fakty, ale także relacje między faktami i znaczniki czasu dla każdej informacji.
Retrieval-Augmented Generation (RAG): Kamień węgielny inżynierii kontekstu
RAG to podstawowa technika "wybierania" wiedzy zewnętrznej w inżynierii kontekstu, łącząca LLMs z zewnętrznymi bazami wiedzy. Typowy system RAG ma trzy etapy:
- Indeksowanie: Dokumenty są dzielone na bloki semantyczne, a następnie przekształcane w wielowymiarowe wektory za pomocą modelu osadzania. Te wektory i teksty źródłowe są przechowywane w bazie danych wektorowych.
- Pobieranie: Użytkownik konwertuje zapytanie na wektor za pomocą tego samego modelu osadzania i przeszukuje bazę danych wektorów w poszukiwaniu innych bliskich wektorów z podobnymi zapytaniami.
- Generowanie: System łączy oryginalne zapytanie i powiązane fragmenty tekstu w podpowiedź, a następnie przesyła ją do LLM, aby wygenerować odpowiednią odpowiedź.
Zaawansowane strategie pobierania i rankingu
Podstawowa architektura RAG często potrzebuje bardziej złożonych strategii, aby poprawić jakość pobierania w świecie rzeczywistym. Połączenie wyszukiwania semantycznego z indeksami słów kluczowych i rankingiem ma kluczowe znaczenie dla poprawy jakości wyszukiwania. Pobieranie informacji kontekstowych Anthropic poprawi kontekst LLMs.
- Wyszukiwanie hybrydowe: Łączy wyszukiwanie semantyczne (na podstawie wektorów) i wyszukiwanie słów kluczowych, aby wykorzystać wzajemnie uzupełniające się mocne strony.
- Pobieranie kontekstowe: Używa LLM do wygenerowania krótkiego podsumowania kontekstu każdego bloku tekstu.
- Ponowne ranking: Dodaje krok ponownego rankingu, używając silniejszego modelu do ponownego sortowania wyników na podstawie trafności.
RAG vs. Dostrajanie: Ramy strategicznej decyzji
Wybór między RAG a dostrajaniem to kluczowa decyzja. Wybór zależy od wymagań projektu.
Zalety RAG:
- Nadaje się do integracji wiedzy w czasie rzeczywistnym
- Redukuje halucynacje, dostarczając weryfikowalnych faktów
- Umożliwia przedsiębiorstwom przechowywanie zastrzeżonych danych w bezpiecznych wewnętrznych bazach danych
Zalety dostrajania:
- Najlepsze do uczenia modelu nowego zachowania, stylu mowy lub specjalistycznej terminologii
- Może dopasować dane wyjściowe modelu do wizerunku marki organizacji
Podejścia hybrydowe: Aby uzyskać najlepszą wydajność modelów, należy używać zarówno dostrajania pod kątem wydajności, jak i RAG pod kątem dokładności.
Optymalizacja i filtrowanie kontekstu
Nawet używając potężnych mechanizmów pobierania, zarządzając oknem kontekstu i unikając typowych błędów, nadal napotkasz błędy.
Typowe tryby awarii:
- Zatrucie kontekstu: kiedy pozornie faktyczny błąd jest prezentowany, skorumpuje cały system od tego momentu.
- Rozproszenie kontekstu: Modele rozpraszają się, gdy są prezentowane z nieistotnymi informacjami.
- Pomieszanie kontekstu: Informacje kontekstowe mogą być przytłaczające dla modelu, prowadząc go z dala od poprawnej odpowiedzi.
- Konflikt kontekstu: Modele mylą się ze sprzecznymi informacjami i mogą dawać sprzeczne odpowiedzi.
Rozwiązania:
Inżynierowie muszą przyjąć techniki filtrowania, aby złagodzić te awarie. Upewnienie się, że pamięć robocza modelu jest pełna wysoce istotnych i całkowicie zoptymalizowanych informacji, staje się niezbędne w praktyce i teorii.
Inżynieria kontekstu w praktyce: Studia przypadków
Analiza różnych aplikacji zapewnia głębsze zrozumienie wartości i implementacji inżynierii kontekstu.
Asystenci programowania AI
- Problem: Wczesne próby programowania AI były często chaotyczne, polegając na niejasnych podpowiedziach z niewielkim zrozumieniem większej bazy kodu.
- Rozwiązanie: Traktuj dokumentację projektu, wytyczne dotyczące kodu, wzorce projektowe i wymagania jak każde zasoby inżynieryjne.
Wyszukiwanie w przedsiębiorstwie i zarządzanie wiedzą
- Problem: Tradycyjne wyszukiwarki korporacyjne opierają się na dopasowywaniu słów kluczowych, nie rozumiejąc intencji użytkownika, roli zawodowej ani powodu jego wyszukiwania.
- Rozwiązanie: Buduj inteligentne systemy wyszukiwania, używając kontekstu do zrozumienia każdego wyszukiwania.
Zautomatyzowana obsługa klienta
- Problem: Ogólne LLMs nie znają specyfikacji produktu, zasad zwrotów ani historii klienta, co prowadzi do niedokładnych lub niepomocnych odpowiedzi.
- Rozwiązanie: Używaj chatbotów opartych na RAG, systemów, które pobierają informacje z bazy wiedzy firmy, aby zapewnić dokładną, spersonalizowaną i aktualną pomoc.
Spersonalizowane silniki rekomendacji
- Problem: Tradycyjne systemy rekomendacji mają trudności z uchwyceniem natychmiastowej, konkretnej intencji użytkowników, co skutkuje ogólnymi rekomendacjami.
- Rozwiązanie: Inżynieria kontekstu wykorzystuje RAG, aby uczynić doświadczenie bardziej konwersacyjnym.
Łagodzenie fundamentalnych wad dużych modeli językowych
Inżynieria kontekstu jest kluczowym sposobem na rozwiązanie dwóch podstawowych niedociągnięć LLM: halucynacji i odcięcia wiedzy.
Przeciwdziałanie halucynacjom
Problem: Kiedy LLMs są niepewne lub brakuje im odpowiedniej wiedzy, mają tendencję do fabrykowania wiarygodnych, ale nieprawdziwych informacji.
Rozwiązanie: Inżynieria kontekstu, zwłaszcza RAG, to najskuteczniejsze strategie.
- Zapewnij podstawę faktyczną: Zapewniając weryfikowalne dokumenty z zaufanego źródła podczas odpowiadania, można skutecznie unikać halucynacji.
- Uczciwość "Nie wiem.": Aby być przejrzystym, wskaż modelom, aby pokazywały "Nie wiem", gdy żadne informacje nie są dostępne.