Оценка производительности очищенных моделей DeepSeek-R1 на GPQA с использованием Ollama и простых вычислений из OpenAI

Настройте и запустите тест GPQA-Diamond на локально обработанных моделях DeepSeek-R1, чтобы оценить их возможности вывода.

Последняя версия модели DeepSeek-R1 получила широкое признание в мировом сообществе разработчиков ИИ. Она достигла прорывов, сравнимых с моделями вывода от Meta и OpenAI, при этом сделав это за гораздо меньшее время и с гораздо меньшими затратами.

Но как, помимо заголовков и интернет-шумихи, мы можем оценить возможности вывода модели, используя общепризнанные критерии? Это важный вопрос для экспертов по ИИ.

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

В этой статье мы рассмотрим, как использовать Ollama и simple-evals от OpenAI для оценки логических способностей моделей DeepSeek-R1, созданных на основе популярного бенчмарка GPQA-Diamond . Этот бенчмарк является одним из важнейших инструментов для оценки моделей ИИ в области логического мышления.

Вот ссылка на репозиторий GitHub, к которому относится эта статья.

(1) Каковы модели рассуждения?

Модели вывода, такие как DeepSeek-R1 и модели серии o компании OpenAI (например, o1, o3), представляют собой большие языковые модели (LLM), обученные с использованием обучения с подкреплением для выполнения вывода. Эти модели представляют собой передовые инструменты в области искусственного интеллекта, представляющие собой вершину эволюции способности машин мыслить логически и решать сложные задачи.

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

(2) Что такое модель DeepSeek-R1?

DeepSeek-R1 — это передовая модель обработки больших языков (LLM) с открытым исходным кодом, разработанная специально для сложных задач вывода . Она была представлена ​​в январе 2025 года в исследовательской работе « DeepSeek-R1: Стимулирование возможностей вывода в моделях обработки больших языков с помощью обучения с подкреплением » . DeepSeek-R1 считается новаторской моделью в области искусственного интеллекта.

Эта модель основана на архитектуре большой языковой модели (LLM) с 671 миллиардом параметров и была обучена с использованием обширного обучения с подкреплением (RL) по следующему пути:

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

Для иллюстрации DeepSeek обучил две модели:

  • Первая модель, DeepSeek-R1-Zero, представляет собой модель вывода, обученную с использованием обучения с подкреплением, и генерирует данные для обучения второй модели, ДипСик-Р1.
  • Это достигается путем создания трассировок вывода, из которых сохраняются только высококачественные выходные данные на основе их конечных результатов.
  • Это означает, что в отличие от большинства моделей примеры обучения с подкреплением (RL) в этом конвейере обучения не курируются людьми, а генерируются самой моделью.

В результате модель показала результаты, сопоставимые с ведущими моделями, такими как модель o1 от OpenAI, в таких задачах, как математика, программирование и сложные рассуждения.

(3) Понимание процесса дистилляции и дистиллированных моделей из DeepSeek-R1

В дополнение к полной модели, они также открыли исходный код шести меньших, более компактных моделей (также называемых DeepSeek-R1) разных размеров (1.5 млрд, 7 млрд, 8 млрд, 14 млрд, 32 млрд, 70 млрд), созданных на основе DeepSeek-R1 с использованием Qwen или Llama в качестве базовой модели.

Дистилляция — это метод, при котором меньшая модель («ученик») обучается воспроизводить результаты работы большей, более устойчивой модели, которая была обучена ранее («учитель»).

В данном случае учителем является модель 1B DeepSeek-R671, а учениками — шесть моделей, созданных с использованием этой базовой модели с открытым исходным кодом:

Модель DeepSeek-R1 использовалась в качестве обучающей модели для генерации 800 000 обучающих выборок, представляющих собой смесь выборок для вывода и выборок без вывода, для последующей оптимизации с помощью контролируемой тонкой настройки базовых моделей (1.5 млрд, 7 млрд, 8 млрд, 14 млрд, 32 млрд и 70 млрд).

