모델별 실행 레시피

최종 업데이트

llama.cpp에서 Julia·Laya·Kev 결정 모델 비교하기

대화 품질보다 정해진 선택지의 정확도를 비교해요.

작은 decision model은 분류·라우팅·승인 같은 제한된 선택에 맞아요. 세 모델의 언어와 크기가 다르므로 지원 언어와 내 입력에 맞는지 먼저 확인해요.

실행 조건과 핵심 내용
  • Julia-1은 다국어, Laya와 Kev-4B는 영어 모델이에요.
  • /v1/systemone 요청으로 티켓별 결정을 비교해요.

자유 답변 대신 제한된 선택을 해요

Decision model은 티켓과 질문, 허용 action 목록을 입력받아 그중 하나를 고르는 모델이에요. llama.cpp의 /v1/systemone에 요청하면 선택한 action과 confidence가 돌아와요. 긴 자연어 답변을 만드는 챗 모델과는 결과가 달라서 정확도와 분류 지연을 중심으로 평가해요.

Julia-1은 다국어, Laya와 Kev-4B는 영어 모델이에요. 서버 스크립트를 저장한 뒤 MODEL=julia bash run_model.sh, MODEL=laya ..., MODEL=kev ... 중 한 가지로 실행하세요. 실행 중 모델을 바꾸려면 기존 서버를 종료하고 다시 시작해야 합니다.

책상 위 요청을 정해진 선택지 가운데 고르는 시스템
정해진 선택지를 API 결과로 반환하는 흐름이에요.

같은 티켓과 action 스키마로 시험해요

터미널 1에서 선택한 모델 서버를 실행해 둔 다음, 터미널 2에서 같은 티켓의 action 질문을 보내요. 질문 이름과 action 후보는 맞추되, 여러 프로젝트를 비교할 때는 각 API1가 요구하는 입력 JSON으로 변환해야 합니다. 같은 JSON 구조를 모든 API가 받는다고 가정하지 않습니다.

터미널 2 — 선택 action과 confidence 출력
curl http://127.0.0.1:8080/v1/systemone \
  -H 'Content-Type: application/json' \
  -d '{"state":"I was charged twice for my subscription.","questions":{"route":{"type":"choice","instructions":"Which team should handle this inquiry?","criteria":{"billing":"Payments, charges and refunds","access":"Login and account access","security":"Suspicious activity and account protection"}}}}' | python -c 'import json,sys; a=json.load(sys.stdin)["answers"]["route"]; print(json.dumps({"choice":a["choice"],"confidence":a["confidence"]},indent=2))'
터미널 1 서버에 터미널 2가 요청하고, 응답에서 선택값과 점수를 읽습니다.

응답의 answers.route.choice에는 선택한 action이, answers.route.confidence에는 그 선택의 확률이 담겨요. 예를 들어 billing과 confidence 0.86이면 결제 팀으로 분류한 결과예요. 이 값을 보편적인 임계값으로 쓰지 말고, 라벨이 있는 티켓에서 정확도와 미응답을 확인해 사람 검토 기준을 정해요.

run_model.sh — MODEL을 지정해 서버 시작
curl -LsSf https://llama.app/install.sh | sh
python -m pip install -U huggingface_hub
MODEL=${MODEL:?Set MODEL=julia, laya, or kev}
case "$MODEL" in
  julia) REPO=ggml-org/Julia-1-GGUF; FILE=Julia-1-Q8_0.gguf; REV=16fee17949206fbf58da9347daea44d792a81211 ;;
  laya) REPO=ggml-org/Laya-GGUF; FILE=Laya-Q8_0.gguf; REV=22265007700297ba9e128297e82540cf28c5d7d4 ;;
  kev) REPO=ggml-org/Kev-4B-GGUF; FILE=Kev-4B-Q4_K_M.gguf; REV=d924f2e2c3872da8b8aaf3eb4453b4126deceb79 ;;
  *) echo "Set MODEL=julia, laya, or kev" >&2; exit 2 ;;
esac
hf download "$REPO" "$FILE" --revision "$REV" --local-dir "./models/$MODEL"
llama-server -m "./models/$MODEL/$FILE" --host 127.0.0.1 --port 8080 --ctx-size 4096
코드를 `run_model.sh`로 저장하고, 예를 들어 `MODEL=kev bash run_model.sh`로 터미널 1에서 서버를 띄우세요. 다른 모델은 터미널을 종료한 다음 `MODEL=julia` 또는 `MODEL=laya`로 다시 실행합니다.
각 후보의 점수를 비교해 가장 높은 선택을 고르는 화면
모델 크기와 언어가 달라 같은 입력 평가가 필요해요.

장비 수치를 실험 조건과 함께 읽어요

공개 글의 지연 측정은 RTX PRO 6000에서 수행됐어요. 이는 해당 장치·런타임2·요청 설정의 비교값이지, 4090·5090·노트북 GPU3에서 보장되는 처리 시간은 아닙니다. 내 장치에서 같은 요청 묶음으로 다시 재세요.

작고 빠른 모델 하나가 항상 이기는 것은 아니에요. 오류 행동의 비용이 큰 티켓은 confidence 기준이나 사람 검토 경로를 두고, 지원 언어·허용 action·평균 지연을 만족할 때 배포 후보로 좁힙니다.

답변 문장을 만들어야 하는 작업이라면 decision model을 쓰지 마세요. 여기서는 정해진 선택지만 고르므로, 설명이 필요한 단계는 일반 LLM4에 맡기는 편이 맞아요.

대화형 답변과 선택지 기반 자동 판단을 나란히 보여주는 장면
채팅 응답과 자동화 결정은 별도로 비교해요.

용어 각주

  1. API — 프로그램의 기능을 다른 코드에서 호출하기 위한 약속된 인터페이스입니다.

    본문으로 돌아가기
  2. 런타임 — 프로그램이 실행될 때 필요한 기능을 제공하는 소프트웨어 환경입니다. 로컬 AI에서는 모델을 실행하는 엔진을 가리키기도 합니다.

    본문으로 돌아가기
  3. GPU — 많은 계산을 병렬로 처리하는 프로세서입니다. AI 모델 실행에서는 모델 계산을 맡습니다.

    본문으로 돌아가기
  4. 대규모 언어 모델 — 대규모 텍스트 데이터에서 언어 패턴을 학습해 문맥에 맞는 텍스트를 처리하고 생성하는 모델입니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
작은 decision model은 분류·라우팅·승인 같은 제한된 선택에 맞아요. 세 모델의 언어와 크기가 다르므로 지원 언어와 내 입력에 맞는지 먼저 확인해요.