xaxam: (Default)
[personal profile] xaxam

Hello world!

По тэгу "ИИ" можно восстановить, как трудно и мучительно мне давалось понимание первопринципов работы БЯМ. Пожалуй, главный краеугольный камень всех наших надежд на Искусственный Интеллект — предположение, что процесс нашего мышления (совершенно непонятное явление, несмотря на все усилия философов, психологов, нейробиологов и т.д.) сильно коррелирован с речью (производством человекопонимаемых текстов на естественных языках). Грубо говоря, может ли существовать мыслящая цивилизация, не пользующаяся речью?

Но я сейчас не про это, а про то, как и почему ИИ настолько эффективно быдлокодерствует, если верить практикующим кожаным быдлокодерам программистам. В рамках БЯМ "научить" ИИ быдлокодерству можно было бы, скармливая ему петабайты разных кодов на разных языках. Но есть заметная разница между человеческими текстами и машинными скриптами, даже если эти скрипты написаны "культурно", с комментариями и пр.

Я задал этот вопрос у [personal profile] avva: на каком корпусе "текстов" дрессируют быдлокодерские способности ИИ? Но тамошние кнуты и дийкстры проигнорировали его. Мой собственный опыт отладки тривиального коротенького скрипта (базовый перекодировщик из Markdown в HTML в сответствии с определённым форматом), написанный на Java руками Джемми, был просто катастрофой. Раз десять мне приходилось делать полный ресет, начинать новый чат, иначе он сажал две новые ошибки, исправляя одну старую, и при этом пудрил мне мозги по поводу разных браузеров, которые-де по разному могут выполнять скрипт. Я чуть не убил Джемми тогда.  

Может, здешняя публика окажется более снисходительной и разъяснит эту сову?

