일반 소개
딥코더-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에 가까운 성능을 달성했으며 모델 가중치, 훈련 데이터 및 스크립트를 포함하여 완전히 오픈 소스입니다. 딥코더의 목표는 개발자가 특히 프로그래밍 대회나 대규모 프로젝트를 위해 복잡한 코드를 효율적으로 작성할 수 있도록 돕는 것입니다.

기능 목록
- 긴 코드 생성: 최대 64K 토큰의 컨텍스트를 지원하며 매우 긴 코드를 생성하고 처리할 수 있습니다.
- 높은 정확도의 출력: 안정적인 코드 품질을 위해 LiveCodeBench v5에서 60.6% Pass@1을 달성했습니다.
- 오픈 소스 사용 가능: 모델 파일, 데이터 세트 및 교육 스크립트를 무료로 다운로드하여 사용자 지정할 수 있습니다.
- 다양한 프로그래밍 작업을 지원합니다: 대회 질문 답변, 코드 디버깅 및 프로젝트 개발에 적합합니다.
- 긴 문맥 추론: 긴 코드 생성 기능을 보장하기 위해 GRPO+ 및 DAPO 기술로 최적화되었습니다.
도움말 사용
DeepCoder-14B-Preview는 코드를 생성하거나 복잡한 프로그래밍 작업을 처리하는 데 도움이 되는 강력한 도구입니다. 아래는 자세한 설치 및 사용 가이드입니다.
설치 프로세스
DeepCoder-14B-Preview를 로컬에서 사용하려면 환경을 준비하고 모델을 다운로드해야 합니다. 단계는 다음과 같습니다:
- 하드웨어 및 소프트웨어 준비
- 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
.
- 모델 다운로드
- 공식 페이지(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
최적의 긴 컨텍스트 성능을 달성합니다.
- 더 긴 코드가 필요한 경우
긴 컨텍스트 처리
- 긴 코드를 입력하세요.
- 32K 토큰 길이의 코드가 있고 모델이 이를 갱신하기를 원한다고 가정해 보겠습니다:
long_code = "def process_data(data):\n # 几千行代码...\n return processed_data" prompt = long_code + "\n请为这个函数添加异常处理"
- 32K 토큰 길이의 코드가 있고 모델이 이를 갱신하기를 원한다고 가정해 보겠습니다:
- 연속 생성
- 입력하고 생성합니다:
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
- 입력하고 생성합니다:
- 확인 결과
- 코드가 요구 사항을 충족하는지 확인합니다. 그렇지 않은 경우 요구 사항을 더 명확하게 설명하세요.
주요 기능 작동 절차
딥코더의 가장 큰 장점은 긴 코드 생성 기능으로, 경연 대회나 대규모 프로젝트에 적합합니다.
콘테스트 해결
- 제목 가져오기
- 코드포스에서 "배열이 주어졌을 때 가능한 모든 하위 집합을 반환하세요"와 같은 주제를 찾습니다.
- 주제에 대한 설명을 입력합니다:
prompt = "给定一个数组,返回所有可能的子集。例如,输入 [1,2,3],输出 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]"
- 코드 생성
- 생성 명령을 실행합니다:
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
- 생성 명령을 실행합니다:
- 테스트 결과
- 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 라이선스를 받은 완전 오픈 소스이며 누구나 무료로 사용할 수 있습니다. - 실행하려면 어떤 하드웨어가 필요하나요?
GPU와 최소 24GB의 비디오 메모리가 있는 컴퓨터를 사용하는 것이 좋습니다. CPU를 사용하면 속도가 훨씬 느려집니다. - 어떤 프로그래밍 언어를 지원하나요?
주로 Python에 특화되어 있지만 프롬프트의 명확성에 따라 Java, C++ 및 기타 언어로 코드를 생성할 수도 있습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...