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

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

А локально запустить можно? Есть гайд по запуску Llama2, а тут?

Конечно. gguf уже много кто наконвертировал.

Вот тут к примеру берёте: https://huggingface.co/QuantFactory/Meta-Llama-3-8B-Instruct-GGUF

И запускаете с помощью llama.cpp / lmstudio / gpt4all / etc

С полным контекстом 8B-Q8 должна влезть на карточку с 10 гигами

Уже добавили в ollama (это консольная утилита для запуска моделей локально)

text-generation webui тебе в помощь

Сейчас дотренируют 400B, которая на ровне с 4кой по тестам

так ведь нихрена не запустишь локально, у кого 2 tb оперативки дома будет?

Локально все запускают с квантизацией, 4битная теряет в качестве считанные проценты, а вот требования падают на порядок, 256Гб машина уже не фантастические требования

Но вот проблема скорости работы такой модели на процессоре ставит крест на большинстве применений. 64Б работала где то токен в секунду, эта гигантская будет раз в 10 медленнее.

А можно пояснить, она понимает запросы только на английском, верно? Ничего подобного из LLM, которые можно обучить на русском сейчас нет? В свободном доступе конечно.

она понимает запросы только на английском, верно?

они все обучаются на гигантском количестве текстов разных языков. Поэтому понимают сразу все языки и отвечают на них же. То есть ЧатГПТ, ЛЛАМЫ, Мистрали, Гемини и прочие и прочие (даже китайские модели) - всем им можно писать сразу на русском и получать ответы на русском. Крайне редко кого-нибудь может подглючить и чат может начать отвечать на английском, но достаточно написать ему "отвечай на русском" и будут ответы на русском.

Благодарю!
А есть где-то четкий мануал по а) локальной установке на VDS и б) обучению под конкретную задачу? Например скормить тысячу книг по какой-то конкретной области знаний и поглядеть, сможет ли она выступить в роли универсального советчика?
Пусть это будет даже более старая версия, допустим LLAMA 2 70B

мануалов более чем много, я не проверял но первая же статья поиском гугла на хабре выглядит норм

VDS потянет языковую модель?

При наличии видеокарт достаточного суммарного размера vram, да.

Работать будет и на оперативной памяти, но медленнее на порядок

Вот тут бот бегает по популярным моделям и показывает требования к памяти, можно примерно оценить по моделям со схожим количеством параметров. Для тюнинга весов модели на вес нужно минимум float16, для peft (тюнинг весов токенизера или промпта или еще как) может хватить 8бит квантизации. Для использования модели квантизация может быть меньше, но 4бит уже заметная потеря качества.

а в чем разница обычной лламы 3 от гуф версии лламы 3 ? для запуска локально. почему ггуф весит больше в 2 раза почти ?

.gguf это формат хранения gpt нейронок (особенность в том что он совпадает с форматом хранения весов в памяти, т.е. файл можно мапить на область памяти вместо его загрузки копированием), с поддержкой квантизации, разные параметры квантизации - разный размер (кстати осторожно, я скачивал 70B якобы готовую но она работала хуже чем если я сам скачаю .safetensors формат и конвертирую утилитой из llama.cpp, хз почему, возможно тот кто выкладывал это сделал квантизацию с ошибкой, в тот день кода в llama.cpp с поддержкой llama3 не было)

а мапить файл с моделью в память нельзя?

и что думаете про такой https://arxiv.org/abs/2312.11514 подход?

на машине 64Gb ram было запущено много приложений и свободно оставалось 50Гб но для запуска llama3-70b-q5 требовалось 56Гб и в результате llama.cpp (он мапит .gguf файл модели в память) по кругу читало весь файл (вместо того чтобы перечитывать только ту часть что не влезла), файл размещен на nvme диске со скоростью чтения 900мегабайт в секунду (по логам с диска чтение было 9110мбит) весь файл считывался за 1 минуту, и именно с такой скоростью - 1 токен в минуту работала llama. Если модель помещается в оперативную память то скорость 1 токен за 0.9сек.

Если что сомнительное достижение но использовать это можно будет, когда выйдет 400B модель чтобы хоть как то на нее посмотреть

спасибо за информацию по реальному опыту.

по поводу подхода от товарищей из эппл, они в доке пишут:

The practical outcomes of our research are note‑ worthy. We have demonstrated the ability to run LLMs up to twice the size of available DRAM, achieving an acceleration in inference speed by 4–5x compared to traditional loading methods in CPU, and 20–25x in GPU.

