메인 콘텐츠로 건너뛰기
page thumbnail

Devstral 2: 차세대 코드 LLM과 실전 활용 가이드

요약

개요

Devstral 2는 프랑스 AI 스타트업 미스트랄(Mistral AI)이 공개한 차세대 코드 특화 대규모 언어 모델 패밀리로, 대형 모델인 Devstral 2(123B 파라미터)와 경량 모델인 Devstral Small 2(24B 파라미터)로 구성된다23. 두 모델 모두 길이 256K 토큰의 초대형 컨텍스트 윈도우를 제공해, 단일 요청으로 대형 코드 저장소 전체를 분석하고 변경사항을 설계할 수 있도록 설계되어 있다12.

Generated Image

Devstral 2는 SWE-bench Verified 기준 72.2% 점수를 기록하며 현존 오픈 소스 계열 코드 모델 중 최상위 수준의 성능을 보이고, Devstral Small 2 역시 68.0%로 비슷한 크기의 모델 대비 경쟁력 있는 성능을 제공한다12. 두 모델은 각각 수정된 MIT 라이선스와 Apache 2.0 라이선스를 채택해 상용·비상용 환경에서 폭넓게 활용할 수 있으며, Mistral Vibe CLI와의 결합을 통해 "에이전트형" 코드 자동화 워크플로를 구현하는 데 초점을 맞추고 있다23.

Devstral 2의 설계와 주요 특징

Devstral 2는 123억이 아니라 1230억(123B) 파라미터를 가진 밀집(dense) 트랜스포머 아키텍처로, 특정 프로그래밍 언어에 국한되지 않고 다양한 언어와 프레임워크를 다룰 수 있도록 광범위한 코드와 리포지토리로 학습된 것으로 알려져 있다12. 특히 SWE-bench Verified 72.2%라는 수치는 공개 가중치(open-weight) 모델 중 최상위권에 위치하며, 단순 코드 자동완성 수준을 넘어 버그 수정, 리팩터링, 레거시 코드 현대화 같은 복합 작업을 수행하는 "코드 에이전트"를 지향한다12.

이 모델의 가장 큰 특징 중 하나는 256K 토큰이라는 매우 긴 컨텍스트 윈도우다12. 이는 수십~수백 개의 파일로 구성된 대규모 코드베이스 전체를 한 번에 모델 입력에 포함시켜, 개별 파일이 아닌 시스템 전체 구조 관점에서 코드를 이해하고 변경사항을 제안할 수 있게 해준다. 예를 들어, 한 서비스의 API 계층, 도메인 계층, 데이터 접근 계층을 동시에 읽어들이고, 변경 시 각 계층에서 어떤 수정이 필요한지 일관된 제안을 할 수 있다.

또 하나의 핵심은 "에이전틱(agentic) 워크플로" 지원이다. Devstral 2는 코드베이스를 탐색하며 여러 파일에 걸친 변경을 설계하고, 테스트 실패나 컴파일 에러를 기반으로 재시도와 수정 과정을 반복하도록 튜닝되어 있다12. 도구 호출·테스트 실행·결과 분석을 반복하는 에이전트 프레임워크와 결합하면, 개발자가 고수준의 요구사항만 제시하고 모델이 여러 차례 수정과 검증을 수행하도록 구성할 수 있다.

성능과 경쟁 모델 비교

Devstral 2는 공개 평가와 미스트랄 내부·제3자 평가에서 여러 상용·오픈 모델과 비교되었다. 공식 발표에 따르면 Devstral 2는 SWE-bench Verified에서 72.2%를 기록해, DeepSeek V3.2 같은 대형 오픈 모델과 비교해 비슷하거나 더 나은 성능을 보이면서도 파라미터 수 기준 5배 더 작다12. 또 Kimi K2와 비교하면 8배 더 작지만, 동일한 평가 지표에서 동급 이상의 성능을 목표로 설계되었다고 소개된다12.

