Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

엔비디아 오픈코드추론-Nemotron-32B: 빠른 살펴보기

Mark Ponomarev

Mark Ponomarev

Updated on May 8, 2025

가속 컴퓨팅 분야의 거대 기업인 NVIDIA가 개발자와 연구자를 위한 강력한 새로운 도구 모음을 오픈 소스로 공개하며 OpenCodeReasoning-Nemotron 대규모 언어 모델(LLM) 제품군을 출시했습니다. 32B, 14B, 7B 파라미터 크기로 제공되며, 특화된 IOI(Input/Output Interacting) 변형 모델을 포함하는 이 모델들은 관대한 Apache 2.0 라이선스 하에 배포되어 광범위한 상업 및 비상업적 혁신을 위한 길을 열었습니다. 이 움직임은 코드 이해, 생성 및 추론을 위한 최첨단 AI에 대한 접근성을 민주화하려는 NVIDIA의 중요한 약속을 보여줍니다.

OpenCodeReasoning-Nemotron 모델은 혼잡한 LLM 시장에 단순히 또 하나의 모델로 진입하는 것이 아닙니다. 특히 고품질 코드 생성에 필수적인 복잡한 추론 작업에서 인상적인 성능을 자랑합니다. 예를 들어, 플래그십 모델인 OpenCodeReasoning-Nemotron-32B는 DeepSeek-R1과 같은 강력한 모델과 거의 동등한 성능 벤치마크를 기록하며 이미 주목받고 있습니다. 더욱 인상적인 것은 경쟁 프로그래밍 문제 해결 능력을 테스트하는 까다로운 벤치마크인 LiveCodeBench에서 O3 mini 및 O1 (low)를 확실히 능가한다는 점입니다.

이러한 뛰어난 성능은 모델 훈련의 기반이 되는 세심하게 선별된 OpenCodeReasoning (OCR) 데이터셋 덕분입니다. 경쟁 프로그래밍 문제와 AI 생성 응답이 풍부한 이 데이터셋은 모델에 정교한 추론 능력을 부여합니다. 특히 주목할 만한 특징은 놀라운 토큰 효율성입니다. OpenCodeReasoning 모델은 다른 동급 추론 모델보다 토큰 효율성이 30% 더 높다고 알려져 있습니다. 실제적으로 이는 더 빠른 처리, 감소된 컴퓨팅 오버헤드, 그리고 주어진 컨텍스트 창 내에서 더 복잡한 문제를 처리할 수 있는 능력을 의미합니다.

광범위한 호환성 또한 매력을 더합니다. 개발자는 llama.cpp, vLLM, Hugging Face Transformers, Text Generation Inference (TGI)와 같은 인기 있는 도구 및 라이브러리를 사용하여 이러한 모델을 워크플로우에 통합할 수 있어 원활한 도입이 가능합니다.

본 기사에서는 OpenCodeReasoning-Nemotron 모델의 세부 사항을 심층적으로 살펴보고, 성능을 탐구하며, 혁신적인 OCR 데이터셋에 대해 논의하고, 특히 고성능 vLLM 추론 엔진을 활용하여 모델을 실행하는 방법에 대한 실용적인 가이드를 제공할 것입니다.

💡
아름다운 API 문서를 생성하는 훌륭한 API 테스트 도구를 원하십니까?

최대 생산성으로 개발자 팀이 함께 작업할 수 있는 통합 올인원 플랫폼을 원하십니까?

Apidog는 귀하의 모든 요구를 충족하며, 훨씬 저렴한 가격으로 Postman을 대체합니다!
button

OpenCodeReasoning-Nemotron-32B: DeepSeek R1보다 나은가?

LLM의 진정한 가치는 표준화된 벤치마크에서의 성능과 실제 작업을 처리하는 능력에 있습니다. NVIDIA의 OpenCodeReasoning-Nemotron 모델, 특히 32B 변형 모델은 인상적인 결과를 보여주었습니다.