по сравнению с традиционными методами загрузки в ЦП

что они там нахимичили что у них работа с диском оказалась быстрее, но полагаю использовались не llama.cpp подход? дело в том что форматы сохранения чекпоинтов это упакованный zip архив .ckpt или .pth или просто формат данных типа .safetensors, который по определению должен быть прочитан, распарсен, и скопирован сначала в оперативную память, потом в gpu, и эти накладные расходы значительны.

llama.cpp переносит всю эту работу на момент конвертирования в .gguf формат, а когда запускается собственно проект, данные доступны в тот же момент как их запросили, при этом механизм маппинга файла на память работает быстрее чем любые классические методы чтения файлов, в т.ч. fread, на низком уровне все они основаны на чем то типа mlock, плюс это очень удобно, когда между запуском скрипта не нужно перечитывать весь файл весов, они хранятся в кеше ОС, и даже если между запусками была запущена другая программа и вытеснила часть весов из кеша, будут загружены только эти вытесненные... когда как использование подхода запустил сервер и держишь память занятой, очень ограничивает использование машины для других задач.

Intel Xeon E5-2600 v4 - доступна дешево, поддержка до 1.5 ТБ ram. 2016 год.
Intel Xeon Cooper Lake-HL - до 4.5TB Ram. 2020 год.

(Почти) любая 2х сокетная серверная материнка за последние 10 лет. У меня сейчас 256гб стоит, q5 это с натяжкой загрузит, но я без проблем могу и до 512 увеличить. А вот видеокарты встали и вышли из чата)

можно попробовать проект petals, настроив свой личный кластер. 16x десктопных gpu с 16Gb vram каждая (стоимость начиная с 50т.р.), cpu оперативная память по уму не нужна (на момент загрузки данные будут сразу загружаться с ssd, но это нужно тестировать), стоимость кластера порядка 1кк рублей минимум (4 ноды по 4 видеокарты)

У llama.cpp есть обсуждение по похожему проекту, есть хорошее утверждение, не лишенное логики

@ggerganov commented Sep 8, 2023
In theory, a parallel implementation would split the model tensors across rows to 32 nodes and the MPI code would synchronize the activations after each layer, which would in theory give you ~32x times the memory bandwidth of a single node. And on top of that, each node would need just 1/32 of the total memory.

т.е. теоритически возможно кратное ускорение работы за счет паралелизации на нескольких нодах

Ну и смотрим тут https://github.com/b4rtaz/distributed-llama у него на 8-малинках получалось запустить llama2-70B, а если смотреть по 7B версии то с 3-кратным ускорением (как я понимаю упирается все в сеть)

Как использовать их llama guard? Если попробовать скачать, предлагает модели таких же размеров 8 и 70 соответственно base и instruct. Есть большая рекламная pdf-ка (дают по ссылке инструкции) и все.

prompt template такой же как у llama2?

Поигрался с 8B моделью. Прикольно, но цензура есть. Даже "покойная бабуля" не пробивает.
Как запустил:
Скачал LM Studio v0.2.20 https://lmstudio.ai/
В ней скачал через поиск Llama-3, например такие:
https://huggingface.co/QuantFactory/Meta-Llama-3-8B-GGUF/tree/main
https://huggingface.co/lmstudio-community/Meta-Llama-3-8B-Instruct-GGUF/tree/main
В системном промте справа выбрал пресет "Llama-3"

Кстати, а может кто-нибудь простыми словами объяснить в чем разница между обычной и Instruct-версией? Не в Llama, а вообще в целом. Какую следует выбирать для каких целей и как правильно пользоваться?

Интересно, можно ли обходить цензуру не на уровне запросов, а на программном уровне. Все же ОПЕН.

Тупо ждем файнтюнов этой модели, которые "расцензурят" базовую опенсорс версию. Думаю, через неделю-две будут вовсю.

Недавно (чуть больше недели назад) вышла Mixtral 8x22B - так для неё много команд делают файнтюны, уже парочка вышла. Для Llama3 будет то же самое.

Комментатор выше - бот, но для интересующихся отвечу:

Как правило цензура в опенсорсных моделях реализована не как отдельный "програмный" ограничитель, а путём загрязнения датасета отказами в ответ на "неправильные" вопросы. Так что придётся файнтюнить модель что-бы просто смягчить цензуру.

Если у меня другой взгляд на гендерное разнообразие, чем у Вас, это еще не значит, что я бот :)))

