На прошлой неделе в OpenAI посреди ночи случился переполох. Был выпущен GPT-5.2, и трон мирового ИИ снова сменил владельца.Крупное обновление всего через четыреНа прошлой неделе в OpenAI посреди ночи случился переполох. Был выпущен GPT-5.2, и трон мирового ИИ снова сменил владельца.Крупное обновление всего через четыре

[Перевод] RAG нового поколения: как заставить ИИ не врать

1baed0cc3f772fd1830349c5166f2b6d.png

На прошлой неделе в OpenAI посреди ночи случился переполох. Был выпущен GPT-5.2, и трон мирового ИИ снова сменил владельца.

Крупное обновление всего через четыре месяца - это необычно. Триггером стало давление конкурентов. Reuters сообщает, что Альтман объявил «красный код» еще в начале декабря, чтобы ускорить разработку, и подоплекой этого стал ответ на Gemini 3 от Google.

Сама OpenAI позиционирует это не как набор новых фич, а так: «Мы улучшили производительность в таких областях, как интеллект, обработка кода и понимание длинных текстов, и особенно усилили возможности создания таблиц, презентаций и выполнения других сложных многоэтапных задач».

Другими словами, GPT-5.2 - это не «мажорное обновление», а скорее отточенная версия, которая повышает надежность, работу с длинным контекстом, использование инструментов и генерацию для практических приложений. Можно с уверенностью сказать, что это не новая игрушка, а рабочий инструмент, который стал проще в использовании.

И раз уж мы заговорили о том, что ИИ становится серьезным рабочим инструментом, а не просто развлечением, критически важно иметь к нему правильный доступ.

Именно для этого вы можете использовать платформу BotHub.

33a900fedd998bcc1af80ccfd3e2cd27.png

Здесь вы можете экспериментировать с разными моделями и сравнивать их стили. Всё это - без VPN и с удобной оплатой российскими картами.

В последние годы «агентный ИИ» выполняет сложные серии действий: LLM вызывает инструменты, делает выводы и, наконец, выдает окончательный ответ. Для оптимизации этих действий стандартным подходом было использование обучения с подкреплением (RL), чтобы «учить хорошие действия через награды». Но проблема в том, что:

  • RL дает только простую скалярную награду - «правильный ответ или нет», что делает обучение крайне неэффективным.

  • Кроме того, дообучение (fine-tuning) модели требует масштабного развертывания и вычислительных затрат.

В прошлом году я делала видео о DSPy, и с тех пор он добился значительного прогресса. По своей сути, DSPy рассматривает языковые модели как уникальные «устройства», похожие на CPU и GPU в глубоком обучении.

В DSPy вам нужно только объявить требуемые «Естественно-языковые сигнатуры» (Natural Language Signatures), не беспокоясь о конкретных деталях реализации промпта (на самом деле, после года практики мы обнаружили, что беспокойство об этих деталях по большей части бессмысленно и не меняет того факта, что выходы LLM нестабильны).

DSPy можно понимать так: на основе этих сигнатур он может автоматически генерировать, оптимизировать и донастраивать промпт, в конечном итоге выдавая результаты, соответствующие ожиданиям.

Идея GEPA: Поощрение LLM «рефлексировать над собственными неудачами»

Вместо использования обучения с подкреплением, GEPA (Genetic-Pareto Prompt Optimizer - Генетико-Парето оптимизатор промптов) использует подход, при котором LLM сами анализируют свое поведение на естественном языке и предлагают, как улучшиться в следующий раз. Другими словами, вместо подкручивания параметров модели, мы рефлексируем и развиваем сам «промпт».

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

Я подготовлю SPACE_KNOWLEDGE (знания о космосе). Эта техника - альтернативный способ обучения модели, который превосходит обучение с подкреплением. Я задаю вопрос о космосе: «Какой космический телескоп самый мощный?». Если вы посмотрите, как чат-бот генерирует ответ, вы увидите следующее:

Агент использует TF-IDF (Term Frequency Inverse Document Frequency), чтобы рассчитать частоту терминов (как часто слово появляется в документе и насколько оно редкое во всех документах), затем использует косинусное сходство, чтобы найти фрагменты, которые действительно похожи на ваш вопрос, а не просто имеют случайные совпадения слов. Как только три наиболее релевантных фрагмента найдены...

Затем Агент использует RAG на основе уверенности (confidence-based RAG), применяя цепочку рассуждений (chain-of-thought) для генерации ответа плюс уровня уверенности. Так он может честно сказать вам: «У меня недостаточно информации», вместо того чтобы галлюцинировать.

В то же время, многоступенчатый RAG (multi-hop RAG) идет дальше: сначала извлекает факты в виде маркированного списка из контекста, затем синтезирует эти факты в исчерпывающий ответ. Этот двухэтапный процесс критически важен для сложных вопросов, требующих объединения информации из нескольких источников, потому что он не дает ИИ-агенту запутаться или упустить связи.