Devstral SWE-bench 성능 vs 모델 크기 (다크 테마)

이미지 출처: Introducing: Devstral 2 and Mistral Vibe CLI. | Mistral AI

이 그림에서 볼 수 있듯, Devstral 2는 파라미터 수 대비 SWE-bench 성능 비율이 높아 "작지만 강한(compact yet performant)" 모델이라는 포지셔닝을 갖는다2. 이는 데이터센터 GPU 비용과 추론 비용을 줄이면서도 고품질 코딩 어시스턴트를 제공하려는 전략과 맞닿아 있다.

다만 미스트랄 자체 평가에 따르면 Anthropic의 Claude Sonnet 4.5와의 비교에서는 여전히 뒤처지는 부분이 있어, 폐쇄형 상위 모델과의 격차는 일부 남아 있는 것으로 나타난다2. 그럼에도 오픈 가중치 모델 중에서는 최첨단(SOTA)에 가깝고, 실제 개발 워크플로에서의 도구 호출 성공률이나 에이전트 프레임워크 내 "운전 능력" 면에서는 매우 경쟁력이 높다는 평가가 Cline과 같은 파트너 도구로부터 제시되었다2.

Devstral Small 2: 로컬·온프레미스용 경량 모델

Devstral Small 2는 240억(24B) 파라미터를 가진 경량 버전으로, 기본 구조와 컨텍스트 길이(256K)는 Devstral 2와 동일하게 유지하면서 단일 GPU 또는 고성능 CPU 환경에서도 구동 가능하도록 설계되었다12. 미스트랄은 이 모델이 RTX 4090급 GPU 한 장이나 32GB RAM을 가진 맥에서 구동 가능하다고 언급하며, 로컬·온프레미스 배포에 최적화되었다고 강조한다1.

성능 면에서 Devstral Small 2는 SWE-bench Verified 기준 68.0%를 기록해, 자신보다 5배 이상 큰 일부 모델과 비슷한 수준에 도달하며 "작지만 강력한 코드 모델"로 포지셔닝된다12. 실제 사용 사례에서는, 대규모 에이전트형 리팩터링이 아니라 중·소규모 프로젝트의 버그 수정, 리팩터링, 코드 리뷰 지원 등에서 충분히 높은 품질을 제공할 수 있는 수준이다.

또 Devstral Small 2는 이미지 입력을 지원하는 멀티모달 기능을 제공해, 다이어그램이나 UI 시안, 스크린샷을 기반으로 코드를 생성하거나 분석할 수 있는 점도 특징이다12. 예를 들어 시퀀스 다이어그램 이미지를 입력하고, 그 구조에 맞는 서비스·리포지토리 레이어 코드 골격을 생성하도록 지시할 수 있다. 이 모델은 Apache 2.0 라이선스로 공개되어 상업적 활용에 제약이 적고, 자체 제품에 모델을 임베딩하거나 사내 전용 코딩 어시스턴트를 구축하기에 유리하다12.

라이선스, 비용, 배포 요구사항

Devstral 2는 수정된 MIT 라이선스로, Devstral Small 2는 Apache 2.0 라이선스로 제공된다23. 두 라이선스 모두 비교적 관대한 오픈 소스 라이선스로, 상용 서비스에 통합하거나 재배포하는 것이 가능하며, 특히 Apache 2.0은 특허 조항까지 포함해 기업 환경에서 선호되는 라이선스 중 하나다.

API 가격 정책 측면에서 Devstral 2는 초기에는 무료로 제공되며, 이후에는 입력 토큰 100만 개당 0.40달러, 출력 토큰 100만 개당 2.00달러로 책정될 예정이다23. Devstral Small 2는 보다 저렴하게 입력 0.10달러, 출력 0.30달러 수준으로 계획되어 있어, 비용 민감한 환경에서는 Small 2를 메인으로 쓰고 특정 고난도 작업에만 Devstral 2를 사용하는 하이브리드 전략이 가능하다23.