Так почему же мы вообще занимаемся дистилляцией?

Цель состоит в том, чтобы перенести возможности вывода более крупных моделей, таких как DeepSeek-R1 671B, на более мелкие и эффективные модели. Это позволяет более мелким моделям справляться со сложными задачами вывода, работая при этом быстрее и эффективнее используя ресурсы.

Кроме того, DeepSeek-R1 имеет огромное количество параметров (671 миллиард), что затрудняет его запуск на большинстве потребительских устройств.

Даже самого мощного MacBook Pro с максимальным объемом объединенной памяти 128 ГБ недостаточно для работы модели с параметрами 671 миллиард.

Таким образом, дистиллированные модели открывают возможность их развертывания на устройствах с ограниченными вычислительными ресурсами.

Unsloth добился выдающегося результата, уменьшив размер исходной модели DeepSeek-R1 с 671 миллиардом параметров до всего 131 ГБ — существенное сокращение на 80%. Однако требование к объему видеопамяти в 131 ГБ остается серьезным препятствием, особенно для разработчиков, работающих на оборудовании с ограниченными ресурсами. Это достижение представляет собой значительный шаг на пути к тому, чтобы сделать большие модели ИИ доступными для более широкого круга пользователей.

(4) Выбор оптимальной дистиллированной модели

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

Для владельцев высокопроизводительных графических процессоров или центральных процессоров, которым нужна максимальная производительность, идеальным вариантом станут более крупные модели DeepSeek-R1 (32B и выше) — подойдет даже квантовая версия 671B.

Однако, если ресурсы ограничены или вы предпочитаете более быструю сборку (как я), лучшим вариантом будут меньшие дистиллированные варианты, такие как 8B или 14B. Это позволяет сбалансировать производительность и требования к ресурсам.

Для этого проекта я буду использовать DeepSeek-R1 Qwen-14B , который совместим с аппаратными ограничениями, с которыми я столкнулся. Эта модель (14B) представляет собой отличный компромисс между точностью и скоростью, что делает её идеально подходящей для моей среды разработки.

(5) Критерии оценки способности делать выводы на основе больших языковых моделей

Крупные языковые модели (LLM) обычно оцениваются с использованием стандартизированных критериев, определяющих уровень их производительности в различных задачах, включая понимание языка, генерацию кода, следование инструкциям и ответы на вопросы. Распространенными примерами являются такие метрики, как MMLU , HumanEval и MGSM . Эти критерии имеют фундаментальное значение для оценки возможностей LLM.

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

(i) Экзамен AIME 2024: Конкурсная математика

  • Подготовить Американский пригласительный экзамен по математике (AIME) 2024 Надежный тест для оценки возможностей больших языковых моделей (LLM) в математических рассуждениях.
  • Этот экзамен представляет собой серьезную задачу по спортивной математике, поскольку в нем представлены сложные многошаговые задачи. Экзамен проверяет способность больших языковых моделей понимать сложные вопросы, применять сложные рассуждения и выполнять точные символьные манипуляции. Тест AIME является важным средством оценки навыков решения сложных математических задач.

(ii) Codeforces – Кодекс соревнований

  • вставать Стандарт Codeforces Оценка способности к выводу большой языковой модели (LLM) с использованием реальных задач конкурентного программирования с Codeforces, платформы, известной своими алгоритмическими задачами. Codeforces — золотой стандарт оценки возможностей моделей ИИ по решению сложных задач.
  • Эти задачи проверяют способность большой языковой модели (LLM) понимать сложные инструкции, выполнять логические и математические рассуждения, планировать многошаговые решения и генерировать правильный и эффективный код. Эти проблемы требуют глубокого понимания алгоритмов и структур данных, а также умения перевести проблему в исполняемый код.

