DeepCoder-14B-Preview: 코드 생성에 탁월한 오픈 소스 모델

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
3K 00

일반 소개

딥코더-14B-프리뷰는 에이전티카 팀이 개발한 오픈 소스 코드 생성 모델로 허깅 페이스 플랫폼에 출시되었습니다. 이 모델은 분산 강화 학습(RL) 기법으로 최적화된 DeepSeek-R1-Distilled-Qwen-14B를 기반으로 하며, 최대 64K까지 처리할 수 있습니다. 토큰 의 매우 긴 컨텍스트를 지원합니다. 이 모델은 140억 개의 파라미터를 가지고 있으며 LiveCodeBench v5 테스트(2024년 8월 1일~2025년 2월 1일)에서 기본 모델보다 8% 향상된 60.6%의 Pass@1 정확도와 OpenAI의 o3-mini에 가까운 성능을 달성했으며 모델 가중치, 훈련 데이터 및 스크립트를 포함하여 완전히 오픈 소스입니다. 딥코더의 목표는 개발자가 특히 프로그래밍 대회나 대규모 프로젝트를 위해 복잡한 코드를 효율적으로 작성할 수 있도록 돕는 것입니다.

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

 

기능 목록

  • 긴 코드 생성: 최대 64K 토큰의 컨텍스트를 지원하며 매우 긴 코드를 생성하고 처리할 수 있습니다.
  • 높은 정확도의 출력: 안정적인 코드 품질을 위해 LiveCodeBench v5에서 60.6% Pass@1을 달성했습니다.
  • 오픈 소스 사용 가능: 모델 파일, 데이터 세트 및 교육 스크립트를 무료로 다운로드하여 사용자 지정할 수 있습니다.
  • 다양한 프로그래밍 작업을 지원합니다: 대회 질문 답변, 코드 디버깅 및 프로젝트 개발에 적합합니다.
  • 긴 문맥 추론: 긴 코드 생성 기능을 보장하기 위해 GRPO+ 및 DAPO 기술로 최적화되었습니다.

 

도움말 사용

DeepCoder-14B-Preview는 코드를 생성하거나 복잡한 프로그래밍 작업을 처리하는 데 도움이 되는 강력한 도구입니다. 아래는 자세한 설치 및 사용 가이드입니다.

설치 프로세스

DeepCoder-14B-Preview를 로컬에서 사용하려면 환경을 준비하고 모델을 다운로드해야 합니다. 단계는 다음과 같습니다:

  1. 하드웨어 및 소프트웨어 준비
    • GPU가 있는 컴퓨터가 필요하며, NVIDIA H100 또는 24GB 이상의 RAM이 있는 그래픽 카드가 권장됩니다.
    • 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. 긴 코드를 입력하세요.
    • 32K 토큰 길이의 코드가 있고 모델이 이를 갱신하기를 원한다고 가정해 보겠습니다:
      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. 확인 결과
    • 코드가 요구 사항을 충족하는지 확인합니다. 그렇지 않은 경우 요구 사항을 더 명확하게 설명하세요.

주요 기능 작동 절차

딥코더의 가장 큰 장점은 긴 코드 생성 기능으로, 경연 대회나 대규모 프로젝트에 적합합니다.

콘테스트 해결

  1. 제목 가져오기
    • 코드포스에서 "배열이 주어졌을 때 가능한 모든 하위 집합을 반환하세요"와 같은 주제를 찾습니다.
    • 주제에 대한 설명을 입력합니다:
      prompt = "给定一个数组,返回所有可能的子集。例如,输入 [1,2,3],输出 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]"
      
  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 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. 실행하려면 어떤 하드웨어가 필요하나요?
    GPU와 최소 24GB의 비디오 메모리가 있는 컴퓨터를 사용하는 것이 좋습니다. CPU를 사용하면 속도가 훨씬 느려집니다.
  3. 어떤 프로그래밍 언어를 지원하나요?
    주로 Python에 특화되어 있지만 프롬프트의 명확성에 따라 Java, C++ 및 기타 언어로 코드를 생성할 수도 있습니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...