Этот крошечный инструмент запускает ИИ-модель на 744 млрд параметров на обычном железе (colibrì)
BBetter Stack
Computing/Software
Transcript
00:00:00Это языковая модель с 744 миллиардами параметров, GLM 5.2.
00:00:07Для контекста: это тот же класс размера, что и передовые модели, работающие в дата-центрах, полных GPU.
00:00:14А что, если вы могли бы запустить такую модель локально на своем потребительском железе?
00:00:19Это звучит почти невозможным, но этот разработчик, Винченцо Форнаро,
00:00:24только что создал инструмент под названием Calibri, который позволяет делать именно это.
00:00:28Но как это вообще возможно?
00:00:31Как Винченцо справился с этим и как это вообще работает?
00:00:34Что ж, это отличные вопросы, которые мы собираемся разобрать в этом видео,
00:00:38и мы протестируем его на двух разных аппаратных конфигурациях, чтобы увидеть, насколько оно мощное на самом деле.
00:00:44Будет очень интересно, так что давайте погрузимся в это.
00:00:51Итак, обычно для запуска модели с 700 миллиардами параметров
00:00:55вам нужно поместить все ее веса в память одновременно.
00:00:59И при целой квантизации 744 миллиарда параметров — это все равно сотни гигабайт.
00:01:06Именно поэтому большие модели живут на таких больших серверах, а железо для их удержания дорогое и специализированное.
00:01:13Так что очевидный вопрос: как запустить то, что не помещается?
00:01:17Что ж, фокус начинается с архитектуры модели.
00:01:20GLM 5.2 — это модель смешения экспертов (MoE).
00:01:23Мы уже много говорили о моделях со смешением экспертов на этом канале раньше,
00:01:27но на случай, если вам нужен освежить память, в основном это работает так.
00:01:31Вместо одной гигантской плотной сети она разбита на тысячи мелких специализированных подсетей, называемых экспертами.
00:01:39И для любого заданного токена модель использует лишь крошечную долю этих экспертов.
00:01:43Из 744 миллиардов общих параметров фактически активны только 40 миллиардов на токен.
00:01:51И это примерно 5%.
00:01:52Так что, хотя вся модель огромна, объем работы и объем памяти, которые вам действительно нужны в любой момент времени, намного меньше.
00:02:02И Calibri построена полностью вокруг использования этого зазора.
00:02:06Calibri рассматривает хранилище вашей машины как одну большую иерархию памяти.
00:02:10Ваши GPU, видеопамять, системная ОЗУ и NVMe SSD выстроены слоями наподобие кэша.
00:02:17Плотные компоненты модели, части, используемые на каждом токене, на самом деле небольшие — около 17 миллиардов параметров.
00:02:23И это менее 10 гигабайт при целой квантизации.
00:02:27И они остаются в оперативной памяти все время.
00:02:30Эксперты — они живут на вашем SSD.
00:02:33Когда модели нужен конкретный эксперт для токена,
00:02:36Calibri передает потоком именно этого эксперта с диска, использует его и кэширует.
00:02:41И все это написано на чистом языке C с нулевыми внешними зависимостями.
00:02:46И это та часть, которая делает ее такой компактной.
00:02:48Теперь, передача потоком модели с жесткого диска звучит так, будто это должно быть либо мучительно медленно, либо неэффективно.
00:02:55Что ж, у Calibri есть несколько приемов для борьбы с обеими этими проблемами.
00:02:58Во-первых, у нее есть обучаемый кэш.
00:03:00Движок записывает, к каким экспертам ваши промпты реально обращаются, в файл рядом с моделью.
00:03:06При запуске он автоматически закрепляет самые горячие, наиболее используемые эксперты в свободной ОЗУ.
00:03:11Так что чем больше вы используете ее для определенного вида задач, тем лучше она кэширует для этой задачи.
00:03:16Во-вторых, есть спекулятивная генерация.
00:03:19У модели есть родная многотокеновая голова предсказания, которая угадывает несколько токенов вперед, чтобы генерировать быстрее, чем по одному токену за раз.
00:03:27И в-третьих, и это важный момент, она сохраняет качество.
00:03:31Прямой проход подтвержден как токен-эквивалентный по сравнению с эталонной реализацией transformers.
00:03:37Простыми словами, Винченцо проверил, что эта потоковая квантованная версия выдает те же результаты, что и полноточный эталон.
00:03:45И в ней также используется сжатый кэш внимания.
00:03:48Внимание MLA, которое уменьшает KV-кэш примерно в 57 раз, что является большой частью причины, почему объем памяти остается таким маленьким.
00:03:57Теперь, самое большое узкое место для тестирования этого инструмента — найти свободное место.
00:04:01И я имею в виду буквально.
00:04:02GLM 5.2 весит около 357 гигабайт.
00:04:06И чтобы протестировать ее как следует, мне пришлось бы освободить почти половину пространства SSD моего MacBook, чего я сделать не могу.
00:04:13Так что прежде чем вы даже подумаете об оперативной памяти и GPU, первая стена, с которой вы, вероятно, столкнетесь — это вот что.
00:04:19Есть ли у вас вообще место для такой штуки?
00:04:21Так что, поскольку у меня не было дополнительных 357 гигабайт внутри, я взял внешний диск, портативный SSD от Samsung со скоростью передачи около 1 гигабайта в секунду.
00:04:33И вместо этого поместил модель на этот диск.
00:04:35И я хочу отметить это сейчас, потому что это имеет значение.
00:04:38Это решение фактически повлияло на мой первый тест.
00:04:42Внешний диск по USB намного медленнее, чем диск, встроенный в ваше устройство.
00:04:48Мы говорим, может быть, об одном гигабайте в секунду против семи или более внутри.
00:04:53И помните, весь трюк Calibri заключается в постоянной передаче потоком частей модели с диска.
00:04:59Так что если диск медленный, все работает медленно.
00:05:02Так что держите эту мысль в уме, потому что мы сейчас увидим именно то, что я имею в виду.
00:05:06Итак, мой первый тест был на моем MacBook с чипом M2 Max, 32 гигабайтами ОЗУ, а модель работала внешне с этого диска SSD.
00:05:15Я сделал все просто и спросил ее: какая столица Бельгии?
00:05:19И вот хорошие новости.
00:05:20Это работает.
00:05:21Она действительно отвечает мне.
00:05:22Она правильно говорит мне, что столица — Брюссель, запуская модель с 744 миллиардами параметров на ноутбуке.
00:05:29Так что эта часть действительно впечатляет.
00:05:31Не столь хорошие новости — это скорость.
00:05:34Я ждал больше двух минут только для того, чтобы получить от нее первое слово.
00:05:38Две минуты.
00:05:39И как только она разогналась, она еле плелась со скоростью около одной десятой токена в секунду.
00:05:44Для контекста: токен — это примерно слово или часть слова.
00:05:47Так что мы говорим об одном слове каждые 10 секунд.
00:05:51И, честно говоря, это был холодный запуск.
00:05:54Первый вопрос, еще ничего не было в кэше.
00:05:56Так что ей приходилось извлекать каждый кусочек модели с этого диска с нуля.
00:06:01И Calibri действительно держит самые используемые части в памяти по ходу дела.
00:06:05Так что она разогревается и немного ускоряется по мере использования.
00:06:09Но, как вы увидите, это помогает только в том случае, если у вас есть ОЗУ, чтобы удерживать их.
00:06:13И на моем Mac этого действительно нет.
00:06:16А вот часть, которая мне действительно нравится.
00:06:18У Calibri есть этот экран профилирования, который показывает, куда на самом деле ушло все это время.
00:06:22Время, которое компьютер потратил на реальные размышления или вычисления, по сравнению со временем, проведенным просто
00:06:28в ожидании загрузки следующего фрагмента модели с диска.
00:06:32Так что на Mac весь процесс занял около 158 секунд.
00:06:36И из этих 158 секунд примерно 145 из них, более 80%, ушло на чистые ожидания.
00:06:43Ожидания диска.
00:06:44Фактические вычисления или реальная мыслительная часть заняли всего около семи секунд в общей сложности.
00:06:50То есть семь секунд работы и две с половиной минуты стояния в очереди.
00:06:54Так что же здесь на самом деле происходит?
00:06:56Что ж, M2 Max — очень быстрый процессорный чип.
00:06:59Проблема не в этом.
00:07:01Проблема в том, что модель настолько велика, что не помещается в максимальные 32 гигабайта ОЗУ.
00:07:06Поэтому ей приходится снова и снова бегать к диску, чтобы забрать любую нужную ей следующую часть.
00:07:11И в моем случае диск — это медленный внешний накопитель, которым я был вынужден пользоваться, потому что у меня закончилось
00:07:17место.
00:07:17Так что компьютер большую часть времени тратит на ожидание и едва ли работает над
00:07:23запросом.
00:07:24Хорошо, во втором тесте давайте дадим ей подходящую машину.
00:07:28Итак, второй тест — это моя мощная рабочая станция.
00:07:30В ней установлены RTX 5090 и 64 гигабайта ОЗУ.
00:07:35И на этот раз я загрузил модель на быстрый внутренний диск.
00:07:39К счастью, на этой машине у меня действительно было 350 гигабайт свободного места, чтобы загрузить ее на
00:07:45внутренний диск.
00:07:46И на этот раз я спросил что-то более существенное.
00:07:49Объясните квантовую запутанность простыми словами.
00:07:52И ответ был действительно отличным.
00:07:54Она выдала мне такое чистое небольшое объяснение с волшебными монетками.
00:07:57Так что это был действительно полезный результат.
00:07:59И по скорости она достигла примерно 0,8 токена в секунду.
00:08:03И первое слово появилось примерно через 17 секунд вместо двух полных минут.
00:08:09То есть примерно в восемь раз быстрее, чем на моем Mac.
00:08:12И опять же, давайте посмотрим на экран профилирования, потому что он говорит о том же самом, но с
00:08:17другой стороны.
00:08:18Помните, на Mac более 80% времени уходило просто на ожидание диска?
00:08:23Что ж, на этой мощной рабочей станции ожидание падает примерно до 48%, сокращаясь вдвое.
00:08:29И впервые вы видите, что машина на самом деле тратит реальные куски времени на выполнение
00:08:34вычислений, а не просто на простаивание.
00:08:36Так что производительность вычислений здесь действительно улучшилась.
00:08:39Так почему же эта конфигурация намного лучше?
00:08:41Что ж, было бы заманчиво сказать: ну, очевидно, потому что на ней установлена RTX 5090.
00:08:46Но на самом деле причина не в этом.
00:08:48Видите ли, причина в том, что эта машина имеет вдвое больше ОЗУ и работала на более быстром внутреннем
00:08:54диске, поэтому гораздо большая часть модели может просто находиться в памяти, готовая к работе.
00:09:00Меньше беготни к диску, меньше ожиданий и больше реальной выполненной работы.
00:09:06Так что 5090 на самом деле стояла в сторонке, в этот момент едва напрягаясь.
00:09:10И это то, чего я никак не ожидал, отправляясь на этот эксперимент.
00:09:14Вы бы предположили, что видеокарта — это то, что делает все возможным или ломает систему, верно?
00:09:19Что ж, это не так.
00:09:20Самое главное, что сдерживает эти модели на обычном железе — это на самом деле память.
00:09:25Сколько из модели вы можете держать в ОЗУ одновременно, чтобы постоянно не ждать
00:09:30диск.
00:09:31Что, честно говоря, довольно суровый вывод прямо сейчас, потому что если вы покупали оперативную память
00:09:36в последнее время, вы знаете, что она стала действительно дорогой.
00:09:38Так что неудивительно, что все эти гиперскейлеры скупают всю оперативную память, до которой могут
00:09:44добраться.
00:09:44Так что в основном вас продвигает вперед не крутая видеокарта, а ОЗУ.
00:09:49Итак, можно ли запустить передовую модель с 744 миллиардами параметров на потребительском железе?
00:09:55Да, точка.
00:09:56Я сделал это дважды: на ноутбуке и на своем десктопе, и оба выдали мне реальные правильные ответы.
00:10:03Пару лет назад это звучало бы абсурдно.
00:10:06Но Винченцо действительно справился.
00:10:08Но честная правда в том, что запускать ее и запускать ее хорошо — это две очень разные вещи.
00:10:14Если вы посмотрите на собственные бенчмарки Винченцо на сайте Calibri, конфигурации, которые действительно
00:10:19обеспечивают пригодную для использования скорость — по-прежнему серьезные машины.
00:10:22Самые быстрые конфиги — это что-то вроде сборки с 6 GPU или двухпроцессорного сервера Xeon с целым терабайтом
00:10:29ОЗУ.
00:10:30И обратите внимание, что сервер с терабайтом ОЗУ вообще без крутого GPU обходит одну RTX 5090
00:10:37на милю.
00:10:38Так что все сводится к памяти, друзья мои.
00:10:41Так что мечта о плавно работающей передовой модели на среднем ноутбуке еще не совсем здесь.
00:10:46Но мы очень, очень близки.
00:10:48Ну вот и все, друзья.
00:10:50Это были все мои основные моменты, полученные при тестировании Calibri.
00:10:54Но мне любопытно узнать, пробовали ли вы ее или нашли другие умные способы
00:10:59запуска передовых моделей на потребительском железе.
00:11:02Мне очень интересно узнать ваши мысли, поэтому делитесь ими в комментариях
00:11:06ниже.
00:11:06И друзья, если вам нравятся такие технические разборы, пожалуйста, дайте мне знать, нажав
00:11:10на кнопку лайка под видео.
00:11:13А также не забудьте подписаться на наш канал.
00:11:15С вами был Андрис из BetterStack, и увидимся в следующих видео.
00:11:32вы