Pull to refresh
19
0
Ruslan Dev @ruslandevlabs

User

Send message

Как обучить русскоязычную модель рассуждений — LRM?

Reading time3 min
Views1.9K

Ранее на моем YouTube-канале уже были видео о моделях рассуждений — OpenAI o1/o3, DeepSeek R1. Эти модели обучены с помощью стратегии reinforcement learning находить решения для задач, требующих логических рассуждений. Способность строить цепочки рассуждений, ведущих к решению поставленной задачи, открывают возможность применения таких моделей в математике, программировании и других подобных направлениях.​

Однако упомянутые модели имеют одно ограничение — они выполняют рассуждения на английском языке. И даже если вы укажете в промпте требуемый язык ответа, отличный от этих двух, то только вывод модели будет на этом языке, а вот сама цепочка останется на том, на котором модель обучена “думать”. Соответственно, чтобы заставить модель думать на русском, нужно применять файнтюнинг.

Есть интересный пример — коллекция моделей R1 Multilingual от японской компании Lightblue, которая ранее создала открытый мультиязычный файнтюнг Llama 3 - Suzume. Эта новая коллекция содержит модели рассуждений на базе DeepSeek-R1-Distill-Qwen, дистиллированных с помощью DeepSeek R1 версий Qwen. Что более важно - эти модели получены путем файнтюнинга на мультиязычном CoT (Chain-of-Thoughts), и данные CoT опубликованы на HuggingFace.

Датасет содержит данные на более чем 30 языках, включая русский. Данные получены следующим образом:

Выполнена выборка промптов из открытых англоязычных датасетов с последующим переводом на различные языки. Для перевода использовалась GPT-4o, которая, кстати, хорошо показала себя при создании моего собственного датасета и русскоязычного файнтюна Llama 3 на нем. Далее авторы мультиязычного CoT-датасета сгенерировали ответы на полученные промпты с помощью deepseek-ai/DeepSeek-R1-Distill-Llama-70B восемь раз, и отфильтровали блоки <think> не на том языке, либо с нарушениями правил языка или логическими ошибками. Это достаточно интересный момент, так как разработчики полностью опубликовали код для генерации своего датасета, включая фильтрацию сгенерированных цепочек рассуждений. Если с автоматическим определением языка цепочки все достаточно просто, то для проверки ее соответствия нормам языка и, самое главное, логической корректности, пришлось опять-таки задействовать LLM. Принцип такой же, как и при использовании модели-судьи для выполнения автоматизированных evaluation-тестов.

Читать далее

Реализация AI агента на базе LLM с нуля – что включает цикл разработки

Reading time3 min
Views6.2K

Разработка AI агента, использующего большие языковые модели (LLM) – это малоизвестный пока еще и потому интересный инженерный процесс, охватывающий весь цикл создания от идеи до финального развертывания. Технические стандарты разработки агентских систем пока еще формируются.  В данной статье я поделюсь своим опытом и рассмотрю ключевые этапы, технологии и практические нюансы, которые встречаются при разработке такой системы с нуля.

Начнем с подготовительного этапа постановки задач и сбора данных. Первым делом необходимо чётко определить цели и задачи будущего агента. Предположим, что в центре системы обычная LLM - в рамках этой статьи не будем рассматривать мультимодальные агенты или модели рассуждений. Важно понять, каким образом LLM будет интегрирована в общий процесс. В 99% центральным звеном интеграции будет Retrieval-Augmented Generation (RAG) пайплайн. Через него модель будет получать данные, релевантные тем задачам, которые агент должен решать. И на этапе построения пайплайна критически важен сбор и предварительная обработка данных. Собранные данные могут включать текстовые документы, логи общения пользователей, справочные материалы, которые потом помогут модели понимать контекст и давать релевантные ответы. Сложность этого этапа зависит от того, какие у вас источники данных, сколько их, насколько серьезной предварительной (перед загрузкой в индекс) обработки они требуют.

Читать далее

Современные требования к инфраструктуре для агентских AI-систем. Развертывание, поддержка и операционные расходы

Reading time4 min
Views1.2K

Агентские AI-системы, которые могут взаимодействовать с окружением посредством сложных интеграций, принимать автономные решения и адекватно реагировать на обратную связь от пользователя, требуют серьезной инфраструктурной поддержки. В этой статье я собираюсь рассмотреть ключевые аспекты развертывания и поддержки таких систем как в облаке, так и на выделенных кластерах. За основу я возьму свой опыт развертывания агентской системы в кластере Linux-серверов, где все сложности по конфигурации и поддержке инфраструктуры ложатся на разработчика, а также в облаке с более широкими возможностями автоматизации инфраструктурных процессов. Я рассмотрю также операционные расходы и возможные трудности, связанные с разработкой агентских систем под каждую из платформ.

