Для компьютера «초파리» («дрозофила») с самого начала — это числа. У каждого символа есть свой номер (Юникод), и этот номер хранится в виде байтов. Чтобы подать текст в нейросеть, предложение нужно разбить на токены, присвоить каждому токену номер, превратить номер в вектор, несущий смысл (эмбеддинг), и добавить информацию о порядке. Все шаги мы посчитаем сами на маленьком корейском корпусе из 36 предложений.
Номер слога хангыля = 0xAC00 + (начальная × 21 + срединная) × 28 + конечнаяСтандарт Юникод, раздел 3.12
Если делить по символам, токенов становится слишком много; если делить по словам, нельзя обработать незнакомое слово. BPE ищет середину: снова и снова сливает в один фрагмент два фрагмента, которые чаще всего встречаются рядом в корпусе.
Если после 60 слияний BPE собрать токены, встречающиеся в корпусе, получится словарь. Каждому токену присваивается номер ячейки в словаре. Токен, которого нет в словаре, получает номер «неизвестно».
Номера 54 и 55 соседние, но по смыслу никак не связаны. Поэтому каждому номеру сопоставляют вектор из нескольких измерений. Цель — чтобы слова, которые употребляются похожим образом, получили близкие координаты. Здесь для каждого из 55 слов мы построили 8-мерный вектор по «числу совместных появлений в пределах ±2 позиций в одном предложении».
Идея «если слова встречаются в похожем окружении, то и смысл у них похож» давняя. Типичный ранний метод — латентно-семантический анализ (LSA): таблицу появлений слов в документах сжимают сингулярным разложением и находят скрытую смысловую структуру [R2]. На этой странице к таблице совместных появлений слов применяется log(1 + число), а 8 измерений извлекаются разложением по собственным значениям. Современные языковые модели выучивают эмбеддинги вместе с обучением предсказывать следующий токен. Информацию о позиции из раздела 5 тоже прибавляют к этому вектору.
Если сложить токены в мешок без порядка и просто посчитать их (мешок токенов), порядок исчезает. В корейском языке роль слова показывают падежные частицы, поэтому при смене порядка слов смысл часто сохраняется, но не всегда.
Текст → токены → номера → векторы (+позиция) → трансформер (3-8) → вероятность следующего токена. Простейшая языковая модель смотрит только на предыдущее слово и считает, какое слово идёт следом. Посчитаем это сами на нашем корпусе и посмотрим, что трансформер делает сверх этого.
Оба примера используют только библиотеки, предустановленные в Colab. Нажмите «Скачать блокнот (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового блокнота.
Без специальных библиотек вычисляем Юникод и UTF-8, формулу чамо хангыля, обучение и применение BPE, номера токенов, эмбеддинги по числу совместных появлений и вероятности по предыдущему слову. Чтобы подставить свои данные, замените CORPUS.
С помощью рабочих библиотек превращаем предложения в матрицу «предложения × токены», сравниваем разбиение по словам и по фрагментам символов и ищем похожие предложения с помощью TF-IDF и латентно-семантического анализа.
Это промпты, которые можно вставить в ИИ-помощника вроде ChatGPT, Qwen или Claude. Если нажать «Копировать», после промпта будет добавлен выбранный код. Замените текст в 〔 〕 на свою ситуацию.
Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если для конкурса или статьи вы пользовались помощью ИИ, укажите факт и объём использования согласно правилам организаторов и журнала.
Это тот же словарь, что и жёлтое пунктирное подчёркивание в тексте. Во всей серии используются одни и те же обозначения. Нажмите на название раздела, чтобы перейти к месту первого упоминания.
Аналогия — первый шаг к пониманию, но и семя заблуждения. Для аналогий с дрозофилой и мозгом указана сила. Прямая есть данные, что это действительно делает то же самое · Частичная похожи лишь некоторые свойства · Нет соответствие неизвестно
| Понятие | Бытовая аналогия | Аналогия с дрозофилой и мозгом | Где аналогия ошибается |
|---|---|---|---|
| Юникод | Номер паспорта, выданный каждому символу мира | Нет | Номер лишь различает символы и ничего не говорит о том, насколько символы похожи |
| BPE | Делать сокращения из слов, которые часто идут вместе («초파리» — одним куском) | Нет | Сокращения человек придумывает по смыслу, а BPE сливает только по частоте. Появляются и фрагменты, не связанные со смыслом |
| Номера токенов | Шифр книги в библиотеке | Нет | Шифры группируются по темам, а номера токенов — всего лишь порядок по корейскому алфавиту или порядок появления |
| Эмбеддинги | Координаты на карте: соседние районы похожи | Частично Грибовидное тело дрозофилы представляет запах как паттерн активности (вектор) многих клеток Кеньона | Грибовидное тело широко «раскладывает» запах, чтобы его легче было различать (разреженно), а эмбеддинг плотно упаковывает его в несколько сотен измерений. Способ построения тоже разный |
| Мешок токенов | Разрезать предложение на карточки со словами и сложить их в конверт | Нет | Вынув карточки из конверта, исходный порядок не узнать. В корейском частицы на карточках дают часть подсказок |
| Вероятность следующего токена | Угадывать следующее слово в игре в слова | Частично Есть исследования о том, что мозг тоже предсказывает следующие звуки речи | Предсказание мозга связано со смыслом, ситуацией и телесным опытом. Модель считает только по статистике фрагментов текста |
E-1 Об авторе · E-2 Научные источники · E-3 Материалы к рисункам
Практические рекомендации для преподавателей, наставников по OJT (обучению на рабочем месте) и тьюторов. Время указано ориентировочно — подстраивайте его под реальное занятие.
| Аудитория | Студенты и практики, которые хотят работать с текстовыми данными — обращениями клиентов, отзывами, документами. Все, кому интересно, как языковая модель воспринимает текст |
|---|---|
| Предварительные знания | Понятия вектора и косинусного сходства. Если знаете информацию о позиции из 3-8, разделы 5·6 будут проще |
| Цели обучения | ① Объяснить путь символ → Юникод → байты ② Объяснить, как BPE строит словарь токенов и как он обрабатывает незнакомые слова ③ Объяснить, зачем нужны номера, эмбеддинги и информация о позиции |
| Ориентировочное время | Чтение 35–45 мин · демонстрация 20 мин · практика в Colab 25 мин (код 1 — 15 мин, код 2 — 10 мин) |
Введение 5 мин (раздел 1, эмодзи — 4 байта) → раздел 2, BPE — 15 мин → разделы 3·4 — 15 мин → раздел 5, dog bites man — 5 мин → раздел 6 — 5 мин → проверочные вопросы — 5 мин.
Собрать корпус из 30 предложений документов своей команды — 15 мин → заменить CORPUS в коде 1 и заново посчитать BPE и эмбеддинги — 30 мин → найти похожие обращения с кодом 2 — 25 мин → обсуждение токена «неизвестно» и обработки персональных данных — 20 мин.
Начинающим — только разделы 1·2·4. Слушатели среднего уровня сначала выполняют три слияния BPE вручную (подсчитать частоты слов → найти самую частую пару), а затем сверяют результат со списком правил в разделе 2.
| Раздел | Вопрос, на котором стоит остановиться | Совет по управлению |
|---|---|---|
| 1 Юникод | «Почему при одинаковом числе символов размер хранения разный?» | Корейское предложение → «Hello 초파리» → предложение с эмодзи |
| 2 Разбиение на токены | «Почему окончание ‘한다’ слилось раньше всех?» | 0 → 60 слияний, затем предложение с незнакомым словом |
| 3 Номера токенов | «Есть ли смысл в том, что 54 больше 5?» | В «AI가 꽃을 본다» («ИИ видит цветок») указать на токен «неизвестно» |
| 4 Эмбеддинги | «Мы ни разу не учили понятию ‘насекомое’ — почему насекомые собрались вместе?» | Сравнить характер соседей в порядке 초파리는 → 신경망은 |
| 5 Информация о позиции | «В корейском порядок слов свободный — зачем же нужна информация о позиции?» | Нажимать три сравнения по очереди |
| 6 Обработка моделью | «В чём слабость модели, которая смотрит только на одно предыдущее слово?» | Сравнить вероятности для «초파리는» и «꿀벌은» («пчела») |
| Заблуждение | Верное объяснение | Что показать |
|---|---|---|
| Токен = слово | Токен — это фрагмент, который определяется корпусом. Это может быть символ, слово или что-то среднее | Раздел 2 |
| Один символ хангыля — 1 байт | В UTF-8 слог хангыля занимает 3 байта | Раздел 1 |
| Близкие номера токенов — близкий смысл | Номер — лишь позиция ячейки в словаре. Смысл хранится в эмбеддинге | Разделы 3·4 |
| Близкие эмбеддинги — значит синонимы | Слова, которые употребляются вместе, тоже сближаются. Что значит «похожесть», зависит от способа построения | Раздел 4, «신경망은» |
| Модель понимает текст, как человек | Она вычисляет вероятность следующего токена по номерам и векторам. Понимает ли она — отдельный вопрос | Раздел 6 |
0xAC00 + (0 × 21 + 0) × 28 + 1 = 0xAC01.
3 слога хангыля × 3 + 1 пробел + эмодзи 4 = 14 байт.
Во всех словах корпуса подсчитываются пары соседних фрагментов, причём каждая пара учитывается столько раз, сколько встречается слово. Самая частая пара сливается в один фрагмент.
При разбиении по словам его нет в словаре, и оно целиком становится «неизвестно». В BPE оно делится на известные фрагменты, например ["초파리", "들", "이"].
Оба дают одно и то же: {dog:1, bites:1, man:1}. Чтобы различать порядок, нужна информация о позиции.
Добавьте в CORPUS кода 1 предложения «나비는 꽃을 좋아한다» («бабочка любит цветы») и «나비는 날개가 있다» («у бабочки есть крылья») и запустите заново. Найдите ближайшие слова к «나비는» («бабочка») и, опираясь на объяснение из раздела 4, напишите, почему так получилось.
Меняя число слияний в bpe_train кода 1 на 10·30·60·100, составьте таблицу размера словаря и среднего числа токенов на предложение. Объясните компромисс между размером словаря и числом токенов и обоснуйте, какое значение вы выбрали бы для рабочих документов.
| Начинающим | Формулу чамо из раздела 1 и раздел 3 можно пропустить без потери логики |
|---|---|
| Углублённо | Поручите изучить и сравнить другие способы разбиения на токены, кроме BPE (униграммная языковая модель, на основе морфологического анализатора). Найденные статьи проверять по оригиналам |
| Что изучить дальше | Сансон Ан, конспект лекций «Наука о данных для бизнеса» (наука о данных в целом) · STEP [K-Digital] Обработка естественного языка с помощью ИИ (напрямую связан с этой частью) · STEP [K-Digital] Основы анализа данных в финтехе (связан с 3-6) |
| Материалы для преподавателя | Критерии оценки проверочных вопросов и примеры ответов к заданиям — на странице ответов для преподавателей (3-5) |
Вы дочитали часть «3-5 Текст» до конца. Обитатели лаборатории подводят итоги — каждый по слову.