최근 공개된 Cogito v1 프리뷰의 3B 파라미터 모델이 개발자 커뮤니티에서 화제를 모으고 있다. HumanEval 코딩 평가에서 동급인 Qwen2.5를 능가했을 뿐 아니라 다양한 표준 벤치마크에서도 우수한 성적을 기록했다.
Cogito의 설계 철학
Cogito LLM은 명령어 튜닝된 생성형 모델군이다. 기존 오픈소스 모델과의 차별점은 하이브리드 추론 아키텍처에 있다. 두 가지 동작 방식을 제공한다.
- 표준 모드: 입력에 즉시 응답을 생성하는 전통적 방식
- 추론 모드: 응답 전 자기 성찰 단계를 거쳐 최적의 해결책 도출
훈련 과정에서는 "반복적 증류와 확장(Iterative Distillation and Amplification)" 기법이 적용되었다. 이는 모델이 스스로를 개선하며 능력을 향상시키는 방식이다.
3B 파라미터로 달성한 스펙
| 영역 | 특성 |
|---|---|
| 코드 생성 | 프로그래밍 작업 특화 훈련 |
| STEM | 과학·기술·공학·수학 문제 해결 |
| 명령 수행 | 복잡한 지시 정확히 이행 |
| 다국어 | 30개 이상 언어 지원 |
| 컨텍스트 | 128K 토큰 장문 맥락 처리 |
벤치마크 분석
표준 모드에서는 Llama, Qwen 등 동급 모델의 지시 튜닝 버전과 비교했고, 추론 모드에서는 DeepSeek-R1 증류판과 Qwen의 QwQ와 격돌했다.
HumanEval 결과
코드 생성 능력의 대표 지표인 HumanEval에서 Cogito 3B는 다음 성과를 보였다:
- 동일 파라미터 규모 내 Qwen2.5 대비 상위 성능
- 구문적 정확성과 논리적 일관성을 갖춘 코드 출력
- 문제 의도 정확 파악 및 적절한 알고리즘 선택
종합 평가
코딩 외 영역에서도 다음 능력을 확인했다:
- 중등 난이도 수학 문제 단계별 풀이
- 상식 기반 추론의 안정적 수행
- 다국어 질의의 정확한 의미 파악
- 다단계 복합 명령의 정확한 실행
Ollama로 시작하기
설치 및 실행
# Ollama 설치 후 터미널에서 실행
ollama run cogito:3b
API 호출 예시
import requests
import json
def query_cogito(prompt_text, reasoning=False):
endpoint = "http://localhost:11434/api/generate"
payload = {
"model": "cogito:3b",
"prompt": prompt_text,
"stream": False,
"options": {
"temperature": 0.3 if reasoning else 0.7
}
}
resp = requests.post(endpoint, json=payload)
return resp.json()["response"]
# 표준 모드 사용
answer = query_cogito("Rust로 스택 자료구조를 구현해줘")
# 추론 모드 활용 (복잡한 문제)
complex_query = """
다음 알고리즘 문제를 해결해줘:
배열 nums와 정수 k가 주어질 때,
합이 k인 연속 부분 배열의 최대 길이를 구하시오.
"""
answer = query_cogito(complex_query, reasoning=True)
실전 활용 사례
코드 생성: 회문 판별 함수
프롬프트: "Go 언어로 대소문자와 공백을 무시하는 회문 검사 함수를 작성해줘. 단위 테스트도 포함해."
package palindrome
import (
"strings"
"unicode"
)
// Check verifies if input reads identical forward and backward,
// disregarding spaces and letter casing.
func Check(input string) bool {
filtered := make([]rune, 0, len(input))
for _, r := range input {
if !unicode.IsSpace(r) {
filtered = append(filtered, unicode.ToLower(r))
}
}
length := len(filtered)
for i := 0; i < length/2; i++ {
if filtered[i] != filtered[length-1-i] {
return false
}
}
return true
}
// Test suite omitted for brevity
수학 문제: 기하학 계산
프롬프트: "직육면체의 가로 5cm, 세로 3cm, 높이 4cm일 때 표면적과 부를 구하는 과정을 보여줘."
모델은 단계별 도출 과정을 제시한다:
- 부피 V = 5 × 3 × 4 = 60 cm³
- 각 면적: 앞뒤(5×4)×2=40, 좌우(3×4)×2=24, 위아래(5×3)×2=30
- 표면적 S = 40 + 24 + 30 = 94 cm²
기술 개념 설명
프롬프트: "초등학생도 이해할 수 있게 동적 프로그래밍이 뭔지 설명해줘."
Cogito는 다음과 같이 비유를 활용한다: "큰 문제를 작은 조각으로 나누는 것이 마치 레고를 조립하기 전에 부품을 정리하는 것과 같다. 한 번 계산한 결과는 메모해 두었다가 재사용하므로, 같은 계산을 반복하지 않는다."
활용 팁
프롬프트 최적화
| 비효율적 | 효율적 |
|---|---|
| "코드 짜줘" | "JavaScript로 배열에서 중복 요소를 제거하되 원래 순서를 유지하는 함수를 작성해줘" |
| "버그 고쳐줘" | "이 Python 코드에서 인덱스 에러가 발생하는 원인과 수정 방법을 알려줘: [코드 첨부]" |
추론 모드 전략
복잡도가 높은 작업에 추론 모드를 활용하면 응답 시간은 약간 늘어나지만 결과의 정확도가 크게 향상된다. 디버깅, 알고리즘 설계, 수학 증명 등에 특히 유효하다.
작업 분할 접근법
복합 문제는 하위 작업으로 분해하여 순차적으로 해결한다. 예를 들어 웹 애플리케이션 개발을 요청할 때, 데이터베이스 스키마 설계 → API 엔드포인트 정의 → 프론트엔드 구현 순으로 단계를 나누어 질의한다.
동급 모델 대비 위치
| 모델 | 파라미터 | HumanEval | 강점 |
|---|---|---|---|
| Cogito 3B | 3B | 우수 | 추론 품질, 파라미터 효율 |
| Qwen2.5 | 3B | 양호 | 다국어, 일반 지식 |
| Llama 3.2 | 3B | 양호 | 생태계, 배포 경험 |
Cogito 3B의 핵심 강점은 특정 기술 영역에서의 전문성이다. 범용 지식보다는 코딩과 STEM 작업에 집중된 최적화가 이루어져 있어, 개발자 워크플로우에 더 높은 부가가치를 제공한다.
적합한 사용 시나리오
- 로컬 개발 환경: GPU 메모리 제약 있는 환경에서 코딩 어시스턴트로 활용
- 교육 현장: 프로그래밍 개념 설명 및 과제 풀이 지원
- 빠른 프로토타이핑: 초기 코드 스켈레톤 생성 및 검증
- 다국어 기술 문서: 30개 이상 언어로의 기술 내용 이해와 생성
기업 규모의 대규모 배포나 초고성능 요구 시나리오에서는 더 큰 모델이나 전용 솔루션을 검토해야 한다.