Глубокое обучение от A до Z · 3-5

Текст — как символы становятся числовыми векторами

Для компьютера «초파리» («дрозофила») с самого начала — это числа. У каждого символа есть свой номер (Юникод), и этот номер хранится в виде байтов. Чтобы подать текст в нейросеть, предложение нужно разбить на токены, присвоить каждому токену номер, превратить номер в вектор, несущий смысл (эмбеддинг), и добавить информацию о порядке. Все шаги мы посчитаем сами на маленьком корейском корпусе из 36 предложений.

11 172 слогастолько современных слогов хангыля можно составить (19 × 21 × 28)
3 байтаразмер одного слога хангыля в UTF-8
10 → 3число токенов в «초파리가 꽃을 좋아한다» («дрозофила любит цветы») (0 → 60 слияний BPE)
0.970косинусное сходство эмбеддингов «초파리는» («дрозофила») и «모기는» («комар»)
36 предложенийкорпус этой страницы
2 примеракода, которые сразу запускаются в Colab
1Юникод

Юникод — номер у каждого символа, и байты

Номер слога хангыля = 0xAC00 + (начальная × 21 + срединная) × 28 + конечнаяСтандарт Юникод, раздел 3.12

Пример предложения
2Разбиение на токены

Разбиение на токены — не символы и не слова, а «частые фрагменты»

Если делить по символам, токенов становится слишком много; если делить по словам, нельзя обработать незнакомое слово. BPE ищет середину: снова и снова сливает в один фрагмент два фрагмента, которые чаще всего встречаются рядом в корпусе.

Число слияний
Предложение
3Номера токенов

Номера токенов — какая это ячейка словаря

Если после 60 слияний BPE собрать токены, встречающиеся в корпусе, получится словарь. Каждому токену присваивается номер ячейки в словаре. Токен, которого нет в словаре, получает номер «неизвестно».

Предложение
4Эмбеддинги

Эмбеддинги — номер превращается в «координаты со смыслом»

Номера 54 и 55 соседние, но по смыслу никак не связаны. Поэтому каждому номеру сопоставляют вектор из нескольких измерений. Цель — чтобы слова, которые употребляются похожим образом, получили близкие координаты. Здесь для каждого из 55 слов мы построили 8-мерный вектор по «числу совместных появлений в пределах ±2 позиций в одном предложении».

Слово

Пояснение для начинающих

Идея «если слова встречаются в похожем окружении, то и смысл у них похож» давняя. Типичный ранний метод — латентно-семантический анализ (LSA): таблицу появлений слов в документах сжимают сингулярным разложением и находят скрытую смысловую структуру [R2]. На этой странице к таблице совместных появлений слов применяется log(1 + число), а 8 измерений извлекаются разложением по собственным значениям. Современные языковые модели выучивают эмбеддинги вместе с обучением предсказывать следующий токен. Информацию о позиции из раздела 5 тоже прибавляют к этому вектору.

5Информация о позиции

Информация о позиции — мешок токенов не знает порядка

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

Сравнение
6Обработка моделью

Как модель обрабатывает текст — вероятность следующего токена

Текст → токены → номера → векторы (+позиция) → трансформер (3-8) → вероятность следующего токена. Простейшая языковая модель смотрит только на предыдущее слово и считает, какое слово идёт следом. Посчитаем это сами на нашем корпусе и посмотрим, что трансформер делает сверх этого.

Предыдущее слово

Код для Colab — запустите эту страницу сами

