Aug 22, 2024 23:22
LLM страдают ровно от тех же недостатков, что и мясные мешки, поэтому степень эффективного использования LLM пропорциональна познаниям в собственной иррациональности.
В частности, для восприятия больших объемов информации её надо "конспектировать". Вы не можете просто взять и скормить все ваши документы LLM, "ни один человек не в состоянии столько запомнить", нужна некая систематизация, наведение порядка и "конденсация" смысла.
Одним из видов LLM-ассистента является так называемый "chat with a book". Идея в том, что вы скармливаете LLM некую "базу знаний", "книгу", а потом она может отвечать на любые вопросы по документам из этой базы. В применении к софту это может быть, например "менеджер проектов" с использованием LLM, у которого можно спросить, чем Вася в проекте Сепульки занимался на той неделе.
Для ответа на этот вопрос LLM нужен некий "контекст", описание того, кто такой Вася, что из себя представляет проект Сепульки и собственно список того, кто чем занимался, импортированный из таск-трекера.
Однако, просто дать LLM читать список столь же бесполезно, как дать его мясному мешку. Более того, LLM страдают от "амнезии", поэтому надо идти смотреть фильм Memento (2000) Нолана. Это вариация на тему "дуального дня сурка". В "Дне сурка" состояние мира было одинаковым, но менялся опыт героя. Cоответствено, прогресс был в обучении героя. А в Memento состояние мира переходит изо дня в день, но герой просыпается в одном и том же виде с пустыми воспоминаниями, и прогрессирует путем оставления заметок в окружающем мире.
В этом смысле LLM -- это такой менеджер проектов с амнезией. Который за 10 минут перед совещанием "просыпается" и помнит о том, чем PSP отличается от CMMI, но не помнит, где он находится и что вообще происходит. Так что промпт является для него "татуировкой", которую он читает и понимает, что надо делать.
Соответственно для работы с LLM надо во-первых сделать "первую татуировку", во-вторых пополнять татуировки, пока там есть место, а в-третьих, понимать stateless суть "амнезии".
Вы не можете просто взять и "вытатуировать на вашем мементо" все страницы внутрикорпоративного вики. Формат татуировки для успешного участия в совещании требует особого концентрировнного стиля и упоминание того, как зовут директора, что обычно в вики не указывается. В приложении к софту промпт нашего LLM-менеджера должен содержать такое описание проекта, которое не нужно обычным мясным работникам ввиду того, что они его понимают из-за ежедневного накопления контекста, и кроме того должен быть "шпаргалкой" с максимальной плотностью информации и максимально адаптирован под имеено менеджера проектов, а не быть "замусоренным" зарплатными ведомостями за прошлый год.
Таким образом, если вы хотите автоматизировать организацию целиком, вам понадобится выжать максимум из промтов. Все советуют это прежде чем переходить к файн-тюнингу или RAG.
В моем текущем представлении у нас есть исходные источники данных - Jira, Confluence, Git, Slack - которые в конечном итоге надо будет "дистиллировать", концентрировать в маленькие описания и в конечном результате засунуть в промпты.
Есть проектные роли - разраб, архитектор, планировщик, раздаватель задач, следитель за прогрессом, составитель отчетов для доклада "наверх" и так далее.
Для каждой роли есть иерархия описаний: промпт, тюнинг, RAG, исходные источники
Дальше у промптов есть "постоянная" и "переменная" части, например информация о проекте и информация о событиях за последнюю неделю.
В первом приближении будут только промпты, поскольку они есть теперь большие (можно gemini пробовать, в которую вообще всё в промпт войдет по идее). То есть, N промптов по числу ролей:
- Общее описание проекта (часть промпта для всех ролей)
- Постояное описание для текущей роли
- Переменное описание для текущей роли
- RAG-документ(ы) для текущего запроса
- результаты функций для текущего запроса
мясные мешки,
programming,
строгание трешей