Как стать автором
Обновить

Комментарии 27

Ваше сжатие выигрывает у Microsoft BitNet?

Сейчас, насколько я знаю, все 8B BitNet модели с открытыми весами имеют хуже качество, чем у нас.
Алгоритмы фундаментально разные, мы сжимаем любую модель после обучения, а BitNet в своём базовом виде занимается обучением модели с нуля.

Было бы замечательно если бы вы поддержали AQLM в llama.cpp

Мы пытались, но код llama.cpp очень хрупкий, и не заточен на векторную квантизацию с кастомными кодбуками. За 20-30 человеко-часов значимо продвинуться не получилось

а если форкнуть? код там довольно модульный.
В любом случае замечательной была бы поддержка нативного таргета с простым интерфейсом из консоли, без wasm который даёт лишний оверхед и для которого нужен целый браузер

Для такого у нас есть поддержка vllm и huggingface бэкендов. Подробнее тут.

llama.cpp и популярная обертка вокруг него ollama выстрелила как царь пушка, потому что не нужно тащить с собой все эти python/numpy/pytorch и прочие сотни мегабайт бинарей "бэкендов" чтобы просто матмулы делать, так что vllm не является равнозначной альтернативой этому

классный проект

а модель поддерживает только определенные наборы английских слов?

интересно что на одно слово, модель зациклилась

Модель поддерживает любые строчки — даже на русском (правда на русском она заметно глупее). Просто иногда тупит

Если спросить её что-то осознанное, она ответит

Здравствуйте, очень интересно, планируется или использование 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 модели в браузере запускает.

Я вернусь к вам с другой полезной информацией позже.

Она не работает без webgpu и использует менее качественную квантизацию

А можно для новичков, зачем в браузере запускать если есть LM Studio?

Попробовал. Промпт на английском: объяснить простыми словами концепцию martingale применительно к финансам. Модель успешно загрузилась (минут за пять) и выдала следующую галлюцинацию:

Вы 8B или 1B модель использовали?

Спасибо за проект! В браузере работает. На русском китайских иероглифов пока не поймал, хотя может повезло. В оригинальной 8b иногда проскакивают.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий