Что такое квантование и зачем оно нужно? Представьте, что вы отправляетесь в магазин. Вместо того чтобы говорить, что молоко стоит 89 рублей 99 копеек, мы обычно говорим "90 рублей". Это и есть простейший пример квантования – мы упрощаем точное число до приблизительного, которым удобнее пользоваться. В мире ИИ происходит то же самое: вместо использования очень точных чисел, система использует приближенные значения, чтобы работать быстрее и занимать меньше места в памяти.
В данном материалы мы приоткроем занавес на сложные понятия, которые лежат в основе всех ИИ. Статья рассчитана больше на новичков.
Содержание:
К примеру, у вас есть палитра с миллионом оттенков синего цвета. Это как модель ИИ с очень точными числами. Теперь представьте, что вы решили использовать только 10 основных оттенков синего. Каждый из миллиона оттенков вы заменяете на ближайший из этих 10. Это и есть квантование – мы заменяем точные значения приближенными, похожими значениями из меньшего набора.
Допустим, у нас есть набор весов продуктов:
После квантования они могут стать:
Мы потеряли немного точности, но зато числа стали проще и занимают меньше места в памяти.
Есть библиотека с миллионом книг, где каждая книга имеет точный вес с точностью до миллиграмма. Если мы округлим вес каждой книги до грамма:
Возьмем чат-бота, который должен определить эмоциональный тон сообщения:
До квантования он мог оценивать эмоции по шкале от 0 до 1 с точностью до 6 знаков после запятой:
После квантования:
Для большинства практических применений разница незаметна, но модель работает быстрее и занимает меньше места.
Биты – это как алфавит для компьютера, но состоящий всего из двух букв: 0 и 1. Допустим вы играете в игру "да/нет" – это два варианта ответа, как два состояния бита. Чем больше битов мы используем, тем больше разных чисел можем записать, как больше слов можно составить из большего количества букв.
Представим обычный выключатель света:
Это и есть бит в самом простом понимании – он может иметь только два состояния. Как световой выключатель.
Давайте посмотрим на простой пример с лампочками:
1 бит (одна лампочка):
2 бита (две лампочки):
3 бита (три лампочки):
4-битное число может хранить значения от 0 до 15:
0000 = 0
0001 = 1
0010 = 2
...
1111 = 15
Почему 15?
Каждая позиция имеет свой "вес"
В двоичной системе каждая позиция имеет вес, равный степени двойки:
Позиция | 4я | 3я | 2я | 1я |
Вес позиции | 8 | 4 | 2 | 1 |
Биты | 1 | 1 | 1 | 1 |
Веса удваиваются слева направо:
Когда бит равен 1, мы берем вес этой позиции. Когда 0 - не берем.
К примеру для бита - 0101 - значение равно 1 + 4 = 5
Потому что вес первой позиции (справа) равен - 1
Вес третьей позиции равен (справа) - 4
8 бит:
4 бита:
16 бит:
8 бит:
Возьмем для примера цифровое фото:
Параметры в ИИ – это как настройки в фотоаппарате. У фотоаппарата есть множество настроек: яркость, контрастность, фокус и т.д. Чем больше настроек вы можете регулировать, тем более точный снимок получите. Также и с ИИ: чем больше параметров, тем точнее он может работать, но тем больше ресурсов требует.
Представьте себе рецепт пиццы. В нём есть множество параметров:
В ИИ параметры работают похожим образом – это числовые значения, которые модель использует для принятия решений.
Когда ИИ учится распознавать кошек на фотографиях, он настраивает множество параметров:
До квантования:
После квантования:
Новый термин в мире ИИ. Давай разберем на примере тех же кошек.
Скажем, вы учите друга отличать кошек от других животных. Вы бы сказали: "Смотри внимательно на:
Но некоторые признаки важнее других! Например:
Веса - это как "важность" каждого признака. Чем больше вес (ближе к 1.0), тем важнее этот признак для распознавания кошки.
Предлагаем разобраться с темой обучение на очень простом примере.
Обучение происходит один раз. Это большая задача, но единичная. А использование происходит много раз для всех пользователей. Чем больше людей использует ИИ, тем больше ресурсов (время, электричество) уходит на работу.
Токены – это как слоги в словах. Когда мы читаем слово "молоко", мы разбиваем его на части: "мо-ло-ко". ИИ делает то же самое с информацией, разбивая её на маленькие части, которые легче обработать. Триллион токенов – это как триллион слогов текста.
Пример:
ИИ не видит текст как мы. Он видит эти токены и работает с ними, чтобы понимать и создавать предложения.
Если модель ИИ обрабатывает триллион токенов, это как читать триллион слогов или "кирпичиков" текста.
До квантования (высокая точность):
Когда модель обрабатывает токен, например, слово "молоко", оно представлено не в буквенном виде, а как набор чисел. Это называется "вектор представления" (vector representation).
Пример:
Токен "молоко" может быть закодирован в виде:
[0.12345678, 0.98765432, 0.54321098, 0.67890123
Эти числа хранятся с высокой точностью (например, до 8 знаков после запятой). Это занимает много памяти и требует больше вычислительных ресурсов.
После квантования (упрощение):
Квантование снижает точность чисел, чтобы уменьшить размер данных и ускорить расчёты.
Пример:
Тот же токен "молоко" после квантования может выглядеть так:
[0.12, 0.98, 0.54, 0.67]
Числа округлены, занимают меньше места и проще в обработке.
Точность вычислений в ИИ – это степень детализации, с которой модель обрабатывает числа. Более высокая точность требует больше ресурсов, но даёт более точные результаты.
Уменьшая точность, можно ускорить работу модели и снизить затраты, но с небольшими потерями в качестве. Это компромисс между скоростью выполнения задач и точностью результата. Выбор уровня точности зависит от задачи: для некоторых приложений небольшая погрешность приемлема, а для других – критична.
Возьмем пример с весами в магазине:
Чем меньше точность, тем быстрее идет взвешивание, но тем больше погрешность.
Если предположить, что ИИ – это повар. Маленькая модель знает 100 рецептов, большая – 10000 рецептов. Большой модели нужно больше "памяти" для хранения рецептов и больше времени на поиск нужного рецепта, но она может приготовить больше разных блюд.
Когда мы пытаемся сделать большую модель "легче" через квантование, это похоже на пересказ длинной книги очень коротко. Чем сложнее и объемнее оригинальная книга, тем больше важных деталей может потеряться при сокращении.
Исследователи обнаружили, что:
Возьмем для примера ситуацию, когда вы сжимаете фотографию для отправки в мессенджере. Сжать фото можно много раз, но с каждым разом качество будет падать, пока изображение не станет неузнаваемым. То же самое происходит с ИИ при избыточном квантовании.
Автор: Максим Мирошник