#dev #ai #amazon
45 ПБ данных в час научили меня одной важной вещи про LLM
Недавно на работе мне дали задачу:обрабатывать 45 PiB данных каждый час. Я быстро сделал PoC на Spark + AWS EMR. На маленьких данных всё выглядело как магия:
- запускаешь → работает
- добавляешь ноды → работает
- LLM помогает писать код → работает
PoC занял 1 день! Я уже обрадовался.
Подумал, "Ну, прям Магия!" - что современный стек решает всё:
- LLM подсказывает
- Spark оптимизирует
- EMR масштабирует
Потом я запускаю это на реальном объёме данных - и система просто умерла. Джоба падала по тайм-ауту через 2 часа. Оптимизация запроса не помогала. Удаление колонок не помогало. Spark Optimizer вроде делал всё правильно.
Я пошёл советоваться с LLM. LLM всегда звучит как самый умный эксперт в комнате. (я и мой коллега часто прикалываемся, что "this guy always makes mistakes with confidence 😎"
В конце концов, все его советы свелись к тому, что нужно добавлять больше инстансов. Для меня это означало, что наши расходы на 1 регион могут превысить $50 000, что применив глобально сильно бы дропнуло нашу маржинальность.
В принцпие, чего ожидать от ЛЛМ. LLM не платит за инфраструктуру, не видит реальную систему, просто продолжает предлагать следующее правдоподобное решение.
И если не управлять этим процессом —ты начинаешь бесконечно масштабировать проблему.
В принципе, я понимаю, что LLM — это не эксперт, но все же в потоке "убедительных" советов, я начал забывать, что нужно держать ухо в остро.
LLM — это генератор гипотез, хороший парсер, ну или опереционист, который, если направлять правильно, будет стрелять очень хорошо.
И работать с ним нужно именно так - не спрашивать "как оптимизировать систему?", а тюнить агента, под нужный флоу. В моем случае это было, если по простому,А делать цикл:
1️⃣ сформулировать гипотезу
2️⃣ придумать эксперимент
3️⃣ быстро проверить
4️⃣ записать в блокнот результаты
5️⃣ повторить
Как всегда в разработке, важно оказалось не оптимизировать код, а ускорить feedback loop. Потому что мои эксперименты занимали по 2 часа.
А это уже не разработка, а очередь ожидания.
Поэтому пришлось перепроектировать систему так, чтобы:
— быстро менять параметры
— тестировать идеи на маленьких сэмплах
— получать ответ за минуты
Через неделю экспериментов получилось сдвинуть систему:
джоба, которая умирала по тайм-ауту, начала завершаться за 79 минут.
Наверное, главный вывод из этой истории: LLM делает работу хорошо, но не в качестве эксперта, а в качестве ассистента, что помогает ускорить проведение эксперементов. Если использовать его как архитектора —он может увести очень далеко. Если использовать его как двигатель гипотез —он ускоряет инженерную работу в разы.
Если интересно, могу накидать более подробно про то как я создаю и настраиваю агентов для ежедневной разработки, чтобы бы было меньше галлюцинаций. Пишите к комментах!
Post #597
451
- 🔥 16
- ❤ 2
- 🥱 2