Начнем с основных компонентов инфраструктуры агентских AI-систем. Прежде чем рассматривать конкретные сценарии развертывания, стоит выделить следующие ключевые компоненты инфраструктуры агентской AI-системы:

Читать далее

Grok 3 бета — эпоха «думающих» агентов

Reading time2 min
Views5.6K

Grok 3 — это последняя серия моделей компании xAI Илона Маска. Представленная 17 февраля 2025 года, эта модель была обучена с использованием суперкомпьютера Colossus, оснащенного около 200 000 графических процессоров Nvidia H100, что в десять раз превышает вычислительные мощности, использованные для предыдущей версии Grok 2.

Согласно результатам бенчмарков, представленным xAI, Grok 3 превосходит другие передовые модели, такие как GPT-4o, Claude 3.5 Sonnet, Gemini-2 Pro и DeepSeek-V3, в областях математики, программирования и научных исследований.

Читать далее

Почему DeepSeek способен конкурировать с OpenAI и как повторить их опыт

Reading time3 min
Views11K

За последние два года - за время невероятной популярности Generative AI - появилось много перспективных компаний, создающих новые прорывные модели. Последний пример - это китайский стартап DeepSeek, благодаря которому у нас есть открытые аналоги OpenAI GPT-4o и o1. С теми же (что проверено бенчмарками) возможностями в плане выполнения текстовых инструкций, задач на математику, логику и кодинг.

Читать далее

Развертывание Marco o1 на локальном PC. Языковая модель рассуждений

Reading time4 min
Views4.9K

Недавно я запускал и тестировал Marco o1. Это одна из первых опенсорсных языковых моделей с многоступенчатой логикой, эта модель использует Chain-of-Thoughts и некоторые другие алгоритмы, которые помогают с решением задач на математику, логику и кодинг. Marco-o1 названа по аналогии с OpenAI o1, благодаря которой Chain-of-Thoughts промптинг и файнтюнинг получил особую популярность в GenAI индустрии.

В последнее время разные компании, в основном из Китая, стремятся повторить возможности o1. Самые впечатляющие результаты - у DeepSeek-R1-Lite-Preview, но веса этой модели не были опубликованы на момент проведения моих тестов. Однако разработчики DeepSeek R1 Lite обещали открыть доступ в свое время, и это будет очень интересно для нас.

А пока я решил поиграть с весами Marco-o1, модели хотя и легковесной, но реализующей те продвинутые алгоритмы, которые стоят за удивительными возможностями оригинальной o1. Как видно из карточки модели на HuggingFace, она создана путем файнтюнинга Qwen 2 7B на Chain-of-Thoughts датасете. Это комбинация датасетов Open-O1 и двух дополнительных наборов данных, которые разработчики из Alibaba Cloud сгенерировали, используя разные стратегии промптинга - Chain of Thoughts и обычные инструкции. Опубликована, к сожалению, только часть данных, но по ним ясно видно, какой формат использовали для файнтюнинга Chain-of-Thoughts:

Читать далее

Qwen 2.5 и Qwen 2.5 Coder — перспективная коллекция LLM для систем агентов

Reading time3 min
Views16K

Разработчикам приложений Generative AI стоит обратить внимание на новую коллекцию моделей Qwen 2.5 и Qwen 2.5 Coder. С сентября 2024 года эти модели привлекают внимание разработчиков благодаря своей эффективности.

Эти модели созданы Alibaba Cloud и предлагают много полезных для AI-сообщества функций.

Во-первых, веса Qwen 2.5 доступны в версиях от 0.5B параметров — это очень легковесная модель — до 72B. Посередине есть 3, 7, 14 и 32B, каждую из которых вполне можно запускать локально, если у вас есть, например RTX 3080 с 16ГБ видеопамяти. В этом поможет квантизация (особенно в случае с 32B). Квантованные веса в форматах GGUF, GPTQ, AWQ есть в официальном репозитории.

Для более быстрого инференса и файнтюнинга Qwen 2.5 можно арендовать облачный GPU и работать с этой моделью так же, как с привычной нам Llama. Я показывал примеры файнтюнинга последней в предыдущих статьях, используя облачные видеокарты и стек Huggingface Transformers (код Qwen 2.5 добавлен в одну из последних версий transformers).

