안녕하세요,
최근 국내 대표 게임 기업 NC소프트가 자사 인공지능 연구 조직인 NC AI를 통해 한국어에 특화된 멀티모달 AI 모델을 공개했습니다. 이 모델은 중국 알리바바의 Qwen3 모델을 기반으로 파인튜닝된 것으로, 한국어 처리 능력을 대폭 향상시킨 것이 특징입니다.
특히 이미지와 텍스트를 함께 이해하는 비전-언어 모델(VLM) 구조를 채택해, 문서 인식, OCR, 복잡한 시각 정보 해석 등 다양한 활용이 가능한 형태로 공개되었습니다.
이번 포스팅에서는 NC소프트가 공개한 대표 모델 중 하나인 VARCO‑VISION 2.0의 구조와 특징, 그리고 실제 사용 예시에 대해 자세히 살펴보겠습니다.
Varco-Vision 2.0 이란
2025년 7월 16일, 엔씨소프트의 인공지능 자회사 NC AI는 한국어 기반 멀티모달 AI 모델인 VARCO‑VISION 2.0을 공개했습니다. 이 모델은 알리바바의 Qwen 모델을 기반으로 파인튜닝한 비전-언어 모델(VLM)로, 이미지와 텍스트를 함께 이해하여 질문에 응답할 수 있는 기능을 갖추고 있습니다. 특히 여러 장의 이미지를 동시에 분석할 수 있어, 복잡한 문서, 표, 차트 등의 정보도 효과적으로 처리할 수 있습니다.
VARCO-VISION: 동급 오픈소스 VLM 모델 중 한국어 1위
HuggingFace에 공개된 VARCO-VISION-14B 모델의 테크니컬 리포트를 요약하였습니다.
ncsoft.github.io
NC AI는 총 4종의 모델을 오픈소스로 공개하겠다고 밝혔으며, 이 중 14B 모델과 Video Embedding 모델은 7월 16일에, 1.7B 모델과 1.7B OCR 모델은 7월 28일에 공개되었습니다.
[공개된 모델 4종]
- VARCO-VISION-2.0-14B : 140억 개의 매개변수를 가진 대규모 모델, 복잡한 멀티이미지 분석과 고도화된 추론이 필요한 업무용 환경에 최적화 (VARCO-VISION-2.0-14B 허깅페이스)
- VARCO-VISION-2.0-1.7B : 17억 개의 매개변수를 가진 경량 모델, 스마트폰이나 PC 등 개인 기기에서도 원활하게 작동하도록 설계 (VARCO-VISION-2.0-1.7B 허깅페이스)
- VARCO-VISION-1.7B-OCR : 광학 문자 인식(OCR) 작업에 특화된 모델, 노이즈나 흐림이 있는 이미지에서도 정밀한 문자 인식 가능 (VARCO-VISION-2.0-1.7B-OCR 허깅페이스)
- VARCO-VISION-Embedding : 텍스트·이미지·비디오 간 의미 유사도 계산에 특화된 모델, 이미지·영상 기반 검색 기능에 최적화 (VARCO-VISION-2.0-Embedding 허깅페이스)
주요 특징
1. 복수 이미지 처리 (Multi‑Image Understanding)
- 다수의 이미지를 동시에 입력받아 전체 맥락을 분석하는 기능을 갖추고 있습니다.
- 복잡한 문서, 표, 차트 등이 섞인 이미지를 통합적으로 이해할 수 있어, 단일 이미지 기반의 분석보다 더 넓은 정보 인식과 해석이 가능합니다.
2. 한국어 중심 고도화 (Korean Language Specialization)
- 한국어 텍스트 생성 및 문화적 맥락 이해 능력이 크게 향상되었습니다.
- 영어·한국어 혼합 환경에서도 자연스럽게 응답할 수 있으며, 한국어 OCR 및 문서 해석에서 최고 수준의 성능을 기록하고 있습니다.
3. AnyRes 기반 고해상도 처리
- 다양한 해상도의 이미지를 조각으로 분할하여 처리하는 AnyRes 입력 방식을 채택하였습니다.
- 흐릿하거나 노이즈가 있는 환경에서도 텍스트 인식 정확도를 유지할 수 있으며, 스크린샷, 사진, 문서 스캔본 등 다양한 상황에 대응할 수 있습니다.
라이선스
VARCO‑VISION-2.0의 라이선스는 CC BY-NC 4.0 ( Creative Commons Attribution-NonCommercial 4.0 International)으로 제공됩니다. 이에 따라 해당 모델은 비상업적 용도에 한해 자유롭게 사용할 수 있으며, 사용 시 반드시 저작자 표시(출처 명시)를 해야 합니다.
단, 상업적 이용은 명시적으로 금지되어 있어, 수익을 목적으로 한 서비스, 제품, 콘텐츠에 해당 모델을 직접 활용하는 것은 허용되지 않습니다. 예를 들어, 광고 수익이 발생하는 웹사이트, 유료 소프트웨어나 기업 서비스에서의 직접적 활용은 제한됩니다.
따라서 VARCO‑VISION 2.0을 활용하고자 하는 경우에는, 목적이 비영리적 연구, 개인 프로젝트, 비상업적 학습·교육 등에 해당하는지 반드시 확인해야 하며, 상업적 이용을 원할 경우에는 엔씨소프트 또는 NC AI 측의 별도 허가를 받아야 합니다.
자세한 라이선스 전문은 공식 CC BY-NC 4.0 라이선스 페이지에서 확인할 수 있습니다.
모델 실행 가이드
NCSOFT가 허깅페이스에 공개한 VARCO‑VISION‑1.7B‑OCR 모델을 활용하여, 로컬 환경에서 간단한 사용 테스트를 진행해보겠습니다.
이 OCR 모델은 <ocr> 프롬프트와 함께 이미지를 입력하면, 이미지 내 텍스트를 인식한 결과를 반환합니다. 즉, 입력된 이미지에서 어떤 위치에 어떤 글자가 있는지를 식별해주는 기능을 수행합니다.
[실행 환경]
- 운영체제 : Windows 11
- python : 3.10.11
- torch : 2.6.0 + cu126
- transformers : 4.54.0
- accelerate : 1.9.0
- matplotlib : 3.10.3 (OCR 결과를 이미지로 시각화하는 데 사용)
- GPU : NVIDIA GeForce RTX 4060 Ti
[모델 다운로드]
아래 NCSOFT 허깅페이스에서 VARCO‑VISION‑1.7B‑OCR 모델을 다운로드하실 수 있습니다. 아래 이미지에 표시된 파일을 모두 다운로드하여 동일한 디렉토리에 저장합니다.
[패키지 설치]
아래 명령어를 통해 해당 모델을 실행하는 데 필요한 패키지를 설치합니다.
# Windows PowerShell
pip install transformers accelerate matplotlib
pip install torch==2.6.0 torchvision==0.21.0 --index-url https://download.pytorch.org/whl/cu126
[코드 작성]
필요한 패키지 설치가 완료되면, 아래와 같이 모델을 실행하기 위한 코드를 작성합니다.
import torch
import re
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont
from transformers import AutoProcessor, LlavaOnevisionForConditionalGeneration
# 모델 경로 설정
model_name = "Path/to/varco-vision-2.0-1.7b-ocr" # 로컬 모델경로 (사용자 환경에 맞게 수정)
image_path = "Path/to/varco-vision-2.0-1.7b-ocr/examples/test1.jpg" # 테스트에 사용할 이미지 파일
# 모델 및 프로세서 로딩
model = LlavaOnevisionForConditionalGeneration.from_pretrained(
model_name,
torch_dtype=torch.float16,
attn_implementation="sdpa",
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_name)
# 이미지 로딩 및 OCR 최적화 리사이즈
image = Image.open(image_path).convert("RGB")
w, h = image.size
target_size = 2304
if max(w, h) < target_size:
scaling_factor = target_size / max(w, h)
new_w = int(w * scaling_factor)
new_h = int(h * scaling_factor)
image = image.resize((new_w, new_h))
# 대화 템플릿 구성
conversation = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{"type": "text", "text": "<ocr>"},
],
},
]
# 입력 텐서 생성
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt"
).to(model.device, torch.float16)
# 모델 추론
generate_ids = model.generate(**inputs, max_new_tokens=1024)
generate_ids_trimmed = [
out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generate_ids)
]
output = processor.decode(generate_ids_trimmed[0], skip_special_tokens=False)
print(output)
# ----------- OCR 결과 시각화 시작 -----------
# 결과 문자열에서 <char>, <bbox> 추출
matches = re.findall(r"<char>(.*?)</char><bbox>(.*?)</bbox>", output)
# 이미지 복사 및 그리기 설정
vis_image = image.copy()
draw = ImageDraw.Draw(vis_image)
# 시스템 폰트 로딩 (Windows 기준: Malgun Gothic, 실패 시 기본폰트)
try:
font = ImageFont.truetype("malgun.ttf", size=18)
except:
font = ImageFont.load_default()
img_w, img_h = vis_image.size
# 각 char + bbox 시각화
for text, bbox_str in matches:
x1, y1, x2, y2 = map(float, bbox_str.split(","))
x1 *= img_w
y1 *= img_h
x2 *= img_w
y2 *= img_h
draw.rectangle([x1, y1, x2, y2], outline="red", width=2)
draw.text((x1, y1 - 20), text, fill="blue", font=font)
# 이미지 출력
plt.figure(figsize=(12, 12))
plt.imshow(vis_image)
plt.axis("off")
plt.title("OCR Result Visualization - VARCO-VISION 2.0")
plt.show()
[실행 결과]
VARCO‑VISION‑1.7B‑OCR 모델을 로컬 환경에서 실행한 결과, 모델 구동에 필요한 GPU 메모리(VRAM)는 약 11.3GB였습니다. 이미지 처리 시간은 입력 이미지의 복잡도에 따라 달라졌습니다. 예를 들어, 첫 번째 테스트 이미지의 결과를 생성하는 데 약 30초, 두 번째 이미지의 경우에는 약 1분 30초가 소요되었습니다.
OCR 인식 성능은 이미지의 특성에 따라 차이를 보였습니다.
- 표지판처럼 글자가 적고 명확한 이미지의 경우, 인식 정확도가 매우 높아 원하는 정보를 정확하게 추출할 수 있었습니다.
- 반면, 택배 송장처럼 글자가 많고 복잡한 이미지에서는 일부 텍스트가 누락되는 현상이 있었지만, 흐리거나 선명하지 않은 글씨도 비교적 정확하게 인식하는 모습을 확인할 수 있었습니다.
전반적으로, 모델은 단순하고 선명한 이미지에 대해 우수한 성능을 보였으며, 복잡한 이미지에 대해서도 일정 수준 이상의 인식 능력을 보여주었습니다.
아래는 테스트에 사용된 두 가지 이미지와 그에 따른 결과 입니다.
VARCO‑VISION‑1.7B‑OCR 모델은 로컬 환경에서도 원활하게 실행 가능한 경량 비전-언어 모델로, 한글과 영어 모두에 대해 높은 인식 정확도를 보여주었습니다. 특히 표지판, 문서, 송장 등 다양한 이미지에서 텍스트를 안정적으로 추출했으며, 흐릿하거나 복잡한 구조의 이미지에서도 일정 수준 이상의 성능을 확인할 수 있었습니다.
NCSOFT가 공개한 이 모델은 한글과 영어가 혼합된 환경에서도 자연스럽고 정확한 OCR 결과를 제공하기 때문에, 연구·비상업적 용도의 한국어 기반 OCR 프로젝트에 매우 유용하게 활용될 수 있을 것으로 보입니다.
감사합니다. 😊
'AI 소식 > 오픈소스 AI 모델' 카테고리의 다른 글
[오픈소스 AI] 중국 Z.ai의 초강력 오픈소스 LLM, 'GLM-4.5'를 소개합니다. (2) | 2025.08.04 |
---|---|
알리바바가 만든 초강력 오픈소스 AI 코딩 모델, Qwen3-Coder를 소개합니다. | 오픈소스 AI | 코딩 특화 모델 | (4) | 2025.08.01 |
네이버 HyperCLOVA X SEED 14B Think 오픈소스 공개 | 한국형 AI | KLLM | (1) | 2025.07.29 |
카카오 AI, Kanana-1.5-v-3b: 이미지·텍스트 동시 이해하는 국산 모델 소개 (2) | 2025.07.25 |
코난테크놀로지의 한국형 AI, Konan-LLM-OND 로컬 실행기 | 한국형 AI | KLLM (2) | 2025.07.24 |