Господа и дамы! Товарищи! Почитал я ветки в разделе AI и немного удивился. Потом удивился ещё раз и протёр глаза. Подумал. И решил написать серию постов, которые по-крайней мере определят общую терминологию и её понимание. Иначе, сваливание данного раздела в шаманизм только вопрос времени. Итак начинаем.
Как работает языковая модель (ChatGPT, Claude, Kimi и т.д.)
Шпаргалка о том, как LLM устроены на самом деле. Выкладываю частями, номера разделов сквозные. Цель - дать общий язык для споров про «кванты», «контекст» и «параметры», которые обычно идут на ощущениях. Немного наивно сначала, и по детски, но так проще.
Правило ноль: «нейросеть» — это не одна машина
«Нейросеть» - это не устройство, а способ обучения: машине показывают миллионы примеров, и она сама подстраивает свои внутренние настройки. А вот что за машина получится — зависит от чертежа (его называют архитектурой). Текстовая модель, генератор картинок и распознаватель голоса построены по разным чертежам, как паровоз, вертолёт и моторная лодка: всё это «двигатели», но оценивать их одной цифрой — бессмыслица. Поэтому фраза «все нейросети на одно лицо» - примерно как «весь транспорт одинаковый».
Сначала определение: что это физически - файл? программа? база данных?
Короткая сказка, а потом по делу.
Жил-был механический писец - кукла из тысяч пружинок и рычажков: завёл ключом, и она пишет письмо. Загадка: внутри куклы нет ни одной записки с текстом. Откуда она «знает», как писать? А ниоткуда не знает: вся её наука — в том, насколько туго затянута каждая пружинка. Мастер настраивал её годами: подтянул одну пружинку на волосок, ослабил другую, завёл, поглядел, какие буквы вышли кривыми, — и снова за ключ. Однажды натяжения подобрались так, что кукла стала писать складно. Спросите у неё: «Где у тебя хранятся письма?» - нигде. Письма не хранятся — они получаются при каждом заводе из правильно натянутых пружинок.
Нейросеть - та же кукла, только: пружинок не тысячи, а миллиарды. Каждая «пружинка» - просто число («насколько сильно эта деталь давит на соседнюю»). Заводит механизм отдельная программа - назовём её «движок». А «мастер, который годами подтягивал», — это обучение. (Дальше в шпаргалке пружинки будут называться «ручками» и «настройками»: ручка — то же самое, число, которое куда-то выставлено.)
Теперь по частым догадкам:
«Нейросеть - это файл с данными?» — Да, но не обычный. Обученная нейросеть — гигантский файл, в котором перечислены натяжения всех пружинок: миллиарды чисел, и ничего кроме чисел. «Прочитать» его нельзя: это не текст и не записи, это таблица «какая пружинка насколько затянута».
«Нейросеть - это исполняемый файл?» — Нет. В файле нет ни одной команды — только таблица натяжений, исполнять нечего. Прокручивает механизм отдельная программа, движок (llama.cpp — как раз движок): она читает таблицу, выставляет по ней все пружинки и прогоняет ваш текст сквозь механизм, деталь за деталью. Вся «работа нейросети» — гигантский пересчёт того, как пружинки давят друг на друга, ничего больше. Один и тот же движок годится любой кукле: разные модели — это разные таблицы натяжений, а не разные механизмы. (Вот почему «скачал модель» и «запустил в llama.cpp» — два разных действия: скачали таблицу натяжений, а приводит механизм в движение движок.)
«Нейросеть - база данных?» — Нет. В базе данных каждая запись лежит на полке, и её можно снять и прочитать. В таблице натяжений полок нет: нельзя «найти» в ней ни один из текстов, по которым мастер учил куклу. Кукла не помнит свои учебники — она умеет писать похожее на них.
«Нейросеть - это способ записи знаний?» — Нет, способ настройки знаний. Знания в ней не записаны — они в натяжениях. Как умение велосипедиста: оно в мышцах, а не в дневнике, и текстом его не прописать.
«А где крутят ручки?» — Только при обучении, и крутит их программа-тренер. Показать кукле пример - посмотреть, что она написала - сравнить с правильным - подтянуть или ослабить каждую из миллиардов пружинок на волосок в сторону «чтобы вышло правильнее» - взять следующий пример. Триллионы таких микро-подтяжек - и однажды натяжения становятся «умными». Когда вы общаетесь с готовой моделью, никто ничего не крутит: пружинки застыли, движок лишь гоняет ваш текст сквозь них.
Итого одной фразой: нейросеть - это файл с таблицей натяжений миллиардов пружинок плюс программа-движок, которая прокручивает эти пружинки сквозь ваш текст. «Знания» - не записи в файле, а то, что умеют правильно натянутые пружинки.
