수동 자격 요건 대조의 번거로움을 해결하는 소형 모델의 추론력

구직자는 수많은 채용 공고 사이에서 자신의 이력서와 부합하는 곳을 찾기 위해 자격 요건을 일일이 대조하는 번거로운 과정을 거친다. 개발팀은 이러한 비효율을 해결하기 위해 DeepSeek V4 Pro의 구조적 추론 능력을 Qwen3-8B 모델에 증류(Distillation)하여 소형 모델 기반의 고성능 구직 추천 시스템을 구현했다. 이 시스템은 거대 모델이 가진 정교한 판단 기준을 소형 모델에 이식해 실제 서비스에 즉시 적용 가능한 수준으로 최적화한 사례다. 사용자가 이력서를 제출하면 모델이 이를 분석해 단순한 목록이 아닌, 논리적 근거가 포함된 소수의 숏리스트를 제공한다. 사용자는 모델이 왜 2순위 직무가 3순위보다 더 적합하다고 판단했는지에 대한 방어 가능한 추론 과정을 직접 확인할 수 있다.

DeepSeek V4 Pro와 Qwen3-8B의 교사-학생 구조 및 양자화

개발팀은 구조적 추론 능력이 뛰어나고 엄격한 출력 스키마를 준수하는 DeepSeek V4 Pro를 교사 모델로 선정했다. DeepSeek V4 Pro는 실시간 추론 시점의 의존성이 아니라, 대규모 말뭉치에 대해 오프라인으로 정답지를 만드는 레이블 생성기로 활용된다. 학습에 사용된 말뭉치는 이력서를 인식하는 폐쇄 루프(Closed loop) 구조로 설계되었으며, 관련 설정은 `build-small-hackathon/job-search-distill` 저장소에 구성 파일 형태로 저장되었다. 학생 모델인 Qwen3-8B는 Q4_K_M 양자화(Quantization)를 적용해 단일 ZeroGPU 슬라이스에 탑재 가능한 메모리 효율을 확보했다. Qwen3-8B는 교사 모델이 생성한 구조적 판단 기준을 흡수함으로써 8B 규모의 소형 모델임에도 불구하고 고성능 구직 추천을 수행하는 능력을 갖췄다.

A100 단일 GPU 기반의 LoRA SFT와 실시간 스트리밍 배포

개발팀은 Modal 플랫폼의 A100 단일 GPU를 활용해 두 번의 LoRA SFT(Low-Rank Adaptation Supervised Fine-Tuning)를 수행했다. 쿼리 생성과 적합성 평가라는 두 가지 핵심 작업에 대해 각각 한 번씩 학습을 진행하여 소형 모델이 교사 모델의 판단 로직을 정교하게 복제하도록 만들었다. 배포 단계에서는 `llama-cpp-python`과 사전 빌드된 CUDA 휠(wheel)을 HuggingFace ZeroGPU Space에 적용해 하드웨어 가속 효율을 극대화했다. 특히 OpenAI API 규격과 호환되는 `create_chat_completion(stream=True)` 함수를 도입해 모델의 추론 과정을 UI에 토큰 단위로 실시간 스트리밍하도록 설계했다. 실제 구동 데모는 huggingface.co/spaces/build-small-hackathon/job-search-assistant에서 확인할 수 있다.

단일 LoRA의 포맷 누수를 해결한 두 개의 어댑터 핫스왑 전략

개발팀은 초기 설계에서 쿼리 생성과 적합성 평가 기능을 단일 LoRA 어댑터에 통합했으나, 이 과정에서 포맷 누수(Leakage) 문제가 발생했다. 쿼리를 생성하는 단계에서는 엄격한 JSON 형식이 필요했으나 적합성 평가 시 사용하는 산문(prose) 형태의 문장이 섞여 나왔으며, 반대로 평가 단계에서는 JSON 구조가 튀어나와 출력이 꼬이는 버그가 반복되었다. 이를 해결하기 위해 동일한 베이스 모델 위에 쿼리 생성 전용 어댑터와 적합성 평가 전용 어댑터를 완전히 분리해 배치하고, 호출 시마다 필요한 어댑터를 즉시 교체하는 핫스왑(Hot-swap) 방식을 도입했다. 이 구조적 분리를 통해 소형 모델이 서로 다른 출력 양식을 동시에 유지하며 발생하는 가중치 간 간섭을 차단했으며, 결과적으로 거대 모델 수준의 엄격한 스키마 준수 능력을 구현했다.

교사 모델 프롬프트의 구체성과 Claude Code 세션의 실무적 가치

개발팀은 교사 모델의 프롬프트를 "강한 기술적 매칭" 같은 모호한 표현 대신 "Rust 4년 경력이나 역할은 5년을 요구함"과 같이 구체적인 세부 사항을 대조해 점수를 부여하도록 재작성했다. 이러한 정교한 레이블링 습관은 증류 과정을 통해 학생 모델인 Qwen3-8B에 그대로 전이되어, 모델 크기의 한계를 넘어선 정밀한 추천 근거 제시 능력을 확보하게 했다. 전체 시스템 빌드 과정은 AI 코딩 에이전트인 Claude Code 세션을 통해 진행되었으며, Raw JSONL 이벤트와 시행착오 기록이 담긴 HuggingFace agent-traces 데이터셋으로 공개되었다. 이는 고성능 거대 모델의 추론 능력을 저비용 소형 모델(8B)로 이식하여 실제 서비스에 적용하는 최적화 경로를 실증한 사례로, 데이터의 질과 구조적 설계가 모델 규모보다 성능에 더 결정적인 영향을 미침을 입증한다.