Разбиране на контекстното инженерство на LLM

Контекстното инженерство представлява значителен преход в изкуствения интелект, който се отдалечава от отделните подкани и се насочва към изграждането на всеобхватни информационни екосистеми около големите езикови модели (LLM). Тъй като AI приложенията еволюират от основни чатботове до сложни агенти, способни да изпълняват сложни, многоетапни задачи, качеството на изходите на модела все повече зависи от предоставената информация. Следователно контекстното инженерство стана от съществено значение за създаването на надеждни и мощни AI приложения, които предоставят впечатляващи потребителски изживявания.

Преминаване от подкани към системи

Фокусът се измества от създаването на отделни подкани към систематичното изграждане на цялостна информационна екосистема около големите езикови модели (LLM). Тъй като AI приложенията еволюират от прости чатботове до интелигентни агенти, способни да изпълняват сложни, многоетапни задачи, качеството на изхода на модела става все по-зависимо от качеството на предоставената информация. Лидерите в индустрията и AI изследователите признават важността на тази промяна, като подчертават необходимостта да се предоставят на LLM всеобхватен контекст, за да се решават ефективно задачите. Контекстното инженерство включва изкуството и науката за запълване на контекстния прозорец с правилната информация, което позволява на моделите да вземат точни решения.

Централният аргумент е, че неуспехът на повечето интелигентни агенти произтича от дефицит на контекст, а не от провал на модела. Това твърдение предефинира основното предизвикателство на AI инженерството, като измества вниманието от настройката на модела към разработването на системи за поддръжка на информацията. Разбирането и овладяването на контекстното инженерство се превърна в предпоставка за изграждането на надеждни, стабилни AI приложения.

Дефиниране на контекстното инженерство

Контекстното инженерство не е просто подобрена версия на инженерството на подкани; това е уникална инженерна дисциплина на системно ниво, фокусирана върху създаването на динамична система за доставка на информация, а не просто върху оптимизирането на текстовия вход.

Контекстното инженерство може да бъде дефинирано като инженерна дисциплина, фокусирана върху проектирането и конструирането на динамични системи, които предоставят на LLM информацията и инструментите, необходими за правилното, във всеки един от точните формати и да изпълняват задачите навреме.

Ключови компоненти:

  • “Проектиране и конструиране на динамични системи”: Това подчертава, че контекстното инженерство е инженерна дейност, фокусирана върху системната архитектура, а не само върху формулировката. Контекстът е резултат от система, която работи преди основното LLM повикване. Инженерите трябва да изградят тръбопроводи за данни, модули за памет и механизми за извличане на информация, за да подготвят работната памет на LLM.
  • “Коректна информация и инструменти”: Обхваща факти, данни, съдържание на база знания (чрез RAG) и потребителски предпочитания. Инструментите се отнасят до възможности като API интерфейси, функции или заявки към база данни. Предоставянето както на знания, така и на възможности е от основно значение за сложни задачи.
  • “Правилен формат, в правилния момент”: Подчертава важността на представянето и времето на информацията. Краткото резюме често е по-добро от необработените данни, а ясна схема на инструменти е по-ефективна от неясните инструкции. Предоставянето на контекст при поискване е от решаващо значение, за да се избегне разсейването на модела с неподходяща информация.
  • “Надеждно изпълнение на задачата”: Това е крайната цел на контекстното инженерство. Той трансформира AI приложенията в надеждни системи, които могат последователно да произвеждат висококачествени резултати. С прецизното управление на контекста, резултатите стават по-последователни, намаляват халюцинациите и поддържат сложни, дългоцикълни работни процеси на интелигентен агент.

Еволюцията от инженерството на подкани към контекстното инженерство

Докато контекстното инженерство и инженерството на подкани имат за цел да оптимизират изхода на LLM, те се различават по обхват, природа и цели. Сравнението на системно ниво подчертава тези разлики:

  • Обхват: Инженерството на подкани се фокусира върху оптимизирането на единични взаимодействия или текстови низове, докато контекстното инженерство се фокусира върху цялата информационна екосистема, покривайки целия жизнен цикъл на задачата.
  • Динамизъм: Подканите обикновено са статични, докато контекстът се генерира динамично въз основа на задачата и се развива по време на взаимодействието.
  • Състав на входа: Инженерите на подкани изграждат входове около потребителски заявки, докато контекстните инженери виждат потребителските заявки като само част от по-голям “пакет контекст”, който включва системни инструкции, извлечени документи, изходи на инструменти и история на разговорите.
  • Аналогия: Ако подканите са като един ред в пиеса, контекстът е целият декор на филма, предисторията и сценария, които заедно осигуряват дълбочина и смисъл.

Таблицата по-долу допълнително сравнява двете:

Инженерство на подкани срещу контекстно инженерство

Измерение Инженерство на подкани Контекстно инженерство
Обхват Единично взаимодействие, единичен входен низ Цял работен процес на интелигентен агент, пълна информационна екосистема
Природа Статичен или полустатичен, базиран на шаблони Динамичен, сглобен в реално време, развива се със задачата
Цел Ръководе модела да даде висококачествен отговор Да даде възможност на модела да изпълнява надеждно сложни задачи непрекъснато
Основен продукт Оптимизирани шаблони на подкани, набори от инструкции Тръбопроводи за данни, RAG (извличане на разширяване на генериране) системи, модули за памет, мениджъри на състоянието
Основни умения Лингвистика, логическо разсъждение, дизайн на инструкции Системна архитектура, инженерство на данни, разработка на софтуер
Основна аналогия Задаване на точен въпрос Изграждане на всеобхватна библиотека за изследовател

Предефиниране на AI инженерството

Този преход от инженерството на подкани към контекстното инженерство променя ролята на AI инженерите. Инженерството на подкани се фокусира върху усъвършенстването на входните низове, изискващо умения в лингвистиката и логиката. Въпреки това, когато задачата стане изграждане на системи, които динамично сглобяват тези входове от бази данни, API и памет, основните умения се изместват към софтуерното инженерство и системната архитектура.

Рамки като LangChain и LlamaIndex са популярни, защото поддържат контекстното инженерство, предлагайки архитектурни модели за конструиране на системи за динамично сглобяване на контекст, като Chains, Graphs и Agents.

Възходът на контекстнотоинженерство бележи промяна в AI разработката от фокусирана върху модела, нишова област към основна дисциплина на софтуерното инженерство. Основното предизвикателство не е само моделът, а целият приложен стек, изграден около него.

Контекст: Анализ и принципи

Този раздел описва компонентите на “контекста” и очертава принципи за ефективно управление.

Деконструиране на контекстния прозорец

Контекстният прозорец е цялата информация, която моделът може да “види” или “запомни”, когато генерира отговор. Пълният “пакет контекст” е сумата от цялата предоставена информация.

  • Инструкции/Системна подкана: Този основен слой дефинира поведението на модела, определяйки неговата роля, стил, правила, ограничения и цели.
  • Потребителска подкана: Директният въпрос или инструкцията за задача, които задействат интелигентния агент.
  • История на разговорите/Краткосрочна памет: Предишните размени предоставят директен контекст, управлявани чрез подрязване или обобщаване поради ограниченията на контекстния прозорец.
  • Дългосрочна памет: Постоянна база знания, която записва информация, научена от взаимодействия, като потребителски предпочитания, резюмета на проекти или факти
    описани изрично за запомняне.
  • Извлечена информация/RAG: За да се преодолее прекъсването на знанията и да се гарантират отговори, базирани на факти, системата динамично извлича подходяща информация от външни източници на знания.
  • Налични инструменти: Дефинира схемите и описанията на извикваемите функции или вградените инструменти, даващи на модела силата да действа, а не само да знае.
  • Изходи на инструменти: Резултатите от извикванията на инструменти трябва да бъдат повторно инжектирани в контекста, за да може моделът да ги използва в последващи разсъждения и действия.
  • Структурирана схема на изхода: Дефинира очаквания формат на изхода (като JSON Schema) за насочване на структурирани, предвидими резултати.