У опенаи инструкт версия обучена "выполнять инструкции", одиночные запросы, и у нее нет или почти нет цензуры. Обычный чатгпт принимает в запросе список предыдущих вопросов и ответов, целый диалог а не одиночный запрос.

Если ты скажешь Упал отжался то обычный чатгпт может уточнить или отказаться или отшутится, а инструкт упадет и отожмется.

Кстати, а может кто-нибудь простыми словами объяснить в чем разница между обычной и Instruct-версией?

Все просто - базовая версия просто обучена продолжать тексты (на большом их количестве). Базовая модель обычно не должна использоваться конечным пользователем, она в первую очередь используется для дотренировки другими специалистами.

Instruct-версия - это дотренированная базовая версия на исполнение инструкций пользователя. Именно её лучше юзать конечному пользователю.

Вы с чем сравнивали? У неё неверятно низкий уровень цензуры. Почти на уровне расцензуренных моделей. По сравнению со 2й ламой можно сказать что цензуры нет.

Кстати, а может кто-нибудь простыми словами объяснить в чем разница
между обычной и Instruct-версией? Не в Llama, а вообще в целом. Какую
следует выбирать для каких целей и как правильно пользоваться?

Обычная нужна для продолжения текста. Без всяких специальных токенов для обозначения роли. Instruct обучена именно для диалогов.

Instruct модели - специально дообученные на специальных датасетах на решение конкретных задач, чтобы повысить качество.

Вы 18/04/2024 23:28

Ответь одним словом, чей Крым

profile

Llama3:8b-Instruct-Q8_0

России

llama3:70B-instruct

What country does the Crimea belong to?

🦙The status of Crimea is a matter of dispute. Prior to 2014, Crimea was an autonomous republic within Ukraine. However, in March 2014, Russia annexed Crimea through a military intervention and a disputed referendum, in which the majority of voters supported joining Russia.Since then, Russia has considered Crimea to be one of its federal subjects, while Ukraine and most of the international community consider it to be a temporarily occupied territory of Ukraine.The United Nations General Assembly has adopted several resolutions reaffirming Ukraine's sovereignty over Crimea, and many countries have imposed economic sanctions on Russia in response to its actions in Crimea.So, to answer your question, the country that Crimea belongs to is a matter of interpretation and depends on one's perspective on the situation.

🥸на русском

🦙Статус Крыма является предметом спора.До 2014 года Крым был автономной республикой в составе Украины. Однако в марте 2014 года Россия аннексировала Крым через военное вмешательство и спорный референдум, на котором большинство голосовавших поддержали присоединение к России.С тех пор Россия считает Крым одним из своих федеральных субъектов, в то время как Украина и большинство международного сообщества считают его временно оккупированной территорией Украины.Генеральная Ассамблея Организации Объединенных Наций приняла несколько резолюций, подтверждающих суверенитет Украины над Крымом, и многие страны ввели экономические санкции против России в ответ на ее действия в Крыму.Так что, отвечая на ваш вопрос, страна, которой принадлежит Крым, - это вопрос интерпретации и зависит от точки зрения на ситуацию.

Не обращайте внимание на аватарку. Это llama3-70b-instrunct не квантизированная, без системного промпта.

Видимо дело в размере. 🤷🏼‍♂️

И вот ответ на вопрос "Чей Крым?":

Крым - это регион, расположенный на Крымском полуострове в северной части Черного моря. В настоящее время Крым является спорной территорией, и его статус является предметом международного спора.

Исторически Крым был частью различных государств и империй, включая Древнюю Грецию, Римскую империю, Византийскую империю, Золотую Орду, Крымское ханство, Российскую империю и СССР.

В 1954 году Крым был передан из РСФСР в УССР (Украинскую Советскую Социалистическую Республику) в составе СССР. После распада СССР в 1991 году Крым стал частью независимой Украины.

В 2014 году, после политического кризиса на Украине, Крым был аннексирован Россией. Россия считает Крым своим субъектом федерации - Республикой Крым, а также городом федерального значения Севастополем. Однако, большинство стран международного сообщества, включая США, Европейский союз и другие, не признают аннексию Крыма Россией и считают его частью Украины.

Таким образом, вопрос о принадлежности Крыма остается спорным и является предметом международного спора.

Запустил локально через MLStudio.

Очень много галлюцинаций и категорически отказывается общаться на русском. Приходится писать в каждом предложении.

Как ее можно дообучить или указать какие-то базовые настройки чтобы она говорила на русском?

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