Обновить

Знания без практики — мертвы | Разница между «декларативной» и «процедурной» памятью у LLM

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.9K
Всего голосов 2: ↑2 и ↓0+2
Комментарии13

Комментарии 13

Фактически вы предлагаете перейти к обучению на хард негативз. В случае с программированием это существенно проще. Генерировать правильный и почти правильной код легче. Это логично и правильно. Обучение процедурам, как таковым, я полагаю, приведет лишь к тому, что ЛЛМ выучится форме разбора ошибок но не более. Паттерны правильного программирования проявляются у нейросети через именно хард негативз.

Ну и вынужден поправить, нейросеть не запоминает, вы не найдете в LLM текст Войны и Мира, а если найдете - это плохо обученная нейросеть. Главная задача нейросети во время обучения - генерализация, выстраивание границ.

Обучение процедурам, как таковым, я полагаю, приведет лишь к тому, что ЛЛМ выучится форме разбора ошибок но не более

Она выучится процессу. (1) взять ошибку (2) посмотреть на исходный модуль (3) обсудить ее и уточнить (4) сделать патч в нотации патчинга. Это главное в моей мысли.

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

В том, что описанный Вами путь рабочий, особых сомнений нет. И описание хорошее и интересное.
Только вопрос, так как статья Ваша не просто описательная, а с фокусом на новизну: Вы не проверяли, действительно ли предложенное Вами содержит эту существенную новизну?

На мой взгляд, основная проблема не в отсутствии алгоритмического подхода к созданию дата-сета (достаточно простого подхода в Вашем вполне логичном описании), а в экономической эффективности обеспечения вычислительной сложности этого процесса и контроле качества данных из Git-Hub (что является задачей сложной и, веротяно, дорогой).


1) То, что модели сейчас не обучены таким образом я вывожу эмпирически. По тому, как они работают и разрабатывают.

2) То, что так учить можно, это точно. Я привел статьи. Проводили прям схожие эксперименты, и это давало результат

Тут, в моем понимании, только времязатратно собрать датасет. Ну или этим еще всерьез никто не озаботился... Авторы статей прогоняли такую дрессировку на обучающих выборках (таймлайнах) программных модулей. А всерьез выбрать из гитхаба существенно большую выборку ошибка-разбор-патч (не пару тыс, и даже не пару млн, а прям сотни млн и млрд примеров)... Нужно немного его прошерстить, прочекать хотя бы слабенькой моделью и где-то выправить текст и его дополнить... А в идеале еще чекнуть человеку потом.

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

Кроме того... Сейчас репозиториев с детальным описанием ошибок и трека решений очень много. Это все наполняется клодами и т.п. Возьми репозиторий OpenClaw или IronClaw, там уже несколько тыс Issue в готовом виде лежит.

Мне кажется OpenAI уже собирают такой датасет через Codex.

вполне может быть. хотя статьи, которые я нашел, от 24-25 годов. Так что если бы всерьез взялись, то давно собрали бы такой датасет.

Я к тому, что, судя по всему, это очень дорого пока получается - и вычислительная сложность высока и очистка "мусора" сложна и нетривиальна. Скорее, именно поэтому и не собрали.

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

Мне кажется, главный вопрос не в том, брать ли issue/PR, а в том, как из этого сделать нормальную обучающую траекторию. PR может чинить сразу несколько вещей, issue уже может содержать решение, тесты бывают плохими, патч может проходить CI и всё равно быть нерабочим (классика для тестов, написанных агентами).

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

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

Я переводил LLM во фрактальность... Они делают откат в линейность...

нипонял... С моей статьей пересекается только слово LLM

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации