Вы написали вопрос в ИИ-чат. Что происходит дальше. На примере локальной модели.

Вы написали вопрос в ИИ-чат. Что происходит дальше. На примере локальной модели.

Как LLM модель выстраивает ответ.

От автора: Множество механик в статье намеренно не указано.

Статья попытка объяснить моим коллегам, как работает модель простыми словами, которые как и я, никак не связаны с ML.

Мы не будем лезть в обучение и веса, а разберем только базовую механику: как из токенов и векторов получается логичный ответ.

Модель LLM: Gemma3:4b от Google

Размер пространства модели - 3072 измерений (2D, 3D, а для LLM вот такие размерности бывают)

Вопрос в ИИ-чат: Какой французский замок был разрушен в 17 веке в Нормандии?

1. Токенизация.

Токен - единица текста с которой работает модель. В зависимости от алгоритма, который заложили разработчики. Токеном может быть: буква, половина слова, слово, знак препинания.

Разбили предложение на части и каждой присваиваем id. Модель не понимает текст, мы его должны "оцифровать".

  • "замок" - id 10
  • "в" - id 452
  • "17" - id 8901
  • "веке" - id 1243

"Нормандии" - id ... и тд.

2. Векторное представление.

Модель преобразует id в векторное представление из 3072 координат (характеристика Gemma3:4b). Каждое представление несет в себе семантический смысл.

Важно! В ML слово вектор практически синонимично слову точка в N-мерном пространстве. Мы часто говорим вектор, а подразумеваем просто координаты этой точки.

Пример: "замок" id 10

[историчность, культура, металлический, тип ключа...n] семантика

[1, 64, -255, -1000...n] вектор из 3072 координат

3. Поиск смысла.

Каждый вектор "сравнивается" с каждым, путем скалярного произведения. Где число выше, там выше вероятность, что это слово является правильным продолжением или ответом. Для упрощения указаны только две координаты у вектора.

Пример:

  • замок (1, 5)
  • дверной (-3, 1)
  • средневековый Шато-Гайар (2, 6)

Скалярное произведение векторов:

  1. замок + дверной = (1 * -3) + (5 * 1) = 2 В данном контексте это омоним. Не подходит для нашего ответа.
  2. замок + средневековый Шато-Гайар = (1 * 2) + (5 * 6) = 32 Модель выберет этот ответ.

Для Gemma3:4b это выглядело бы как перемножение и сложение 3072 пар чисел и поиск большего ответа.

  1. замок + дверной = (3072 операции умножения и сложения) = 2
  2. замок + средневековый Шато-Гайар = (3072 операции умножения и сложения) = 32 Модель выберет этот ответ.
На картинке показаны семантически близкие слова к слову "замок" в векторном пространстве
На картинке показаны семантически близкие слова к слову "замок" в векторном пространстве
Еще один вариант визуализации векторного представления объекта

4. Ответ выводится пользователю.

Примечание: вычисление из примера в п.3 приблизительно показывает насколько много нужно произвести вычислений для простой фразы. Это и занимает время на ответ у модели. (см. "От автора")

Спасибо за прочтение!

33