Комментарии 27
Ваше сжатие выигрывает у Microsoft BitNet?
Было бы замечательно если бы вы поддержали AQLM в llama.cpp
Мы пытались, но код llama.cpp очень хрупкий, и не заточен на векторную квантизацию с кастомными кодбуками. За 20-30 человеко-часов значимо продвинуться не получилось
а если форкнуть? код там довольно модульный.
В любом случае замечательной была бы поддержка нативного таргета с простым интерфейсом из консоли, без wasm который даёт лишний оверхед и для которого нужен целый браузер
классный проект
а модель поддерживает только определенные наборы английских слов?
интересно что на одно слово, модель зациклилась

Здравствуйте, очень интересно, планируется или использование WebGL/WebGPU для ускорения работы?
Нет, всё работает на cpu.
Можно было написать кернелы для webgpu, но, если честно, у меня банально не было на это времени.
Зато портативность хорошая. Работает на всём, что имеет cpu и достаточное количество ram. Я ещё хочу релизнуть поддержку маленьких моделей, чтобы даже на телефонах можно было запускать (и сейчас можно, но не на всех)
Я ещё хочу релизнуть поддержку маленьких моделей, чтобы даже на телефонах можно было запускать (и сейчас можно, но не на всех)
А ресурсов хватит?
Конечно, у телефона ресурсов как у ноута, но и на ноуте на CPU подтупливает знатно.
Запустилось на смартфоне Google Pixel 8 Pro, работает. Потом попробую ещё на Google Pixel 4a запустить, там в 2 раза меньше оперативки
Что нужно для того чтобы ИИ управлял роборуками со смартфона? Я сделал 3д модель конструктор кубиков майнкрафта, крепящиеся между собой очень надёжно на болтах. Так вот сбер может проинвестировать эту робототехнику, если квадрокоптер будет роборуками строить из кубиков какие-то полезные арты, там статуи, строения, теплицы...
В разжатом виде на каждый параметр приходится по 16 бит, и, как следствие, модель 8B весит 16 ГБ. Используя стандартные 4-битные методы сжатия, такие как nf4, можно сжать её до 4 ГБ. В этом проекте я использую экстремальное сжатие в 2 бита, сжимающее тело модели в 8 раз. Для слоёв головы и эмбеддингов я всё ещё использую 4-битное и 8-битное сжатие, поэтому модель получается размером в районе 2,5 ГБ.
Ну, думаю, чудеса. 8b которая так себе работает даже на довольно мощном проце, а тут - браузера. А чудес то никаких не произошло, просто ловкость рук - назвать квантование aka урезание точности - сжатием, хотя это совсем не одно и то же. Сжатие подразумевает обратное разжатие либо без потерь (zip, gzip, tar, etc), либо без значимых в общем смысле потерь (png, mp3, jpeg, etc). А модель при квантовании до 2 бит меняется катастрофически.
Квантизация моделей по сути своей очень похожа на тот же jpeg. Всегда можно сжать в большее количество раз за счёт качества. Поэтому методы сжатия оцениваются с точки зрения парето оптимальности кривых качества против размера.
При этом при сжатии модель меняется, но не катастрофически. Метрики сжатой в 2 бита ламы можно посмотреть тут. Сжатая Llama3.1-8B работает лучше оригинальной Llama2-7B.
Сейчас в современных процессорах практически всегда есть GPU, конечно, не везде это отдельный GPU nVidia. Сейчас в некоторых процессорах есть и NPU
Отличный проект, спасибо! В своё время впечатлил ещё whisper / whisper.cpp, у которого также есть веб-версия.
Из предложений — вероятно, перед загрузкой стоит предупреждать о размере модели, т. к. не у всех безлимитный трафик.
Впервые такое вижу. Отличная работа! Помню интереса ради запускал LLMки на своем телефоне через termux. Довольно интересный опыт. Теперь, как я вижу, это можно делать через браузер.
занятно, тут на днях опубликовали сеть Cotype-Nano так она весит меньше гигабайта (4бита квантование) и вполне вменяемо отвечает, интересно если ее вашим методом сжать что получится?
Есть давно такая штука - Web-LLM, она так же давно 8b модели в браузере запускает.
Я вернусь к вам с другой полезной информацией позже.
А можно для новичков, зачем в браузере запускать если есть LM Studio?
Попробовал. Промпт на английском: объяснить простыми словами концепцию martingale применительно к финансам. Модель успешно загрузилась (минут за пять) и выдала следующую галлюцинацию:

А вот с этой библиотекой из CERN Media Lab не сравнивали качество сжатия?
Спасибо за проект! В браузере работает. На русском китайских иероглифов пока не поймал, хотя может повезло. В оригинальной 8b иногда проскакивают.
Запускаем 8B LLM в браузере: AQLM.rs