배포 요구사항을 보면 Devstral 2는 최소 H100급 GPU 4장 이상을 권장하는 등 데이터센터급 인프라를 전제로 한다23. 반면 Devstral Small 2는 단일 GPU나 CPU 전용 환경에서도 구동 가능해, 온프레미스 서버나 고성능 워크스테이션, 개발자 개인 장비에까지 배포 범위가 내려간다12. 또한 미스트랄은 Devstral 계열이 온프레미스 배포와 커스텀 파인튜닝에 적합하도록 설계되었다고 밝히며, NVIDIA의 NIM 환경 지원 계획도 함께 소개하고 있다2.

Devstral 2와 Vibe CLI: "에이전트형" 개발 워크플로

Devstral 2의 진가가 드러나는 부분은 Mistral Vibe CLI와의 결합이다. Vibe CLI는 터미널 네이티브 코딩 어시스턴트로, Devstral을 에이전트처럼 활용해 프로젝트 전체를 이해하고 파일을 수정·생성·삭제하며, Git과 연동된 버전 관리, 코드 검색, 명령 실행까지 수행할 수 있는 오픈 소스 도구다123.

Vibe는 프로젝트 디렉터리 구조와 Git 상태를 자동으로 스캔해 컨텍스트를 구축하고, 이 정보를 기반으로 모델에게 보다 풍부한 맥락을 제공한다12. 사용자 입장에서는 자연어로 "이 서비스의 인증 흐름을 정리하고 JWT 기반으로 변경해줘"라고 요청하면, Vibe가 관련 파일을 찾고, Devstral이 설계·수정 제안을 생성하며, 필요 시 테스트와 커밋까지 이어지는 수동·자동 워크플로를 구성할 수 있다.

커맨드 인터페이스도 개발자 친화적으로 설계되어 있다. 파일을 @로 참조해 자동완성을 사용하고, !로 셸 명령을 실행하며, /config, /theme 같은 슬래시 명령으로 설정을 조정할 수 있다1. 프로젝트 인식(context-aware)과 지속적인 히스토리 저장 기능 덕분에, 단발성 질답이 아니라 "대화를 이어가는 느낌"으로 큰 리팩터링 작업을 점진적으로 수행할 수 있는 점이 특징이다13.

Devstral 2를 사용하는 방법: API와 로컬 실행

Devstral 2와 Devstral Small 2는 모두 Mistral API를 통해 쉽게 사용할 수 있으며, Python SDK인 mistralai를 이용하면 채팅 형태의 코드 요청을 간단한 코드로 보낼 수 있다1. 예를 들어 Devstral 2에 특정 파이썬 함수를 더 빠르게 리팩터링해 달라고 요청하는 코드는 다음과 같은 형태가 될 수 있다(모델 이름과 프롬프트는 예시):

pip install mistralai

from mistralai import Mistral
from getpass import getpass

api_key = getpass("Enter your Mistral API Key: ")

client = Mistral(api_key=api_key)
response = client.chat.complete(
    model="devstral-2512",  # Devstral 2 모델 이름 예시
    messages=[
        {"role": "system", "content": "You are a Python code assistant."},
        {
            "role": "user",
            "content": (
                "다음 함수를 더 빠르게 동작하도록 리팩터링해줘:\n"
                "```python\n"
                "def compute_numbers(n):\n"
                "    result = []\n"
                "    for i in range(n):\n"
                "        if i % 100 == 0:\n"
                "            result.append(i**2)\n"
                "    return result\n"
                "```"
            ),
        },
    ],
)

print(response.choices[0].message.content)

이와 비슷한 방식으로 Devstral Small 2도 model="devstral-small-2507"처럼 모델 이름만 바꿔 호출할 수 있으며, 예를 들어 문자열에서 첫 번째 비중복 문자를 찾는 함수를 요청하는 식으로 활용할 수 있다1.