(iii) GPQA Diamond – научные вопросы уровня доктора наук

  • GPQA-Diamond — это выбранное подмножество Самые сложные вопросы Из стандарта GPQA (ответы на вопросы по физике для аспирантов) Самый широкий и специально разработанный для того, чтобы расширить границы возможностей моделей LLM делать выводы по продвинутым темам уровня доктора наук. Этот стандарт представляет собой реальный вызов способности ИИ понимать и выводить сложные научные концепции.
  • В то время как GPQA включает в себя набор концептуальных и расчетных вопросов для аспирантов, GPQA-Diamond выделяет только самые сложные вопросы и те, которые требуют интенсивного рассуждения.
  • Этот критерий считается «устойчивым к Google», то есть на него трудно ответить даже при неограниченном доступе к Интернету. Это делает его ценным инструментом для оценки способности больших языковых моделей рассуждать независимо.
  • Вот пример вопроса GPQA-Diamond:
### GPQA Diamond — пример вопроса (молекулярная биология) Эукариотическая клетка выработала механизм превращения макромолекулярных строительных блоков в энергию. Этот процесс происходит в митохондриях, которые являются фабриками клеточной энергии. В серии окислительно-восстановительных реакций энергия из пищи сохраняется между фосфатными группами и используется как универсальная клеточная валюта. Молекулы, богатые энергией, выводятся из митохондрий и используются во всех клеточных процессах. Вы открыли новый препарат для лечения диабета и хотите исследовать, оказывает ли он влияние на митохондрии. Вы провели ряд экспериментов с вашей клеточной линией HEK293. Какой из экспериментов, перечисленных ниже, не поможет вам раскрыть митохондриальную роль вашего препарата: (A) Дифференциальное центрифугирование экстракции митохондрий с последующим набором для колориметрического анализа поглощения глюкозы (B) Проточная цитометрия после мечения 2.5 мкМ 5,5',6,6'-тетрахлор-1,1',3,3'-тетраэтилбензимидазолилкарбоцианин иодида (C) Трансформация клеток рекомбинантной люциферазой и показания люминометра после добавления 5 мкМ люциферина к супернатанту (D) Конфокальная флуоресцентная микроскопия после окрашивания клеток Mito-RTP

В этом проекте мы используем GPQA-Diamond в качестве критерия вывода , поскольку OpenAI и DeepSeek использовали его для оценки своих моделей вывода. Выбор GPQA-Diamond в качестве критерия оценки демонстрирует его сложность и важность в области разработки искусственного интеллекта.

(6) Используемые инструменты

В этом проекте мы в основном используем Ollama и simple-evals от OpenAI. Ollama — это мощная платформа для локального запуска больших языковых моделей, а simple-evals предоставляет фреймворк для оценки производительности этих моделей.

(i) Оллама

Ollama — это инструмент с открытым исходным кодом, упрощающий запуск больших языковых моделей (LLM) на нашем компьютере или локальном сервере. Ollama — идеальная платформа для локального запуска моделей искусственного интеллекта.

Он действует как менеджер и среда выполнения, выполняя такие задачи, как загрузка и настройка среды. Это позволяет пользователям взаимодействовать с этими моделями без необходимости постоянного подключения к Интернету или использования облачных сервисов. Управление локальными большими языковыми моделями (LLM) является основной функцией Olama.

Он поддерживает множество крупных языковых моделей с открытым исходным кодом, включая DeepSeek-R1, и совместим с macOS, Windows и Linux. Кроме того, он обеспечивает простую настройку с минимальными усилиями и эффективное использование ресурсов. Ollama позволяет вам использовать возможности искусственного интеллекта прямо на вашем устройстве.

ВажныйУбедитесь, что на вашем локальном компьютере есть: Доступность графического процессора Для Ollama это значительно повышает производительность и делает последующее тестирование более эффективным по сравнению с CPU. Выполните команду nvidia-smi В терминале проверьте, обнаружен ли графический процессор. Эта процедура гарантирует максимальное использование возможностей устройства для эксплуатации моделей с высокой эффективностью.

(ii) Библиотека OpenAI simple-evals для оценки языковых моделей

