DeepCoder-14B-Preview: модель с открытым исходным кодом, которая отлично справляется с генерацией кода
Общее введение
DeepCoder-14B-Preview - это модель генерации кода с открытым исходным кодом, разработанная командой Agentica и выпущенная на платформе Hugging Face. Она основана на DeepSeek-R1-Distilled-Qwen-14B, оптимизирована с помощью методов распределенного обучения с усилением (RL) и способна обрабатывать до 64K жетон очень длинных контекстов. Модель имеет 14 миллиардов параметров и достигла точности Pass@1 60,6% в тестировании LiveCodeBench v5 (с 1 августа 2024 года по 1 февраля 2025 года), что на 8% лучше, чем у базовой модели, и по производительности близка к o3-mini от OpenAI. Цель DeepCoder - помочь разработчикам эффективно писать сложный код, особенно для соревнований по программированию и масштабных проектов.

Список функций
- Генерация длинного кода: поддерживает контексты до 64K токенов и может генерировать и обрабатывать очень длинный код.
- Высокоточный вывод: 60.6% Pass@1 в LiveCodeBench v5 для надежного качества кода.
- Открытый исходный код: файлы моделей, наборы данных и обучающие скрипты доступны для свободного скачивания и настройки.
- Поддерживает широкий спектр задач по программированию: подходит для ответов на конкурсные вопросы, отладки кода и разработки проектов.
- Длинные контекстные рассуждения: оптимизированы с помощью методов GRPO+ и DAPO для обеспечения возможности генерации длинного кода.
Использование помощи
DeepCoder-14B-Preview - это мощный инструмент, который поможет вам генерировать код или решать сложные задачи программирования. Ниже приведено подробное руководство по установке и использованию.
Процесс установки
Чтобы использовать DeepCoder-14B-Preview локально, необходимо подготовить среду и загрузить модель. Для этого необходимо выполнить следующие шаги:
- Подготовьте аппаратное и программное обеспечение
- Необходим компьютер с графическим процессором, рекомендуется NVIDIA H100 или видеокарта с не менее чем 24 Гб оперативной памяти.
- Установка Python 3.10: запуск
conda create -n deepcoder python=3.10 -y
Затем активируйте средуconda activate deepcoder
. - Установите зависимые библиотеки: выполнить
pip install transformers torch huggingface_hub vllm
.
- Скачать модели
- Посетите официальную страницу на https://huggingface.co/agentica-org/DeepCoder-14B-Preview.
- В разделе "Файлы и версии" найдите файлы модели (например.
model-00001-of-00012.safetensors
). - Используйте команду загрузки:
huggingface-cli download agentica-org/DeepCoder-14B-Preview --local-dir ./DeepCoder-14B
- После загрузки файлы модели сохраняются локально
./DeepCoder-14B
Папка.
- Модели для погрузки
- Загрузите модель в Python:
from transformers import AutoModelForCausalLM, AutoTokenizer model_path = "./DeepCoder-14B" model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype="auto", device_map="auto") tokenizer = AutoTokenizer.from_pretrained(model_path)
- Это загрузит модель на GPU, готовую к использованию.
- Загрузите модель в Python:
Как использовать основные функции
Основу DeepCoder составляет генерация кода и работа с длинными контекстами. Вот как это работает:
Сгенерировать код
- Требования к входному программированию
- Подготовьте задачу, например, "Напишите функцию Python, которая находит максимальное значение в массиве".
- Преобразование требований в текст:
prompt = "写一个 Python 函数,找出数组中的最大值"
- Сгенерировать код
- Используйте следующий код, чтобы сгенерировать ответ:
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95) result = tokenizer.decode(outputs[0], skip_special_tokens=True) print(result)
- Возможные выходы:
def find_max(arr): if not arr: return None max_value = arr[0] for num in arr: if num > max_value: max_value = num return max_value
- Используйте следующий код, чтобы сгенерировать ответ:
- Оптимизированная генерация
- Если требуется более длинный код, отрегулируйте
max_new_tokens
1024 или выше. - устанавливать
max_tokens=64000
Достигается оптимальная производительность в длительном контексте.
- Если требуется более длинный код, отрегулируйте
Работа с длинными контекстами
- Введите длинный код
- Допустим, у вас есть код длиной 32 тыс. токенов, и вы хотите, чтобы модель его обновляла:
long_code = "def process_data(data):\n # 几千行代码...\n return processed_data" prompt = long_code + "\n请为这个函数添加异常处理"
- Допустим, у вас есть код длиной 32 тыс. токенов, и вы хотите, чтобы модель его обновляла:
- Создайте продолжение
- Введите и сгенерируйте:
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95) result = tokenizer.decode(outputs[0], skip_special_tokens=True) print(result)
- Выход может быть следующим:
def process_data(data): try: # 几千行代码... return processed_data except Exception as e: print(f"错误: {e}") return None
- Введите и сгенерируйте:
- Результаты проверки
- Проверьте, соответствует ли код требованиям. Если не соответствует, опишите требования более четко.
Основные функции Процедура работы
Изюминкой DeepCoder является возможность генерации длинного кода, что делает его подходящим для соревнований и масштабных проектов.
Решение конкурсов
- Получить название
- Найдите тему из Codeforces, например, "Заданный массив, верните все возможные подмножества".
- Введите описание темы:
prompt = "给定一个数组,返回所有可能的子集。例如,输入 [1,2,3],输出 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]"
- Сгенерировать код
- Выполните команду generate:
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95) result = tokenizer.decode(outputs[0], skip_special_tokens=True) print(result)
- Выход может быть следующим:
def subsets(nums): result = [[]] for num in nums: result += [curr + [num] for curr in result] return result
- Выполните команду generate:
- Результаты испытаний
- Чтобы запустить код в Python, введите
[1,2,3]
Проверьте правильность вывода.
- Чтобы запустить код в Python, введите
отладочный код
- Введите код вопроса
- Предположим, что существует часть кода с ошибками:
buggy_code = "def sum_numbers(n):\n total = 0\n for i in range(n)\n total += i\n return total" prompt = buggy_code + "\n这段代码有语法错误,请修复"
- Предположим, что существует часть кода с ошибками:
- Создание исправлений
- Введите и сгенерируйте:
inputs = tokenizer(prompt, return_tensors="pt").to(model.device) outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95) result = tokenizer.decode(outputs[0], skip_special_tokens=True) print(result)
- Выход может быть следующим:
def sum_numbers(n): total = 0 for i in range(n): total += i return total
- Введите и сгенерируйте:
- Исправления в верификации
- Проверьте правильность синтаксиса и запустите код для подтверждения результата.
Рекомендации по использованию
- Не добавляйте системную подсказку, укажите требование непосредственно в пользовательской подсказке.
- устанавливать
temperature=0.6
ответить пениемtop_p=0.95
для достижения оптимальных результатов. - главнокомандующий (военный)
max_tokens
Установите значение 64000, чтобы использовать преимущества длинных контекстов.
сценарий применения
- конкурс программистов
DeepCoder быстро генерирует ответы на конкурсные вопросы и подходит для решения сложных задач в LiveCodeBench или Codeforces. - Разработка крупномасштабных проектов
Он может генерировать длинные модули кода, чтобы помочь разработчикам завершить большие проекты. - Образование и обучение
Студенты могут использовать его для генерации примеров кода, изучения алгоритмов или отладки заданий.
QA
- Является ли DeepCoder-14B-Preview бесплатным?
Да, она лицензирована MIT, имеет полностью открытый исходный код и может использоваться всеми желающими. - Какое оборудование требуется для его работы?
Рекомендуется использовать компьютер с графическим процессором и не менее 24 Гб видеопамяти. Если вы используете процессор, игра будет идти гораздо медленнее. - Какие языки программирования он поддерживает?
В основном она специализируется на Python, но может также генерировать код на Java, C++ и других языках, в зависимости от ясности подсказки.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...