Есть базовая модель и версия Instruct, вы можете пробовать файнтюнить обе и смотреть, какой результат вам лучше подходит. Но если вы хотите взять готовую модель для инференса, то лучше конечно Instruct. Благодаря разнообразию размеров и форматов, Qwen может быть полезен для разных типов приложений — клиент‑серверных, или десктопных, и даже на мобильных — вот как это выглядит:

Читать далее

Квантизация позволяет запускать Llama 3.2 на мобилках

Reading time3 min
Views8.5K

Квантизация помогла портировать последнюю версию LLM Llama 3.2 на мобильные платформы - iOS и Android. Для этого разработчики выпустили квантованные версии Llama 3.2 1B и 3B, которые при тестах на ARM-процессорах показали высокую скорость инференса, по сравнению с несжатыми весами в формате BF16. 

Как вообще получилось, что Llama работает на мобильных процессорах, ведь для ее запуска нужен определенный программный стек, чаще всего библиотека Pytorch и CUDA на операционной системе Linux?

Дело в том, что Meta* (признана в России экстремистской организацией) используют ExecuTorch - это фреймворк, который является частью Pytorch-платформы и предназначен для запуска Pytorch-программ на мобильных девайсах. ExecuTorch поддерживается фреймворком Llama Stack для запуска моделей Llama, а именно легковесных Llama 3.2 1B и 3B, на iOS и Android. Для разработки мобильных приложений под эти платформы Llama Stack предоставляет клиентский SDK на Swift для iOS и Kotlin для Android, оба написаны под ExecuTorch бэкенд.

Какого именно уровня производительности удалось добиться новым квантованным моделям Llama?

В среднем это ускорение инференса от двух до четырех раз по сравнению с весами в формате BF16, при сохранении практически сопоставимого качества. Уменьшение размера модели на 56% - что важно для мобильного приложения, чтобы меньше места на телефоне занимало - и уменьшение объема потребляемой памяти на 41% процент. Все это согласно результатам бенчмарков, приведенных на сайте Llama.

Сразу стоит отметить важную деталь: речь идет не об обычной post-training квантизации, когда вы берете веса в FP16 и квантуете в GGUF или GPTQ. Хотя такие веса, безусловно, имеют практическое применение для множества задач, они страдают падением качества, это хорошо заметно на бенчмарках ниже. 

Читать далее

Мультимодальные приложения на Llama 3.2 и Llama Stack

Reading time3 min
Views4.7K

Недавний релиз Llama 3.2 с мультимодальными версиями 11B и 90B открывает возможности для создания AI приложений, анализирующих визуальный ввод.

Мультимодальные модели были и раньше, но это первая официальная версия Llama с такими функциями. Модель может быть использована для распознавания объектов и текста на изображении, как это делает GPT-4o. Довольно интересен технический рецепт создания мультимодальной Llama 3.2. За основу была взята предыдущая версия - 3.1, обычная текстовая LLM. Логично, если принять во внимание, что конечная цель - извлекать признаки изображения и “транслировать” их в текстовые токены. 

К LLM добавили image encoder, это модуль, который встраивает представление картинки-ввода в векторное пространство. А также слои image adapter’а - для того, чтобы полученные визуальные признаки передавать в языковую модель. Подробнее об энкодерах и адаптерах изображений можно прочитать, например, в статье Bordes et al. 2024 - введение в визуально-языковые модели. Обучают VLM на парах изображение-текст, именно так обучали и Llama 3.2. Причем в несколько этапов - сначала на большом корпусе данных, а затем применили файнтюнинг на меньшей, но более качественной выборке. Как показывает прошлый опыт работы с моделями Llama 3, такой подход дает хорошие результаты. Базовая модель, обученная на большом корпусе данных (например, 15трлн токенов Llama 3), хорошо генерализуется при файнтюнинге и меньше подвержена оверфиттингу. Пример - моя модель ruslandev/llama-3-8b-gpt-4o-ru1.0, которая после обучения на небольшом, но качественном датасете превзошла GPT-3.5 на русскоязычном бенчмарке.

Читать далее

OpenAI o1 — LLM, обученная выполнять сложные логические рассуждения

Reading time3 min
Views10K

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

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

Читать далее

Llama 3.1 и Mistral Large 2

Reading time2 min
Views8.2K

В прошлом месяце вышли две интересных модели - Llama 3.1, улучшенная версия Llama 3, и Mistral Large 2.

Самое заметное отличие Llama 3.1 от предыдущих моделей - у нее есть версия 405B- 405 миллиардов обучаемых параметров. Это самая большая открытая языковая модель, и опубликованные метрики показывают ее производительность на уровне GPT-4. Тесты проводились как на общих бенчмарках, например MMLU, так и специализированных - на код и математику.