NVIDIA가 발표한 정보에 따르면, Qwen2.5-32B-Instruct의 파생 모델인 OpenCodeReasoning-Nemotron-32B는 다양한 벤치마크에서 인상적인 점수를 달성했습니다. 64개 평가의 평균 결과는 모델의 강점을 강조합니다:

모델 LiveCodeBench 평균 CodeContest 전체
DeepSeek-R1 65.6 26.2
QwQ-32B 61.3 20.2
OCR-Qwen-32B 61.8 24.6
OCR-Qwen-32B-Instruct 61.7 24.4

이 수치는 매우 중요합니다. OCR-Qwen-32B-Instruct (OpenCodeReasoning-Nemotron-32B가 기반으로 하는 모델)는 LiveCodeBench 평균 및 CodeContest 전체에서 DeepSeek-R1과 놀랍도록 근접한 점수를 기록했습니다. "LiveCodeBench에서 O3 mini 및 O1 (low)를 능가한다"는 주장은 깊은 추론과 알고리즘 문제 이해를 요구하는 복잡한 코딩 문제를 해결하는 모델의 고급 능력을 강조합니다.

Qwen2.5-14B-Instruct [2]에서 파생된 14B 변형 모델인 OpenCodeReasoning-Nemotron-14B 또한 해당 클래스 내에서 강력한 성능을 보여줍니다:

모델 LiveCodeBench 평균 CodeContest 전체
OCR-Qwen-14B 57.7 22.6
OCR-Qwen-14B-Instruct 59.4 23.6

(출처: nvidia/OpenCodeReasoning-Nemotron-14B의 Hugging Face 모델 카드 [2])

이러한 결과는 모델 제품군 전반에 걸쳐 일관된 높은 수준의 성능을 보여주며, 개별 개발자의 일상적인 코딩 작업 지원부터 정교한 AI 기반 소프트웨어 개발 도구 구동에 이르기까지 광범위한 응용 분야에 적합함을 의미합니다. 이러한 모델이 지원하는 32K 토큰 컨텍스트 길이는 더 크고 복잡한 코드베이스 또는 문제 설명을 처리하고 이해할 수 있게 하여 유용성을 더욱 향상시킵니다.

탁월함의 엔진: OpenCodeReasoning (OCR) 데이터셋

모델은 훈련된 데이터만큼만 우수합니다. OpenCodeReasoning-Nemotron 모델의 뛰어난 추론 능력은 특화된 OpenCodeReasoning 데이터셋 [1, 2]에서 비롯됩니다. 이 데이터셋은 단순히 무작위 코드 모음이 아니라, 다음으로 구성된 신중하게 구성된 코퍼스입니다:

  1. 경쟁 프로그래밍 문제: 단순한 코드 완성 작업을 넘어 복잡한 논리적 추론, 알고리즘적 사고, 최적의 솔루션 설계를 요구하는 문제입니다.
  2. DeepSeek-R1 생성 응답: 강력한 기존 모델을 활용하여 초기 솔루션 또는 추론 경로를 생성함으로써 추가 훈련 및 개선을 위한 고품질 기반을 제공합니다.

훈련 코퍼스는 이 데이터셋에서 약 736,000개의 샘플로 구성됩니다. 데이터 수집 및 라벨링 방법은 "하이브리드: 자동, 인간, 합성" 접근 방식으로 설명되며, 고급 코드 추론 모델 훈련을 위한 데이터 품질, 다양성 및 관련성을 보장하기 위해 설계된 정교한 파이프라인을 나타냅니다.

이 데이터셋의 핵심 영향은 유사한 크기의 다른 추론 모델에 비해 30% 더 높은 토큰 효율성입니다. 이 효율성은 매우 중요합니다:

  • 컴퓨팅 비용 절감: 토큰 수가 적다는 것은 추론 및 추가 미세 조정을 위해 필요한 처리 능력이 적다는 것을 의미합니다.
  • 더 빠른 응답 시간: 더 효율적인 토큰 사용은 코드 및 설명 생성을 더 빠르게 할 수 있습니다.
  • 더 큰 문제 처리: 동일한 토큰 제한(예: 이 모델들의 32,768 컨텍스트 창) 내에서 더 의미 있는 정보와 더 복잡한 추론 단계를 인코딩하고 처리할 수 있습니다.