Date: 2026-05-10 06:20 am (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split

На чем тренируют? Да на всем, что публично доступно. Весь гитхаб к вашим услугам.

Но тренировкой на корпусе текстов дело уже не ограничивается. Почитайте, как тренируют "думающие" (reasoning) модели.

Date: 2026-05-10 08:53 am (UTC)
chaource: (Default)
From: [personal profile] chaource
Модели для программированiя тренируются на всемъ объемѣ публично доступнаго кода (а для нѣкоторыхъ фирмъ - также и закрытаго кода, напримѣръ Microsoft имѣетъ доступъ ко всему Github, а не только къ открытой его части). Плюсъ открытая документацiя, описанiя программъ и библiотектъ на различныхъ порталахъ. Такимъ образомъ модели знаютъ, какiя вообще существуютъ библiотеки и примѣрно какъ ими пользоваться.

Потомъ модели отдѣльно тренируются на исторiи измѣненiй - какiе были комментарiи, какъ описывали баги и замѣчанiя и какiе потомъ дѣлались исправленiя кода.

Но пока что я бы рекомендовалъ пользоваться моделями, требующими не менѣе двухъ долларовъ за 1М токеновъ на входъ. https://chaource.dreamwidth.org/255633.html и https://chaource.dreamwidth.org/251342.html

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

Пока что даже самыя мощныя модели все равно ошибаются, но при этомъ могутъ очень правдоподобно врать о томъ, что было сдѣлано. Напримѣръ, я далъ указанiе протестировать четыре разныхъ подхода къ реализацiи структуры данныхъ и приготовить тесты для сравненiя скорости работы. Модель отрапортовала, что все сдѣлано, и я запустилъ тесты - они всѣ отработали примѣрно одинаково быстро. Оказалось, что модель сделала четыре практически пустыхъ модуля, которые всѣ вызывали одинъ и тотъ же кодъ. Модель вообще не реализовала четырехъ разныхъ структуръ данныхъ.

Пока что наиболѣе эффективно программировать такъ:

- Пользоваться моделью не менѣе 2 долларовъ за 1М токеновъ на входъ. (GPT 5.3 Codex, Claude Opus 4.6)

- Разбить проектъ на фазы, каждая должна быть небольшой и сопровождаться тестами и однозначной провѣркой, что все сдѣлано.

- Давать для каждой фазы подробный промптъ съ большимъ количествомъ деталей и со всеми мелкими условiями и требованiями, которыя вы можете на данномъ этапѣ сформулировать. (Добавлять потомъ новые мелкие фичи можно, но денегъ вы потратите больше - лучше все говорить сразу.) Этотъ промптъ можетъ написать ИИ самостоятельно въ видѣ "плана", но его надо будетъ отредактировать или сказать ИИ, какъ отредактировать - до начала работы по реализацiи плана.

- Послѣ выполненiя работы по данной фазѣ плана, надо потребовать у ИИ ревизовать собственную работу и найти всѣ возможныя ошибки и пропущенные пункты плана. Это можетъ сдѣлать и другая модель. Ревизiя должна повторяться до тѣхъ поръ, пока ошибокъ больше не будетъ.

- Послѣ этого надо посмотрѣть на результаты и на кодъ и возможно что-то еще придется исправлять передъ тѣмъ, какъ двигаться дальше.
Edited Date: 2026-05-10 08:54 am (UTC)

Date: 2026-05-10 11:42 am (UTC)
myron_opanasovych: (Default)
From: [personal profile] myron_opanasovych

На претрейне кодерским способностям БЯМ учат в основном так же, как и языку — массивами исходного кода (GitHub и подобное), причём код там обычно перемешан с обсуждениями (Stack Overflow, документация, issue-трекеры), так что модель видит связку проблема -> решение -> объяснение. Но главный "секрет" современных кодерских способностей не в претрейне, а в постренинге с обратной связью от исполнения: модель ставят в цикл, где она получает задачу, пишет код, код реально запускается в песочнице, результат или ошибка возвращается обратно, она правит — и весь этот процесс служит обучающим сигналом. То есть её натаскивают не в режиме "напиши код за один заход", а в режиме "пиши, запускай, отлаживай, итерируй пока не пройдуйт все тесты".

Насколько я понимаю, вы использовали модель в режиме, для которого она хуже всего натренирована. Веб-чат заставляет вас быть транспортом между моделью и реальностью — вы копируете её код, запускаете, копируете обратно ошибку, она угадывает, что произошло, не видя ни реального вывода, ни файлов, ни версий библиотек etc.

Решение — агентные инструменты, специально под это сделанные (Claude Code, OpenCode, Gemini CLI и подобные). Это CLI-программы, которые дают модели прямой доступ к файловой системе и шеллу. Цикл становится такой: вы говорите "сделай скрипт перевода markdown в html по такому-то формату, вот пример входа и ожидаемого выхода", агент сам создаёт файл, сам запускает на тестах, сам видит ошибку, сам правит, перезапускает до готовности (или исчерпания лимитов токенов). Вы в этом цикле почти не участвуете, только направляете. На задаче вроде вашего конвертера такой агент управился бы за один заход без всяких ресетов — это будет совсем другой опыт, та самая модель в режиме, для которого её, собственно, и натаскивали.

Применимость не ограничивается кодингом (он-то формализуется, и с ним у агентных систем не так много проблем). Даже для задач, качество решения которых сложно/невозможно формально оценить, можно получить полезный для кожаных мешков выхлоп:

  1. Єкспортируете все ваши диалоги с БЯМ

  2. Устанавливаете Gemini CLI (но я бы таки рекомендовал вендор-агностик opencode)

  3. Просите CLI запроцесить ваши диалоги с БЯМ и предложить, каких бы агентов вы могли создать специально под вас и ваши методы допросов БЯМ.

  4. Апрувите/правите описание тех агентов, функционал которых вам подходит.

  5. Переходите не следующий уровень взаимодействия с кремнием.

Date: 2026-05-10 11:58 am (UTC)
From: [personal profile] crdigger
Уровень продвинутого троечника, а на самом деле - любого ленивого программиста.Подставляется найденный наиболее правдоподобный код, точнее цепочка из токенов, наиболее вероятно следующих друг за другом, если готового нет, а потом тестируестся.Это намного лучше других отраслей, так как тут тестируется на исполнение, а там - на обман человека.

Date: 2026-05-10 12:25 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split

Я не знаю, как прикинуть (кроме как отсамплить большую выборку и экстраполировать), но железный мозг говорит, что на гитхабе в 2024 было 19 петабайт данных, включая историю и прочие метаданные. Библиотека Конгресса оценивалась в 21 петабайт, включая изображения, аудиозаписи, фильмы и т.д.

Date: 2026-05-10 01:15 pm (UTC)
sobriquet9: (Default)
From: [personal profile] sobriquet9

Для программирования лучше пользоваться моделями через специализированный текстовый интерфейс (TUI) вроде Gemini CLI или Claude Code. Вместо того, чтобы писать весь код сразу прямо из LLM, они пишут его по кусочкам, которые запускают и отлаживают на компьютере пользователя. Чтоб при исправлении одних ошибок не вносить другие, не переписывают всё, а редактируют предыдущую версию с помощью отдельных команд ("заменить foo на bar").

Date: 2026-05-10 01:16 pm (UTC)
chasovschik: (Default)
From: [personal profile] chasovschik
Грубо говоря, может ли существовать мыслящая цивилизация, не пользующаяся речью?

А вот цивилизация, которая речью пользуется, но ни хрена при этом не мыслит, существует запросто.

Date: 2026-05-10 01:38 pm (UTC)
chaource: (Default)
From: [personal profile] chaource
Дѣло не въ количествѣ токеновъ, а въ архитектурѣ нейросѣти - сколько тамъ attention heads, напримѣръ, какой варiантъ sparse attention, и т.д., уже много нахимичили съ 2022 года. Это опредѣляетъ возможности БЯМ по нахожденiю паттерновъ разнаго порядка сложности.

Потомъ, каждую модель тренируютъ угадывать, чего хочетъ пользователь, а не просто генерировать какой-то статистически подходящiй слѣдующiй текстъ. Напримѣръ, сегодня я далъ промптъ "я не знаю, какъ правильно написать въ такомъ-то файлѣ импортъ изъ такой-то библiотеки" тремъ разнымъ моделямъ. Первая не дала вообще отвѣта ("provider error"), вторая дала отвѣтъ, относившiйся къ данному файлу, но не относившiйся къ этой библiотекѣ, а третья начала исправлять не только это, но и другiе проблемы въ данномъ файлѣ. Разница въ поведенiи моделей изъ-за того, что ихъ тренировали на разныхъ наборахъ данныхъ вида "вопросъ пользователя - желательный отвѣтъ модели".

Но и это не все - уже 2 года какъ перешли отъ простыхъ моделей (на входъ даешь текстъ промпта - на выходѣ получаешь отвѣтъ) къ агентнымъ системамъ. Это значитъ, что даешь промптъ и потомъ написанъ нѣкiй сценарiй, по которому промптъ преобразуется шагъ за шагомъ. Напримѣръ это можетъ выглядѣть такъ:

- Къ промпту пользователя добавляется системный промптъ 1-го шага. Обычно это промптъ типа "вот промптъ пользователя, надо понять въ общихъ чертахъ, чего сейчасъ хочетъ пользователь: выяснить что-то, исправить что-то, искать въ интернетѣ, рѣшить задачу и т.д." Получаемъ "отвѣтъ 1".

- Къ "отвѣту 1" добавляемъ системный промптъ 2-го шага. Получаемъ "отвѣтъ 2". Это обычно отвѣтъ на вопросъ "сдѣлай болѣе подробный промптъ, реализующiй запросы пользователя такъ, какъ мы поняли въ результатѣ отвѣта 1".

- Частью "отвѣта 2" можетъ являться спецiальная команда "запустить такой-то инструментъ съ такими-то параметрами". Подъ "инструментомъ" (tool) понимается нѣкая внѣшняя программа - запросъ Гуглу или компиляторъ или "grep" или что-то еще. Одна или нѣсколько такихъ командъ обычно порождаются въ промптахъ. Модели особо натренированы порождать такiя команды тамъ, гдѣ необходимо. Выходная информацiя изъ каждой команды добавляется въ очередной "отвѣтъ".

- Къ "отвѣту 2" добавляемъ системный промптъ 3-го шага, получаемъ "отвѣтъ 3" и т.д.

Такимъ образомъ, модель порождаетъ по сценарiю какое-то количество промптовъ и отвѣтовъ. Въ нѣкоторый моментъ модель принимаетъ рѣшенiе, что полученъ уже окончательный отвѣтъ или что собрано достаточно информацiи, чтобы этотъ отвѣтъ сгенерировать. Дѣлается завершающiй шагъ, промптъ "прочти вѣсь предыдущiй полученный массивъ информацiи и сдѣлай выжимку, сформулируй все, что было сдѣлано, въ видѣ списка съ буллетами и подзаголовками". На этотъ промптъ получается отвѣтъ, и этотъ отвѣтъ демонстрируется пользователю. Всѣ предыдущiе шаги свернуты гдѣ-то подъ заголовкомъ "Reasoning", ихъ можно тоже посмотрѣть, чтобы понять, какъ былъ полученъ отвѣтъ.

Date: 2026-05-10 02:53 pm (UTC)
sobriquet9: (Default)
From: [personal profile] sobriquet9

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

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

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

Date: 2026-05-10 02:57 pm (UTC)
epimorphisms_split: (Default)
From: [personal profile] epimorphisms_split

Похоже на правду, чисто текстовая часть должна быть намного меньше общего объема.

Date: 2026-05-10 03:46 pm (UTC)
chaource: (Default)
From: [personal profile] chaource
Насъ ждутъ перемѣны, это точно. Вотъ какъ я вижу происходящее.

Примѣрно съ 2025 года появилась новая каста "жрецовъ ИИ". Это молодые люди безъ сѣмьи, которые по 20 часовъ съ сутки работаютъ съ ИИ, надѣясь что-то такое сдѣлать, чтобы быстро разбогатѣть. Половина изъ нихъ программисты, вторая половина начинающiе бизнесмены. Они дѣлаютъ новые стартапы, ищутъ новые методы извлекать изъ ИИ деньги или вообще нѣкую пользу.

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

На протяженiи 2025 и начала 2026 года постоянно ощутимо росла надежность и производительность ведущихъ ИИ-моделей. Одновременно рѣзко усилилась китайская активность въ области ИИ.

Я ожидаю, что за текущiй 2026 годъ будутъ разработаны ИИ-системы, работа съ которыми станетъ рутинной. Изъ забавныхъ и не очень-то надежныхъ игрушекъ эти системы станутъ рабочими инструментами съ извѣстными характеристиками.

У меня сложилась такая метафора: модель ИИ подобна скаковой лошади, выступающей на скачкахъ. Мы не знаемъ, почему скакунъ иногда выигрываетъ раундъ, а иногда проигрываетъ. Мы дѣлаемъ ставки и надѣемся выиграть. Скаковыхъ лошадей мы не конструируемъ, какъ машины - мы ихъ выращиваемъ, т.е. конечно мы слѣдимъ за родословной, но этого мало, мы заботимся о нихъ, воспитываемъ, тренируемъ, въ надѣждѣ получить результатъ. Потомъ скакуны выходятъ на соревнованiе и только тогда становится видно, чего они стоятъ.

Такъ же и языковыя модели. Мы выращиваемъ и тренируемъ ихъ, надѣясь на побѣду. Но мы знаемъ, что даже отличный скакунъ иногда показываетъ посредственный результатъ.

Исходно лошадь - не инструментъ, ее нельзя "правильно использовать". Чтобы превратить лошадь въ инструментъ, мы ее взнуздываемъ, спереди надѣваемъ шоры, сзади вѣшаемъ мешокъ для навоза, и вообще строго ограничиваемъ всѣ движенiя. Долго тренируемъ въ такомъ режимѣ. И тогда лошадь становится почти надежной машиной для передвиженiя.

Примѣрно это предстоитъ продѣлать съ ИИ-моделями, чтобы ими стало можно пользоваться какъ инструментами въ обычномъ смыслѣ этого понятiя.
Edited Date: 2026-05-10 03:49 pm (UTC)

Date: 2026-05-10 10:13 pm (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
Нифига процесс мышления не сильно коррелирован с речью.

Пример из себя: я в детстве разработал некий набор программ для себя любимого. Года два пилил.
Потом один хороший человек попросил дать ему попользоваться. Я начал ему объяснять и показывать, кто тут на ком стоит. И понял, что не выходит. Терминологии нет. Мне-то она не нужна была, я сам с собой не разговаривал. Хотя точно помню, что всё это время я мыслил, да ещё как. 😁

Date: 2026-05-11 12:39 pm (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
Полагаю, вы объясняете формулы, используя существующие термины.
Да и сами формулы состоят из существующих знаков и символов.
Иногда изобретаются и новые термины и новые символы.
А представьте, что вы студенту какой-нибудь "метод Лапласа" объясняете, не имея общих терминов. Объяснить, конечно, можно. Только для этого лет 10 надо будет потратить, начиная с азов.
У меня и моего "студента", очевидно, было ограничение по времени. Один вечер, примерно.
Общие термины у нас с ним в головах, конечно, были. Азы.
Но навороченное мной за 2 года, состояло из деталей, которые я прекрасно представлял в своей голове, но не имел придумать терминов.
Нет, и собеседник их не знал.
И не по недоученности.

"Говорить - значит называть имена"

Date: 2026-05-11 04:47 pm (UTC)
From: [personal profile] being_no_one
Моё понимание того, что делают, почему это хорошо работает и почему оно не переносится на более общие задачи:

1) Дрессировка ИИ ведётся не только на корпусе текстов, но и на задачах. Вообще в обучении есть две фазы (вы, по-моему, в какой-то момент это сами писали): "предобучение", когда модель наказывают за неправильные предсказания следующего слова, и "тренировка", когда агента на базе модели наказывают за плохие результаты на небольших задачах. В случае с кодом, модель "дообучают" на корпусе разного кода (сграбленного откуда придётся) и после этого тренируют решать программистские задачи.

2) Дообучение - это не обучение с нуля, это некоторая ограниченная модификация весов. Соответственно, впрямую сравнивать объёмы текста для получения модели целиком и для небольшой её подстройки не вполне корректно, задачи очень разные.

Наглядный пример из смежной области: в генерации изображений активно используются LoRA (Low Rank Adaptations) - "нашлёпки" на базовую модель, которые содержат дополнительное знание, как именно выглядит стиль Пикассо, готическая архитектура или Барак Обама. LoRA обычно в 30-100 раз меньше полной модели, но там где модель обучалась на миллионах изображений, для LoRA достаточно буквально несколько десятков. Интуитивно, основная работа по выделению концепций, построению модели мира и whatnot была проделана при обучении базовой сетки, остаётся только указать ей "вот эта штука выглядит вот так".

3) Языки программирования, в общем, довольно похожи (особенно пока мы остаёмся в пределах т.н. императивной парадигмы, когда последовательные строки программы есть приказы некоторой абстрактной машине). Поэтому получается дообучать модель программированию "вообще" вместо программирования на заданном языке. То что "выучивается" в дообучении, когда модель поощряют за правильное решение мелких задач типа "выведи введённую последовательность в обратном порядке", достаточно хорошо ложится на базовое поведение трансформера: исследования наблюдали что LLM и для запросов на естественном языке в подходящих условиях преобразует постановку задачи в т.н. task vector, который затем комбинирует с конкретными входными данными для получения ответа.