Рамката “LLM като операционна система”

Тази аналогия предоставя стабилна теоретична рамка за разбиране и практикуване на управлението на контекста.

  • LLM като CPU, Контекстен прозорец като RAM: Тази аналогия позиционира контекстния прозорец като ограничен и ценен ресурс. Контекстното инженерство е като управление на ОС, ефективно зареждайки точната информация в точния момент в работната памет.

  • Контекст на ядрото спрямо контекст на потребителя: Тази рамка разделя контекста на два слоя; подобно на пространството на ядрото и пространството на потребителя.

    • Контекст на ядрото: Представлява управляваното, променливо, постоянно състояние на интелигентния агент. Той включва основни блокове памет и файлови системи, които LLM може да наблюдава, но само да променя чрез контролирани “системни повиквания”.
    • Контекст на потребителя: Представлява “потребителското пространство” или буфера за съобщения, където се случват динамични взаимодействия. Той включва потребителски съобщения, отговори на асистенти и извиквания към непривилегировани “потребителски програмни” инструменти.
  • Системни повиквания и персонализирани инструменти: Това разграничение изяснява как агентът взаимодейства с вътрешното си състояние и външния свят. Системните повиквания променятконтекста на ядрото, променяйки постоянното състояние на агента, докато персонализираните инструменти внасят външна информация в потребителския контекст.

Ръководни принципи на контекстното инженерство

Ефективното контекстно инженерство следва основни принципи, получени от практикуващи, за изграждане на надеждни системи за интелигентни агенти.

  • Непрекъснат и изчерпателен контекст: Известен също като “Вижте всичко”, този принцип изисква агентът да има достъп до пълната си операционна история, включително предишни потребителски взаимодействия, изходи от извиквания на инструменти, вътрешни процеси на мислене и междинни резултати.
  • Избягвайте некоординирания паралелизъм: Позволяването на множество под-агенти или под-задачи да работят паралелно без споделен, непрекъснато актуализиран контекст почти неизбежно води до несъответствия в изходите, конфликтни цели и неуспехи.
  • Динамичен и развиващ се контекст: Контекстът не трябва да бъде статичен блок информация. Той трябва да бъде сглобен и развит динамично въз основа на напредъка на задачата, придобивайки или актуализирайки информация по време на изпълнение.
  • Пълно контекстуално покритие: На модела трябва да бъде предоставена цялата информация, която може да му е необходима, а не само последният въпрос на потребителя. Целият входен пакет (инструкции, данни, история и т.н.) трябва да бъде внимателно проектиран.

Стратегии за управление на контекста:

Писане: Запазване на контекста:

Това включва съхраняване на информация извън непосредствения контекстен прозорец за бъдеща употреба, изграждане на способностите на паметта на агента.

  • Скриптове: Използва се за съхраняване на краткосрочна памет в рамките на сесията.
  • Системи за памет: Използва се за изграждане на дългосрочна памет в различни сесии.

Избиране: Възстановяване на контекста:

Това включва изтегляне на подходящата информация от външно хранилище в контекстния прозорец в точния момент.

  • Избор от памет/скриптове: Агентът трябва да може ефективно да извършва заявки към своята запазена памет и скриптове, когато трябва да си припомни минали знания.
  • Избор от инструменти: Когато агентът има много налични инструменти, е ефективно да се прилагат RAG техники към самите описания на инструментите, динамично извличайки и предоставяйки само най-подходящите инструменти въз основа на текущата задача.
  • Избор от знания: Това е основната функция на Retrieval-Augmented Generation (RAG), динамично придобиване на фактическа информация от външни бази знания, за да се подобрят способностите на модела за отговори.

Компресиране: Оптимизиране на контекста:

Това включва намаляване на броя на токените, използвани в контекста, като същевременно се запазва основната информация.

  • Обобщаване: Използване на LLM за обобщаване на дълги истории на разговори, документи или изходи на инструменти, извличане на ключова информация.
  • Подрязване: Използване на евристични правила за намаляване на контекста, като например просто премахване на най-ранните кръгове на диалог, когато историята на разговора е твърде дълга.

Изолиране: Разделяне на контекста:

Това включва разлагане на контекста на различни части, за да се подобри фокусът на модела и да се управлява сложността на задачата.

  • Многоагентни системи: Големите задачи могат да бъдат разделени между множество под-агенти, всеки със свой собствен специализиран, изолиран контекст, инструменти и инструкции.
  • Изолирани среди: Операции, които консумират голям брой токени, могат да се изпълняват в изолирана среда, връщайки само окончателните ключови резултати в контекста на основния LLM.

Разширени архитектури на паметта

Паметта е ключова за изграждането на интелигентни агенти, които могат да учат и да се адаптират. Ключовите компоненти включват краткосрочна памет чрез буфери на историята на диалога и скриптове и дългосрочна памет за постоянство и персонализация.

  • Техники за изпълнение:

    • Автоматично генериране на памет: Системата може автоматично да генерира и съхранява спомени въз основа на потребителски взаимодействия.
    • Механизми за размисъл: Агентът може да се само-разсъждава върху поведението и резултатите си след завършване на задачи, синтезирайки научени уроци в нови спомени.
    • Обобщаване на диалога: Редовно обобщавайте минали разговори и съхранявайте обобщенията като част от дългосрочната памет.
  • Структурирана памет (Временни графики на знания): По-модерна архитектура на паметта, която съхранява не само факти, но и връзки между фактите и времевите печати за всяка част от информацията.

Retrieval-Augmented Generation (RAG): крайъгълният камък на контекстното инженерство

RAG е основна техника за “избор” на външни знания в контекстното инженерство, свързвайки LLM с външни бази знания. Типичната RAG система има три етапа:

  1. Индексиране: Документите се разделят на семантични парчета, след което се преобразуват във високи измерения вектори с помощта на модел за вграждане. Тези вектори и изходни текстове се съхраняват във векторната база данни.
  2. Извличане: Потребителят преобразува заявка във вектор със същия модел за вграждане и търси във векторната база данни за други близки вектори с подобни заявки.
  3. Генериране: Системата комбинира оригиналната заявка и свързаните текстови парчета в подкана, след което я изпраща на LLM, за да генерира подходящ отговор.

Разширени стратегии за извличане и класиране

Основната RAG архитектура често се нуждае от по-сложни стратегии за подобряване на качеството на извличане в реалния свят. Комбинирането на семантично търсене с ключови думи индекси и класиране е от решаващо значение за подобряване на качеството на търсенето. Контекстното извличане на информация на Anthropic ще подобри контекста на LLM.

  • Хибридно търсене: Комбинира семантично търсене (базирани на вектори) и търсене на ключови думи, за да се използват взаимно допълващи се силни страни.
  • Контекстуално извличане: Използва LLM за генериране на кратко обобщение на контекста на всеки текстов блок.
  • Повторно класиране: Добавя стъпка за повторно класиране, използвайки по-силен модел, за да пресортира резултатите въз основа на уместността.

RAG срещу фина настройка: Рамка за стратегически решения

Изборът между RAG и фина настройка е ключово решение. Изборът зависи от изискванията на проекта.

  • Предимства на RAG:

    • Подходящо за интегриране на знания в реално време
    • Намалява халюцинациите чрез предоставяне на проверими факти
    • Позволява на предприятията да запазят патентовани данни в рамките на сигурни вътрешни бази данни
  • Предимства на фината настройка:

    • Най-добре за обучение на модел на ново поведение, стил на реч или специализирана терминология
    • Може да приведе изхода на модела с имиджа на марката на организацията
  • Хибридни подходи: За да получите най-доброто представяне