Devstral 2는 허깅페이스 Transformers 라이브러리를 통해 로컬에서도 실행 가능하다. 하드웨어가 충분하다면 "Devstral 2 Instruct" 가중치를 내려받아 직접 추론을 돌릴 수 있으며, 대략적인 코드는 다음과 같은 형태로 구성된다1.

pip install transformers

from transformers import MistralForCausalLM, MistralCommonBackend
import torch

model_id = "mistralai/Devstral-2-123B-Instruct-2512"

# 토크나이저와 모델 로드
tokenizer = MistralCommonBackend.from_pretrained(
    model_id, trust_remote_code=True
)
model = MistralForCausalLM.from_pretrained(
    model_id, device_map="auto", trust_remote_code=True
)

# 메모리 절감을 위한 dtype 설정 (GPU 사용 시)
model = model.to(torch.bfloat16)

prompt = (
    "두 개의 정렬된 정수 리스트를 하나의 정렬된 리스트로 합치는 "
    "파이썬 함수를 작성해줘:\n"
    "```python\n"
    "# 입력: list1, list2 (둘 다 정렬된 상태)\n"
    "```"
)

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=100)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Devstral Small 2는 파라미터 수가 훨씬 적기 때문에, 더 적은 GPU 메모리나 CPU-only 환경에서 실행할 수 있다는 점이 다르며, 자체 서비스에 내장하기 위한 온프레미스 배포에 특히 적합하다12.

Devstral 2 활용 시나리오와 실무 팁

Devstral 2는 단순 "자동완성"을 넘어 전체 코드베이스를 다루는 에이전트형 도구에 잘 맞는다. 예를 들어, 대규모 모놀리식 애플리케이션을 점진적으로 모듈화하거나, 레거시 프레임워크(예: 오래된 Django/ Spring 버전)를 최신 버전으로 마이그레이션하면서 관련된 여러 파일을 동시에 수정해야 하는 작업에 적합하다12. 테스트 코드를 함께 읽히며 실패 원인을 분석하고 수정 패치를 제안하도록 구성하면, 기존에 사람이 수동으로 반복하던 디버깅 루프의 상당 부분을 자동화할 수 있다.

Devstral Small 2는 개인·팀 단위의 로컬 개발 환경에서 "빠른 피드백 루프"를 제공하는 데 강점이 있다. 코드 리뷰 보조, 리팩터링 제안, 새로운 기능의 기본 구현 골격 생성, 다이어그램 기반 코드 스캐폴딩 등 비교적 중간 규모의 작업에서 GPU 한 장으로 충분한 성능을 제공하므로, 민감한 사내 코드가 외부로 나가지 않도록 하는 보안 요구사항도 만족시킬 수 있다12.

실무에서 Devstral 계열을 사용할 때는, Mistral이 권장하는 것처럼 온도(temperature)를 0.2 수준으로 낮게 설정해 일관성 있고 결정적인 코드 출력을 유도하는 것이 좋다2. 또한 Vibe CLI나 Kilo Code, Cline 같은 에이전트 프레임워크와 결합해 도구 호출과 테스트 실행을 자동화하면, 모델이 스스로 실패를 감지하고 재시도하는 루프를 구축할 수 있어, 단일 프롬프트·응답보다 훨씬 강력한 프로덕션 워크플로를 설계할 수 있다2.

참고

1All About Mistral's DevStral 2, DevStral Small & Vibe CLI - https://www.analyticsvidhya.com/blog/2025/12/mistral-devstral-2-and-vibe-cli/

2Introducing: Devstral 2 and Mistral Vibe CLI. | Mistral AI - https://mistral.ai/news/devstral-2-vibe-cli

3Mistral AI surfs vibe-coding tailwinds with new coding models - https://techcrunch.com/2025/12/09/mistral-ai-surfs-vibe-coding-tailwinds-with-new-coding-models/