2026 – 현재 · DigitalPresso

온디바이스 SLM Function Calling R&D

제한된 모바일 환경에서 건설 현장 음성 명령을 SLM Function Calling으로 변환하고, 프롬프트 전략별 정확도를 재현성 있게 비교한 연구·개발 프로젝트

MLOpsAIExpoReact NativeTypeScriptZodFastAPINext.jsPythonXGrammarllama.cpp
도구 선택 정확도
v4_json_schema 81%→v8_qwen3_native 89%
인자 exact 정확도
v4_json_schema 41%→v8_qwen3_native 55%
인자 semantic 정확도
v4_json_schema 59%→v8_qwen3_native 76%
재현 검증
동일 모델·데이터셋·디코딩 80개 케이스, 짝지은 McNemar 검정

문제

네트워크가 제한되고 손·눈이 자유롭지 않은 건설 현장에서, 작업자의 음성 명령을 앱의 구조화된 기능 호출로 바꾸는 온디바이스 SLM을 연구·개발했습니다.

이 문제는 단순히 JSON을 생성하는 문제가 아닙니다. 현장 은어·사투리·STT 오류, 인원 호칭과 동명이인, 함수 간 혼동을 처리하면서도 잘못된 호출 대신 request_clarification으로 되묻는 안전한 동작이 필요했습니다.

역할과 범위

  • Expo/React Native 모바일 앱, AI tool 계약, native/mock runtime, FastAPI 벤치마크 API, Next.js 대시보드를 하나의 모노레포로 설계
  • 함수 선택과 파라미터 추출을 분리해 평가하고, 정확도·지연시간·메모리 사용량을 함께 기록
  • 모델·데이터셋·디코딩을 고정한 뒤 프롬프트 전략만 바꾸는 비교 실험을 구성

데이터와 평가 설계

건설 도메인 함수 레지스트리와 평가 케이스를 직접 설계했습니다. 함수 선택이 틀리면 0점으로 처리하고, 결정적 필드는 exact match, 자유 텍스트 필드는 semantic 기준으로 평가했습니다. 유사하지만 의미가 다른 함수 쌍과 불확실성 처리 함수도 별도 평가 대상으로 뒀습니다.

재현된 프롬프트 전략 결과

모델·데이터셋·디코딩을 qwen3.5-2b-q4 · construction-v3 · naive로 고정하고 같은 80개 케이스를 짝지어 비교했습니다. 프롬프트만 달리한 결과를 McNemar 검정으로 확인했을 때, 재현이 확인된 조합은 다음과 같습니다.

프롬프트도구 선택인자 exact인자 semantic
v4_json_schema81%41%59%
v5_compact81%39%42%
v8_qwen3_native89%55%76%

Qwen의 학습 분포에 맞춘 native tool-calling 포맷이 JSON Schema를 장황하게 지시하는 형식보다 함수 선택과 인자 품질 모두에서 더 높은 결과를 냈습니다. 다른 조합도 차이는 보였지만, 통계적으로 재현된 결과로는 이 조합만 사용합니다.

제약 디코딩

XGrammar로 JSON Schema 기반 출력 제약 전략을 구성해 function / parameters 구조를 강제하도록 했습니다. 현재 보존된 실행 인덱스에는 XGrammar 전략의 효과를 수치로 비교한 결과가 없으므로, 제약 디코딩 자체의 정확도 향상 수치는 주장하지 않습니다.

배운 점

작은 모델의 Function Calling 품질은 모델명만으로 결정되지 않았습니다. 도구 정의의 표현 방식과 모델 고유의 chat template이 함수 선택·인자 추출 정확도에 직접 영향을 미쳤고, 따라서 실제 배포 조건과 같은 비교 실험이 필요했습니다.

Portfolio | jwsong