С большим удовольствием прочёл публикацию "Building effective agents" вышедшую из под пера инженеров работающих в Anthropic.
Если кратко, то в ней авторы провели замечательный обзор и разбор методологий реализации проектов на базе больших языковых моделей (LLM), но самое главное, что в статье понравилось это примеры того когда тот или иной метод подходит для решения проблемы, а когда нет.
Например цитата про то когда в системе нужен роутер:
- Перенаправление различных типов запросов на обслуживание клиентов (общие вопросы, запросы на возврат, техническая поддержка) в различные последующие процессы, подсказки и инструменты;
- Направление простых/распространенных вопросов в более мелкие модели, такие как Claude 3.5 Haiku, а сложных/необычных вопросов в более эффективные модели, такие как Claude 3.5 Sonnet, для оптимизации затрат и скорости.
Вот список всех тем, которые затрагивает публикация: цепочки моделей, помянутый ранее роутинг, параллелизм, оркестрация разных воркеров (тулов), валидация/оптимизация, ну и конечно же хайпующие агенты.
В общем рекомендую для ознакомления всем кто интересуется построением систем на базе БЯМ'ов.
Если кратко, то в ней авторы провели замечательный обзор и разбор методологий реализации проектов на базе больших языковых моделей (LLM), но самое главное, что в статье понравилось это примеры того когда тот или иной метод подходит для решения проблемы, а когда нет.
Например цитата про то когда в системе нужен роутер:
- Перенаправление различных типов запросов на обслуживание клиентов (общие вопросы, запросы на возврат, техническая поддержка) в различные последующие процессы, подсказки и инструменты;
- Направление простых/распространенных вопросов в более мелкие модели, такие как Claude 3.5 Haiku, а сложных/необычных вопросов в более эффективные модели, такие как Claude 3.5 Sonnet, для оптимизации затрат и скорости.
Вот список всех тем, которые затрагивает публикация: цепочки моделей, помянутый ранее роутинг, параллелизм, оркестрация разных воркеров (тулов), валидация/оптимизация, ну и конечно же хайпующие агенты.
В общем рекомендую для ознакомления всем кто интересуется построением систем на базе БЯМ'ов.
Anthropic
Building Effective AI Agents
Discover how Anthropic approaches the development of reliable AI agents. Learn about our research on agent capabilities, safety considerations, and technical framework for building trustworthy AI.
Вчера вечером прочёл про Open DeepResearch от инженеров Hugging Face, говорят они всего за сутки смогли воспроизвести при помощи smolagents аналог решения от OpenAI.
Ну так вот, Open DeepResearch любопытно обрабатывает запрос пользователя, пытается писать сразу код на Python и интерпретировать его при помощи CodeAgent (это такая песочница для выполнения кода, что-то вроде защищённого тула), если код не работает то система пробует исправить его до тех пор пока либо количество повторов не иссякнет, либо скрипт наконец не заработает. Полученный скрипт выполняет задачу описанную пользователем после чего ответ присылается пользователю.
Поддерживаются разные поставщики LLM, можно даже свой локальный использовать, главное чтобы он был совместим с OpenAI клиентом, так что через ollama или vllm не сложно будет завести данную систему на своём железе. Есть и бесплатные поставщики модели DeepSeek-R1, так что можно какие-то отдельные задачи делать используя самую лучшую на сегодняшний день thinking модель.
Cистема пишет занятные скрипты и комментарии по ходу дела, можно заказать какой-нибудь обзор страничек в интернете (для этого есть тул WebAgent), можно добавить тул который будет у пользователя запрашивать какие-то дополнительные текстовые уточнения, есть тул для чтения данных из файлов, ещё понравился тул поиска по Arxiv и некоторые другие тулы.
Однако, мне пока что не удалось добиться хоть какого бы то ни было полезного результата "исследования", он если и похож на то что я просил то исключительно в стиле "в темноте если прищурится и вдали рассматривать некий контур", так что пока отношусь, что к OpenAI DeepResearch, что к Hugging Face DeepResearch скептически.
Вероятно надо давать системе очень подробное техническое задание, коих у меня накопилось уже порядочно, в общем буду продолжать наблюдения.
PS. Придерживаюсь того же мнения, что высказал Старший Авгур, мне тоже показалось, что Open DeepResearch by Hugging Face Team это просто реклама через хайп трейн проекта smolagents.
Ну так вот, Open DeepResearch любопытно обрабатывает запрос пользователя, пытается писать сразу код на Python и интерпретировать его при помощи CodeAgent (это такая песочница для выполнения кода, что-то вроде защищённого тула), если код не работает то система пробует исправить его до тех пор пока либо количество повторов не иссякнет, либо скрипт наконец не заработает. Полученный скрипт выполняет задачу описанную пользователем после чего ответ присылается пользователю.
Поддерживаются разные поставщики LLM, можно даже свой локальный использовать, главное чтобы он был совместим с OpenAI клиентом, так что через ollama или vllm не сложно будет завести данную систему на своём железе. Есть и бесплатные поставщики модели DeepSeek-R1, так что можно какие-то отдельные задачи делать используя самую лучшую на сегодняшний день thinking модель.
Cистема пишет занятные скрипты и комментарии по ходу дела, можно заказать какой-нибудь обзор страничек в интернете (для этого есть тул WebAgent), можно добавить тул который будет у пользователя запрашивать какие-то дополнительные текстовые уточнения, есть тул для чтения данных из файлов, ещё понравился тул поиска по Arxiv и некоторые другие тулы.
Однако, мне пока что не удалось добиться хоть какого бы то ни было полезного результата "исследования", он если и похож на то что я просил то исключительно в стиле "в темноте если прищурится и вдали рассматривать некий контур", так что пока отношусь, что к OpenAI DeepResearch, что к Hugging Face DeepResearch скептически.
Вероятно надо давать системе очень подробное техническое задание, коих у меня накопилось уже порядочно, в общем буду продолжать наблюдения.
PS. Придерживаюсь того же мнения, что высказал Старший Авгур, мне тоже показалось, что Open DeepResearch by Hugging Face Team это просто реклама через хайп трейн проекта smolagents.
huggingface.co
Open-source DeepResearch – Freeing our search agents
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
Намедни наблюдал как участники чатика обсуждают возможности генерации изображений (при помощи моделей Stable Diffusion) разными способами.
Среди всех упомянутых инструментов меня более всего заинтересовала штука под названием ComfyUI.
Для начала в ней мне понравилась реализация LoRA-адаптеров, правда пришлось повозиться с установкой Plugin Manager и Model Manager, потом зарегаться на civitai, после чего пользоваться платформой стало вполне комфортно, в общем скачиваешь адаптер, вытягиваешь его на холст, проводишь связи к адаптеру из базовой модели, потом от адаптера к промтам, чтобы цепочка шла транзитом, и готово.
Вторая очень крутая фича в том, что можно настроить любую схему из цепочек моделей и разных обработчиков и использовать её в виде API-сервера, это очень упрощает отладку и развёртывание, пожалуй ComnfyUI это одна из немногих No Code платформ имеющая такую возможность, так как обычно подобные проекты привязывает пользователя к своему UI-интерфейсу без возможности интеракции с ней из вне.
Ну и добивочка, в ComfyUI можно делать свои ноды (custom node), если кратко ноды это вершины графа которые пользователь связывает рёбрами, каждая вершина может выполнять вызов внешней функции, данная функция реализуется на языке Python, в свою ноду можно добавить входные и выходные потоки, указать их тип, можно делать вызов внешних систем, можно перечислить зависимости python-пакетов без которых нода не будет работать, короче мне теперь ясна причина популярности данного проекта.
В общем рекомендую попробовать ComfyUI всем, кто ещё не пробовал.
PS. Как же приятно иногда отвлечься от языковых моделей и пощупать сетки которые просто работают, запустил, написал промт и получил то что заказывал, круто же.
Среди всех упомянутых инструментов меня более всего заинтересовала штука под названием ComfyUI.
Для начала в ней мне понравилась реализация LoRA-адаптеров, правда пришлось повозиться с установкой Plugin Manager и Model Manager, потом зарегаться на civitai, после чего пользоваться платформой стало вполне комфортно, в общем скачиваешь адаптер, вытягиваешь его на холст, проводишь связи к адаптеру из базовой модели, потом от адаптера к промтам, чтобы цепочка шла транзитом, и готово.
Вторая очень крутая фича в том, что можно настроить любую схему из цепочек моделей и разных обработчиков и использовать её в виде API-сервера, это очень упрощает отладку и развёртывание, пожалуй ComnfyUI это одна из немногих No Code платформ имеющая такую возможность, так как обычно подобные проекты привязывает пользователя к своему UI-интерфейсу без возможности интеракции с ней из вне.
Ну и добивочка, в ComfyUI можно делать свои ноды (custom node), если кратко ноды это вершины графа которые пользователь связывает рёбрами, каждая вершина может выполнять вызов внешней функции, данная функция реализуется на языке Python, в свою ноду можно добавить входные и выходные потоки, указать их тип, можно делать вызов внешних систем, можно перечислить зависимости python-пакетов без которых нода не будет работать, короче мне теперь ясна причина популярности данного проекта.
В общем рекомендую попробовать ComfyUI всем, кто ещё не пробовал.
PS. Как же приятно иногда отвлечься от языковых моделей и пощупать сетки которые просто работают, запустил, написал промт и получил то что заказывал, круто же.
GitHub
GitHub - comfyanonymous/ComfyUI: The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. - comfyanonymous/ComfyUI
Сижу считаю экономическую целесообразность разных моделей в рамках одного кейса, так вот, дошли руки до моделей OpenAI, выявился один занятный факт:
А судя по ценам если есть необходимость в небольшой модели для каких-то простых задач, то похоже стоит брать
Такие вот странности.
gpt-3.5-turbo
стоит примерно так же как gpt-4o
.gpt3.5-turbo
$3.000 / 1M input tokens
$6.000 / 1M output tokens
gpt-4o
$2.50 / 1M input tokens
$10.00 / 1M output tokens
А судя по ценам если есть необходимость в небольшой модели для каких-то простых задач, то похоже стоит брать
gpt-4o-mini
:gpt-4o-mini
$0.150 / 1M input tokens
$0.600 / 1M output tokens
Такие вот странности.
Пару дней просидел над проблемой применения function call подхода на моделях которые можно запускать локально через ollama, тестировал преимущественно те модели у которых заявлена поддержка tools (сиречь function calling) ну или есть фраза function call в описании, выбирал первым делом бибилиотечные модели (квантованные спецами из ollama), потом до кучи выбрал ещё пару моделей deepseek собранных с хитрым чат-шаблоном.
Пробовал я схемы используя:
- только базовый клиент ollama
- langchain-ollama как обёртку вокруг ollama
- openai базовый клиент с указанием в качестве base_uri сервера ollama
- langchain-openai как обёртку вокруг openai с base_uri до ollama
Ну в общем нормально и предсказуемо заставить работать хотя бы одну модель мне так и не удалось, в качестве референса у меня было заранее подготовлено два примера на
Далее я попробовал реализовать через langchain ollama небольшой скрипт под structured output (используя
Поэтому сложилось мнение, что похоже на саму идею
Пробовал я схемы используя:
- только базовый клиент ollama
- langchain-ollama как обёртку вокруг ollama
- openai базовый клиент с указанием в качестве base_uri сервера ollama
- langchain-openai как обёртку вокруг openai с base_uri до ollama
Ну в общем нормально и предсказуемо заставить работать хотя бы одну модель мне так и не удалось, в качестве референса у меня было заранее подготовлено два примера на
gpt-4o
(базовый клиент openai и langchain вариация).Далее я попробовал реализовать через langchain ollama небольшой скрипт под structured output (используя
model.with_structured_output(Schema)
) и вот уже этот подход показал гораздо более качественный результат, лучше всего себя показали модели llama 3.1 и выше (и производные от них модели), от 8b и выше параметров.Поэтому сложилось мнение, что похоже на саму идею
function call
решений сообщество ML подзабило в пользу гораздо более простого и понятного structured output
.Привет! Знаю, что пропал на несколько дней, просто решил немного отдохнуть от потока новостей вообще и нейроновостей в частности и чуть больше внимания уделить спорту, а тем временем за неделю накопилось несколько интересных публикаций на почитать.
Особенно понравилась публикация под названием "Как добавить в OpenWebUI генерацию изображений через ComfyUI", если кратко, то в ней показали где найти настройки в OpenWebUI которые бы позволили генерировать картинки через схему собранную в ComfyUI, а ещё как генерировать картинку из ответа нейросети.
Особенно понравилась публикация под названием "Как добавить в OpenWebUI генерацию изображений через ComfyUI", если кратко, то в ней показали где найти настройки в OpenWebUI которые бы позволили генерировать картинки через схему собранную в ComfyUI, а ещё как генерировать картинку из ответа нейросети.
Хабр
Как добавить в OpenWebUI генерацию изображений через ComfyUI
OpenWebUI как хороший медиакомбайн для работы с нейросетями умеет и в генерацию изображений. Не своими силами, конечно, но позволяет даже неподготовленному пользователю написать промт и получить...
Продолжаю изучать тему построения RAG-подобных систем и вот наткнулся на один крайне примечательный пост на Gist в котором автор реализовал "базу знаний" RAG основанного на Gemini используя простой советский Google Spreadsheet документ, что на мой скромный взгляд позволяет создавать RAG "под ключ" которые можно отдать конечному пользователю в паре с небольшой инструкцией о том как наполнять документ данными.
Gist
Improving Gemini's Text Generation Accuracy with Corpus Managed by Google Spreadsheet as RAG
Improving Gemini's Text Generation Accuracy with Corpus Managed by Google Spreadsheet as RAG - submit.md
Аки Танос обзавожусь новыми камнями бесконечности чатиками с нейросетям, сегодня вот смог пройти регистрацию на сайте Perplexity AI без помощи "обходных путей", что меня не перестаёт удивлять.
Ну так вот, дизайн у Perplexity очень приятный, тёмная тема по умолчанию очень порадовала.
Из фичей есть возможность создавать Spacemust flow (рис.1), это что-то типа Project в ChatGPT или NotebookLLM у Google, можно в созданный спейс накидать несколько разных источников, ссылки, файлы и инструкции, а потом в формате эдакого RAG общаться с тем что получилось, к сожалению на бесплатном тарифе только самая слабая модель доступна.
Ещё заинтересовала страница Discovery (рис.2) с последними новостями, ничего подобного у конкурентов нет, правда не совсем понял зачем оно нужно и что с этим делать, так как настроить её под себя мне не удалось, похоже какой-то гимик, но можно общаться с выбранной новостью, что удобно.
Auto модель пишет средненький код, который хуже даже чем через Qwen 2.5 Coder 32b.
Ещё попробовал режим Deep Researcher для задачи кодинга, очень занятно у них это реализовано, сайтик пишет красивые логи, даже в тему какие-то ссылочки находит, однако, задачку связанную с кодингом, что я попробовал, система решила даже хуже чем просто Auto модель.
DeepSeek R1 и OpenAI o3 работают так же как и в оригинальных чатиках.
Так что теперь у меня ещё плюс один чатик.
PS. Проверил возможность купить Pro аккаунт, для этого не требуется симка, только банковская карточка, так что можно без особых проблем имея лишь карточку с долларами всё себе организовать.
Ну так вот, дизайн у Perplexity очень приятный, тёмная тема по умолчанию очень порадовала.
Из фичей есть возможность создавать Space
Ещё заинтересовала страница Discovery (рис.2) с последними новостями, ничего подобного у конкурентов нет, правда не совсем понял зачем оно нужно и что с этим делать, так как настроить её под себя мне не удалось, похоже какой-то гимик, но можно общаться с выбранной новостью, что удобно.
Auto модель пишет средненький код, который хуже даже чем через Qwen 2.5 Coder 32b.
Ещё попробовал режим Deep Researcher для задачи кодинга, очень занятно у них это реализовано, сайтик пишет красивые логи, даже в тему какие-то ссылочки находит, однако, задачку связанную с кодингом, что я попробовал, система решила даже хуже чем просто Auto модель.
DeepSeek R1 и OpenAI o3 работают так же как и в оригинальных чатиках.
Так что теперь у меня ещё плюс один чатик.
PS. Проверил возможность купить Pro аккаунт, для этого не требуется симка, только банковская карточка, так что можно без особых проблем имея лишь карточку с долларами всё себе организовать.
Ох, впервые за долгое время окажусь на волне хайпа, оказывается OpenAI опубликовали новуюприновую модель gpt-4.5, 1М токенов которой стоит в 15 раз дороже чем gpt-4o, галлюцинаций по циферкам стало чуть меньше, а ответы чуть точнее и так далее и тому подобное, но главное вот:
В целом типичный анонс с помпой от OpenAI поражающими своей крутостью и цифрами.
PS. Улыбнуло то, что по ощущениям тестеров модель стала лучше чем gpt-4o на сколько-то там процентов, это мне напомнило рекламу из 90х про корм для домашних питомцев, который стал по мнению экспертов ещё вкуснее :)
PPS. Осталось дождаться независимых сравнений с DeepSeek R1, чтобы понять насколько цифры далеки от объективной реальности, так как есть мнение, что одних ощущений недостаточно и нужен чуть более внимательный и тщательный ресёрч.
Input:
$75.00 / 1M tokens
Cached input:
$37.50 / 1M tokens
Output:
$150.00 / 1M tokens
В целом типичный анонс с помпой от OpenAI поражающими своей крутостью и цифрами.
PS. Улыбнуло то, что по ощущениям тестеров модель стала лучше чем gpt-4o на сколько-то там процентов, это мне напомнило рекламу из 90х про корм для домашних питомцев, который стал по мнению экспертов ещё вкуснее :)
PPS. Осталось дождаться независимых сравнений с DeepSeek R1, чтобы понять насколько цифры далеки от объективной реальности, так как есть мнение, что одних ощущений недостаточно и нужен чуть более внимательный и тщательный ресёрч.
На днях мне удалось решить проблему со Structured Output модели DeepSeek-R1 8B запущенной через локальную ollama используя чистый клиент openai, оказалось что если прочесть документацию, то можно получить ответ на поставленный вопрос гораздо быстрее, чем если пытаться решить его своими силами.
Вся хитрость в формате JSON схемы в промте и в параметре
Далее развивая эту идею можно взять схемы Pydantic и выполнить преобразование из классов моделей в формат простенького Structured Output JSON:
Ну и далее можно по желанию инициализировать Pydantic класс из полученного ответа.
Вся хитрость в формате JSON схемы в промте и в параметре
response_format={'type': 'json_object'}
который передаётся на вход chat completion.Далее развивая эту идею можно взять схемы Pydantic и выполнить преобразование из классов моделей в формат простенького Structured Output JSON:
from pydantic import BaseModel, Field
class Test(BaseModel):
reasoning: str = Field(description="Detailed explanation (required)")
answer: str = Field(description="Answer to question (required)")
schema = Test
schema_json = schema.model_json_schema()
field_descriptions = {
field: details.get('description', '')
for field, details in schema_json.get('properties', {}).items()
}
Ну и далее можно по желанию инициализировать Pydantic класс из полученного ответа.
оверлорд мувинг
Сейчас был очень обрадован новостью на Хабр о том, что EA Games опубликовали исходные коды некоторых игр серии Command & Conquer, однако, лично меня прежде всего заинтересовало два тайтла: C&C Generals (включая аддон Zero Hour) и 3D-шутер C&C Renegate.
Полагаю не пройдёт и месяца как появится нормальный порт указанных тайтлов под Linux с текстурами высокого разрешения и исправленными багами, так что скоро будет чем заняться.
Сейчас был очень обрадован новостью на Хабр о том, что EA Games опубликовали исходные коды некоторых игр серии Command & Conquer, однако, лично меня прежде всего заинтересовало два тайтла: C&C Generals (включая аддон Zero Hour) и 3D-шутер C&C Renegate.
Полагаю не пройдёт и месяца как появится нормальный порт указанных тайтлов под Linux с текстурами высокого разрешения и исправленными багами, так что скоро будет чем заняться.
Хабр
EA опубликовала в открытом доступе исходный код классических игр серии Command & Conquer
27 февраля 2025 года EA опубликовала в открытом доступе на GitHub исходный код своих классических игр серии Command & Conquer под лицензией GPL для моддеров, включая...
Тюн YandexGPT через impruver
Набросал небольшой рецептик дообучения LoRA-адаптера модели YandexGPT-5-Lite-8B-pretrain, которую инженеры из Яндекс выпустили вот буквально на днях.
Обучить хочу R1 (ризонинг) адаптер заточенный под русский язык по аналогии с моделью общего назначения от проекта Vikhr выпущенную сегодня утром.
На данный момент датасет состоит из:
- mizinovmv/ru_example_DeepSeek-R1-Distill-Qwen-32B
- lightblue/reasoning-multilingual-R1-Llama-70B-train
- Pinkstack/thinking-multilingual-30-23-small-690
- Vikhrmodels/reasoning-0.01-ru
- Vikhrmodels/russian_math
Но на самом деле там из 31й тысячи примеров получилось примерно 28ь тысяч из reasoning-0.01-ru.
Накидайте пожалуйста каких бы вы ещё хотели в модель добавить reasoning датасетов.
Набросал небольшой рецептик дообучения LoRA-адаптера модели YandexGPT-5-Lite-8B-pretrain, которую инженеры из Яндекс выпустили вот буквально на днях.
Обучить хочу R1 (ризонинг) адаптер заточенный под русский язык по аналогии с моделью общего назначения от проекта Vikhr выпущенную сегодня утром.
На данный момент датасет состоит из:
- mizinovmv/ru_example_DeepSeek-R1-Distill-Qwen-32B
- lightblue/reasoning-multilingual-R1-Llama-70B-train
- Pinkstack/thinking-multilingual-30-23-small-690
- Vikhrmodels/reasoning-0.01-ru
- Vikhrmodels/russian_math
Но на самом деле там из 31й тысячи примеров получилось примерно 28ь тысяч из reasoning-0.01-ru.
Накидайте пожалуйста каких бы вы ещё хотели в модель добавить reasoning датасетов.
YandexGPT R1 на Huging Face
Выпустил адаптер на Hugging Face который я дообучил при помощи impruver поверх YandexGPT-5-Lite-8B-pretrain вышедшей на днях, используя датасеты оптимизированные под reasoning.
Ссылки:
- https://huggingface.co/evilfreelancer/r1_yandexgpt5-lite_lora
- https://huggingface.co/evilfreelancer/r1_yandexgpt5-lite_gguf
- https://ollama.com/evilfreelancer/r1_yandexgpt5-lite
Конфигурация: YandexGPT/8B_lora_r1
Отчёт W&B: https://api.wandb.ai/links/evilfreelancer/zj6s02v4
Запустить через Ollama:
Выпустил адаптер на Hugging Face который я дообучил при помощи impruver поверх YandexGPT-5-Lite-8B-pretrain вышедшей на днях, используя датасеты оптимизированные под reasoning.
Ссылки:
- https://huggingface.co/evilfreelancer/r1_yandexgpt5-lite_lora
- https://huggingface.co/evilfreelancer/r1_yandexgpt5-lite_gguf
- https://ollama.com/evilfreelancer/r1_yandexgpt5-lite
Конфигурация: YandexGPT/8B_lora_r1
Отчёт W&B: https://api.wandb.ai/links/evilfreelancer/zj6s02v4
Запустить через Ollama:
ollama run evilfreelancer/r1_yandexgpt5-lite
huggingface.co
evilfreelancer/r1_yandexgpt5-lite_lora · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
Всем привет!
После релиза R1-тюна на YandexGPT 5 Lite получил солидныйпинок фидбэк от ML-сообщества. Если кратко: по мнению сообщества моя модель - не R1, потому что я ограничился SFT без RL, в довесок мне выдали охапку ссылок на различные исследования и публикации, так что последние два дня я практически всё свободное время впитывал новую информацию аки губка.
Начну с первой партии ссылок и некоторыми моими комментариями о прочитанном.
SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training (arXiv:2501.17161)
Кратенько: Исследователи сравнили SFT и RL на задачах арифметики и анализе изображений. "Чистый" SFT идеален для запоминания формата ответов и на данных в пределах домена (ID in-domain), но фейлится на данных вне тренировочного домена (OOD out-of-domain). "Чистый" RL (особенно с outcome-based reward) обобщает даже на невиданные ранее сценарии (OOD), но плохо соблюдает формат ответа.
От себя: В общем надо делать SFT+RL пайплайн для наилучшего эффекта.
Towards Reasoning in Large Language Models: A Survey (arXiv:2212.10403)
Кратенько: Небольшой обзор про ризонинг в LLM. Чем крупнее модель, тем лучше она "цепляет" паттерны рассуждений. Плюс подчеркивается неопределенность в отношении истинного ризонинга у моделей, не является ли это просто переиспользованием шаблонов из обучающего датасета.
От себя: В публикации мне понравилась про декомпозицию сложных задач на множество маленьких (типа генерация шагов решения), чтобы получались эдакие Chain-of-Thoughts последовательности ризононига, и вроде как даже слабые модели неплохо с этим справляются, надо будет поискать датасеты подходящие.
Towards Large Reasoning Models: A Survey of Reinforced Reasoning with Large Language Models (arXiv:2501.09686)
Кратенько: Подробный разбор всех шагов необходимых для обучения ризонинг модели с упором на финальный alignment этап и методы вознаграждения (обратная связь).
От себя: В данной публикации понравилось про шаги обучения модели до reasoning уровня: 1. pre-train (на text corpora); 2. fine-tune (sft на инструкциях с правильным форматом); 3. alignment (на ризонинг датасетах). Далее было очень подробно про RLHF для многоэтапных CoT последовательностей и разные виды подобного обучения и под конец про алгоритмы поиска наилучшего ответа (мой любимый кворум упоминается), там из примечательного был Lookahead Search (arXiv:2403.02502).
Understanding Reasoning LLMs (сайт)
Кратенько: Разбор кейса DeepSeek-R1, в RL было несколько наград: проверка кода через LeetCode, соблюдение формата ответа (как я понял чтобы был <think> тег) и языка на котором модель отвечает (типа чтобы не переходила на китайский слишком часто).
От себя: Очень понравилась публикация, в ней подробнейшем образом разобрана тема ризонинга на примере модели DeepSeek-R1, разобраны отдельные шаги начиная с того как была получена через RL-only тюн первая R1-Zero, потом как с её помощью сгенерировали более сложный RL датасет и как потом при его помощи выполняли обучение полновесной R1 модели.
To be continued...
После релиза R1-тюна на YandexGPT 5 Lite получил солидный
Начну с первой партии ссылок и некоторыми моими комментариями о прочитанном.
SFT Memorizes, RL Generalizes: A Comparative Study of Foundation Model Post-training (arXiv:2501.17161)
Кратенько: Исследователи сравнили SFT и RL на задачах арифметики и анализе изображений. "Чистый" SFT идеален для запоминания формата ответов и на данных в пределах домена (ID in-domain), но фейлится на данных вне тренировочного домена (OOD out-of-domain). "Чистый" RL (особенно с outcome-based reward) обобщает даже на невиданные ранее сценарии (OOD), но плохо соблюдает формат ответа.
От себя: В общем надо делать SFT+RL пайплайн для наилучшего эффекта.
Towards Reasoning in Large Language Models: A Survey (arXiv:2212.10403)
Кратенько: Небольшой обзор про ризонинг в LLM. Чем крупнее модель, тем лучше она "цепляет" паттерны рассуждений. Плюс подчеркивается неопределенность в отношении истинного ризонинга у моделей, не является ли это просто переиспользованием шаблонов из обучающего датасета.
От себя: В публикации мне понравилась про декомпозицию сложных задач на множество маленьких (типа генерация шагов решения), чтобы получались эдакие Chain-of-Thoughts последовательности ризононига, и вроде как даже слабые модели неплохо с этим справляются, надо будет поискать датасеты подходящие.
Towards Large Reasoning Models: A Survey of Reinforced Reasoning with Large Language Models (arXiv:2501.09686)
Кратенько: Подробный разбор всех шагов необходимых для обучения ризонинг модели с упором на финальный alignment этап и методы вознаграждения (обратная связь).
От себя: В данной публикации понравилось про шаги обучения модели до reasoning уровня: 1. pre-train (на text corpora); 2. fine-tune (sft на инструкциях с правильным форматом); 3. alignment (на ризонинг датасетах). Далее было очень подробно про RLHF для многоэтапных CoT последовательностей и разные виды подобного обучения и под конец про алгоритмы поиска наилучшего ответа (мой любимый кворум упоминается), там из примечательного был Lookahead Search (arXiv:2403.02502).
Understanding Reasoning LLMs (сайт)
Кратенько: Разбор кейса DeepSeek-R1, в RL было несколько наград: проверка кода через LeetCode, соблюдение формата ответа (как я понял чтобы был <think> тег) и языка на котором модель отвечает (типа чтобы не переходила на китайский слишком часто).
От себя: Очень понравилась публикация, в ней подробнейшем образом разобрана тема ризонинга на примере модели DeepSeek-R1, разобраны отдельные шаги начиная с того как была получена через RL-only тюн первая R1-Zero, потом как с её помощью сгенерировали более сложный RL датасет и как потом при его помощи выполняли обучение полновесной R1 модели.
To be continued...
Pavel Zloi
Всем привет! После релиза R1-тюна на YandexGPT 5 Lite получил солидный пинок фидбэк от ML-сообщества. Если кратко: по мнению сообщества моя модель - не R1, потому что я ограничился SFT без RL, в довесок мне выдали охапку ссылок на различные исследования и…
И так, продолжаем разговор, ссылок набралось порядочно, так вот вторая пачка публикаций, их краткое саммари и мой небольшой комментарий.
Curated collection of papers and resources on how to unlock the reasoning ability of LLMs and MLLMs (ссылка)
Кратенько: По ссылке коллекция из 130+ ссылок на статьи про датасеты и техники обучения ризонингу вышедшие начиная с 2022 года, так что всё достаточно свежее, есть обзорные статьи, есть разные околотехнические статьи с анализом работы тех или иных моделей, есть статьи про техники обучения и тестирования ризонинга и так далее.
От себя: В проекте собрана великолепная подборка различных публикаций и проектов, однако, отдельно хочу отметить заинтересовавший меня проект google-research/cascades, который позволяет формировать "каскадные" CoT цепочки вызывая внешние тулы и используя механизмы обратной связи.
Training Language Models to Self-Correct via Reinforcement Learning (arXiv:2409.12917)
Кратенько: Эта публикация про метод Self-Correct via Reinforcement Learning (SCoRe), использующий RL для улучшения способности языковых моделей к самокоррекции через генерацию собственных данных, что по тестам позволило достичь хороших результатов на бенчмарках MATH и HumanEval.
От себя: Очень любопытная статья,. по тексту сложилось мнение что SCoRe это что-то среднее между RL и RLHF (только вместо хумана обучаемая модель). Как я понял модель в процессе обучения делает две генерации, после первой проверяет себя и генерируют инструкцию самокоррекции, после второй рассчитывается то насколько ответы похожи на правильный из датасета (при этом не показывая модели какой правильный) и из этого формируется RL-награда, финальная цель которой обучить модель либо с первого раза отвечать "как надо" либо с одной подсказкой.
Marco-o1: Towards Open Reasoning Models for Open-Ended Solutions (arXiv:2411.14405)
Кратенько: Эта публикация представляет модель Marco-o1 и методы её RL обучения используя Chain-of-Thought, MCTS и механизмы рефлексии.
От себя: В данной публикации очень подробно описан весь процесс, который сводится к SFT обучению на CoT инструкциях, после чего RL обучению который предполагает, что модель сама будет генерировать возможные варианты ответа (дерево решений), после через MCTS (Monte Carlo Tree Search) выбирать наиболее эффективный (через оценку top-k и softmax). Процесс "рассуждения" продолжается до тех пока не будет достигнут приемлемый результат.
Puzzle Solving using Reasoning of Large Language Models: A Survey (arXiv:2402.11291)
Кратенько: Любопытный обзор исследований, оценивающих способности LLM в решении головоломок.
От себя: Из интересного классификация видов загадок и обзор датасетов под каждый из примеров, но отдельно хочу отметить упоминаемую работу "Graph of Thoughts: Solving Elaborate Problems with Large Language Models" (arxiv:2308.09687) о фреймворке, который позволяет построить не просто цепочку, а граф размышлений.
Продолжение продолжит продолжаться...
Curated collection of papers and resources on how to unlock the reasoning ability of LLMs and MLLMs (ссылка)
Кратенько: По ссылке коллекция из 130+ ссылок на статьи про датасеты и техники обучения ризонингу вышедшие начиная с 2022 года, так что всё достаточно свежее, есть обзорные статьи, есть разные околотехнические статьи с анализом работы тех или иных моделей, есть статьи про техники обучения и тестирования ризонинга и так далее.
От себя: В проекте собрана великолепная подборка различных публикаций и проектов, однако, отдельно хочу отметить заинтересовавший меня проект google-research/cascades, который позволяет формировать "каскадные" CoT цепочки вызывая внешние тулы и используя механизмы обратной связи.
Training Language Models to Self-Correct via Reinforcement Learning (arXiv:2409.12917)
Кратенько: Эта публикация про метод Self-Correct via Reinforcement Learning (SCoRe), использующий RL для улучшения способности языковых моделей к самокоррекции через генерацию собственных данных, что по тестам позволило достичь хороших результатов на бенчмарках MATH и HumanEval.
От себя: Очень любопытная статья,. по тексту сложилось мнение что SCoRe это что-то среднее между RL и RLHF (только вместо хумана обучаемая модель). Как я понял модель в процессе обучения делает две генерации, после первой проверяет себя и генерируют инструкцию самокоррекции, после второй рассчитывается то насколько ответы похожи на правильный из датасета (при этом не показывая модели какой правильный) и из этого формируется RL-награда, финальная цель которой обучить модель либо с первого раза отвечать "как надо" либо с одной подсказкой.
Marco-o1: Towards Open Reasoning Models for Open-Ended Solutions (arXiv:2411.14405)
Кратенько: Эта публикация представляет модель Marco-o1 и методы её RL обучения используя Chain-of-Thought, MCTS и механизмы рефлексии.
От себя: В данной публикации очень подробно описан весь процесс, который сводится к SFT обучению на CoT инструкциях, после чего RL обучению который предполагает, что модель сама будет генерировать возможные варианты ответа (дерево решений), после через MCTS (Monte Carlo Tree Search) выбирать наиболее эффективный (через оценку top-k и softmax). Процесс "рассуждения" продолжается до тех пока не будет достигнут приемлемый результат.
Puzzle Solving using Reasoning of Large Language Models: A Survey (arXiv:2402.11291)
Кратенько: Любопытный обзор исследований, оценивающих способности LLM в решении головоломок.
От себя: Из интересного классификация видов загадок и обзор датасетов под каждый из примеров, но отдельно хочу отметить упоминаемую работу "Graph of Thoughts: Solving Elaborate Problems with Large Language Models" (arxiv:2308.09687) о фреймворке, который позволяет построить не просто цепочку, а граф размышлений.
Продолжение продолжит продолжаться...
Чтобы прочесть публикацию "Scalable Identity-Oriented Speech Retrieval" пришлось пройти регистрацию на ieeexplore, в процессе был приятно удивлён тем, что меня пропустили на сайт без применения спецсредств, всё же как непривычно без этих ритуальных препон проходить указанную процедуру.
Но не суть, публикацию мне прочесть на указанном сайте так и не удалось, оказалось надо ещё быть на попечении у одного из авторизованных университетов, либо же заплатить ведьмакам звонкой монетой, что в наши дни тоже задача за звёздочкой, ну думаю "ах так, поднять каперский флаг", но к счастью он не пригодился, так как на Google Scholar нашлась PDF.
Но не суть, публикацию мне прочесть на указанном сайте так и не удалось, оказалось надо ещё быть на попечении у одного из авторизованных университетов, либо же заплатить ведьмакам звонкой монетой, что в наши дни тоже задача за звёздочкой, ну думаю "ах так, поднять каперский флаг", но к счастью он не пригодился, так как на Google Scholar нашлась PDF.
Тут внезапно оказалось, что проект FireCrawl, который позволяет в режиме паука скравлить сайт в коллекцию Markdown-файлов, существует ещё и в self-hosted формате, а я наивно полагал, что есть только закрытая проприетарная версия.
Вот ссылочки с подробностями:
https://docs.firecrawl.dev/contributing/self-host
https://github.com/mendableai/firecrawl/blob/main/SELF_HOST.md
Вот ссылочки с подробностями:
https://docs.firecrawl.dev/contributing/self-host
https://github.com/mendableai/firecrawl/blob/main/SELF_HOST.md
Firecrawl
Turn any website into LLM-ready data.