И вот здесь GEPA вступает в игру и меняет правила: вместо ручной настройки промптов или использования старых оптимизаторов вроде MIPROv2, GEPA использует генетические алгоритмы. Он комбинирует хорошие промпты, чтобы создавать лучшие.

Он использует оптимизацию по Парето, чтобы поддерживать несколько эффективных промптов, а не один. Он также использует рефлексию, обучаясь на ошибках путем чтения текстовой обратной связи и внесения исправлений.

Со временем это помогает GEPA автоматически генерировать всё более качественные промпты.

Он строит дерево эволюции промптов. Каждое новое улучшение растет как ветка на дереве. Каждая ветка сохраняет то, что работало раньше, и добавляет несколько улучшений. Шаг за шагом промпты становятся ближе к идеальным инструкциям для задачи RAG. И он делает это в 35 раз эффективнее, чем MIPROv2, генерируя промпты, которые в 9 раз короче, но работают на 10% лучше.

Что выделяет GPT-5.2?

Давайте начнем с самых шокирующих данных. Один из тестов, используемых для измерения производительности ИИ, называется «ARC-AGI-2».

Это тест, требующий решения абстрактных головоломок с первого взгляда (через озарение), и он не полагается на «поиск ответов в прошлых данных» (жульничество). Другими словами, это тест, измеряющий «врожденный интеллект». И посмотрите на этот счет:

  • GPT-5.1: 17.6%

  • Gemini 3 Pro: 31.1%

  • GPT-5.2: 52.9% (+35.3 пункта!)

Этот рост сумасшедший. Это более чем в три раза выше результата предыдущей версии 5.1. Это почти вдвое больше результата Gemini.

Если предыдущие ИИ были как «гении, вызубрившие учебники слово в слово», то GPT-5.2 эволюционировал в «гениев, которые могут решать сложные проблемы, которых они никогда раньше не видели, с помощью смекалки». Расхожая фраза ИИ «Я не могу это сделать, потому что меня этому не учили» уходит в прошлое.

Следующая метрика, заслуживающая внимания - «GDPval». Этот тест измеряет, насколько хорошо можно выполнять «реальные задачи», такие как исследования, планирование и принятие решений.

  • GPT-5.1: 38.8%

  • Gemini 3 Pro: 53.5%

  • GPT-5.2: 70.9% (+32.1 пункта!)

Опять же, результаты ошеломляющие. В версии 5.1 ИИ был «стажером-новичком, ожидающим инструкций», но в 5.2 его повысили до класса «менеджера, который строит планы и управляет проектами».

Те, кто жаловался, что «ИИ умный, но сложный для использования в работе», будут поражены «профессиональными навыками» версии 5.2.

В чем уникальность GEPA?

Основная концепция GEPA берет начало в сути человеческого обучения - рефлексии.

Речь не просто о добавлении новых инструкций. Скорее, как опытный наставник, он изучает прошлые попытки, анализирует успехи и недостатки, а затем предлагает лучшие решения.

GEPA строит дерево эволюции промптов, позволяя каждой оптимизации расти подобно ветви, накапливая улучшения и постепенно приближаясь к оптимальному промпту.

6f447431355d5c35b13f3cb5054c4918.png

В отличие от традиционного обучения с подкреплением (RL), GEPA использует рефлексивные способности языковых моделей в сочетании с текстовой обратной связью, специфичной для предметной области, а не полагается исключительно на одну скалярную метрику.

Это сродни тому, как дать модели «рентгеновское зрение», позволяя ей замечать мелкие детали в задаче и выдавать сильные результаты всего за несколько шагов.

Давайте начнем

Давайте теперь шаг за шагом разберем процесс и найдем ответ на вопрос, как использовать DSPy 3, оптимизатор GEPA и Агентный RAG. Мы установим библиотеки, поддерживающие модель.

pip install requirements

Хочу сообщить, что код, которым я делюсь здесь - это лишь часть моей работы. Если вам нужна полная папка, вы можете найти её на моем Patreon. Этот код отнял у меня значительное количество времени.

Term Frequency Inverse Document Frequency (TF-IDF)

Итак, я создаю ретривер (поисковик) на основе TF-IDF, чтобы находить документы, которые лучше всего соответствуют вопросу пользователя.

Сначала он сохраняет все документы и разбивает каждый на простые слова в нижнем регистре, удаляя пунктуацию, чтобы текст был чистым и легким для сравнения.

Затем он просматривает все документы вместе и вычисляет, насколько важно каждое слово во всей коллекции: слова, которые появляются во многих документах, становятся менее важными, а слова, появляющиеся только в нескольких - более важными.

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

Затем ретривер сравнивает запрос с каждым документом, измеряя, насколько похожи их оценки слов, используя математический метод (косинусное сходство), который проверяет, насколько близко они «смотрят» в одном направлении.

