Что такое LLM
Большая языковая модель (LLM, large language model) — это программа, которая делает одну вещь: получив кусок текста, предсказывает, какой фрагмент текста вероятнее всего идёт дальше. Всё остальное (ответы на вопросы, написание кода, перевод, работа агентов) надстроено над этой единственной операцией. Если понять её, станет понятно и то, откуда берутся сильные стороны моделей, и то, откуда берутся их ошибки.
Предсказание следующего токена
Заголовок раздела «Предсказание следующего токена»Модель работает не с буквами и не со словами, а с токенами (token) — кусочками текста длиной от одного символа до целого слова. Подробнее о них рассказано на странице «Токены и контекстное окно», пока достаточно считать токен «примерно словом».
Цикл работы модели выглядит так: она смотрит на весь текст, который ей дали, и вычисляет вероятности для каждого возможного следующего токена. Затем выбирает один из них, дописывает его к тексту и повторяет всё заново, уже с учётом только что добавленного токена. Так, токен за токеном, рождается ответ.
На фразу «Столица Франции — » модель почти наверняка продолжит «Париж»: в текстах, на которых она училась, это сочетание встречалось бессчётное число раз. На вопрос про редкую библиотеку в вашем проекте уверенного продолжения нет, и именно там начинаются проблемы, о которых ниже.
Откуда берётся «понимание»
Заголовок раздела «Откуда берётся «понимание»»Модель обучали на огромном корпусе текстов: книги, статьи, документация, код, обсуждения. Задача на обучении та же самая: угадать следующий токен. Но чтобы хорошо угадывать, недостаточно запомнить частые сочетания слов. Чтобы правильно продолжить математическую выкладку, нужно уловить закономерности арифметики. Чтобы дописать функцию на Python, нужно уловить синтаксис и типичные приёмы программирования. Чтобы продолжить диалог, нужно отслеживать, кто что сказал и что имел в виду.
Поэтому в процессе обучения модель вынужденно выстраивает внутри себя структуры, которые ведут себя как знание языка, фактов и логики. Спорить о том, «настоящее» ли это понимание, можно долго; для практики важно другое: модель действительно решает задачи, требующие обобщения, а не только пересказывает заученное. И при этом у неё нет отдельной «базы фактов», куда можно заглянуть: всё знание размазано по параметрам и проявляется только через генерацию текста.
Модель — это файл с весами
Заголовок раздела «Модель — это файл с весами»Результат обучения — набор чисел, называемых весами (weights) или параметрами. Их миллиарды. Модель — это, по сути, большой файл (или несколько файлов) с этими числами плюс код, который умеет по ним считать вероятности.
Отсюда важное разделение двух этапов:
- Обучение (training) — долгий и дорогой процесс: месяцы работы тысяч ускорителей, после которых веса фиксируются. Проводит его провайдер модели; вы в нём не участвуете.
- Инференс (inference) — использование готовой модели: вы отправляете текст, модель генерирует продолжение. Веса при этом не меняются.
Из этого следует то, что часто удивляет новичков: модель ничему не учится из ваших диалогов. Она не «запоминает» вчерашний разговор и не становится умнее от ваших поправок. Всё, что модель «помнит» в рамках сессии, — это текст, который ей передали в текущем запросе. Память агентов между сессиями — это работа обвязки, а не модели; об этом рассказано в разделе «Память».
Почему ответы каждый раз разные
Заголовок раздела «Почему ответы каждый раз разные»Модель выдаёт не один «правильный» токен, а распределение вероятностей. Дальше есть выбор: всегда брать самый вероятный токен или иногда выбирать из менее вероятных. Этим управляет параметр temperature: при значении около нуля модель почти детерминирована и выбирает самые вероятные продолжения, при более высоких значениях чаще рискует и выдаёт разнообразные, иногда неожиданные варианты.
Интуиция такая: низкая температура — исполнитель, который отвечает по учебнику; высокая — собеседник в режиме мозгового штурма. Для задач с проверяемым результатом (код, извлечение данных) обычно уместна низкая температура, для генерации идей её стоит поднять. Но даже при нулевой температуре не стоит ждать идеальной воспроизводимости: один и тот же вопрос, заданный чуть другими словами, может дать заметно другой ответ.
Оговорка на будущее: у части новейших флагманских моделей ползунка температуры уже нет: поведением управляют формулировкой запроса и уровнем усилий, а не этим параметром. Сам принцип «модель выбирает из распределения, поэтому ответы разнятся» при этом сохраняется.
Галлюцинации: уверенная выдумка
Заголовок раздела «Галлюцинации: уверенная выдумка»Галлюцинация (hallucination) — это правдоподобный, уверенно изложенный, но выдуманный ответ. Ключевое слово — «уверенно»: модель не пишет «не знаю» по умолчанию, потому что её базовая задача — продолжить текст, а не проверить факт. Если правильного продолжения в её «знаниях» нет, она сгенерирует правдоподобное: несуществующую функцию в API, выдуманную статью с убедительным названием, ссылку на несуществующий файл.
Это не сбой, а прямое следствие устройства: модель оптимизирована выдавать текст, который выглядит как правильный. Современные модели галлюцинируют реже и чаще признаются в незнании, но полностью проблема не решена и вряд ли будет решена.
Что с этим делать на практике:
- Проверяйте всё, что можно проверить: запускайте сгенерированный код, открывайте ссылки, сверяйте цифры с источником. Подробнее рассказано на странице «Проверка результатов».
- Давайте модели материал: если ответ должен опираться на документ, приложите документ. Модель, которой дали текст, ошибается заметно реже модели, вспоминающей «по памяти».
- Насторожитесь на конкретике: номера версий, даты, цитаты, названия функций — типичные места галлюцинаций.
- Разрешайте не знать: явная инструкция «если не уверен, скажи об этом» снижает число выдумок.
Отсечка знаний
Заголовок раздела «Отсечка знаний»Обучение заканчивается в конкретный момент, и всё, что произошло после, для модели не существует. Эта дата называется отсечкой знаний (knowledge cutoff). Модель с отсечкой в начале года не знает о библиотеке, вышедшей летом, и будет рассказывать про API «свежей» версии фреймворка по состоянию на прошлый год, разумеется, уверенно.
Обходится это подключением внешних источников: веб-поиск, доступ к документации, чтение файлов проекта. Именно так работают агенты: они не «знают больше», они умеют посмотреть. Как это устроено, разобрано на странице «Инструменты».
Коротко
Заголовок раздела «Коротко»Если коллега спросит «что такое LLM», можно ответить так: это модель, обученная на огромном корпусе текстов предсказывать следующий токен; чтобы хорошо предсказывать, ей пришлось выучить язык, факты и приёмы рассуждения. Она ничего не выполняет и не проверяет, только генерирует правдоподобное продолжение. Поэтому она бывает поразительно полезной и при этом уверенно ошибается: выдумывает факты, не знает недавних событий, отвечает по-разному на один вопрос. Ошибки — не баги конкретной модели, а свойства подхода, и с ними работают проверкой и правильной подачей контекста.
Что дальше
Заголовок раздела «Что дальше»- Провайдеры, семейства и размеры моделей: как ориентироваться в названиях и выбирать модель под задачу.
- Токены и контекстное окно: что именно модель «видит» и где проходят жёсткие лимиты.