Ой, нейросеть? (2)
Уже какое-то время я кручусь с нейронками, пытаясь для себя очертить границы ее применимости. И мне хочется выговориться, как я уже делал это однажды. Ниже небольшой монолог ни о чем. Наслаждайтесь.
Итак, на сей раз из личного интереса и по долгу службы мне потребовалось изучать Spec Driven Development в контексте нейросетей. Кратко: за этими словами скрывается цикл из генерации нескольких файлов документации и ТЗ и разработка по этим докам — тоже нейронкой.
И, должен сказать, мне понравилось. Видите ли, у любой нейросети есть критический концептуальный изъян. Она выдает недетерминированный результат. Что это значит на практике, вы можете наблюдать в любом чат боте, просто нажмите на кнопку повторной генерации сообщения.
SDD же пытается этот изъян не то, чтобы совсем исключить, но снизить его влияние. С ним у вас проект тяжело задокументирован. Каждый функциональный элемент сопровожден поведенческой спецификацией, которая подробно расписывает, как этот самый элемент должен работать в различных сценариях. Это удобно и мне, и нейронке, у которой в итоге *всегда* есть актуальный контекст проекта, по которому ей легко ориентироваться.
Есть и минусы. Выделю пару главных.
- Много букав, а следовательно и сожженных токенов.
- Процесс следования инструкциям, в целом, тоже не детерминирован, и нейронка может прокатить на нейросетевом болте все ваши MUST\MUST NOT и шанс на это намного выше, чем мне бы хотелось.
Я не программист по своей сути (работаю только с SQL, а Airflow за программирование не считаю), но на волне SDD начал пробовать в собственную TRPG. Из-за полного отсутствия релевантного опыта я в конфигах Openspec (это фреймворк для SDD) прописал, что каждый шаг, каждое изменение должны быть очень маленькими, точечными и короткими. Это потому, что я не смогу сходу в нормальную архитектуру. А вот по поводу архитектуры мой опыт позволяет мне сказать, что если ее запороть, то это зааффектит все, сразу и начнет с аффекта на пятую точку.
Будет ли это работать? Я не знаю. Пока сделано не очень много: гексагональная карта, свои\чужие юниты, движение без атак, разделение фаз. Нейронка без малейших проблем добавляет новые модули и способна подсказывать, когда новая "хотелка" должна быть новым классом, а когда ее лучше вложить в уже готовую сущность. Иногда, впрочем, мне ее идеи не нравятся: она предлагала хранить, например, остаток хода во внешней сущности, но я (возможно, по глупости), настоял на том, чтобы хранить это внутри юнита. Опять же, опыта у меня маловато, а на практике за долгие года я видел и более странные идеи в своей сфере.
Куда больший вопрос в том, во что это выльется. Сейчас не так уж много систем, чтобы нейронка путалась. При желании, думаю, она способна весь мой проект поместить в свой контекст (никогда не делайте так!), настолько он маленький. Но мне очень интересно.
Пока, правда, придется отложить нейросеть на некоторое время и заняться подготовкой диздоков, потому как системы лучше закладывать пораньше. Иначе снова придет тетя Архитектура, а у нее рука тяжелая. Впрочем, консультироваться с чат-версиями нейронок идея не самая худшая. Грок не особо рассыпается в комплиментах и, что забавно, нередко приходит к выводам, которые совпадают с моими. Главное всем этим не увлекаться.
Что же касается самой TRPG, на примере которой я заставляю максимально недетерминированную систему выдавать детерминированный результат? Тут пока нечего рассказывать. Сейчас это голые кости. И им предстоит посвятить как множество человеко-часов, так и кучу токенов. Но если все будет складываться хорошо, то есть у меня на примете пара человек, которых я обязательно приглашу на такую авантюру, и уже с ними мне будет что рассказать. Если они, конечно, согласятся.