Каждый документ получает оценку сходства, документы сортируются от лучшего совпадения к худшему, и, наконец, несколько наиболее релевантных документов возвращаются пользователю.

class TFIDFRetriever: """ TF-IDF ретривер. Это умнее, чем простое сопоставление ключевых слов. TF: Слова, часто встречающиеся в документе, важны для этого документа. IDF: Слова, встречающиеся во многих документах, менее важны в целом. Пример: "the" встречается везде (низкий IDF), а "космонавт" - специфично (высокий IDF). """ # ... (код инициализации и токенизации) ... def _compute_idf(self) -> dict[str, float]: """Вычисляет IDF для всех терминов в корпусе.""" # ... (логика вычисления) ... return idf def _compute_tfidf(self, tokens: list[str]) -> dict[str, float]: """Вычисляет вектор TF-IDF для списка токенов.""" # ... def _cosine_similarity(self, vec1: dict, vec2: dict) -> float: """Вычисляет косинусное сходство между двумя разреженными векторами.""" # ... return dot_product / (norm1 * norm2) def __call__(self, query: str) -> list[str]: """Извлекает top-k документов, наиболее похожих на запрос.""" # ... return [doc for score, idx, doc in scores[:self.k]]

Retrieve Argumentation Generation (Генерация с аргументацией поиска)

После этого я создала два метода для ответа на вопросы с использованием генерации, дополненной поиском (RAG).

В первом случае Агент берет вопрос, ищет наиболее релевантные документы, объединяет их в один контекст, а затем генерирует ответ, одновременно сообщая, насколько он в нем уверен. Он сохраняет использованные документы, чтобы вы могли позже посмотреть, откуда взялся ответ.

Вторая система создана для более сложных вопросов, требующих большего размышления.

Она сначала извлекает документы тем же способом, затем вытаскивает только важные факты, относящиеся к вопросу, и, наконец, комбинирует эти факты для создания четкого ответа. Она также сохраняет и извлеченные документы, и выделенные факты, чтобы вы могли проверить каждый шаг и понять, как был построен финальный ответ.

class RAGWithConfidence(dspy.Module): """RAG, который сообщает о своей уверенности в ответе.""" # ... (код модуля) ... class MultiHopRAG(dspy.Module): """ Multi-hop RAG: Сначала извлекает факты, затем синтезирует ответ. Это помогает со сложными вопросами, требующими объединения информации из нескольких источников. """ # ... (код модуля) ... def forward(self, question: str): # Шаг 1: Поиск docs = self.retriever(question) context = "\n\n".join(docs) # Шаг 2: Извлечение релевантных фактов extraction = self.extract(context=context, question=question) # Шаг 3: Синтез ответа из фактов result = self.synthesize(facts=extraction.facts, question=question) # Прикрепление промежуточных результатов для проверки # ... return result

Эволюция рефлексивного промпта:

Затем я использую GEPA, который учится и улучшает ответы шаг за шагом. Сначала метрика проверяет ответ модели по сравнению с ожидаемым ответом. Если ответ совпадает точно, она дает полный балл.

Если ответ верен лишь частично, она дает более низкий балл и объясняет, чего не хватает. Если ответ неверен, она дает низкий балл и четкую обратную связь об ошибке.

Эта обратная связь важна, потому что GEPA читает её и учится тому, как улучшить будущие промпты. Простой модуль RAG затем работает, принимая вопрос, извлекая связанные документы, объединяя их в контекст и генерируя ответ из этого контекста.

GEPA использует оценки и обратную связь от метрики, чтобы со временем автоматически развивать лучшие промпты для этой системы RAG.

def gepa_metric(gold, pred, trace=None, ...): """ Функция метрики GEPA с обратной связью. GEPA особенная, так как может использовать текстовый фидбек для направления эволюции. Эта функция возвращает и балл, И фидбек о том, что пошло не так. """ # ... (логика сравнения expected и actual) ... if overlap > 0.5: score = 0.7 feedback = f"Частично верно. Ожидалось '{gold.expected_answer}', но получен смежный контент." elif overlap > 0: score = 0.3 # ... # Возврат оценки с фидбеком для рефлексии GEPA return ScoreWithFeedback(score=score, feedback=feedback)

Мои мысли:

GPT-5.2, возможно, и не та модель, которая делает волшебные вещи, но это модель, которая может превратить «задачи, которые вы раньше не решались доверить ИИ» в «задачи, которые вы можете доверить с уверенностью».

Хотя будущие вызовы остаются — такие как мультимодальная поддержка, оптимизация в реальном времени и обеспечение безопасности — они также представляют собой значительные возможности для развития.

Ожидается, что после 2025 года GEPA приведет к инновационным приложениям, таким как самокорректирующиеся системы ИИ, нейро-символическая интеграция и мета-промпт инжиниринг. GEPA, несомненно, продолжит играть центральную роль в будущем технологий промптинга.

Источник

Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу [email protected] для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.