Simple-Evals — это легковесная библиотека, предназначенная для оценки языковых моделей с использованием метода «нулевого обучения» с подсказками в виде цепочки мыслей. Она включает в себя популярные критерии оценки, такие как MMLU, MATH, GPQA, MGSM и HumanEval, и направлена ​​на моделирование реальных сценариев использования для оценки производительности моделей ИИ в сложных задачах рассуждения.

Некоторым из вас, возможно, знакома самая популярная и всеобъемлющая библиотека оценок от OpenAI, называемая Evals , которая отличается от simple-evals.

На самом деле, на странице README библиотеки simple-evals прямо указано, что она не предназначена для замены библиотеки Evals.

Итак, почему мы используем простые оценки?

Простой ответ заключается в том, что simple-evals поставляется со встроенными скриптами оценки для критериев вывода, на которые мы ориентируемся (таких как GPQA), чего нет в библиотеке Evals.

Кроме того, я не нашел никаких других инструментов или платформ, кроме simple-evals, которые предоставляли бы прямой и нативный способ запуска многих ключевых бенчмарков, таких как GPQA, особенно при работе с Ollama, с использованием Python.

(7) Результаты оценки

В рамках оценки я случайным образом выбрал 20 вопросов из набора GPQA-Diamond, состоящего из 198 вопросов, для работы над сокращенной версией 14B . Общее время составило 216 минут, или примерно 11 минут на вопрос.

Результат оказался несколько разочаровывающим, составив всего 10% , что значительно ниже заявленного результата в 73.3% для модели DeepSeek-R1 размером 671B.

Основная проблема, которую я заметил, заключалась в том, что во время интенсивного внутреннего анализа модель часто не выдавала никакого ответа (например, возвращала токены рассуждений в качестве итоговых строк) или предоставляла ответ, не соответствующий ожидаемому формату множественного выбора (например, Ответ: A).

Как показано выше, многие результаты оказались следующими: None Потому что логика регулярных выражений в simple-evals не смогла обнаружить ожидаемый шаблон ответа в ответе LLM.

Хотя наблюдать за логикой рассуждений, схожей с человеческой, было интересно, я предсказал более высокие результаты с точки зрения точности ответов на вопросы.

Я также видел, как пользователи в Интернете упоминали, что даже более крупная модель 32B работает не так хорошо, как o1. Это вызвало сомнения относительно полезности моделей вывода, особенно когда они с трудом дают правильные ответы, несмотря на то, что генерируют длинные выводы.

Однако GPQA-Diamond — очень требовательный тест, поэтому эти модели могут быть полезны для более простых задач вывода. Более низкие вычислительные требования также облегчают задачу.

Кроме того, команда DeepSeek рекомендовала проводить несколько тестов и усреднять результаты в рамках процесса сравнительного анализа — то, что я упустил из виду из-за ограничений по времени.

(8) Подробное пошаговое руководство

До этого момента мы рассмотрели основные концепции и основные выводы.

Если вы готовы к практическому техническому опыту, в этом разделе вы найдете подробный обзор внутренних механизмов и пошаговую реализацию. Это практическое техническое руководство предоставит вам полное представление о том, как работает система.

Чтобы просмотреть (или клонировать) соответствующий репозиторий GitHub, см. следующее. Требования к настройке виртуальной среды можно найти здесь.

(i) Начальная настройка – Оллама

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

После завершения установки запустите Ollama, дважды щелкнув приложение Ollama (для Windows и macOS) или выполнив команду ollama serve В терминале.

(ii) Начальная настройка – OpenAI simple-evals

Настройка simple-evals относительно уникальна.

В то время как simple-evals позиционирует себя как библиотека, Отсутствие файлов __init__.py В репозитории означает, что он не структурирован как полноценный пакет Python., что приводит к ошибкам импорта после локального клонирования репозитория. Это означает, что это не стандартный пакет Python в том смысле, который обычно используется в разработке программного обеспечения.