이러한 향상된 효율성은 강력한 추론 능력과 결합되어 OpenCodeReasoning-Nemotron 모델을 자동 버그 수정, 자연어 사양에서 복잡한 코드 생성, 알고리즘 최적화, 코드에 대한 상세 설명 생성과 같은 작업에 특히 적합하게 만듭니다.

기술 아키텍처: 내부 들여다보기

OpenCodeReasoning-Nemotron 모델은 견고하고 검증된 아키텍처를 기반으로 구축되었습니다:

  • 아키텍처 유형: 밀집 디코더 전용 트랜스포머 모델입니다. 이 아키텍처는 많은 선도적인 LLM의 표준이며 생성 작업에 효과적인 것으로 알려져 있습니다.
  • 기반 모델:
  • OpenCodeReasoning-Nemotron-32BQwen2.5-32B-Instruct의 파생 모델입니다.
  • OpenCodeReasoning-Nemotron-14BQwen2.5-14B-Instruct의 파생 모델입니다.
  • 7B 모델은 Qwen2.5-7B-Instruct 기반과 유사한 패턴을 따를 것으로 예상됩니다.
  • 파라미터: 각 모델은 320억, 140억, 70억 개의 파라미터를 가지며, 성능과 컴퓨팅 리소스의 균형을 맞출 수 있는 다양한 옵션을 제공합니다.
  • 컨텍스트 길이: 모든 모델은 입력 및 출력 모두에 대해 최대 32,768 토큰의 넉넉한 컨텍스트 길이를 지원합니다. 이를 통해 상당한 양의 코드 또는 상세한 문제 설명을 처리할 수 있습니다.
  • 입/출력:
  • 입력 유형: 텍스트
  • 입력 형식: 문자열
  • 출력 유형: 텍스트
  • 출력 형식: 문자열
  • 소프트웨어 통합: NVIDIA는 NeMo 2.3.0 런타임 엔진을 권장하며 최적의 성능을 위해 NVIDIA Ampere 및 Hopper 마이크로아키텍처를 추천합니다.

이러한 견고한 아키텍처 기반은 특화된 훈련 데이터와 결합되어 강력하고 추론 집약적인 코드 관련 작업에 최적화된 모델을 탄생시킵니다.

vLLM으로 OpenCodeReasoning-Nemotron 실행하기: 실용 가이드

OpenCodeReasoning-Nemotron 출시의 가장 흥미로운 측면 중 하나는 vLLM과의 호환성입니다. vLLM은 높은 처리량과 메모리 효율성을 갖춘 LLM 서빙 엔진으로 추론 속도를 크게 가속화할 수 있습니다. PagedAttention 메커니즘 및 기타 최적화 기능 덕분에 프로덕션 환경에 LLM을 배포하거나 까다로운 연구 워크로드에 탁월한 선택입니다.

OpenCodeReasoning-Nemotron-32B의 Hugging Face 모델 카드에는 추론 섹션 아래에 "Engine: vLLM"이 명시적으로 언급되어 있어 이 서빙 엔진에 대한 강력한 지원과 최적화를 시사합니다.

다음은 vLLM을 사용하여 OpenCodeReasoning-Nemotron 모델(예: 32B 변형)을 실행하는 방법에 대한 개념적 가이드입니다:

1. 전제 조건:

Python 환경: Python 환경(예: Python 3.8+)이 설치되어 있는지 확인하십시오.

NVIDIA 드라이버 및 CUDA: GPU 가속을 위해 적절한 NVIDIA 드라이버와 호환되는 CUDA 툴킷 버전이 설치되어 있어야 합니다.