Для меня особенно интересными показались улучшенные мультиязычные возможности этой модели, так как я давно экспериментирую с обучением LLM на мультиязычных данных, моя последняя модель ruslandev/llama-3-8b-gpt-4o-ru1.0 превзошла GPT-3.5 на русскоязычной версии бенчмарка MT-Bench.

Llama 3.1 поддерживает семь языков, кроме английского - французский, немецкий, хинди, итальянский, португальский, испанский и тайский. Русского в списке нет, как легко заметить, но это не значит, что в корпусе базовой модели нет примеров на русском. Есть, и предостаточно, это становится очевидно при файнтюнинге. У меня есть мой собственный датасет для файнтюнинга ruslandev/tagengo-rus-gpt-4o, который я сгенерировал из преимущественно русскоязычных промптов датасета Tagengo с помощью GPT-4o.

Теперь о минусах модели Llama 3.1 - файнтюнинг 405B версии обойдется дорого, так как даже при сжатии в 4bit необходимо выделить около 200 ГБ VRAM для такой задачи. Поэтому я файнтюнил версию 8b на вышеупомянутом датасете, арендуя две видеокарты A100 на облачном сервисе immers.cloud. Но я не заметил особого превосходства версии 3.1 над третьей версией. Даже наоборот, я столкнулся с несколькими проблемами - например, 3.1 после файнтюнинга на моем датасете показала тенденцию прерывать генерацию, не завершив ответ - до причины я так и не докопался, но у Llama 3 такой проблемы не было. 

Читать далее

Бенчмарки больших языковых моделей. Мультиязычный MT-Bench

Reading time4 min
Views1.9K

В последнее время я занимался файнтюнингом Llama 3 на открытых датасетах, а сейчас планирую собрать собственный датасет для новых экспериментов. Встает вопрос, как оценивать эффективность обучения.

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

Например, есть GLUE (General Language Understanding Evaluation), оценка общего понимания естественного языка. Оценивает в том числе способность модели отвечать на вопросы, логическую связность и sentiment analysis - умение распознавать эмоциональную окраску. Это обширная область задач, и одного GLUE-бенчмарка явно мало, чтобы как следует оценить общее понимание моделью естественного языка, поэтому существуют другие тестовые наборы, например, SuperGLUE и MMLU (Massive Multitask Language Understanding). Последний бенчмарк оценивает, насколько хорошо в среднем модель понимает сложные вопросы из разных категорий - гуманитарной, социальной, STEM - то есть точные науки и естествознание.

Есть HellaSwag - это интересный бенчмарк, составленный из непростых вопросов, которые проверяют модель на здравый смысл, common sense. HellaSwag датасет содержит текстовое описание события, записанного на видео, и несколько вариантов завершения этого события, только один из которых правильный.

Читать далее

Как я обучил модель, которая понимает русский лучше GPT 3.5 Turbo

Reading time3 min
Views10K

В этой статье я расскажу, как я смог обучить модель, которая превзошла GPT 3.5 Turbo на русскоязычной части MT-Bench. Также я рассмотрю новую конфигурацию для обучения на двух графических процессорах параллельно с помощью accelerate и deepspeed.

Особенный интерес представляет мой датасет для обучения. Он получен из сабсета мультиязычных промтов набора lightblue/tagengo-gpt4 на русском, английском и китайском, всего 10 тысяч примеров, сгенерированных с помощью GPT-4o. Это в 8 раз меньше, чем исходный набор Tagengo, но обученная на последнем Suzume, как показали бенчмарки, лишь очень незначительно превосходит мою модель на ru_mt_bench, а на англоязычном бенче и вовсе уступает ей. Это значит, что я в разы сэкономил на GPU за счет более высокого качества данных, полученных с помощью GPT-4o. 

Я использовал скрипт для получения ответов по заданным промптам. Для генерации русскоязычной выборки я изменил часть скрипта, чтобы выбрать все промпты на русском из Tagengo (8K примеров), так как основной фокус при обучении модели был на русском языке. 

В итоге я получил датасет ruslandev/tagengo-rus-gpt-4o и приступил к обучению.

Для этого я создал виртуальную машину с NVIDIA H100, используя сервис immers.cloud. Для достижения наилучших результатов по instruction-following (что проверяется на MT-Bench) я взял в качестве исходной модели meta-llama/Meta-Llama-3-8B-Instruct. Именно на ней обучена модель Suzume, у которой высокая оценка на MT Bench. Предыдущие эксперименты показали, что базовая Llama-3 8B,  а особенно ее четырехбитная версия для QLoRA  unsloth/llama-3-8b-bnb-4bit - значительно отстает по оценкам бенчмарка.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

ML Engineer