TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 28 READS

직접 학습·구동하는 소형 의사결정 모델 'Kev', Qwen3.5 위에서 무엇이 바뀌었나

직접 학습·구동하는 소형 의사결정 모델 'Kev', Qwen3.5 위에서 무엇이 바뀌었나
SOURCE IMAGE · HACKER NEWS

티켓 하나를 놓고 '반품인지, 배송 지연인지, 청구 문제인지'를 판단해야 할 때, 대부분의 분류 모델은 하나의 라벨만 돌려준다. Kev는 여기서 출발한다. 개발자 재러드 파머(Jared Palmer)가 공개한 Kev는 Qwen3.5 기반의 소형 의사결정 모델 계열로, 단일 라벨 대신 각 부서(범주)에 대한 확률 분포를 반환한다. 위 예시처럼 반품·지연·청구가 동시에 얽힌 티켓이라면 모델은 그 세 가지 각각의 확률을 함께 내놓는다. 확률을 돌려받는다는 것 자체가 이 모델의 존재 이유라는 게 프로젝트의 설명이다.

Kev는 'Jev'라는 상용 의사결정 모델과 유사한 구조를 지향하며, 공개된 아키텍처 분석 문서를 참고해 만들어졌다. API는 TypeSafe의 'System One'과 동일하게 맞춰져 있어, 해당 파이썬 SDK를 로컬 서버로 그대로 겨냥할 수 있다. 사전학습된 가중치를 그대로 쓰거나 직접 학습시킬 수도 있다. 라이선스는 Apache-2.0이고 Qwen3.5·Qwen3 베이스 모델 역시 Apache-2.0이다. 실무자 입장에서 중요한 점은, 외부 API에 데이터를 보내지 않고 내 장비에서 판단 로직을 돌릴 수 있다는 선택지가 열린다는 것이다.

모델 크기와 구조

Kev는 0.8B, 4B, 9B 세 가지로 나뉜다. 프로젝트는 우선 Kev-4B로 시작하고, 정확도와 보정(calibration)이 메모리보다 중요할 때 9B를, 가장 작은 모델이 필요하면 0.8B를 쓰라고 권한다. 셋 다 같은 학습 데이터와 설정으로 Qwen3.5 위에 올렸다. 각 체크포인트는 랭크 16의 LoRA 어댑터와 작은 포인터 헤드로 구성되며, 나머지 베이스 가중치는 고정된 채 어댑터와 헤드만 함께 학습된다. 즉 전체 모델을 새로 훈련하는 방식이 아니라, 얇은 층을 얹어 판단 능력을 부여하는 구조다.

핵심은 여러 질문을 서로 격리해 독립적으로 답하게 만든 설계다. 어텐션 전용 베이스인 Qwen3에서는 상태(state) 텍스트와 질문들을 하나의 토큰 시퀀스에 넣되, 어텐션 마스크로 각 질문이 상태와 자기 자신만 보고 다른 질문은 보지 못하게 한다. 반면 Qwen3.5는 어텐션 층과 순환 방식의 Gated DeltaNet 층을 섞는데, 이 순환 층은 어텐션 마스크를 무시한다. 그래서 Qwen3.5 모델에서는 각 질문을 별도의 행으로 처리하되 상태 계산 결과의 캐시를 재사용한다. 질문을 함께 묻든 따로 묻든 fp32 테스트에서 확률 차이는 4e-6 이내다. 다만 이것이 옵션 순서가 무의미하다는 뜻은 아니다. 한 질문 안의 선택지들은 여전히 서로 영향을 줄 수 있다.

세대 교체와 성능 비교

Kev의 첫 세대는 Qwen3 베이스였고, 데이터와 설정을 그대로 둔 채 베이스만 Qwen3.5로 바꿨다. 베이스만 달라졌기 때문에 두 세대는 통제된 비교가 된다. 개발셋에서 정확도 향상은 잡음 범위 안이지만, 테스트셋에서는 Kev-9B가 이전 8B보다 7.3점 앞섰고(95% 신뢰구간 +2.8~+11.7) Brier 점수도 0.08 낮았다. 4B는 전작 대비 2.9점, 0.8B는 0.6B 대비 4.8점 우위였다. 반면 상용 Jev와의 비교에서 Kev-9B는 신규 소스 개발셋 기준으로 약 4.5점 뒤진다. 다만 Jev가 어떤 데이터로 학습됐는지 알 수 없어 이는 두 아키텍처의 통제된 비교가 아니라는 점을 프로젝트는 분명히 한다. 외부 평가셋에서는 SemIf의 144개 결정에서 Kev-9B 0.917 대 Jev 0.965, scienthoon의 900개 지원 티켓 라우팅에서는 0.952 대 0.897로 항목마다 우열이 갈렸다.

실무에서 더 눈여겨볼 대목은 파인튜닝 방식이다. 자신만의 라우팅 범주나 에스컬레이션 규칙, 다른 언어처럼 질문의 성격이 다르면 수백 개 라벨 예시로 짧게 추가 학습하는 편이 어떤 프롬프트 조정보다 낫다고 본다. 이때 --init_from으로 공개 체크포인트에서 시작해 어댑터와 포인터 헤드를 이어받는 것이 결정적이다. 한 사용자의 836개 지원 도구 결정 테스트에서, 베이스부터 학습한 경우는 Kev 자체 평가셋에서 0.33에 그친 반면 --init_from으로 이어 학습한 경우 0.83을 유지하면서 새 도메인에서 0.88에 도달했다. 이 경우 학습률은 처음부터 학습할 때보다 낮은 2e-5 정도가 권장된다.

배포할 때 알아둘 한계

속도는 하드웨어에 크게 좌우된다. CUDA 환경에서는 flash-linear-attention을 설치하면 H100 기준 다섯 개 질문 요청이 수십 밀리초에 끝난다. 그러나 애플 실리콘에서는 DeltaNet 층을 위한 빠른 커널이 없어 PyTorch 참조 코드로 돌아가 느리다. 맥에서 낮은 지연이 필요하다면 당분간 구세대 Qwen3 모델을 쓰라는 안내가 붙어 있고, Qwen3.5용 MLX 백엔드가 다음 개선 과제로 예정돼 있다. 어텐션 전용 모델에서는 상태 프리픽스 캐시 등으로 772토큰 반복 상태 기준 응답을 861ms에서 242ms로 줄인다.

마지막으로 놓치면 안 될 두 가지가 있다. 서버는 127.0.0.1에만 바인딩되고 인증이 전혀 없다. 인증을 직접 붙이지 않는 한 로컬 밖으로 노출해선 안 된다. 또한 응답에 담기는 confidence 값은 확률 분포에서 계산한 근사치일 뿐 측정된 정확도가 아니며, 공개된 정확도 수치는 fp32 평가 기준이라 bf16 서빙 경로와는 미세하게 다를 수 있다. 판단 근거가 제거된 '알 수 없는' 레코드에도 0.9 이상 확신으로 답하는 비율이 Kev-9B 5%, Kev-8B 26%로 세대별 차이가 크다는 점은, 이런 모델을 자동 라우팅에 붙일 때 보정 지표까지 함께 봐야 한다는 실무적 교훈을 남긴다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://github.com/jaredpalmer/kev/tree/main
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...