vLLM 설치: vLLM을 설치하십시오. CUDA 지원 버전으로 설치하는 것이 좋습니다. 특정 CUDA 버전 또는 고급 설치 옵션은 공식 vLLM 문서를 참조하십시오.

pip install vllm

Transformers 설치: Hugging Face Transformers 라이브러리도 필수적입니다.

pip install transformers torch

2. vLLM을 사용한 추론을 위한 Python 스크립트:

vLLM으로 추론을 실행하려면 환경을 설정하고, 모델이 예상하는 형식에 따라 프롬프트를 준비한 다음, vLLM 엔진을 사용하여 생성을 수행해야 합니다. OpenCodeReasoning-Nemotron 모델은 Qwen2.5-Instruct의 파생 모델이므로, 관련 Hugging Face 토크나이저를 사용하여 가장 잘 처리되는 특정 프롬프트 형식이 필요합니다.

먼저 필요한 라이브러리가 설치되어 있는지 확인하십시오. Python, GPU를 사용하는 경우 적절한 NVIDIA 드라이버 및 CUDA, 그리고 다음 Python 패키지가 필요합니다:

pip install "vllm>=0.4.0" transformers torch accelerate bitsandbytes

  • vllm: 핵심 추론 엔진.
  • transformers: Hugging Face에서 토크나이저 및 모델 구성을 로드하기 위한 라이브러리.
  • torch: PyTorch 라이브러리.
  • accelerate: Hugging Face 모델 처리에 종종 유용한 유틸리티.
  • bitsandbytes: 아래의 bfloat16 예제에는 엄격히 필요하지 않지만, 나중에 탐색할 수 있는 특정 양자화 또는 dtype 옵션에 필요할 수 있습니다.

다음 스크립트는 nvidia/OpenCodeReasoning-Nemotron-32B 모델을 로드하고 vLLM을 사용하여 텍스트를 생성하는 방법을 보여줍니다. 모델의 토크나이저를 사용하여 올바른 채팅 템플릿을 적용하는 것이 중요하며, 이를 통해 프롬프트가 모델이 예상하는 대로 포맷되도록 합니다.



