Добавить в корзинуПозвонить
Найти в Дзене

Как видит наш текст Нейросети ->Токены (простым языком)

В данной статье мы простым и понятным языком разберём как наш обычный текст, который мы вводим в нейронки преобразуется в понятный для нейросетей набор Токенов -> Векторов. Для тех, кто хочет более серьёзно погрузится в тему, можете почитать статью, только уже с примерами и терминами! Токен - это от одного и более символов, например: Токеном может быть совокупность одного и более символов.
Для нас, людей, часто токены не будут нести смысл.
Но зачем вообще разбивать текст на токены? После того, как текст был разбит на кусочки - токены, мы берём словарь токенов и для каждого токена находим его уникальное число.
Представьте, это как алфавит, у каждой буквы есть свой порядковый номер: И мы получаем из текста набор чисел.
Но зачем же нам числа??
Всё просто, нейросети - это математические модели и чтобы они работали, мы должны дать им набор чисел, а не текст! Таким образом мы превратили текст в числа!
Но, это мега упрощённое объяснение! Надеюсь вы не устали, давайте разберёмся немного глубже
Оглавление

В данной статье мы простым и понятным языком разберём как наш обычный текст, который мы вводим в нейронки преобразуется в понятный для нейросетей набор Токенов -> Векторов.

Для тех, кто хочет более серьёзно погрузится в тему, можете почитать статью, только уже с примерами и терминами!

Токен - это ...

Токен - это от одного и более символов, например:

  • 'а'
  • 'ват'
  • '. '

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

После того, как текст был разбит на кусочки - токены, мы берём словарь токенов и для каждого токена находим его уникальное число.
Представьте, это как алфавит, у каждой буквы есть свой порядковый номер:

  • А - 1
  • Б - 2
  • В - 3
  • ...
  • Я - 33

И мы получаем из текста набор чисел.
Но зачем же нам числа??
Всё просто, нейросети - это математические модели и чтобы они работали, мы должны дать им набор чисел, а не текст!

Таким образом мы превратили текст в числа!
Но, это мега упрощённое объяснение!

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

Откуда берутся токены

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

Именно в момент, когда мы хотим создать и обучить новую модель с чистого листа, нам для начала необходимо создать тот самый словарь токенов.
Чтобы его создать, мы берём весь наш объём данных и начинаем на его основе создавать тот самый словарь токенов.

Для этого есть определённые подходы и алгоритмы, но мы не будем их разбирать на простом уровне.
Давайте посмотрим на это в общих чертах.
Давайте начнём с примера, но нереального.
Первая строка, которая начнёт составлять наш словарь, будет "Привет мир!"
И так как у нас ещё нет данных, мы получим разбивку вот так:
"П", "р", "и", "в", "е", "т", " ", "м", "и", "р", "!"
Следующая строка: "Ветхий дом"
Разбивка:
"Вет", "х", "и", "й", " ", "д", "о", "м"

Почему "Вет" вместе?

В слове "Привет" и "Ветхий" есть одинаковая часть "вет".
И вот так постепенно, перебирая невероятно большой объём текста, мы сформируем словарь, где будут часто попадающиеся символосочетания.

Учтите, пример выше сделан как пример и сильно отличается от реальных алгоритмов, которые намного сложнее!

Уникальный номер токена → (вектор)

Теперь давайте рассмотрим, а что за уникальный номер у каждого токена и что за число принимает на вход нейросеть.

То, что я говорил раньше, является большим упрощением от реальности.
Ведь каждый токен - это не только своё уникальное число, но и алгебраический вектор.
Да, гуманитариев сейчас передёрнуло)
Именно набор 
ВЕКТОРОВ передаётся в нейросеть.

Давайте попробуем рассмотреть ВЕКТОР в простом примере.

Вектор

Давайте представим космос.
В космосе есть очень много звёзд и созвездий.
Это трёхмерное пространство, в котором мы с вами живём.
И теперь, давайте заменим звёзды на слова.
А теперь, давайте разместим слова в этом космосе, чтобы чем ближе по смыслу слова, тем ближе они находились друг к другу.
Получаем некоторые созвездия.
Теперь, слова "Король" и "Королева" находятся в одном созвездии, рядом со словами "Принц", "Придворный" и тд.
В нашем трёхмерном пространстве, мы можем точно сказать, где находится тот или иной объект, ведь у всего есть свои координаты.
Например, я буду находиться на координатах [0, 0, 0], я буду исходной точкой, а кружка на шкафу справа, будет находиться [55, 72, 33], это значит: 55 см вперёд, 72 см вправо и 33 см вверх.
Это как путь по карте.
И вот у каждого слова есть свой набор координат, который называется - 
ВЕКТОР.

