Pull to refresh
16K+
36
Pavel Zloi@efreelancer

Руководитель направления ML/AI

45,1
Rating
35
Subscribers
Habr CareerHabr Career
Send message

ruGPT3XL идёт в качалку / поднимаем контекст до 8k

Level of difficultyMedium
Reading time8 min
Reach and readers6.7K

Это продолжение предыдущей публикации про реставрацию ruGPT3XL. Для тех кто не читал, кратенько, я конвертировал древний Megatron-LM чекпоинт в HuggingFace-формат, залил веса на HF, накатил поддержку GGUF в llama.cpp и подумал, что всё. Но нет.

По ходу тестов, проведённых разными людьми удалось выявить ряд недоработок, которые я по мере обнаружения правил, ну а после того, как удалось получить стабильную и рабочую версию мне захотелось решить одну старую проблему, которая меня в ruGPT3 моделях очень беспокоила, это проблема маленького контекста в смешные 2k токенов.

Решил поднять контекст до 8k.

Читать далее

Реставрация ruGPT-3 XL или как я вернул к жизни забытую русскую языковую модель

Level of difficultyMedium
Reading time8 min
Reach and readers12K

Несколько дней к ряду я занимался реставрацией легаси модели ai-forever/rugpt3xl, это классическая языковая модель от SberDevices на 1.3B параметров, крошка по современным меркам, на которой сберовцы обкатывали свои научные наработки аж в далёком 2021м году. Подробнее о ней можно почитать в статье “A family of pretrained transformer language models for Russian” на Google Scholar.

Да, она foundation, то есть умеет только продолжать текст, не может выполнять инструкции или работать в режиме чата. Но обучена она на корпусе русского языка и этот самый русский генерит очень бодро. У неё есть две примечательные особенности: её обучали с нуля, архитектура представляет собой глубокую модификацию GPT-2.

Читать далее

GGUF: квантизация с калибровкой (imatrix)

Level of difficultyMedium
Reading time6 min
Reach and readers6.2K

Привет, хабровчане!

Признаюсь, я не большой любитель vLLM, Triton Inference Server и всяких там NeMo, вместо них я предпочитаю ollama вообще и llama.cpp в частности, поскольку придерживаюсь мнения, что 1-2% потери в точности и отсутствие некоторых плюшек - не так важно, по сравнению с удобством деплоя, спекулятивным декодингом, многократным приростом скорости, динамическим оффлодом в память системы и возможностью запускать модели на любом "ведре", навроде древних зионов, андройдофонов, малинок или, скажем, макбуков.

Поэтому вполне ожидаемым для меня является, когда авторы моделей заморачиваются с конвертацией оных в GGUF - особом формате сжатия весов моделей, пригодном для запуска через упомянутые выше ollama и llama.cpp.

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

Читать далее

Распределённый инференс llama.cpp через RPC

Level of difficultyMedium
Reading time9 min
Reach and readers28K

Приветствую, хабровчане!

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

Погуглив некоторое время узнал, что проект LocalAI уже относительно давно поддерживает такую возможность, недолго думая я раскатал на нескольких компьютерах данный проект, после чего выполнил все необходимые настройки связав все инстансы в единую систему и, мягко говоря, был разочарован, уж слишком "фатально-недостаточным" оказалось данное решение, Docker-образ собран неоптимально, он был огромный по весу и только под amd64, неотключаемый веб-интерфейс шел в комплекте с проектом, скупой выбор моделей, некоторые из доступных LLM не работали в режиме RPC, все эмбеддинговые модели тоже отказывались запускаться в таком режиме, и так далее и тому подобное.

Повозившись ещё немного, полез в исходники и обнаружил упоминание проекта llama.cpp, затем нашёл вызов бинарника rpc-server. И вот я оказался на странице llama.cpp/examples/rpc и всё заверте...

Читать далее

Enbeddrus — обучение независящей от языка эмбеддинг-модели

Level of difficultyMedium
Reading time11 min
Reach and readers10K

Приветствую, хабровчане!

Сегодня хочу рассказать вам историю о том, как я обучил простую и компактную независящую от языка модель-эмбеддер, которая умеет работать с техническими текстами о PHP и способна извлекать схожие эмбеддинги для параллельных текстов на английском и русском языках.

Основная причина, по которой я решил заняться этим проектом, заключается в том, что мои заметки, код и документация, накопленные за более чем десять лет практики, представляют собой солянку текстов о разных технологиях, языках программирования, пометки о настройке серверов Linux и т.д. на русском и английском языках. Поэтому мне захотелось сделать Retrieval-Augmented Generation (RAG) помогалку, которая сможет принимать запросы пользователя (меня) и эффективно находить информацию в столь разношерстой базе данных, независимо от того на каком языке я сделал запрос и на каком языке написана документация.

Для достижения этой цели необходима независимая от языка модель-эмбеддер, которая будет одинаково хорошо работать с техническими текстами на русском и английском языках.

Ещё одним важным аспектом было то, чтобы модель потребляла как можно меньше ресурсов и, если возможно, чтобы её можно было преобразовать в формат GGUF.

Читать далее

Обучение модели токсификации текстов с помощью TorchTune, подробное руководство

Level of difficultyMedium
Reading time11 min
Reach and readers5.3K

Приветствую, хабровчане!

Сегодня пятница, поэтому предлагаю немного пошалить и поговорить о слегка необычном, но весьма забавном проекте обучения нейросетевой модели на базе LLaMA2 7B, которая умеет превращать невинные предложения на русском языке в чуть более "токсичные" их версии.

Но обучать модель мы будем не абы как, а при помощи недавно вышедшего в свет проекта под названием TorchTune, так как надо ведь пробовать новые инструменты, иными словами, предлагаю соединить тему интересную с темой полезной.

Так что пристегнитесь, будет весело и слегка токсично!

Читать далее

Дообучение ruGPT-3.5 13B с LoRA

Level of difficultyMedium
Reading time10 min
Reach and readers31K

Добрый день, уважаемые читатели и авторы Хабра!

Сегодня я рад представить вам подробное руководство по обучению модели ruGPT-3.5 13B с использованием датасетов модели Saiga-2/GigaSaiga, технологии Peft/LoRA и технологии GGML. Эта статья призвана стать полезным и практичным ресурсом для всех, кто интересуется машинным обучением, искусственным интеллектом и глубоким обучением, а также для тех, кто стремится глубже понять и освоить процесс обучения одной из самых мощных и перспективных русскоязычных моделей.

В данной публикации мы разберем каждый этап обучения модели, начиная от подготовки данных и заканчивая конвертацией в формат GGML. Буду рад, если мой опыт и знания помогут вам в вашем исследовании и экспериментах в этой захватывающей области!

Читать далее

Mikrotik RouterOS в Docker с помощью Qemu

Reading time9 min
Reach and readers30K

Всем доброго времени суток! В данной статье я хочу рассказать об одном OpenSource проекте под названием Docker RouterOS, изначально он был создан в качестве полигона для прогонки интеграционных тестов и ничего более, но со временем, по просьбе пользователей, был добавлен ряд улучшений расширяющих спектр возможностей.


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


Продолжение под катом.

Читать дальше →

Information

Rating
194-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Бэкенд разработчик, ML разработчик
Ведущий
Linux
PHP
Python
Многопоточность
Нейронные сети
Машинное обучение
Kubernetes
Golang
Высоконагруженные системы