프롬프트 포맷팅이 핵심입니다: 지시 튜닝된 모델의 가장 중요한 단계는 올바른 프롬프트 포맷팅입니다. 위에서 보여준 것처럼 tokenizer.apply_chat_template(..., add_generation_prompt=True)를 사용하는 것이 가장 신뢰할 수 있는 방법입니다. 이를 통해 모델이 일관된 출력을 위해 예상하는 모든 특수 토큰 및 역할 표시자(예: <|im_start|>user, <|im_start|>assistant, <|im_end|>)가 올바르게 배치됩니다.

  • trust_remote_code=True: Nemotron이 기반으로 하는 Qwen 모델 제품군은 Hugging Face Transformers(vLLM이 내부적으로 모델 로딩에 사용)를 통해 로드될 때 종종 사용자 정의 코드 실행을 요구합니다. 따라서 trust_remote_code=True는 일반적으로 AutoTokenizaer.from_pretrained()LLM() 모두에 필요합니다. 모델 소스(이 경우 NVIDIA의 공식 Hugging Face 저장소)를 신뢰하는 경우에만 이 플래그를 사용하십시오.
  • GPU 메모리 요구 사항: 32B 파라미터 모델은 상당하며 상당한 GPU VRAM을 요구합니다(예: NVIDIA H100/A100 80GB GPU가 이상적입니다).
  • dtype="bfloat16" (NVIDIA Ampere 아키텍처 이상) 또는 dtype="float16"을 사용하면 float32에 비해 메모리 관리에 도움이 되며 종종 성능도 향상됩니다. OpenCodeReasoning-Nemotron-32B 모델 카드에는 Transformers 파이프라인 예제에 torch_dtype: torch.bfloat16이 언급되어 있습니다.
  • 메모리 부족 오류가 발생하는 경우, 더 작은 모델 변형(14B 또는 7B)을 사용하거나, 이 모델에 대해 사용 가능한 경우 vLLM이 지원하는 양자화 옵션을 탐색해 보십시오.
  • dtype 사양: LLM()을 초기화할 때 dtype="auto"를 설정하면 vLLM이 적절한 데이터 유형을 선택할 수 있습니다. 그러나 dtype="bfloat16" 또는 dtype="float16"을 명시적으로 설정하면 더 많은 제어를 할 수 있으며 종종 권장됩니다. 최상의 결과를 위해 모델의 기본 정밀도 또는 권장 추론 정밀도와 일치시키십시오.
  • 텐서 병렬 처리: 여러 GPU에 걸쳐 매우 큰 모델을 배포하기 위해 vLLM은 텐서 병렬 처리를 지원합니다. LLM()tensor_parallel_size 인수로 이를 구성할 수 있습니다. 단일 GPU의 경우 기본값(tensor_parallel_size=1)이 적절합니다.
  • 모델 다운로드: 스크립트를 처음 실행하면 vLLM(Hugging Face 라이브러리를 통해)이 Hugging Face Hub에서 모델 가중치 및 토크나이저 파일을 다운로드합니다. 이는 큰 다운로드(32B 모델의 경우 수십 기가바이트)일 수 있으며 인터넷 연결에 따라 상당한 시간이 소요될 수 있습니다. 이후 실행에서는 캐시된 파일을 사용합니다.
  • add_generation_prompt=True: 추론을 위해 tokenizer.apply_chat_template을 사용할 때 add_generation_prompt=True를 설정하는 것이 필수적입니다. 이를 통해 템플릿이 모델에게 이제 응답을 생성할 차례임을 알리는 토큰 시퀀스를 추가하도록 합니다(예: Qwen2의 경우 <|im_start|>assistant\\\\n 추가). 이것이 없으면 모델이 응답을 올바르게 또는 전혀 생성하지 않을 수 있습니다.
  • 샘플링 파라미터: 출력의 창의성, 다양성 및 길이를 제어하려면 SamplingParams에서 temperature, top_p, max_tokens를 조정하십시오. 코드 생성의 경우 더 결정적이고 사실적인 출력을 위해 낮은 온도(예: 0.0 ~ 0.4)가 종종 선호됩니다. stop 파라미터는 생성될 경우 생성을 중지시키는 시퀀스(예: 턴 종료 토큰 <|im_end|>)를 지정하는 데 사용할 수 있습니다.

결론: NVIDIA, 코딩 분야 AI의 새로운 시대를 열다

NVIDIA의 OpenCodeReasoning-Nemotron 모델은 코드 생성 및 추론을 위한 강력한 AI를 제공하며 중요한 도약을 나타냅니다. 특화된 OpenCodeReasoning 데이터셋과 인상적인 토큰 효율성에 힘입은 강력한 성능은 개발자와 연구자에게 최첨단 도구를 제공합니다.

Apache 2.0 오픈 소스 라이선스는 상업적 및 학술적 목적 모두를 위해 이러한 고급 모델에 대한 접근성을 민주화하는 게임 체인저입니다. vLLM과 같은 도구와의 쉬운 통합은 빠른 도입을 보장합니다.

궁극적으로 OpenCodeReasoning-Nemotron은 소프트웨어 개발을 가속화하고 생산성을 높이며 AI 지원 코딩 분야의 혁신을 촉진하여 이 분야의 새롭고 더욱 협력적인 장을 열 것입니다.

💡
아름다운 API 문서를 생성하는 훌륭한 API 테스트 도구를 원하십니까?

최대 생산성으로 개발자 팀이 함께 작업할 수 있는 통합 올인원 플랫폼을 원하십니까?

Apidog는 귀하의 모든 요구를 충족하며, 훨씬 저렴한 가격으로 Postman을 대체합니다!
button