А сейчас, будет информация не для слабонервных, так что читать только подготовленным!

==== НАЧАЛО БЛОКА ПРО ВЕКТОРА ====

В нашем мире, мы можем себе представить 2D или 3D мир, сложно, но в теории и 1D.
Некоторые из вас видели даже что-то из 4D, это когда фигуры странным образом ломаются и перемещаются непонятно куда.

  • 1D - [11]
  • 2D - [11, 22]
  • 3D - [11, 22, 33]
  • 4D - [11, 22, 33, 44]

А в алгебре, мы можем написать и 300D.
Да, это пространство с 300 измерениями, представить это нам, живущим в трёхмерном пространстве нереально, но в математике - проще простого!
Но зачем???
А всё просто.
В 3-мерном пространстве, мы не можем положить "Короля" рядом с другими живыми существами, богом, разумом, грёзами и ещё чем-то одновременно, иначе он будет равноудалён от всего и не будет принадлежать к другим созвездиям или же, у нас всё собьётся в одну большую кучу и понять что где, будет невозможно.
Но, чем больше у нас измерений, тем больше мы можем создать разных взаимосвязей.
Например:
Давайте возьмём 8 кругов, и расположим их на бумаге, как можно равномернее и как можно ближе друг к другу.
Получим в лучшем случае форму наподобии 8-угольника. И противоположные круги будут находиться неравномерно далеко друг от друга.
Это мы взяли 2D пространство.

-2
-3

Давайте перейдём в 3D и нарисуем простой Куб.
Все кружки находятся равномерно друг от друга.
И чем больше измерений, тем больше возможностей по расположению и близости объектов друг к другу.
А современные, большие модели, думают не сотнями, а тысячами измерений!

==== КОНЕЦ БЛОКА ПРО ВЕКТОРА ====

Итак, мы теперь знаем, что наше предложение бьётся на токены и каждый токен имеет свой вектор, а уже те самые вектора мы используем сначала, чтобы обучать модель, а уже потом, чтобы общаться с обученными моделями.

Как пример, мы можем перейти по ссылке https://platform.openai.com/tokenizer (нужен VPN)
И видим, что можно выбрать версию модели 3.5 или 4o

-4

Почему?
А потому что для каждого поколения модели был создан свой словарь токенов.

-5

И тут мы можем заметить, что на родном английском языке, ChatGPT разбивает текст на блоки аж по словам!
Почему?
Всё просто, основной пул данных был собран на английском языке.
А значит:

  • На английском языке мы можем ввести больше текста, так как ограничение на ввод идёт по тем самым Токенам. И текст на 2000 русских символов будет ~700 токенов, а английские 2000 символов станут ~200 токенами
  • Нейросеть будет лучше и эффективнее думать на родном ей языке. Для ChatGPT это английский

Выводы

Давайте кратко пробежимся по всему пути от нашего текста до того, что же видит нейросеть!

-6

Чтобы нейросеть нас поняла, мы текст сначала разбиваем на токены:
"Привет мир!" → "Пр" "ивет" " мир" "!"
Токен - это набор символов.
Для каждой текстовой нейросети есть свой словарь токенов.
В словаре мы находим наш токен и переводим его в вектор:
"Пр" "ивет" " мир" "!" → [32, 424, 493...] [572, 453, 961...] [932, 747, 4, 31...] [13, 4148, 90, 4032...]

А теперь, набор векторов мы отдаём нейросети, и она начинает на их основе алгебраическими расчётами "думать", по итогу выдавая ответ.

В целом, это всё, что надо знать для поверхностного понимания устройства токенов.

Но для истинных хардкорщиков, я предлагаю перейти на вкладку Сложно и ознакомиться с устройством Токенов на более глубоком уровне!

На этом всё!
Подписывайтесь на 
ТГ канал, где вы будете в курсе, что происходит вокруг ИИ и с самими ИИ!

А больше полезной информации про ИИ, задать вопросы по теме и не только вы можете на нашем форуме НЕЙРО-ФОРУМ!

Уже сейчас вы можете задать вопросы в статье на форуме.

Дальше будет интереснее :)🚀