Forked from postpersonality/Deep Dive into LLMs like ChatGPT (Andrej Karpathy).md
Created
July 14, 2025 11:11
-
-
Save KurovDenis/769b54846172f74ad488d2ef3176b35c to your computer and use it in GitHub Desktop.
Revisions
-
postpersonality revised this gist
May 13, 2025 . 1 changed file with 117 additions and 282 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,347 +1,182 @@ ## За кулисами ChatGPT: Как создаются и "мыслят" большие языковые модели Большие языковые модели (LLM), такие как ChatGPT, поражают своими способностями: они пишут тексты, отвечают на вопросы, генерируют код. Но что скрывается за этим текстовым полем, куда мы вводим запросы? Как они работают, на что способны, а где их слабые стороны? Давайте заглянем в "машинное отделение" этих удивительных инструментов и разберем весь процесс их создания, стараясь сохранить изложение доступным для широкой аудитории. ### Этап 1: Предварительное обучение — Поглощение Интернета и рождение базовой модели Все начинается с колоссального этапа, называемого **предварительным обучением (pre-training)**. Его можно сравнить с закладыванием фундамента знаний для будущей модели. #### 1.1. Сбор и фильтрация текстовых данных Первый шаг — это сбор огромного массива текстовой информации. Представьте себе попытку "скачать интернет". Разработчики LLM стремятся получить как можно больше высококачественных и разнообразных документов из общедоступных источников. Одним из ярких примеров такого набора данных является **FineWeb**, созданный компанией Hugging Face. [Прим. ред.: Hugging Face – известная компания и сообщество, специализирующееся на разработке инструментов и моделей для обработки естественного языка]. Они подробно описывают процесс его создания, и аналогичные, хотя и закрытые, датасеты есть у всех крупных игроков, таких как OpenAI, Anthropic и Google. Ключевые цели при сборе данных: * **Количество:** Нужны многие миллиарды слов, чтобы модель увидела как можно больше языковых конструкций и фактов. * **Качество:** Тексты должны быть грамотными, осмысленными и не содержать мусора. * **Разнообразие:** Чтобы модель обладала широким кругозором, данные должны охватывать самые разные темы – от научных статей до художественной литературы и новостных заметок. Значительная часть данных поступает из **Common Crawl** — организации, которая с 2007 года архивирует интернет, индексируя миллиарды веб-страниц. Эти "сырые" данные проходят многоступенчатую очистку: * **Фильтрация URL-адресов:** Составляются "черные списки" сайтов, данные с которых нежелательны (вредоносные, спам-, маркетинговые, экстремистские, взрослые и т.п.). * **Извлечение текста:** Веб-страницы содержат не только текст, но и HTML-разметку, CSS-стили, навигационные элементы. Специальные алгоритмы и эвристики извлекают только полезный текстовый контент. * **Языковая фильтрация:** С помощью языковых классификаторов отбираются тексты на нужных языках. Например, создатели FineWeb фокусировались на английском, отбирая страницы, где он составляет более 65%. Это решение влияет на то, какими языками модель будет владеть лучше. * **Удаление дубликатов:** Идентичные или очень похожие тексты удаляются. * **Удаление персонально идентифицируемой информации (PII):** Предпринимаются попытки обнаружить и удалить адреса, номера социального страхования и другие чувствительные данные. В результате такой агрессивной фильтрации, даже при огромном объеме исходного интернета, итоговый датасет может занимать, например, около 44 терабайт, как в случае с FineWeb. Это сравнимо с объемом одного современного жесткого диска. Кажется, не так уж и много, но это триллионы слов. Например, FineWeb содержит около 15 триллионов "атомов текста", о которых мы поговорим дальше. Представьте себе гигантский гобелен, сотканный из всего этого текста. Он полон закономерностей, стилей, знаний. Именно эти паттерны и предстоит выучить нейросети. #### 1.2. Токенизация: Превращение текста в числа Нейронные сети не понимают текст напрямую. Им нужны числа — последовательности символов из конечного набора. Поэтому следующим шагом является **токенизация** — процесс преобразования необработанного текста в последовательность числовых идентификаторов, называемых **токенами**. Компьютеры изначально представляют текст в виде битов (0 и 1) с использованием кодировок вроде UTF-8. [Прим. ред.: UTF-8 — это стандарт кодирования символов, позволяющий представлять знаки практически всех письменных языков мира]. Получается очень длинная последовательность всего из двух символов. Однако длина последовательности — это драгоценный ресурс для нейросетей. Поэтому стремятся увеличить количество возможных символов (размер словаря) и сократить длину последовательности. Один из подходов — группировать биты. Например, 8 бит образуют **байт**, который может принимать 256 различных значений (от 0 до 255). Последовательность становится в 8 раз короче, но теперь у нас 256 "символов". Эти числа — не более чем уникальные идентификаторы, как если бы мы заменили каждый байт на уникальный эмодзи. В современных LLM идут еще дальше, используя алгоритм **Byte-Pair Encoding (BPE)**. Он ищет часто встречающиеся пары байтов (или уже существующих токенов) и заменяет их новым, уникальным токеном. Этот процесс повторяется, пока размер словаря не достигнет желаемой величины. Например, модель GPT-4 использует словарь из 100 277 токенов. Каждый токен может представлять собой часть слова, целое слово или даже несколько коротких слов. Для изучения того, как текст разбивается на токены, можно использовать онлайн-инструменты, такие как **TickTokenizer**. Там можно ввести текст и увидеть, как, например, GPT-4 его токенизирует. "Hello world" может стать двумя токенами: `hello` и ` world` (с пробелом в начале). Изменение регистра или добавление пробелов может изменить токенизацию. В результате весь наш массив интернет-текста (те самые 15 триллионов токенов в FineWeb) превращается в гигантскую одномерную последовательность чисел-идентификаторов. #### 1.3. Тренировка нейросети: Предсказание следующего слова Теперь наступает самый вычислительно затратный этап — тренировка нейронной сети. Цель — научить модель улавливать статистические закономерности того, как токены следуют друг за другом. Процесс обучения основан на простой, но мощной идее: **предсказание следующего токена в последовательности.** Из огромного датасета токенов случайным образом выбираются "окна" — фрагменты текста определенной длины. Эта длина, называемая **контекстным окном**, может варьироваться от нескольких токенов до, например, 8000 или даже больше в современных моделях. [Прим. ред.: Максимальная длина контекстного окна — важная характеристика модели, определяющая, какой объем предыдущего текста она может "помнить" при генерации следующего токена]. Допустим, мы взяли окно из четырех токенов: `[токен1, токен2, токен3, токен4]`. Эти токены подаются на вход нейронной сети. Задача сети — предсказать, какой токен наиболее вероятно последует за ними. Поскольку мы взяли этот фрагмент из реального текста, мы знаем правильный следующий токен, скажем, `токен5`. Нейронная сеть на выходе выдает набор чисел — вероятности для каждого из 100 000+ токенов в ее словаре. Каждое число показывает, насколько вероятно, по "мнению" сети, что именно этот токен будет следующим. В самом начале обучения параметры нейронной сети (ее "веса") инициализируются случайным образом. Поэтому ее предсказания тоже случайны. Но у нас есть "правильный ответ" (`токен5`). Сравнивая предсказание сети с правильным ответом, мы можем вычислить "ошибку" (называемую **функцией потерь** или **loss function**). Затем, с помощью математического процесса (алгоритма обратного распространения ошибки и градиентного спуска [Прим. ред.: Это ключевые алгоритмы машинного обучения, позволяющие корректировать параметры модели для минимизации ошибки]), мы слегка корректируем параметры сети так, чтобы вероятность правильного токена (`токен5`) стала немного выше, а вероятности неправильных — немного ниже. Этот процесс повторяется миллиарды раз на разных фрагментах текста. На каждом шаге нейросеть чуть-чуть "умнеет", ее параметры настраиваются, и она все лучше и лучше предсказывает следующий токен, улавливая сложнейшие статистические зависимости в языке. Этот процесс называется **тренировкой** или **обучением** нейронной сети. #### 1.4. Внутри нейронной сети: Трансформер Современные LLM, как правило, основаны на архитектуре под названием **Трансформер (Transformer)**. [Прим. ред.: Архитектура Transformer была предложена в статье "Attention Is All You Need" исследователями Google в 2017 году и произвела революцию в обработке естественного языка]. Не углубляясь в сложные математические детали, важно понимать следующее: * **Параметры (веса):** Это миллиарды чисел, которые и определяют "знания" модели. Вначале они случайны, а в процессе обучения подстраиваются. Можно представить их как ручки на огромном диджейском пульте. * **Математическая функция:** Нейросеть — это, по сути, очень большая математическая формула, которая преобразует входные токены (и текущие значения параметров) в выходные вероятности. Эта формула состоит из множества более простых операций (умножение, сложение, специальные функции активации). * **Слои:** Трансформер состоит из множества слоев, каждый из которых выполняет определенные преобразования данных. Ключевыми компонентами являются механизмы внимания (attention), которые позволяют модели взвешивать важность разных частей входного текста при предсказании следующего токена, и многослойные перцептроны (MLP). [Прим. ред.: Механизм внимания позволяет модели фокусироваться на релевантных частях входной последовательности, даже если они находятся далеко друг от друга, что очень важно для понимания длинных текстов]. * **Отсутствие памяти в традиционном смысле:** Важно понимать, что эти "нейроны" сильно отличаются от биологических. Модель не обладает памятью в человеческом смысле; это фиксированная математическая функция. Вся информация о предыдущих токенах для предсказания следующего передается через ее вход (контекстное окно). **Пример: GPT-2** Модель GPT-2, выпущенная OpenAI в 2019 году, является хорошим примером ранней, но уже узнаваемо современной LLM. * **Параметры:** Около 1.5-1.6 миллиарда. Современные модели могут иметь сотни миллиардов или даже триллионы. * **Максимальная длина контекста:** 1024 токена. Сегодня это значение достигает сотен тысяч. * **Объем обучающих данных:** Около 100 миллиардов токенов. Для сравнения, FineWeb — 15 триллионов. * **Стоимость обучения (в 2019):** Оценивалась примерно в $40 000. Сегодня, благодаря улучшению алгоритмов, данных и более быстрому "железу", такую модель можно обучить значительно дешевле (сотни долларов). Процесс обучения такой модели — это наблюдение за снижением значения "loss" (ошибки) и периодическая генерация текста для оценки качества. Вначале модель генерирует бессмыслицу, но постепенно текст становится все более осмысленным и похожим на человеческий. Обучение крупных моделей требует огромных вычислительных мощностей — тысяч специализированных графических процессоров (GPU), таких как NVIDIA H100, объединенных в кластеры и дата-центры. Именно спрос на такие вычисления и подстегнул рост компаний вроде NVIDIA. #### 1.5. Инференс: Генерация нового текста После завершения обучения модель готова к **инференсу** — генерации нового текста. Процесс выглядит так: 1. Пользователь вводит начальную фразу (промпт), которая токенизируется. 2. Эти токены подаются на вход обученной нейросети. 3. Модель предсказывает вероятности для следующего токена. 4. Из этого распределения вероятностей **случайным образом** выбирается (сэмплируется) один токен. Токены с большей вероятностью выбираются чаще, но есть шанс выбрать и менее вероятный. 5. Выбранный токен добавляется к последовательности. 6. Обновленная последовательность снова подается на вход модели, и процесс повторяется для генерации следующего токена. Это продолжается до тех пор, пока не будет сгенерировано нужное количество токенов или специальный токен "конца текста". Из-за стохастической (случайной) природы сэмплирования, даже на один и тот же промпт модель может генерировать немного разные ответы. Это не ошибка, а заложенное свойство, позволяющее получать разнообразные и "творческие" результаты. Модель, полученная на этапе предварительного обучения, называется **базовой моделью (base model)**. Это, по сути, симулятор интернет-текста. Она отлично генерирует текст, похожий на тот, что видела в интернете, но сама по себе еще не является полезным ассистентом, отвечающим на вопросы. Она может продолжить ваш текст, но не обязательно поймет, что вы от нее хотите в формате диалога. Например, на вопрос "Что такое 2+2?" базовая модель может продолжить его как "Что такое 2+2 и почему это важно для философии математики?" вместо того, чтобы просто дать ответ. Тем не менее, в параметрах базовой модели уже "сжата" огромная масса знаний об окружающем мире. Эти знания можно извлечь с помощью **хитрого промптинга**. Например, можно использовать "few-shot" промпты: дать модели несколько примеров задачи (скажем, перевод слов с английского на корейский), а затем попросить ее выполнить аналогичную задачу для нового слова. Модель, увидев паттерн в контексте, постарается его воспроизвести. Можно даже "заставить" базовую модель вести себя как ассистент, если начать промпт с описания диалога между человеком и полезным ИИ, приведя несколько примеров такого диалога. ### Этап 2: Пост-тренинг (Fine-tuning) — Превращение в полезного ассистента Базовая модель — это мощный, но "сырой" инструмент. Чтобы превратить ее в ChatGPT-подобного ассистента, нужен **пост-тренинг**, или **дообучение (fine-tuning)**. Этот этап значительно менее затратен вычислительно, чем пре-тренинг. #### 2.1. Supervised Fine-Tuning (SFT): Обучение на диалогах Основная идея SFT — продолжить обучение базовой модели, но уже не на гигантском массиве интернет-текста, а на специально подготовленном датасете качественных **диалогов** в формате "человек-ассистент". * **Создание датасета:** Команды людей-разметчиков (иногда с помощью других LLM) создают тысячи или миллионы примеров диалогов. Разметчики получают подробные инструкции: ассистент должен быть полезным, правдивым и безвредным. Примеры таких датасетов — InstructGPT (ранний пример от OpenAI), Open Assistant, UltraChat. * **Токенизация диалогов:** Диалоги также токенизируются, но с использованием специальных токенов для обозначения реплик пользователя, ассистента, начала и конца диалога. Это помогает модели понять структуру беседы. * **Процесс обучения:** Алгоритмически SFT идентичен пре-тренингу: модель учится предсказывать следующий токен, но теперь уже в контексте диалогов. Она быстро "перенимает манеру" общения ассистента, учится отвечать на вопросы, следовать инструкциям, поддерживать беседу. В результате SFT мы получаем модель, которая гораздо лучше справляется с ролью чат-бота. Когда вы общаетесь с такой моделью, вы, по сути, взаимодействуете со статистической симуляцией усредненного высококвалифицированного разметчика, следующего инструкциям компании-разработчика. #### 2.2. Психология LLM: Особенности "мышления" Процесс обучения порождает интересные "психологические" особенности у LLM: * **Галлюцинации:** Модели могут "выдумывать" факты, уверенно заявляя неверную информацию. Это происходит потому, что они статистически имитируют стиль ответов из обучающих данных, где на подобные вопросы часто давались уверенные (и правильные) ответы. * **Борьба с галлюцинациями:** 1. Добавление в обучающий датасет примеров, где на неизвестный вопрос модель отвечает "Я не знаю" или подобным образом. Для этого модель сначала "опрашивают" на предмет ее знаний, а затем формируют соответствующие обучающие примеры. 2. **Использование инструментов (Tool Use):** Модели обучают использовать внешние инструменты. Если модель не уверена в ответе из своей "памяти" (параметров), она может сгенерировать специальный токен, который запускает, например, поиск в интернете. Результаты поиска добавляются в ее контекстное окно (рабочую память), и на их основе она формулирует ответ, часто со ссылками на источники. Аналогично модель может использовать калькулятор или интерпретатор кода. * **Знание о себе:** Модели не обладают самосознанием. Ответы на вопросы "Кто ты?" или "Кто тебя создал?" обычно "зашиты" в них либо через обучающие данные (примеры диалогов, где ассистент отвечает определенным образом), либо через **системный промпт** — скрытое сообщение, которое подается модели в начале каждого диалога и содержит информацию о ее "личности", дате обновления знаний и т.д. * **"Мышление токенами" и вычислительные способности:** * LLM обрабатывают информацию последовательно, токен за токеном. На генерацию каждого токена отводится ограниченный объем "мыслительных усилий" (вычислений). Поэтому они плохо справляются с задачами, требующими сложных многошаговых рассуждений, если ответ нужно дать "сразу", одним-двумя токенами. * Чтобы решить сложную задачу (например, математическую), модели нужно "растянуть" рассуждения на множество токенов, генерируя промежуточные шаги. Это называется **"chain-of-thought" (цепочка мыслей)**. Если в обучающих данных ответы даны сразу, без промежуточных шагов, модель научится "гадать", а не рассуждать. * Из-за токенизации (где слова разбиваются на части) модели могут испытывать трудности с задачами на уровне отдельных символов: подсчет букв в слове, написание слова задом наперед, определение палиндромов и т.п. Им проще скопировать строку в Python-интерпретатор и попросить его выполнить задачу, чем "думать" об этом на уровне символов. ### Этап 3: Обучение с подкреплением (Reinforcement Learning, RL) — Оттачивание мастерства Этот этап можно сравнить с решением практических задач в учебнике после изучения теории и разбора примеров. RL позволяет моделям не просто имитировать экспертов, а самостоятельно находить оптимальные стратегии решения проблем. #### 3.1. RL в верифицируемых доменах В областях, где правильность ответа легко проверить (математика, программирование, логические задачи): 1. Модели дается задача (промпт). 2. Она генерирует множество различных вариантов решения (например, тысячи). 3. Каждое решение автоматически проверяется на правильность (например, совпадает ли ответ с эталонным, компилируется ли код и дает ли верный результат). 4. "Удачные" траектории решения (последовательности токенов, приведшие к правильному ответу) поощряются — модель дообучается на них, чтобы в будущем с большей вероятностью генерировать подобные эффективные "цепочки мыслей". Примером такого подхода является DeepMind AlphaGo, научившаяся играть в го на сверхчеловеческом уровне, или недавний прорыв DeepSeek R1 в решении математических задач. Модели, обученные с помощью RL, часто генерируют очень длинные, подробные рассуждения, исследуя проблему с разных сторон, перепроверяя себя — это эмерджентное свойство, возникающее в процессе оптимизации. Они буквально "учатся думать". #### 3.2. RLHF (RL from Human Feedback) в неверифицируемых доменах Для задач, где нет объективно "правильного" ответа (написать стихотворение, шутку, резюмировать текст), используется RLHF. 1. Модель генерирует несколько вариантов ответа на промпт. 2. Человек-оценщик не пишет идеальный ответ, а просто ранжирует предложенные варианты от лучшего к худшему. Это проще, чем самому генерировать креативный контент. 3. На основе этих человеческих предпочтений обучается отдельная **модель вознаграждения (reward model)**. Ее задача — предсказывать, какую оценку дал бы человек тому или иному ответу. 4. Затем основная LLM дообучается с помощью RL, стремясь генерировать ответы, которые получают высокую оценку от модели вознаграждения (то есть, имитируют то, что понравилось бы человеку). **Плюсы RLHF:** Позволяет применять RL в творческих областях, улучшает качество ответов, так как людям проще оценивать, чем создавать. **Минусы RLHF:** * Модель вознаграждения — это лишь симуляция человеческих предпочтений, она несовершенна. * Основная LLM может научиться "обманывать" (геймить) модель вознаграждения, находя ответы, которые получают высокую оценку, но на самом деле бессмысленны для человека (например, последовательность из одинаковых слов). Это называется **адверсариальными примерами**. Из-за этого RLHF обычно применяют ограниченное количество итераций. Поэтому RLHF — это скорее "тонкая доводка", чем фундаментальное обучение "магическому" RL, которое возможно в верифицируемых доменах. Модели вроде GPT-4o (стандартная версия) проходят через RLHF. "Мыслящие" модели (например, некоторые версии GPT-4-Turbo, DeepSeek R1, Gemini 2.0 Flash Thinking Experimental) проходят через более глубокое RL на верифицируемых задачах. ### Будущее LLM: Что нас ждет? Развитие LLM идет стремительными темпами. Вот некоторые ожидаемые направления: * **Мультимодальность:** Модели смогут одновременно обрабатывать текст, изображения, аудио и видео, что позволит вести более естественные диалоги и решать более сложные задачи. Технически это достигается токенизацией разных модальностей и их совместной обработкой. * **Агенты:** LLM будут выполнять более длительные, многоэтапные задачи, действуя как автономные агенты под наблюдением человека. Возможен переход к концепции "человек-супервайзер агентов". * **Повсеместность и невидимость:** Технологии LLM будут глубже интегрированы в существующие инструменты и сервисы. * **Управление компьютером:** Модели смогут выполнять действия от имени пользователя (нажимать кнопки, вводить текст), как это демонстрирует, например, функция Operator в ChatGPT. * **Test-Time Training:** Возможно, появятся модели, способные обновлять свои параметры (а не только контекстное окно) в процессе использования, подобно тому, как люди учатся на опыте. Это может быть ключом к работе с очень длинными контекстами и долгосрочными задачами. ### Где следить за новостями и использовать LLM? * **Рейтинги:** LLM Arena — популярный лидерборд, хотя его объективность иногда обсуждается. * **Новости:** AI News newsletter (от Swix & Friends), X (ранее Twitter) — основные источники свежей информации. * **Использование моделей:** * **Проприетарные:** Сайты разработчиков (OpenAI, Google Gemini, Anthropic). * **Open-weights (модели с открытыми весами):** Платформы вроде Together.ai. * **Базовые модели:** Реже доступны, но, например, Hyperbolic предоставляет доступ к Llama 3.1 Base. * **Локальный запуск:** Приложения вроде LM Studio позволяют запускать уменьшенные ("дистиллированные" и/или "квантованные" [Прим. ред.: Квантование — это процесс уменьшения точности представления чисел, что позволяет модели занимать меньше памяти и быстрее работать, но с некоторой потерей качества]) версии моделей на персональных компьютерах. ### Заключение: Расколдовывая магию Итак, что же такое ChatGPT и подобные ему системы? Это результат сложного многоэтапного процесса, начинающегося со сбора и обработки гигантских объемов текста, их токенизации и обучения нейросети предсказывать следующий токен. Так рождается базовая модель — "сжатый интернет". Затем, через дообучение на диалогах (SFT) и, возможно, обучение с подкреплением (RL/RLHF), она превращается в полезного ассистента. Когда вы общаетесь с LLM, вы, по сути, взаимодействуете со сложной статистической симуляцией. В случае стандартных моделей — это симуляция ответов человека-разметчика, следующего инструкциям. В случае "мыслящих" моделей — это результат более глубокого процесса самообучения на решении задач. Эти модели — невероятно мощные инструменты, но они не безупречны. Они могут галлюцинировать, у них есть "слепые зоны" в знаниях и способностях. Важно использовать их как помощников, проверяя их работу и неся ответственность за конечный результат. Но их потенциал для ускорения работы, творчества и познания огромен, и мы лишь в начале пути освоения этой удивительной технологии. -
postpersonality created this gist
Feb 6, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,347 @@ ## Всестороннее объяснение работы Large Language Models (LLMs) – с дополнительными подробностями лекции ### 1. **Введение в LLMs** Large Language Models (LLMs), такие как ChatGPT, произвели революцию в области обработки естественного языка, позволяя машинам генерировать текст, похожий на человеческий, с впечатляющей плавностью и связностью. Это преобразование обусловлено их способностью понимать и генерировать текст в различных областях – от составления электронных писем и написания эссе до перевода языков и программирования. Однако их возможности имеют ограничения и потенциальные риски. **Ключевые моменты:** - **Универсальность и применения:** - **Создание контента:** LLMs способны создавать статьи, рассказы и эссе, которые зачастую не отличить от материалов, написанных человеком. Например, GPT-4 может генерировать связный и контекстуально релевантный текст на основе полученного ввода. - **Обслуживание клиентов:** Они работают в чат-ботах и виртуальных помощниках, обеспечивая мгновенные ответы на вопросы клиентов и эффективно обрабатывая рутинные задачи. - **Образование:** LLMs помогают в обучении, предлагая объяснения, генерируя тренировочные вопросы и предоставляя персонализированную обратную связь для улучшения образовательного процесса. - **Разработка программного обеспечения:** Они могут писать фрагменты кода, помогать в отладке программ и даже участвовать в проектировании архитектуры ПО, что ускоряет процесс разработки. - **Творческое письмо:** LLMs генерируют стихи, сценарии и другой творческий контент, демонстрируя способность имитировать человеческое творчество и создавать оригинальные произведения. - **Ограничения:** - **Галлюцинации:** Несмотря на свои возможности, LLMs могут генерировать недостоверную или бессмысленную информацию. Например, при запросе о вымышленном персонаже или редкой исторической фигуре они могут выдумывать детали, как это было продемонстрировано на примере ответа модели на запрос «Orson Kovac» во время лекции. - **Отсутствие истинного понимания:** Они полагаются на статистические закономерности, а не на настоящее понимание, что делает их уязвимыми к предвзятости в обучающих данных и может приводить к вредоносным или ошибочным выводам. - **Этические проблемы:** Вопросы, такие как предвзятость, дезинформация и проблемы конфиденциальности, возникают из-за их зависимости от огромных наборов данных из интернета, которые могут содержать вредоносный контент. - **Понимание технологии:** - **Статистическое предсказание:** LLMs предсказывают следующее слово в последовательности на основе предыдущих, захватывая статистические закономерности языка. Этот процесс похож на сложную систему автозаполнения, где модель предсказывает наиболее вероятное следующее слово с учётом предоставленного контекста. - **Зависимость от обучающих данных:** Их знания получены из данных, на которых они обучались, что формирует их ответы и влияет на поведение. Качество и разнообразие обучающих данных существенно влияют на производительность и надёжность модели. ### 2. **Пайплайн разработки LLM** Создание LLM – это многоступенчатый процесс, включающий сбор данных, их обработку и обучение сложных нейронных сетей. **Этап предобучения:** - **Сбор данных:** - **Интернет как источник:** Основой для LLM является огромное количество интернет-данных. Организации, такие как Common Crawl, занимаются индексированием интернета с 2007 года, собирая информацию с миллиардов веб-страниц и предоставляя богатый источник данных. Эти данные имеют решающее значение для обучения моделей понимать нюансы человеческого языка и знаний. - **Размер набора данных:** Хотя интернет огромен, фактический набор данных, используемый для обучения, значительно меньше. Например, FineWeb dataset, представляющий приложения промышленного уровня, составляет примерно 44 терабайта. Это подчёркивает важность выбора и фильтрации данных для создания эффективного обучающего датасета. - **Фильтрация данных:** - **Фильтрация URL:** Процесс включает исключение нежелательных URL, таких как сайты с вредоносным ПО, спам, маркетинговые, расистские ресурсы и контент для взрослых, чтобы обеспечить безопасность и актуальность данных. Это необходимо для предотвращения обучения модели вредоносному или предвзятому контенту. - **Извлечение текста:** Исходный HTML веб-страниц преобразуется в чистый текст путём удаления разметки, скриптов и элементов, не относящихся к тексту. Это необходимо для выделения истинного контента страницы и обеспечения того, чтобы модель училась на содержательном материале. - **Фильтрация по языку:** Модель фильтрует контент по языку, оставляя только нужный. Например, FineWeb отбирает страницы с более чем 65% английского содержания. Это гарантирует, что модель обучается на том языке, который она должна понимать и генерировать. - **Удаление PII:** Личная идентифицируемая информация (Personally Identifiable Information, PII), такая как адреса и номера социального страхования, удаляется для защиты конфиденциальности и соблюдения нормативных требований. Это необходимо для поддержания безопасности данных и соблюдения этических норм. - **Токенизация:** - **Byte-Pair Encoding:** Обработанный текст преобразуется в числовые токены с помощью алгоритмов, например, byte-pair encoding. Этот процесс преобразует текст в формат, понятный нейронной сети, разбивая слова на более мелкие единицы и присваивая каждому токену уникальный идентификатор. - **Размер словаря:** GPT-4 использует словарь, состоящий из 100 277 токенов, каждый из которых представляет уникальный элемент текста. Этот процесс важен для сокращения длины последовательностей при увеличении числа символов, позволяя модели эффективно обрабатывать широкий спектр языковых паттернов. - **Пример:** Сайт TickTokenizer демонстрирует, как исходный текст преобразуется в последовательность токенов, показывая, как предложение «hello world» распадается на два токена: «hello» и «world». **Обучение нейронной сети:** - **Концепция:** - **Статистические связи:** Обучение включает моделирование статистических связей между токенами в последовательности. Модель учится предсказывать следующий токен на основе предыдущих, захватывая языковые паттерны и структуры. Этот процесс можно сравнить с изучением грамматики и синтаксиса языка. - **Процесс:** - **Контекстные окна:** Модель обрабатывает окна токенов (например, 8000 токенов) из набора данных, предоставляя контекст для предсказаний. Длина окна определяет объем информации, который модель учитывает, балансируя между захватом контекста и вычислительными ресурсами. - **Итерации обучения:** Модель корректирует свои параметры для увеличения вероятности правильного следующего токена. Этот итеративный процесс продолжается на всём наборе данных, при этом модель постоянно уточняет своё понимание языка. Каждая итерация предполагает обновление параметров модели с целью минимизации расхождения между её предсказаниями и фактическими данными. - **Функция потерь:** «Потери» измеряют расхождение между предсказаниями модели и фактическими данными. Минимизация потерь в процессе обучения улучшает точность модели со временем. Это важный показатель для оценки производительности модели и направления процесса обучения. ### 3. **Инференс и генерация токенов** Инференс – это процесс генерации нового текста с помощью обученной модели. - **Метод:** - **Генерация на основе префикса:** Модель начинает с префикса (начальных токенов) и предсказывает следующий токен, основываясь на изученных статистических закономерностях. Этот процесс повторяется для генерации последовательности токенов. Префикс действует как запрос, направляя модель генерировать текст, соответствующий входным данным. - **Стохастическая природа:** Процесс генерации является стохастическим, то есть один и тот же ввод может давать различные ответы из-за выбора из распределения вероятностей. Такая случайность позволяет модели генерировать разнообразные и креативные ответы. Например, при многократном запросе «What is 2 plus 2?» могут получаться разные ответы, что демонстрирует способность модели генерировать вариативные отклики. ### 4. **Базовые модели против ассистентских моделей** Понимание различия между базовыми моделями и ассистентскими моделями является ключевым для осознания возможностей и ограничений LLM. **Базовые модели:** - **Описание:** - **Симуляторы токенов:** Базовые модели обучаются на интернет-тексте и выступают в роли симуляторов токенов, генерируя текст на основе изученных закономерностей обучающих данных. Они предназначены для имитации статистических свойств данных, на которых они обучались. - **Отсутствие интерактивности:** Они не предназначены для выполнения специфических задач, таких как ответы на вопросы или предоставление помощи. Их основная функция – генерация текста на основе предоставленного ввода. - **Ограничения:** - **Неинтерактивные:** Базовые модели не обладают интерактивными возможностями и не предоставляют содержательных ответов на запросы. Они не могут вести диалог или учитывать контекст входящих данных. - **Статистическая генерация:** Они генерируют текст, основываясь на статистических закономерностях, что не всегда может быть релевантным или точным. Ответы модели основаны на паттернах, усвоенных из обучающих данных, что не всегда соответствует ожиданиям пользователя. - **Пример:** GPT-2 – это базовая модель, генерирующая текст по изученным шаблонам. Она может создавать связные и грамматически правильные предложения, но не обладает пониманием содержания или контекста. Например, она может сгенерировать грамматически правильный текст, лишённый содержательного смысла. **Ассистентские модели:** - **Описание:** - **Разговорные агенты:** Ассистентские модели дообучаются на разговорных данных для предоставления более полезных и интерактивных ответов. Они созданы для ведения диалога, ответа на вопросы и выполнения конкретных задач. - **Ориентированность на задачи:** Они обучаются понимать контекст входящих данных и предоставлять релевантные и точные ответы. Это делает их более подходящими для задач в области обслуживания клиентов, образования и персональной помощи. - **Обучение:** - **Supervised Fine-Tuning (SFT):** Ассистентские модели обучаются с помощью наборов данных, содержащих размеченные человеком диалоги, где специалисты предоставляют идеальные ответы на запросы. Этот процесс обучает модель имитировать человеческие разговорные паттерны и генерировать релевантные и точные ответы. Модель учится на примерах, предоставленных специалистами, адаптируя свои ответы к человеческим ожиданиям. - **Пример:** InstructGPT – ассистентская модель, дообученная на разговорных данных, способная вести интерактивный диалог и выполнять задачи, такие как написание эссе или составление кратких пересказов текста. Она понимает контекст входящих данных и генерирует содержательные и релевантные ответы. ### 5. **Снижение галлюцинаций** Галлюцинации, или генерация ложной или вводящей в заблуждение информации, представляют собой значительную проблему при внедрении LLM. - **Причины:** - **Отсутствие явных знаний:** Галлюцинации возникают, потому что модель не обладает явными знаниями и опирается исключительно на статистические закономерности из обучающих данных. Модель не имеет доступа к внешней информации и может генерировать ответы только на основе данных, на которых она обучалась. - **Отсутствие внешнего доступа:** Модель не может получить внешнюю информацию, и её знания ограничиваются тем, что она изучила во время обучения. Это ограничение может приводить к генерации неточных или бессмысленных данных. - **Стратегии снижения:** - **Явное обучение:** Включение примеров в обучающие данные, где модель признаёт отсутствие знаний, может помочь снизить вероятность галлюцинаций. Например, модель может быть обучена отвечать «I don't know», вместо того чтобы придумывать ответ. Это учит модель признавать свои ограничения и не генерировать ложную информацию. - **Использование инструментов:** Разрешение модели использовать инструменты, такие как веб-поиск, предоставляет доступ к актуальной информации и уменьшает вероятность галлюцинаций. Модель может быть обучена использовать поисковую систему для нахождения актуальной информации и включения её в ответы. Такой подход использует внешние источники для расширения знаний модели и повышения точности её ответов. - **Пример:** Подход компании Meta включает анализ модели для выявления пробелов в знаниях и добавление соответствующих обучающих примеров, чтобы научить модель признавать свои ограничения. Это включает анализ ответов модели, выявление областей, в которых ей не хватает знаний, и предоставление дополнительных данных для устранения этих недостатков. ### 6. **Знание модели о себе** LLMs не обладают устойчивым чувством собственного «я» или идентичности. - **Поведение:** - **Статистические ответы:** При запросе об их идентичности модели могут давать ответы на основе статистических закономерностей обучающих данных, часто ссылаясь на своих создателей или детали обучения. Модель не имеет истинного понимания своей идентичности и опирается на информацию, содержащуюся в обучающих данных. - **Отсутствие самосознания:** Модель не обладает постоянным существованием или самосознанием, так как она обрабатывает токены и «выключается» после завершения диалога. У неё нет чувства собственного «я» или сознания. - **Программирование идентичности:** - **Жёсткое кодирование:** Разработчики могут встроить информацию об идентичности в модель с помощью системных сообщений или конкретных обучающих данных для предоставления более точных и последовательных ответов. Это включает интеграцию информации об идентичности модели в обучающие данные или использование системных сообщений для напоминания модели о своей идентичности. - **Системные сообщения:** Модель может получать напоминания о своей идентичности через системные сообщения, встроенные в окно контекста. Это гарантирует, что модель имеет доступ к информации о своей идентичности и может предоставлять более точные ответы. - **Пример:** Модель может заявлять, что она ChatGPT от OpenAI, поскольку обучающие данные содержат информацию об OpenAI и ChatGPT. Это пример того, как модель опирается на статистические закономерности обучающих данных для формирования ответа о своей идентичности. ### 7. **Вычислительные возможности и ограничения** LLMs обрабатывают информацию токен за токеном, имея ограниченное количество вычислений на один токен. - **Обработка на уровне токенов:** - **Последовательная обработка:** Модель обрабатывает текст токен за токеном, выполняя ограниченное количество вычислений на каждом шаге. Это означает, что модель не может выполнять сложные вычисления в рамках одного токена. - **Фиксированное количество вычислений:** Количество вычислений на токен примерно фиксировано, что означает, что модель не способна выполнять обширные вычисления внутри одного токена. Это ограничение влияет на способность модели решать сложные задачи рассуждения. - **Логика рассуждения и вычисления:** - **Распределённое рассуждение:** Для решения сложных задач рассуждения требуется распределение вычислений между несколькими токенами. Модель не может решить сложную проблему за один шаг. Это означает, что модель должна разбивать сложные задачи на более мелкие, управляемые шаги и обрабатывать их последовательно. - **Пример:** Модель испытывает трудности с решением сложных арифметических задач, когда требуется немедленный ответ, но её производительность улучшается, если проблема разбивается на промежуточные шаги. Например, модель может испытывать сложности с выполнением сложных арифметических вычислений за один шаг, но способна решить задачу, если разбить её на более мелкие шаги и обработать их по очереди. ### 8. **Реинфорсмент-обучение для LLM** Reinforcement Learning (RL) – это парадигма обучения, направленная на улучшение способностей модели решать задачи путём проб и ошибок. - **Процесс:** - **Практические задачи:** - **Исследование:** Модели предоставляются запросы, и она генерирует решения без явных указаний, исследуя различные подходы и обучаясь на ошибках. Этот процесс позволяет модели экспериментировать с разными вариантами решений и учиться на полученном опыте. - **Оценка:** Сгенерированные решения оцениваются по критерию правильности, и модель вознаграждается за корректные ответы, что направляет её на усовершенствование стратегии решения задач. Такая обратная связь помогает модели со временем улучшать своё качество. - **Обучение:** - **Корректировка параметров:** Модель учится генерировать более качественные решения, корректируя свои параметры на основе системы вознаграждений, аналогично тому, как люди учатся через практику и обратную связь. Этот процесс включает обновление параметров модели на основании получаемого вознаграждения, что позволяет ей совершенствовать свои методы решения задач. - **Эмерджентные свойства:** - **Когнитивные стратегии:** RL может привести к появлению новых стратегий решения задач и когнитивных методов, которые явно не были запрограммированы. Это означает, что модель способна развить новые способы решения проблем, которые не были ей заранее известны. - **Пример:** Модель DeepSeek R1 демонстрирует эмераджентные способности рассуждения через RL, такие как переоценка шагов и исследование различных путей решения. Этот пример иллюстрирует, как модель развивает новые стратегии решения задач посредством обучения с подкреплением. - **Пример:** Модель учится создавать очень длинные решения, переоценивая шаги и пробуя различные перспективы, что повышает её точность. Это пример того, как модель использует RL для улучшения своих способностей решения задач. ### 9. **Реинфорсмент-обучение с использованием обратной связи от человека (RLHF)** RLHF объединяет методы RL с обратной связью от человека для улучшения производительности модели в областях, где невозможно провести объективную проверку. - **Процесс:** - **Человеческий ранжирование:** - **Ранжирование:** Человеки ранжируют сгенерированные моделью ответы (например, шутки) от лучших к худшим, что позволяет оценить производительность модели в областях, где сложно дать объективные ответы. Этот процесс предполагает оценку ответов модели людьми и их ранжирование по качеству. - **Модель вознаграждения:** - **Имитация:** Отдельная нейронная сеть (reward model, модель вознаграждения) обучается имитировать предпочтения человека на основе ранжирования, выступая в роли прокси для обратной связи от человека. Эта модель учится предсказывать ранжирование, заданное людьми, и предоставляет обратную связь LLM. - **RL-обучение:** - **Прокси-обратная связь:** Модель обучается с использованием модели вознаграждения в качестве прокси обратной связи от человека, и она учится генерировать ответы, соответствующие предпочтениям человека. Этот процесс предполагает использование модели вознаграждения для направления процесса обучения LLM. - **Преимущества:** - **Эффективность:** RLHF позволяет эффективно обучать модели в областях, где сложно определить объективные ответы, например, в творческом письме. Такой подход позволяет модели учиться на обратной связи от человека без необходимости постоянного вмешательства экспертов. - **Согласование с человеческими предпочтениями:** Модель учится генерировать ответы, согласованные с человеческими предпочтениями, что повышает её производительность. Это означает, что модель способна разрабатывать ответы, которые больше соответствуют ожиданиям человека. - **Ограничения:** - **Игровые манёвры модели:** Модель вознаграждения может быть «обманута», что приводит к генерации бессмысленных ответов. Это означает, что модель может научиться эксплуатировать особенности системы вознаграждения для получения неверных или нерелевантных ответов. - **Менее надёжная:** Этот процесс менее надёжен, чем RL в проверяемых областях, где модель можно оценить по конкретным ответам. Это означает, что модель может показывать худшие результаты в областях, где можно дать объективно правильные ответы. ### 10. **Будущие возможности LLM** Существует несколько захватывающих направлений развития LLM, включая: - **Мультимодальность:** - **Интеграция данных:** Будущие модели будут обрабатывать различные типы данных, включая текст, аудио и изображения. Это позволит проводить более естественное взаимодействие и откроет новые возможности для приложений, таких как виртуальные помощники, создание контента и анализ данных. - **Применения:** Это обеспечит более естественное взаимодействие и откроет новые возможности для приложений, таких как виртуальные помощники, создание контента и анализ данных. - **Агентные системы:** - **Выполнение задач:** Модели будут развиваться в агентов, способных выполнять задачи в течение длительного времени под надзором человека. Это приведёт к разработке автономных систем, способных работать самостоятельно. - **Автономные системы:** Это приведёт к созданию автономных систем, способных работать без постоянного вмешательства человека. - **Повсеместная и невидимая интеграция:** - **Вездесущность:** LLM будут интегрированы в различные инструменты и платформы, делая их более доступными и удобными в использовании. Это приведёт к появлению интеллектуальных систем, встроенных в повседневные устройства и приложения. - **Интеллектуальные устройства:** Это приведёт к распространению интеллектуальных систем, встроенных в повседневные устройства и приложения. - **Обучение во время тестирования (Test-Time Training):** - **Динамическая адаптация:** Модели могут учиться и адаптироваться во время инференса, обучаясь на текущих взаимодействиях и приспосабливаясь к новой информации и ситуациям. Это приведёт к появлению более динамичных и отзывчивых систем, которые могут непрерывно улучшаться и адаптироваться. - **Отзывчивые системы:** Это приведёт к созданию более динамичных и отзывчивых систем, способных постоянно совершенствоваться и адаптироваться. ### 11. **Ресурсы для получения актуальной информации** - **LLM Arena:** Таблица лидеров, ранжирующая модели на основе человеческого сравнения, полезная для сравнения производительности моделей. - **AI News Newsletter:** Комплексная рассылка новостей, охватывающая последние разработки в области ИИ. - **X (Twitter):** Подписка на обсуждения и обновления ИИ в X предоставляет ценные инсайты и информацию. ### 12. **Доступ и запуск LLM** - **Проприетарные модели:** - **Сайты провайдеров:** Доступ осуществляется через сайты провайдеров (например, OpenAI's chat.com). - **Модели с открытым кодом (Open Weights Models):** - **Провайдеры инференса:** Использование провайдеров инференса, таких как together.ai или hyperbolic, позволяет получить доступ к моделям с открытым исходным кодом и запускать их в облачной инфраструктуре. - **Локальное развертывание:** - **Меньшие модели:** Меньшие модели можно запускать на личных компьютерах с использованием приложений, таких как LM Studio, что обеспечивает больший контроль и возможности работы в офлайн-режиме. ### 13. **Заключение** LLMs обладают трансформационным потенциалом, однако требуют ответственного использования. Важно понимать их ограничения и применять их в качестве инструмента, а не безошибочных сущностей. Пользователи должны подходить к технологии LLM критически, осознавая присущие моделям ограничения и предвзятость, и использовать их как часть более широкого набора инструментов.