Подводя итог: LLM без дообучения на именно написание программ сносно пишет их только пока они простые и короткие (понятия "простого" и "короткого" с общим улучшением моделей покрывают больше задач). LLM с дополнительной тренировкой начинает писать программы с нуля намного лучше, заслуга тренировки здесь не только в предъявлении больших объёмов кода, но и в лучшем использовании уже имевшихся в LLM способностей, которые она без тренировки применяла хреново. Программирование оказывается достаточно простой задачей, чтобы такое общее улучшение было относительно лёгким.

> он сажал две новые ошибки, исправляя одну старую

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

Date: 2026-05-11 05:04 pm (UTC)
koganf: (Default)
From: [personal profile] koganf
ненуачо? Человеческие языки обладают структурой и закономерностями и модели их умудряются вылавливать, пользуясь несложной математикой в больших объёмах (чистый brute force подход). В языках программирования структуры куда больше и выловить её должно быть ещё легче.

Что касается алгоритмической части, тут hit and miss, следить надо в оба.

--
Коган-варвар

Date: 2026-05-11 05:53 pm (UTC)
koganf: (Default)
From: [personal profile] koganf
Почитал эту (и многие подобные) беседу. Все копают и всё понимают, сцуко! А ведь мы наблюдаем натуральную магию. Надо замереть в восторге на некоторое время. А потом продолжать копать.

--
Коган-варвар

Date: 2026-05-11 09:21 pm (UTC)
vlad_m: (Default)
From: [personal profile] vlad_m
1. Что вы называете "быдлокодерским" ремеслом?
2. Кривую имплементации чего вы имеете ввиду?

Date: 2026-05-13 07:26 pm (UTC)
koganf: (Default)
From: [personal profile] koganf
Продолжаю задвигать себя под железное иго. Оказывается, если сказать клоду написать код а потом велеть запустить суб-агента, назначенного старшим архитектором, этот суб-агент вылавливает кучу ошибок ещё до стадии тестирования и меня глазами. Я теперь только так и делаю.

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

--
Коган-варвар

Profile

xaxam: (Default)
xaxam

May 2026

S M T W T F S
     1 2
3 4 56 78 9
10 111213141516
17181920212223
24252627282930
31      

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 14th, 2026 12:55 am
Powered by Dreamwidth Studios