Оба примера используют только библиотеки, предустановленные в Colab. Нажмите «Скачать блокнот (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового блокнота.

Код 1 · Как символы становятся числами — Юникод, токены, номера, эмбеддингиСвязан с разделами 1–6 · numpy, matplotlib · CPU 1 с

Без специальных библиотек вычисляем Юникод и UTF-8, формулу чамо хангыля, обучение и применение BPE, номера токенов, эмбеддинги по числу совместных появлений и вероятности по предыдущему слову. Чтобы подставить свои данные, замените CORPUS.

Результат выполнения (запуск 2026-10-03, Python 3.12 · numpy 2.4 · CPU). В вычислениях нет случайности, поэтому при любом запуске результат одинаков.
Код 2 · Тот же процесс в scikit-learn — номера токенов, векторы предложений, похожие предложенияСвязан с разделами 2·3·4 · numpy, scikit-learn · CPU 1 с

С помощью рабочих библиотек превращаем предложения в матрицу «предложения × токены», сравниваем разбиение по словам и по фрагментам символов и ищем похожие предложения с помощью TF-IDF и латентно-семантического анализа.

Результат выполнения (запуск 2026-10-03, scikit-learn 1.8 · numpy 2.4 · CPU). Для TruncatedSVD зафиксировано зерно 0.

Промпты для ИИ — этот код как отправная точка

Это промпты, которые можно вставить в ИИ-помощника вроде ChatGPT, Qwen или Claude. Если нажать «Копировать», после промпта будет добавлен выбранный код. Замените текст в 〔 〕 на свою ситуацию.

Код, который добавить

Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если для конкурса или статьи вы пользовались помощью ИИ, укажите факт и объём использования согласно правилам организаторов и журнала.

Глоссарий

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

Собрание аналогий — и где аналогии ошибаются

Аналогия — первый шаг к пониманию, но и семя заблуждения. Для аналогий с дрозофилой и мозгом указана сила. Прямая есть данные, что это действительно делает то же самое · Частичная похожи лишь некоторые свойства · Нет соответствие неизвестно

ПонятиеБытовая аналогияАналогия с дрозофилой и мозгомГде аналогия ошибается
ЮникодНомер паспорта, выданный каждому символу мираНетНомер лишь различает символы и ничего не говорит о том, насколько символы похожи
BPEДелать сокращения из слов, которые часто идут вместе («초파리» — одним куском)НетСокращения человек придумывает по смыслу, а BPE сливает только по частоте. Появляются и фрагменты, не связанные со смыслом
Номера токеновШифр книги в библиотекеНетШифры группируются по темам, а номера токенов — всего лишь порядок по корейскому алфавиту или порядок появления
ЭмбеддингиКоординаты на карте: соседние районы похожиЧастично Грибовидное тело дрозофилы представляет запах как паттерн активности (вектор) многих клеток КеньонаГрибовидное тело широко «раскладывает» запах, чтобы его легче было различать (разреженно), а эмбеддинг плотно упаковывает его в несколько сотен измерений. Способ построения тоже разный
Мешок токеновРазрезать предложение на карточки со словами и сложить их в конвертНетВынув карточки из конверта, исходный порядок не узнать. В корейском частицы на карточках дают часть подсказок
Вероятность следующего токенаУгадывать следующее слово в игре в словаЧастично Есть исследования о том, что мозг тоже предсказывает следующие звуки речиПредсказание мозга связано со смыслом, ситуацией и телесным опытом. Модель считает только по статистике фрагментов текста

Об авторе и источники

E-1 Об авторе · E-2 Научные источники · E-3 Материалы к рисункам

E-1 Об авторе

Сансон Ан (генеральный директор M-Robo)

Работал в Корейской корпорации электробезопасности и газете «Мэиль Кёндже» (Maeil Business Newspaper), а затем основал M-Robo — внешнее венчурное предприятие «Мэиль Кёндже», где сейчас является генеральным директором. M-Robo — медиавенчур, начинавший как внутренний стартап СМИ: он предоставлял газете «Кукмин Ильбо» робота-журналиста (StockBot) и выполнил множество проектов для Корейского агентства интернета и безопасности (KISA), Корейского фонда прессы, Корейского агентства по продвижению радиовещания и связи и других организаций. Сейчас компания развивает собственное ИИ-новостное издание Money-Robo. За время руководства компанией выиграл Asia Open Data Hackathon и дважды получил награду министра внутренних дел и безопасности за вклад в сфере дата-стартапов; является изобретателем и правообладателем 5 патентов в области искусственного интеллекта и блокчейна. Автор книги «Преступления с ИИ и самозащита»; разрабатывал электронные учебные курсы по финтеху, статистике и искусственному интеллекту для Онлайн-института непрерывного образования Корейского технологического и образовательного университета (KOREATECH). Высшая учёная степень — доктор экономических наук (Университет Тонгук, микроэкономика с математическими методами). Преподаёт дисциплины, связанные с данными и искусственным интеллектом, в нескольких университетах, в том числе в Университете Кукмин и Университете Хосо. Подробный профиль

Лекции

  • Сансон Ан (2025). Конспект лекций «Наука о данных для бизнеса». Кафедра конвергенции искусственного интеллекта, Открытый кибер-университет Кореи.
  • Сансон Ан (2025). [K-Digital] Обработка естественного языка с помощью ИИ. STEP (Платформа интеллектуального профессионального обучения), Онлайн-институт непрерывного образования Корейского технологического и образовательного университета.
  • Сансон Ан (2024). [K-Digital] Основы анализа финтех-данных. STEP (Платформа интеллектуального профессионального обучения), Онлайн-институт непрерывного образования Корейского технологического и образовательного университета.

Курсы на STEP: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
Если из-за обновления сайта ссылки не открываются, заходите на www.step.or.kr.

Статьи и доклады

  • Сансон Ан (2025). Модель прогнозирования расходов домохозяйств на основе панельных данных о пенсионном обеспечении (KReIS): подход на основе моделей искусственного интеллекта. «Будущее общество» (Mirae Sahoe), 16(2). Полный текст
  • Сансон Ан (2025). Модель прогнозирования расходов домохозяйств на основе панельных данных о пенсионном обеспечении (KReIS): подход с использованием ИИ. Доклад на научной конференции по панельному исследованию пенсионного обеспечения (2025.05.13), Национальный институт пенсионных исследований, Национальная пенсионная служба Кореи. Материалы доклада
  • Сансон Ан (2025). Алгоритм обнаружения подозрительных сделок с наркотиками по текстам в соцсетях: анализ шаблонов и контекста. «Будущее общество» (Mirae Sahoe), 16(1). Полный текст
  • Сансон Ан (2024). Статистический подход к противодействию состязательным данным для защиты моделей обнаружения аномалий в финансовой сфере: эмпирический анализ и результаты моделирования. «Будущее общество» (Mirae Sahoe), 15(3). Полный текст
  • Сансон Ан (2024). Решение на основе ИИ для обнаружения публикаций в соцсетях по характеристикам виртуальных персонажей. Стендовый доклад на 2024 Summer Newmedia Party (2024.06.19), Сеульский университет медиа (аспирантура).
  • Сансон Ан (2024). Модель машинного обучения на панельных данных о производственном травматизме. Стендовый доклад на 10-й научной конференции по панели страхования от несчастных случаев на производстве (2024.05.17), Институт социального обеспечения работников, Корейская служба социального обеспечения работников.
  • Сансон Ан (2024). Анализ и прогнозирование временных рядов виртуальных активов: сравнение моделей временных рядов и моделей ИИ, предложения по улучшению. «Будущее общество» (Mirae Sahoe), 15(1). Полный текст

E-2 Научные источники

  1. [R1] Sennrich, R., Haddow, B., & Birch, A. (2016). Neural machine translation of rare words with subword units. Proceedings of the 54th Annual Meeting of the ACL, 1715–1725. doi:10.18653/v1/P16-1162 — раздел 2 (разбиение на токены BPE)
  2. [R2] Deerwester, S., Dumais, S. T., Furnas, G. W., Landauer, T. K., & Harshman, R. (1990). Indexing by latent semantic analysis. Journal of the American Society for Information Science, 41(6), 391–407. doi:10.1002/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO;2-9 — раздел 4, код 2 (латентно-семантический анализ)
  3. [R3] The Unicode Consortium. The Unicode Standard, раздел 3.12 Conjoining Jamo Behavior (формулы составления и разложения слогов хангыля). unicode.org — раздел 1

E-3 Корпус и источники для иллюстраций

  • Корпус — пример из 36 предложений
  • Числа получены тем же вычислением, что и в коде 1

Советы преподавателю

Практические рекомендации для преподавателей, наставников по OJT (обучению на рабочем месте) и тьюторов. Время указано ориентировочно — подстраивайте его под реальное занятие.

АудиторияСтуденты и практики, которые хотят работать с текстовыми данными — обращениями клиентов, отзывами, документами. Все, кому интересно, как языковая модель воспринимает текст
Предварительные знанияПонятия вектора и косинусного сходства. Если знаете информацию о позиции из 3-8, разделы 5·6 будут проще
Цели обучения① Объяснить путь символ → Юникод → байты ② Объяснить, как BPE строит словарь токенов и как он обрабатывает незнакомые слова ③ Объяснить, зачем нужны номера, эмбеддинги и информация о позиции
Ориентировочное времяЧтение 35–45 мин · демонстрация 20 мин · практика в Colab 25 мин (код 1 — 15 мин, код 2 — 10 мин)

Три варианта занятия

Лекция, 50 мин

Упор на понятия

Введение 5 мин (раздел 1, эмодзи — 4 байта) → раздел 2, BPE — 15 мин → разделы 3·4 — 15 мин → раздел 5, dog bites man — 5 мин → раздел 6 — 5 мин → проверочные вопросы — 5 мин.

OJT на рабочем месте, 90 мин

Упор на применение в работе

Собрать корпус из 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 Обработка моделью«В чём слабость модели, которая смотрит только на одно предыдущее слово?»Сравнить вероятности для «초파리는» и «꿀벌은» («пчела»)

Топ-5 частых заблуждений

ЗаблуждениеВерное объяснениеЧто показать
Токен = словоТокен — это фрагмент, который определяется корпусом. Это может быть символ, слово или что-то среднееРаздел 2
Один символ хангыля — 1 байтВ UTF-8 слог хангыля занимает 3 байтаРаздел 1
Близкие номера токенов — близкий смыслНомер — лишь позиция ячейки в словаре. Смысл хранится в эмбеддингеРазделы 3·4
Близкие эмбеддинги — значит синонимыСлова, которые употребляются вместе, тоже сближаются. Что значит «похожесть», зависит от способа построенияРаздел 4, «신경망은»
Модель понимает текст, как человекОна вычисляет вероятность следующего токена по номерам и векторам. Понимает ли она — отдельный вопросРаздел 6

Проверочные вопросы (нажмите, чтобы раскрыть разбор)

Q1. Номер Юникода слога «가» — 0xAC00. Каков номер слога «각»: начальная ㄱ (0), срединная ㅏ (0), конечная ㄱ (1)?

0xAC00 + (0 × 21 + 0) × 28 + 1 = 0xAC01.

Q2. Сколько байтов займёт «초파리 🙂» (5 символов с пробелом) в UTF-8?

3 слога хангыля × 3 + 1 пробел + эмодзи 4 = 14 байт.

Q3. Что именно подсчитывается в BPE как «пара, чаще всего встречающаяся рядом»?

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

Q4. Как обрабатывается незнакомое слово «초파리들이» («дрозофилы») при разбиении по словам и при BPE?

При разбиении по словам его нет в словаре, и оно целиком становится «неизвестно». В BPE оно делится на известные фрагменты, например ["초파리", "들", "이"].

Q5. Как выглядят «dog bites man» и «man bites dog» в виде мешка токенов? Что ещё нужно?

Оба дают одно и то же: {dog:1, bites:1, man:1}. Чтобы различать порядок, нужна информация о позиции.

Задания в Colab

Базовое

Добавьте в 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 Текст» до конца. Обитатели лаборатории подводят итоги — каждый по слову.

Профессор
ПрофессорМы разобрали почти волшебный процесс превращения символов в числовые векторы.
  • Один слог хангыля в UTF-8 — 3 байта
  • BPE создаёт токены, сливая фрагменты, которые часто встречаются рядом
  • Ближайшее слово к «초파리는» («дрозофила») — «모기는» («комар», 0.970)
Ассистентка
АссистенткаМы ни разу не учили понятию «насекомое», а насекомые собрались вместе.
Муха-исследователь
Муха-исследовательВ одной компании с комаром? Немного обидно.