Новые паттерны для создания GenAI-продуктов

Один из уважаемых мной старых дедов классической разработки программного обеспечения — Мартин Фаулер (автор книг "Рефакторинг" и "Шаблоны корпоративных приложений", а еще соавтор Аджайл Манифеста и популяризатор кучи правильных вещей, за что ему низкий поклон), написал большую работу, где структурировал базовые новые паттерны разработки приложений на основе генеративного искусственного интеллекта

Читаю его труд и кайфую, как он приятно и наглядно излагает свои мысли. Очень советую всем, кто только начинает с разбираться с созданием приложений на GenAI:

  1. Direct Prompting, как базовый слой приложения
  2. Зачем нужен этап Evaluation
  3. Что такое Embedding
  4. RAG на дефолнтом векторном поиске
  5. Hybrid Retriever для дополнения векторного поиском по подстроке
  6. Query Rewriting для улучшения запросов от человека
  7. Reranking для отсечения мусора в результатах поиска
  8. Guardrails для безопасности — валидация инпута, верификация аутпута
  9. Fine Tuning, для крайних случаев, когда остальные не дают роста eval-метрик

А еще, как же он прав: LLM — это такой джун-исследователь: начитан, умеет красиво излагать, но в деталях плавает, а самоуверенности хоть отбавляй — вместо «не знаю» предпочитает с умным видом выдумать что-то правдоподобное. RAG в этой картине — это когда мы задаём этому джуну вопрос и при этом подсовываем ему папку с нужными документами, строго намекая: «Прочитай это, прежде чем снова начать фантазировать».

https://martinfowler.com/articles/gen-ai-patterns/

П.С. А дальше, поверх этих паттернов нужно делать когнитивную архитектуру, с планировщиками, постановщиками задач, сервисами вызова тулинга и рефлексией, но это — уже другая история)

Новые паттерны для создания GenAI-продуктов
Один из уважаемых мной старых дедов классической разработки программного обеспечения — Мартин Фаулер (автор книг "Рефакторинг" и "Шаблоны корпоративных прил... | Сетка — социальная сеть от hh.ru