Развертывание Marco o1 на локальном PC. Языковая модель рассуждений
Недавно я запускал и тестировал 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:
Сам по себе Chain-of-Thoughts - это формат промпта, который заставляет модель строить цепочки мыслей вроде этой. Но как в случае с моделью Marco, чтобы нейросеть могла эффективно работать с таким форматом, ее нужно файнтюнить на Chain-of-Thoughts датасете. Точно так же Instruct модель требует файнтюнинга на данных с определенной структурой промптов и ответов.
Marco o1 также использует алгоритм поиска по дереву Монте-Карло (MCTS), который, согласно статье разработчиков, позволяет исследовать несколько путей рассуждения, используя показатель достоверности, полученный из логарифмических вероятностей топ-K альтернативных токенов. К этому значению вероятности для каждого токена и к пяти альтернативным значениям применяют функцию softmax и получают показатель достоверности C(i) для i-того токена. Потом вычисляют среднее значение для всех пяти альтернатив. Более высокое среднее значение показывает большую уверенность в том, что выбранный путь рассуждения является более оптимальным.
Пользуясь этим методом, языковая модель может исследовать разные пути рассуждения и выбирать среди них те, которые с большей вероятностью ведут к решению проблемы.
Дальше есть еще пара интересных идей, например, Action Selection. Чтобы использовать только что описанный алгоритм MCTS, нужно определиться, что использовать в качестве единицы в пространстве решений, или одного шага рассуждения, и для этого разработчики применяли разные подходы - как целый шаг или действие в качестве единицы, так и мини-шаг - 32 или 63 токена.
Наконец, разработчики добавили механизм саморефлексии, в виде промпта в конце каждой цепочки рассуждений, который побуждает модель проверить свои решения: "Подожди, может быть я сделал какие-то ошибки, мне нужно обдумать все сначала". Это позволяет модели критически оценивать собственные рассуждения и находить в них ошибки.
А теперь немного практической части. Веса модели Marco-o1 имеют всего 7 миллиардов параметров. Я запускал ее и локально, и в облаке immers.cloud, в обоих случаях особо мощная видеокарта не требуется, особенно если применять квантизацию. Локально я запустил модель на RTX 4060 c 4-битной квантизацией bitsandbytes.
У меня была идея задеплоить полноценный LLM-server, совместимый с openai или gradio клиентом, и я выбрал два решения:
Первое - Text Generation Inference: на этот сервер уже был обзор на моем YouTube-канале, он высокопроизводительный, поддерживается платформой Huggingface, предлагает квантизацию и другие полезные фичи из коробки.
Запустить TGI локально не проблема, простой и правильный путь - в докере. Иначе придется устанавливать Rust и прочие зависимости, это ни к чему. Команда для запуска:
Докер должен поддерживать GPU, что вообще не проблема на Linux или на Windows с WSL2. Флаг --quantize опциональный - можете выбрать опцию bitsandbytes (по умолчанию 8 бит) или вообще без сжатия, если есть достаточно видеопамяти.
В итоге на 4060 инференс получился очень быстрый. Я использовал следующий код для фронтенда на gradio:
Однако я столкнулся с одной проблемой - системный промпт. Он взят из ollama, которая с таким промптом прекрасно работает. А вот TGI выдает ошибку, когда промпт превышает определенную длину. Так что для тех, кто не хочет возиться, предпочтительнее будет ollama, с ней все просто:
А о том, как запустить ollama как сервис, чтобы создать таким образом свой LLM-сервер, я расскажу в следующей статье.
Если вы занимаетесь рендерингом, ИИ или просто любите играть, подписывайтесь на наш Telegram-канал. В нем мы проводим интересные активности, делимся новостями компании и разыгрываем призы
Читать также:
Многие говорят о DeepSeek R-1, новой языковой ИИ-модели с открытым исходным кодом, созданной китайской ИИ-компанией DeepSeek. Некоторые пользователи утверждают, что по возможностям рассуждения она не уступает или даже превосходит модель o1 от OpenAI.
Я не верю тому, что они говорят, и вы тоже не должны верить. А если быть последовательным, то и вы не должны доверять моим словам. Но я докажу свои слова фактами и доказательствами.
Хочу поделиться с вами своим отрицательным опытом в бизнесе. Рассказать про ошибки, которые мы совершили с мужем, когда открывали кондитерский отдел: как мы подходили к запуску бизнеса, выбору помещения и о других нюансах работы в этой нише.
Собрали несколько примеров из соцсетей.
Этот интересный феномен обнаружили пользователи, и пока все гадают, почему так. Расскажу о наиболее вероятных причинах.
Исследователи предполагают, что причина не только в иностранных данных для обучения, пишет TechCrunch.
Расскажем, что это такое, кто его оплачивает и как происходит настройка.
На прошлой неделе DeepSeek поверг в шок технологический и финансовый рынок США, заявив, что смог создать свою модель в 20 раз дешевле, чем у OpenAI. А тут – даже не за $6 000, а $50! И не китайцы (голь на выдумку хитра), а американцы! О чем речь и почему это так важно?
Языковые модели, или LLM, продолжают впечатлять своим развитием. Технологии становятся умнее, их возможности шире, а применение в бизнесе и жизни — еще полезнее. В 2024 году LLM обрели зрение и память, получили доступ к актуальной информации и подтянули знания в кодинге. Чего ожидать от 2025 года? Собрал наиболее правдоподобные прогнозы и добавил с…
Впервые после релиза рассуждающих моделей обеих компаний состоялось серьезное мероприятие, и можно независимо оценить качество решений моделей.
OpenAI только что анонсировала новую модель o3-mini, и хотя она доступна бесплатно, это не значит, что все смогут ей пользоваться без ограничений. Пока что лимиты для бесплатных пользователей не совсем ясны, но для Pro подписчиков доступ без лимитов. Team и Plus пользователи смогут отправлять по 150 сообщений в день.