Так как он также не опубликован на PyPI и не имеет стандартных файлов упаковки, таких как setup.py Или pyproject.tomlЕго нельзя установить через pip. Это создает определенные трудности для новых разработчиков.

К счастью, в качестве прямой альтернативы мы можем использовать подмодули Git . Эти подмодули позволяют встраивать один репозиторий Git в другой, упрощая управление зависимостями.

«`html

Подмодуль Git позволяет нам включать содержимое другого репозитория Git в наш проект. Он извлекает файлы из внешнего репозитория (например, simple-evals), но сохраняет их историю отдельно.

Вы можете выбрать один из двух методов (A или B) для извлечения содержимого simple-evals:

(а) Если вы клонируете мой репозиторий проекта

Мой репозиторий проектов уже включает simple-evals Как подмодуль, так что вы можете просто запустить:

git submodule update --init --recursive

(б) Если вы добавляете его в недавно созданный проект.
Чтобы вручную добавить simple-evals как подмодуль, выполните следующее:

git submodule add https://github.com/openai/simple-evals.git simple_evals

уведомление: что simple_evals В конце концов (с подчеркивание) очень важно. Он указывает имя папки, используя вместо него дефис (т.е. простоevals) могут впоследствии привести к проблемам с импортом.

Заключительный шаг (для обоих методов)

После извлечения содержимого репозитория необходимо создать файл. __init__.py Пусто в папке simple_evals Вновь созданный объект можно импортировать как единое целое. Вы можете создать его вручную или использовать следующую команду:

touch simple_evals/__init__.py

(iii) Извлечение модели DeepSeek-R1 через Ollama

Следующий шаг — загрузить локально адаптированную модель по вашему выбору (например, 14B) с помощью этой команды:

Список доступных моделей DeepSeek-R1 на Ollama можно найти здесь . Для оптимальной производительности рекомендуется использовать последнюю версию модели.

ollama pull deepseek-r1:14b

(Четвертое) Укажите настройки

Мы определяем параметры в файле настроек YAML, как показано ниже:

# config/config.yaml MODEL_NAME: "deepseek-r1:14b" # Имя модели (соответствует списку моделей Ollama) MODEL_TEMPERATURE: 0.6 # Установите между 0.5 и 0.7 для DeepSeek-R1 EVAL_BENCHMARK: "gpqa" GPQA_VARIANT: "diamond" EVAL_N_EXAMPLES: 20

Температура модели была установлена ​​на 0.6 (по сравнению с типичным значением по умолчанию 0). Это соответствует рекомендациям DeepSeek по использованию, которые предполагают диапазон температур от 0.5 до 0.7 (рекомендуется 0.6) для предотвращения бесконечных повторений или непостоянного результата. Эта настройка необходима для повышения качества выходных данных и обеспечения стабильности.

Не упустите возможность ознакомиться с уникальными и интересными рекомендациями по использованию DeepSeek-R1 , особенно в отношении бенчмарков, чтобы обеспечить оптимальную производительность при работе с моделями DeepSeek-R1.

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

(v) Настройка кода сэмплера

Для поддержки языковых моделей на основе Ollama в рамках simple-evals мы создаем специальный класс-оболочку с именем OllamaSampler И держи это внутри. utils/samplers/ollama_sampler.py. Сэмплер является важнейшим компонентом тестирования и оценки производительности языковых моделей.

# utils/samplers/ollama_sampler.py импорт класса ollama OllamaSampler: def __init__(self, model_name=None, temperature=0): self.model_name = model_name self.temperature = температура def __call__(self, prompt_messages): prompt_text = prompt_messages[-1]["content"] response = ollama.chat( model=self.model_name, messages=[{"role": "user", "content": prompt_text}], options={"temperature": self.temperature} ) response_content = response["message"]["content"] return response_content def _pack_message(self, content, role): return {"role": role, "content": content}

В этом контексте сэмплер — это класс Python, который генерирует выходные данные из языковой модели на основе конкретного запроса. Этот инструмент имеет решающее значение для обеспечения того, чтобы модель генерировала разнообразные и репрезентативные ответы.

Поскольку семплеры в simple-evals охватывают только таких поставщиков, как OpenAI и Claude, нам нужен класс семплера, который предоставляет интерфейс, совместимый с Ollama. Это обеспечивает бесшовную интеграцию с системой оценки.

вставать OllamaSampler Извлекает подсказку вопроса GPQA, отправляет ее в форму при указанной температуре и возвращает ответ в виде простого текста. Температура является важным параметром, контролирующим случайность выходных данных.

Метод включен _pack_message Чтобы гарантировать, что формат вывода соответствует тому, что ожидают сценарии оценки в simple-evals. Это обеспечивает последовательность и простоту анализа.

6. Создайте сценарий оценки

Следующий код демонстрирует, как настроить реализацию оценки в файле. main.py, включая использование категории GPQAEval Из библиотеки simple-evals для запуска тестирования производительности GPQA.

Функция run_eval() Это настраиваемый инструмент оценки времени выполнения, который тестирует большие языковые модели (LLM) через Ollama на соответствие таким стандартам, как GPQA. Эта функция необходима для точной оценки производительности моделей.

# main.py def run_eval(): start_time = time.time() # Загрузка файла конфигурации config = load_config("config/config.yaml") # Инициализация сэмплера Ollama (обертка вокруг чата Ollama) ollama_sampler = OllamaSampler(model_name=config["MODEL_NAME"], temperature=config["MODEL_TEMPERATURE"] ) # Выбор класса оценки для использования на основе EVAL_BENCHMARK eval_benchmark = config["EVAL_BENCHMARK"] # GPQA print(f">>> Запуск оценки {eval_benchmark}") if eval_benchmark == "gpqa": eval_class = GPQAEval eval_kwargs = { "n_repeats": config["EVAL_N_REPEATS"], # По умолчанию 1 "num_examples": config["EVAL_N_EXAMPLES"], # Установить 20 "variant": config["GPQA_VARIANT"], # подмножество GPQA-Diamond } else: raise ValueError( f"Unknown EVAL_BENCHMARK '{eval_benchmark}'." ) # Создать экземпляр и запустить соответствующий eval evaluator = eval_class(**eval_kwargs) results = evaluator(ollama_sampler) # Выполнить оценку с помощью сэмплера end_time = time.time() elapsed_seconds = end_time - start_time minutes, seconds = divmod(elapsed_seconds, 60) # Вычислить общее затраченное время # Возвращенные результаты — это EvalResult, который включает список SingleEvalResult и агрегированные метрики print(">>>> Общие метрики оценки:", results.metrics) print(">>>> Оценка:", results.score) print(f">>>> Общее время выполнения: {int(minutes)} min {seconds:.2f} sec") if __name__ == "__main__": # Запустить выполнение оценки GPQA run_eval()

Функция загружает настройки из файла конфигурации, устанавливает соответствующий класс оценки из simple-evals и запускает модель через единый процесс оценки. Он сохраняется в файле. main.py, который можно выполнить с помощью команды python main.py. Это обеспечивает последовательный и повторяемый процесс оценки.

Выполнив описанные выше шаги, мы успешно настроили и выполнили бенчмарк GPQA-Diamond на очищенной модели DeepSeek-R1. Этот процесс дает ценную информацию о возможностях модели.

Суть

В этой статье мы рассмотрели, как можно комбинировать такие инструменты, как Ollama и simple-evals от OpenAI, для исследования и оценки дистиллированных моделей из DeepSeek-R1, уделяя особое внимание оценке производительности больших языковых моделей.

Упрощенные модели, возможно, пока не могут сравниться с исходной моделью с 671 миллиардом параметров по таким требовательным критериям вывода, как GPQA-Diamond. Однако они демонстрируют, как упрощение может расширить доступ к возможностям вывода больших языковых моделей (LLM). Улучшение доступа к LLM является ключевой задачей в этой области.

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

Комментарии закрыты.