На прошедшей неделе вышло сразу несколько новых Open Source LLM. Разбираемся, что в них особенного, а также как и зачем их запускать локально. Статья будет полезна тем, у кого мало опыта в работе с локальными большими языковыми моделями.
Зачем запускать LLM локально
Преимущества Open Source моделей по сравнению с использованием ChatGPT, Google Gemini, Claude 3 и тд:
Бесплатно. Вам не нужно платить за подписку. И если $20 в месяц для личного использования — не критично, то при разработке своего проекта можно хорошо сэкономить на API.
Оффлайн доступ. Модель запускается локально — вам не нужно подключение к интернету, VPN и тд.
Приватно. Ваши данные никуда не отправляются, все хранится локально на компьютере. Можно не бояться, что корпорации получат доступ к личной информации.
Персонализация. Используя такие подходы, как RAG, вы можете обогатить модели большим объемом своих данных — дать доступ к тысячам документов, хранящихся на вашем компьютере. И все это бесплатно.
Но, конечно, есть и минусы:
Требования к железу. Хорошую LLM не получится запустить на слабом компьютере. Но, например, если у вас есть MacBook с чипом M1 и выше и хотя бы 16GB ОЗУ, то вам уже доступно множество моделей, качество которых будет сравнимо с ChatGPT 3.5 Turbo. Правда, это касается в основном запросов на английском языке, с русским языком Open Source работает хуже.
Нет синхронизации между девайсами. Так как все происходит локально, то продолжить диалог с моделью на телефоне не получится.
Как запускать LLM локально
LM Studio
LM Studio предоставляет удобный графический интерфейс для загрузки всех популярных LLM и общения с ними. Чтобы начать, вам нужно:
Скачать и установить LM Studio с официального сайта
В интерфейсе кликнуть "Download" в карточке нужной модели
Перейти во вкладку "AI Chat" и писать запросы в выбранную Open Source LLM
Вкладка AI Chat выглядит по сути так же, как веб-интерфейс ChatGPT: слева список диалогов с моделью, по центру чат. Сверху можно выбрать модель, с которой будет диалог:
LM Studio доступна на Mac с чипами M1 и выше, а также на Windows и Linux. Требования к RAM и GPU зависят от конкретной LLM, но рекомендуется иметь от 16GB оперативной памяти.
Ollama
Ollama — это приложение для Mac, Linux и Windows, предоставляющее быстрый доступ к Open Source LLM через CLI интерфейс. Здесь, в отличие от LM Studio, нет графического интерфейса, то есть писать запросы нужно в терминале. Но разработчики утверждают, что так даже удобнее, ведь все взаимодействие с LLM происходит через текст, а GUI только тормозит работу.
Для начала работы вам потребуется:
Установить Ollama с официального сайта
Написать в консоли команду
ollama run llama3
. Вместо llama3 можно выбрать любую другую Open Source LLMПисать вопросы к модели прямо в терминале
Требования к железу, как обычно, зависят от конкретной LLM, но ваша GPU должна иметь Compute Capability 5.0 или выше. Список таких видеокарт можно посмотреть здесь.
Как вы могли заметить на скриншотах, качество работы на русском языке оставляет желать лучшего — рекомендую писать запросы на английском.
Код на Python
Конечно, веса любой модели можно просто скачать с Hugging Face и запустить через Python, но если эта модель уже доступна в описанных выше редакторах, то обычно проще воспользоваться готовым GUI или CLI интерфейсом.
Новые Open Source LLM
Phi-3-vision
Первая мультимодальная LLM в семействе Phi-3 от Microsoft. Это значит, что она понимает не только текст, но и фото. В ней всего 4.2B параметров, но она уже превосходит такие большие модели как Claude-3 Haiku и Gemini 1.0 Pro в некоторых задачах компьютерного зрения. Вы можете увидеть результаты бенчмарков в таблице ниже, но давайте лучше посмотрим на примеры ее работы.
Попробовать бесплатно эту модель можно на ее странице в Azure AI Studio, либо запустить локально, используя код с Hugging Face (мне хватило 12GB на видеокарте, чтобы ее запустить). Например, вы можете прислать скриншот таблицы и попросить модель переписать ее в виде Markdown:
Ответ модели
Certainly! Below is the markdown table converted from the image:
| Benchmark | Phi-3 Vision-128K-In1 | LLaVA-1.6 Vicuna-7B | QWEN-VL Chat |
|------------|-------------------------|-----------------------|---------------|
| MMMU | 40.2 | 34.2 | 39.0 |
| MMBench | 80.5 | 76.3 | 75.8 |
| ScienceQA | 90.8 | 70.6 | 67.2 |
| MathVista | 44.5 | 31.5 | 29.4 |
This table compares different benchmarks across three different AI models: Phi-3 Vision-128K-In1, LLaVA-1.6 Vicuna-7B, and QWEN-VL Chat. The benchmarks include MMMU, MMBench, ScienceQA, and MathVista, with their respective scores for each AI model.
Как мы видим, модель отлично понимает структуру и смысл картинки. Аналогично вы можете описывать разные графики, диаграммы, и просто любой объект на фото из окружающего мира.
Вы можете посмотреть больше идей для использования Phi-3-vision в этой статье. Мне оттуда понравился пример, где модель распознала конкретный объект на фото, помеченный цифрой:
Mistral-7B v0.3
Это обновление предыдущей версии Mistral-7B-v0.2, которая занимала 52 место в рейтинге Chatbot Arena, что выше, чем у GPT-3.5-Turbo-1106.
В версии 0.3 появилась поддержка Function Calling — это значит, что вы можете дать модели информацию о некоторых функциях, которая она будет предлагать вызывать в зависимости от контекста. Например, вы можете описать функцию get_weather(city)
, и если модель получит вопрос о текущей погоде в каком-то городе, она предложит вызвать эту функцию и передать в аргументы нужный город. Это полезно, если вы разрабатываете свой проект на базе LLM и хотите расширить стандартный функционал модели.
Новую версию можно попробовать прямо в Web интерфейсе на Hugging Face, также она доступна через Ollama.
CogVLM2
Это мультимодальная модель, основанная на Llama-3-8B-Instruct. Авторы утверждают, что она превосходит (или хотя бы не хуже) GPT-4 Vision в большинстве случаев! При этом модель имеет 19B параметров, что больше, чем у Phi-3 Vision, которую разбирали выше. Для запуска этой модели потребуется от 16GB видео-памяти.
Модель может анализировать картинки разрешением до 1344 * 1344 пикселей, а также поддерживать диалог с длиной контекста в 8K токенов. Работает для английского и китайского языков, а скачать, чтобы запустить локально можно на Hugging Face.
Llama-3 8B
Эта модель вышла уже больше месяца назад, но нельзя не упомянуть ее, если говорим про Open Source LLM. Сейчас она занимает 19 место в рейтинге на Chatbot Arena, обходя все версии ChatGPT-3.5 Turbo, а также почти все модели от Mistral, Gemma, Phi, и много кого еще.
Llama 3 можно запустить через Ollama или скачать на официальном сайте. Благодаря 4-битной квантизации, модель занимает всего 4.7 GB.
Вывод
Используя новые Open Source LLM, даже на слабом железе вы получите такое качество, которое еще год назад нам казалось эталонным. При этом модели будут понимать как текст, так и картинки. Вы также можете использовать привычный графический интерфейс для взаимодействия с ними, а добавив RAG, получите возможность задавать вопросы к любым текстовым документам, хранящимся на вашем компьютере. И все это абсолютно бесплатно и конфиденциально.
Если вам интересны новости из мира LLM, то подписывайтесь на мой Telegram канал Никита про LLM — пишу только про самое главное, без инфошума.
Комментарии (43)
MountainGoat
30.05.2024 06:18+3KoboldCPP. Использовать нужно KoboldCPP. Ощутимо лучшая производительность чем ollama, настраивается через параметры командной строки, имеет более простой, но более функциональный интерфейс чем LMStudio, и opensource.
nikitayusupov Автор
30.05.2024 06:18Спасибо за рекомендацию! Посмотрел гайды, выглядит удобно.
Про ollama еще можно добавить, что у них есть интересная подборка Community Integrations: https://github.com/ollama/ollama/blob/main/README.md#community-integrations
Там много open source реализаций с интеграцией ollama, например, локальная RAG-система, которая позволит задавать вопросы к локальным PDF и другим файлам. Или бот в телеграме на базе ollama. Думаю, все это можно реализовать и без ollama, а список просто использовать для вдохновения
Barabashkad
30.05.2024 06:18если ли где то сравнение скорости работы на локальном железе ?
nikitayusupov Автор
30.05.2024 06:18Не совсем про скорость, но думаю, что это очень коррелирует. Вот тут есть интересная табличка - по оси Х рейтинг модели на Chatbot Arena, а по оси Y - количество токенов, которые обработаются за 1 доллар. Для LLM моделей скорость работы часто коррелирует с их размером, соответственно и со скоростью работы, и вероятно с ценой. Но это мой субъективный опыт, бывают исключения, нужно перепроверять.
Llama 3 8B выглядит очень неплохо на этом графике.
nikitayusupov Автор
30.05.2024 06:18+1Вот тут еще нашел табличку как раз про скорость:
Числа таблице - кол-во токенов в секунду для разных open source LLM. Видно, что корреляция с размером прямая - llama 2 7B генерирует почти в 2 раза больше токенов за секунду, чем llama 2 13B.
Это уже не очень актуальные модели, статья старовата, но примерно можно ориентироваться. Интересно, что Mistral и Llama почти не отличаются при одинаковых размерах. Поэтому можно предположить, что сильнее всего на скорость влияет именно размер модели
Barabashkad
30.05.2024 06:18то есть можно прикупить RTX 4070 16G и использовать его для реальной работы
с финансовой точки зрения это не выгодно
но за приватность и автономность не сильно завышаная плата :-)nikitayusupov Автор
30.05.2024 06:18Согласен, что для личного использования не слишком выгодно покупать GPU, особенно когда ChatGPT-4o бесплатно доступен сейчас всем)
Но если локально хранится много документов (PDF, таблицы и тд), то можно легко прикрутить RAG систему, используя open source LLM (пример), которая будет отвечать на вопросы по этим документам. В ChatGPT их всех не загрузишь, а по API OpenAI часто ходить будет дорого. Для этого кейса уже вполне выгодно покупать видеокарту
sneg2015
30.05.2024 06:18А что отвечает в этом коде за векторизацию? Платная система или опенсорс?
nikitayusupov Автор
30.05.2024 06:18+1Судя по этой строчке — open source модель, но думаю можно и свое что-то подставить, в т.ч. платное
sneg2015
30.05.2024 06:18Я как раз и ищу, что-то адекватное и бесплатное. Иначе приходится платить за openai, векторизатор, сервер. При таком раскладе можно уже выбирать или сервер попроще и opanai, или сервер покруче и все в локалке.
Ob-iVan
30.05.2024 06:18+1RTX 4070 16G - экономически не очень выгодный вариант.
RTX 4060 Ti 16G на локальных моделях почти не отличается по скорости инференса, особенно если модель не влазит в память целиком и используется лишь частичный GPU Offload (а на моделях 70+ происходит именно так), при разнице в цене более чем в полтора раза.
Barabashkad
30.05.2024 06:18+2я вижу еще один способ личного использования
например в местах где запрещают использование LLM и физически закрывают к ним доступ ;-)
но можно принести свой лэптоп :-)
и на нем гонять персонального асистента :-)
даже если он будет без доступа в интернет :-)nikitayusupov Автор
30.05.2024 06:18100%, моему знакомому, который работает в одном российском банке, запрещено использовать любые ChatGPT и аналоги на работе (по соображениям безопасности), в таком случае я бы точно запускал какую-нибудь Llama локально)
LanMaster
30.05.2024 06:18А что с цензурой на "домашней" модели? Политкорректность прибита гвоздями? Отрисовка нюдсов запрещена бай дизайн?
Ob-iVan
30.05.2024 06:18Нет, есть много моделей со снятой (или почти снятой) цензурой.
Например, Lexi-Llama-3-8B-Uncensored или Llama-3-70b-Uncensored-Lumi-Tess.
Также есть модели, у которой цензура не очень жесткая "из коробки".
StarJohn
30.05.2024 06:18По последнему вопросу: ставьте Stable Diffusion by AUTOMATIC1111, потом регистрируйтесь на Civitai.com, просите сайт вам показывать вообще всё и выбираете модель по вкусу - там будет более чем достаточно вариантов. Не забудьте прочитать описание, там бывают разные типы моделей, которым нужны разные настройки. Скачиваете и запускаете.
В итоге иногда даже получается NSFW там, где был обычный запрос, типа: красивая девушка, букет цветов, улица, Париж. :)
Ob-iVan
30.05.2024 06:18Удалось ли кому-то осуществить ввод изображений через GUI LM Studio?
(если что - кнопки аттачмента в строке ввода запросов там нет)
0x00fe
30.05.2024 06:18+1А подскажите - есть локальные llm api с function calling? lm studio не умеет, как и все выше перечисленные (ollama, lama.cpp koboldcpp, jan, ...)
nikitayusupov Автор
30.05.2024 06:18https://ollama.com/library/mistral
Здравствуйте! Попробуйте вот тут посмотреть, у Mistral как раз одно из нововведений — function calling, и ollama на сайте даёт пример, как этим пользоваться через API локально.
https://github.com/ollama/ollama/blob/main/docs/api.md#api
Вот тут подробнее про API
saege5b
30.05.2024 06:18Phi-3-vision - на азуре при вопросе "что ты умеешь?", у меня стабильно уходил в бесконечный цикл. А на вопрос "как тобой пользоваться?" генерировал рекламу про какой он хороший.
pood
30.05.2024 06:18+1В качестве UI есть вот такой Open Web UI https://github.com/open-webui/open-webui
Из фишек которые есть - умеет подгружать в чат файлы или ссылки на статьи, и даже забирать субтитры к видео с Ютуба, и отвечать на вопросы по этим данным. Кажется есть встроенный аналог RAG, но пока не тестировал
alfa41
30.05.2024 06:18Создалось впечатление, что скорость ответов чуть пониже чем в терминале. Из дополнительных плюсов: возможность подключать внешние модели через api
Pol1mus
30.05.2024 06:18Кто как использует маленькие модели в своих задачах? Реально работающие проекты для реальных задач а не просто запустить на локальном железе ради запустить на локальном железе или нагенерировать бутора для фейковых сайтов лишь бы было что то похожее на настоящие тексты.
Не обязательно локальные, мне интересно как и для чего можно использовать ллм которые с трудом 2 слова могут связать.
MountainGoat
30.05.2024 06:18+1Я в кодинге использую сразу три модели. Большой (Mixtral 8x22B) я задаю руками общефилосовские вопросы. Средняя (какая-то мешанина на базе 8x7) через дополнение Continue пишет мне комментарии, docstringи и тесты. А мелкая через то же расширение работает постоянным автодополнением.
Сделал подружке GTP-4o в телефоне по API. При этом мелкая модель получает текст вопроса и ответа и по ним генерирует заголовок к беседе, для сортировки бесед в UI.
Хочу попробовать прикрутить её же к Obsidian чтобы делал заголовки для заметок. Мелкой вероятно не обойдусь, но только потому, что у меня в ходу 3 языка. Был бы пиндосом - обошёлся бы точно.
DrrRos
30.05.2024 06:18А как запускали Phi-3-vision? Пытался через oobabooga - это же единственный вариант запуска через transformers с Web ui? - не отвечает, хотя видно, что модель грузится, плагин multimodal стоит
theurs
В каком месте качество ламы3 8б сравнимо с ChatGPT 3.5 Turbo?
Проверить как работают маленькие модели можно бесплатно на многих сайтах, это мрак полнейший, даже не близко к ChatGPT 3.5 Turbo.
Даже распиаренная lama3 70b на фоне ChatGPT 3.5 Turbo выглядит не очень здорово... Если и лучше чем то то только знаниями событий после 2021.
janvarev
"Доказательств, приводить, конечно, никто не собирался..."
Вот вам скрин с текущего рейтинга Арены, с двумя упомянутыми моделями.
kunsun
А что то за таблица? Я вот сейчас зашел на опенроутер и попросил у самой модной ph3 - 14b простенький текст написать. Там получился текст в духе "твая мая большой друг индейцев карифана...". ChatGPT себе такого никогда не позволял.
nikitayusupov Автор
Это таблица с сайта https://chat.lmsys.org/ - Chatbot Arena. Там любой человек может вслепую проголосовать за модель - написать свой запрос, получить 2 ответа от разных моделей и выбрать какой из ответов лучше, при этом он не видит названия моделей до своего голоса. На основе этих голосов потом и складывается рейтинг
kunsun
В этой таблице Клауд 2.1 ниже чем лама 8б. Это абсолютно нереально. Ни в какой вселенной. Только если нашли какой то специальный тест на который ламу натаскивали, типа повтори 10 раз одну букву задом наперед.
А еще Клауд-1 выше чем Клауд 2 и 2.1. Может эту таблицу перевернуть надо?
nikitayusupov Автор
Это правда, что вопросы к рейтингу возникают регулярно, поэтому авторы добавляют разные фильтры - можно посмотреть рейтинг по разным типам запросов, например, только сложные промпты. Или по разным языкам.
Для китайского языка, кстати, Claude 1 в рейтинге выше, чем Llama. Но все равно рейтинг не всегда будет объективным, потому что голосуют обычные люди, не имея четких критериев.
Другой вопрос, что объективного рейтинга сейчас, кажется, нет :(
syrus_the_virus
Каким боком какой-то рейтинг на каком-то сайте может отражать картину того, что хорошо обученная модель, которая крутится на сервере с сотнями петафлопс производительности, быть хуже или равна плохо обученной модели, запущенной на ПК с абстрактным RTX4080? Даже если сравнивать модели в лоб, по количеству параметров и слоев, даже тут близко ламы и мистрали не подбираются к chatgpt 3.5, и я молчу о качестве датасетов у коммерческой gpt.
nikitayusupov Автор
Можно еще обратиться к бенчмаркам, которые приводят здесь.
Результаты бенчмарков уже слегка другие - большинство версий ChatGPT-3.5 обгоняют Llama, но, тем не менее, и Mistral 7B, и Llama 3 выглядят очень неплохо и в этом рейтинге.
Тут нужно добавить, что Llama - это разработка Meta. Здесь они сами сравнивают свою open source модель с Gemini Pro 1.5 и Claude 3 Sonnet.
Можно предположить, что у Meta (ex. Facebook) довольно много и ресурсов, и качественных датасетов, и продвинутых технологий, чтобы обучить качественную модель, способную конкурировать с младшими версиями ChatGPT
Wwyn
Мне кажется, что после обучения, где будет крутиться твоя модель не важно. На компе медленно, на сервере быстрее.
janvarev
Про рейтинг Арены я писал здесь, если что: https://habr.com/ru/companies/timeweb/articles/805261/
Вкратце - метрики для оценки моделей работают плохо, поэтому сейчас топовым является рейтинг моделей на Арене (Там юзеры сами делают запрос к двум нейросетям, а затем оценивают, какой ответ лучше. Возникает набор оценок “выиграл-проиграл”, на основании которых считается рейтинг ЭЛО — и чем выше рейтинг, тем выше вероятность того, что модель ответит лучше, чем другая модель с более низким рейтингом.)
kunsun
Ну очевидный же бред. Либо эти люди не просили генерировать тексты (основная работа для ллм) либо они не читали результаты. Крошечные модели сильно заметно уступают всем крупным моделям, даже таким слабым как лама3-70 и клауд-1.
nikitayusupov Автор
Как раз недавно авторы Chatbot Arena добавили фильтр для сложных запросов, вот тут можно посмотреть разбор, что изменилось в рейтинге
Главный вывод — действительно, многие open source модели сильно упали в рейтинге, то есть они и правда справляются хуже со сложными запросами, чем модели типа ChatGPT и Claude.
Но тем не мене, если сравнивать не с топовыми представителями, а со старыми версиями (ChatGPT-3.5 и тд), то новые open source модели выглядят неплохо даже в обновленном рейтинге
nikitayusupov Автор
Здравствуйте!
Согласен с вами, что на русском языке open source модели работают плохо.
Я опираюсь на рейтинг Chatbot Arena - https://chat.lmsys.org/, там в основном результаты для английского языка. Рейтингу можно доверять, как так модели тестируются людьми вслепую
palyaros02
А вы на русском спрашивали наверное? На русском мрак, но это прямо было заявлено метой, что у них только 5% датасета были не на английском, это на все языки кроме него вместе взятые. Не общайтесь с опенсорс ллм на русском!
Я попросил llama3 70b написать мне шаблон бекенда интернет-магазина на fastapi и был крайне удивлен. Она без дополнительных указаний и просьб придумала структуру проекта, обосновала, написала код каждого файла и даже про безопасность подумала. Потом вежливо сама предложила инструкции по развертыванию, но тут уже я отказался.
В разы лучше 3.5. И не ленится, как 3.5 типа "вот вам заголовки функций, код напишите сами".