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 - помочь разработчикам эффективно писать сложный код, особенно для соревнований по программированию и масштабных проектов.

DeepCoder-14B-Preview:擅长代码生成的的开源模型

 

Список функций

  • Генерация длинного кода: поддерживает контексты до 64K токенов и может генерировать и обрабатывать очень длинный код.
  • Высокоточный вывод: 60.6% Pass@1 в LiveCodeBench v5 для надежного качества кода.
  • Открытый исходный код: файлы моделей, наборы данных и обучающие скрипты доступны для свободного скачивания и настройки.
  • Поддерживает широкий спектр задач по программированию: подходит для ответов на конкурсные вопросы, отладки кода и разработки проектов.
  • Длинные контекстные рассуждения: оптимизированы с помощью методов GRPO+ и DAPO для обеспечения возможности генерации длинного кода.

 

Использование помощи

DeepCoder-14B-Preview - это мощный инструмент, который поможет вам генерировать код или решать сложные задачи программирования. Ниже приведено подробное руководство по установке и использованию.

Процесс установки

Чтобы использовать DeepCoder-14B-Preview локально, необходимо подготовить среду и загрузить модель. Для этого необходимо выполнить следующие шаги:

  1. Подготовьте аппаратное и программное обеспечение
    • Необходим компьютер с графическим процессором, рекомендуется NVIDIA H100 или видеокарта с не менее чем 24 Гб оперативной памяти.
    • Установка Python 3.10: запуск conda create -n deepcoder python=3.10 -yЗатем активируйте среду conda activate deepcoder.
    • Установите зависимые библиотеки: выполнить pip install transformers torch huggingface_hub vllm.
  2. Скачать модели
    • Посетите официальную страницу на 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 Папка.
  3. Модели для погрузки
    • Загрузите модель в 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, готовую к использованию.

Как использовать основные функции

Основу DeepCoder составляет генерация кода и работа с длинными контекстами. Вот как это работает:

Сгенерировать код

  1. Требования к входному программированию
    • Подготовьте задачу, например, "Напишите функцию Python, которая находит максимальное значение в массиве".
    • Преобразование требований в текст:
      prompt = "写一个 Python 函数,找出数组中的最大值"
      
  2. Сгенерировать код
    • Используйте следующий код, чтобы сгенерировать ответ:
      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
      
  3. Оптимизированная генерация
    • Если требуется более длинный код, отрегулируйте max_new_tokens 1024 или выше.
    • устанавливать max_tokens=64000 Достигается оптимальная производительность в длительном контексте.

Работа с длинными контекстами

  1. Введите длинный код
    • Допустим, у вас есть код длиной 32 тыс. токенов, и вы хотите, чтобы модель его обновляла:
      long_code = "def process_data(data):\n    # 几千行代码...\n    return processed_data"
      prompt = long_code + "\n请为这个函数添加异常处理"
      
  2. Создайте продолжение
    • Введите и сгенерируйте:
      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
      
  3. Результаты проверки
    • Проверьте, соответствует ли код требованиям. Если не соответствует, опишите требования более четко.

Основные функции Процедура работы

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

Решение конкурсов

  1. Получить название
    • Найдите тему из Codeforces, например, "Заданный массив, верните все возможные подмножества".
    • Введите описание темы:
      prompt = "给定一个数组,返回所有可能的子集。例如,输入 [1,2,3],输出 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]"
      
  2. Сгенерировать код
    • Выполните команду 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
      
  3. Результаты испытаний
    • Чтобы запустить код в Python, введите [1,2,3]Проверьте правильность вывода.

отладочный код

  1. Введите код вопроса
    • Предположим, что существует часть кода с ошибками:
      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这段代码有语法错误,请修复"
      
  2. Создание исправлений
    • Введите и сгенерируйте:
      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
      
  3. Исправления в верификации
    • Проверьте правильность синтаксиса и запустите код для подтверждения результата.

Рекомендации по использованию

  • Не добавляйте системную подсказку, укажите требование непосредственно в пользовательской подсказке.
  • устанавливать temperature=0.6 ответить пением top_p=0.95 для достижения оптимальных результатов.
  • главнокомандующий (военный) max_tokens Установите значение 64000, чтобы использовать преимущества длинных контекстов.

 

сценарий применения

  1. конкурс программистов
    DeepCoder быстро генерирует ответы на конкурсные вопросы и подходит для решения сложных задач в LiveCodeBench или Codeforces.
  2. Разработка крупномасштабных проектов
    Он может генерировать длинные модули кода, чтобы помочь разработчикам завершить большие проекты.
  3. Образование и обучение
    Студенты могут использовать его для генерации примеров кода, изучения алгоритмов или отладки заданий.

 

QA

  1. Является ли DeepCoder-14B-Preview бесплатным?
    Да, она лицензирована MIT, имеет полностью открытый исходный код и может использоваться всеми желающими.
  2. Какое оборудование требуется для его работы?
    Рекомендуется использовать компьютер с графическим процессором и не менее 24 Гб видеопамяти. Если вы используете процессор, игра будет идти гораздо медленнее.
  3. Какие языки программирования он поддерживает?
    В основном она специализируется на Python, но может также генерировать код на Java, C++ и других языках, в зависимости от ясности подсказки.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...