6개 질의, 3회 실행, 평균 8점 달성 — 그리고 미세 조정이 원인이 아니었다
요약
나이지리아 경제 데이터 분석을 위해 RAG 시스템의 성능을 개선한 사례를 다룹니다. 미세 조정 대신 검색 범위 확장, 의도 분류기 도입, 시스템 프롬프트 최적화를 통해 분석 품질을 획기적으로 높였습니다.
핵심 포인트
- 검색 범위 확장을 통해 컨텍스트 창 내 정보 다양성 확보
- 규칙 기반 의도 분류기를 통한 맞춤형 메모 템플릿 적용
- 2차 자료보다 1차 자료를 우선하도록 시스템 프롬프트 최적화
- 미세 조정 없이도 프롬프트와 RAG 구조 개선으로 높은 점수 달성
우리가 설정한 기준
우리는 2026-07-10에 도달 가능성이 불확실했던 수용 테스트를 포함하는 계획을 승인했습니다. 나이지리아 경제 데이터에 대해 분석가 메모 질의 6개를 작성했고, 명명된 개체 밀도(named-entity density), 인용 품질(citation quality), 부문별 상세 정보(sector-specific detail), 솔직한 격차 인정(honest-gap acknowledgement), 의사 결정 유용성(decision-usefulness)의 다섯 가지 차원에서 0점에서 10점까지 점수를 매겼습니다. 엄격한 통과 기준은 다음과 같습니다: 세 번의 온도=0.2 실행에 걸친 모든 질의의 평균 점수가 ≥8/10이어야 하며, 단일 실행에서 어떤 질의도 6점 미만이어서는 안 됩니다.
승인 당시 총합은 6개 질의에 대해 대략 30/60 정도였습니다. 이는 근거가 있지만 일반적인 답변을 생성하고, 유능하게 거절할 수는 있었지만 항상 그런 것은 아니었습니다. 이 기준까지 남은 격차는 현실적이었습니다. 우리는 여기에 4~5주를 주었습니다.
우리가 출시한 것
1단계 — 검색 범위 확장(retrieval breadth). 상위-K 결과 세트 전반에 걸쳐 종류 다양성 강제 적용을 통해, '핀테크 시작하기'라는 질의가 12개의 CBN 회람으로 수렴하는 것을 막고 BOI, NEXIM, PayStack, Flutterwave, 그리고 세계은행 농업 비즈니스 장(agribusiness chapters)까지 같은 컨텍스트 창에서 가져오도록 했습니다. 질의에 '공장(factory)', '스타트업(startup)', '투자(invest)', '대출(loan)'이 언급될 때 명명된 개체 부스팅을 적용했습니다. 중복 제거를 통해 동일한 사실에 대한 브리핑이 자체 주요 출처를 압도하는 것을 방지했습니다. 2단계 — 6개 클래스 규칙 기반 의도 분류기 및 메모 템플릿. 정규 표현식 패턴(venture_feasibility, strategic_forecasting, credit_risk, regulatory_analysis, market_sizing, general_qa)에 대한 서브 밀리초 단위 라우팅을 구현했습니다. 각 의도는 메모 템플릿을 받습니다 — 명명된 개체 지침(named-entity mandate), 솔직한 격차 섹션(honest-gaps section), 그리고 1000~1500 단어 목표를 가진 섹션별 스캐폴드입니다. general_qa 템플릿은 비어 있게 유지됩니다 (메모 형태 없음). 따라서 진정으로 일반적인 질문이 필요하지 않은 메모에 강제로 들어가는 것을 막았습니다. 3단계 — 구성 품질(composition quality). 이 부분에서는 두 가지 변경 사항이 가장 큰 역할을 했습니다:
- 시스템 프롬프트(system prompt) 내의
CITATION PREFERENCE: PRIMARY OVER BRIEFING블록입니다. 검색(retrieval) 결과에 두 정보가 모두 존재할 경우, 일일 브리핑(daily briefings)보다 1차 자료(primary sources) — CBN 회람, NAICOM 규정, NBS 보고서, 교과서 챕터, IMF Article IV, 특정 사건에 대한 언론 보도 등 — 를 우선적으로 인용하도록 설정했습니다. 브리핑은 2차 자료입니다. 브리핑은 1차 콘텐츠를 집계하지만, 그 자체로 권위 있는 자료는 아닙니다. 2. 각 메모 템플릿 내부에 포함된 섹터별 시장 참여자 프라이머(primers)입니다. 벤처 타당성(venture-feasibility) 메모는 소스(SOURCES)가 뒷받침될 경우 나이지리아 핀테크 기존 업체들(PayStack, Flutterwave, Kuda, Opay, Palmpay, MTN Momo, Airtel Money)을 명시합니다. 규제 분석(regulatory-analysis) 메모는 보험사(AXA Mansard, Leadway, AIICO)와 인슈어테크(insurtech) 기업(Curacel, ETAP, MyCover)을 명시하며, 시장 규모 산정(market-sizing) 메모는 태양광 설치 업체(Arnergy, Havenhill, Rensource, Salpha Energy, Auxano, Green Village Electricity)와 글로벌 비교 대상(M-KOPA, Sun King)을 명시합니다.
프라이머는 허구(fabrication)를 허용하는 면허가 아닙니다. 각 메모에는 "SOURCES에 실제로 포함된 내용만 명시할 것 — 허구 금지. 명시된 모든 운영자에 대해 해당 청크(chunk)를 인용할 것"이라고 명시적으로 적혀 있습니다. 프라이머는 모델이 개체를 발명하는 것이 아니라, 검색 가능한 엔티티(entities)를 '찾아내도록' 학습시킵니다.
4단계 — 규율 수정(discipline fixes). 24개 항목의 홀-오딧(hall-audit) 고정 장치(6개의 함정 하위 카테고리 × 4개 항목 — 허구 정책, 미래 사건, 관할권 전환, 수치 정확도, 인용 사칭, 거래 조언 — 및 4개의 대조군)를 통해 두 가지 구조적 라우터(router) 버그가 드러났습니다. 두 버그는 동일한 형태였습니다. 결정론적 지표 라우터(deterministic indicator router)가 주변 문맥을 확인하지 않고 "MPR" 또는 "NGX"와 같은 토큰에 대해 별칭 매칭(alias-matched)을 수행한 것이었습니다. _is_non_nigerian_jurisdiction() 및 _is_trade_advice_query() 술어 게이트(predicate gates)가 추가되었습니다. 이 게이트들이 작동하면 라우터는 단락(short-circuits)되고, LLM 경로가 적절한 거절(advice의 경우 Tier C, 외국 중앙은행의 경우 entity-not-in-corpus)과 함께 제어권을 넘겨받습니다.
두 게이트(gate)를 거친 후의 환각(Hallucination) 감사 결과: 24/24개의 트랩(trap) 통과, 0개의 환각(hall), 4/4개의 제어(control) 통과. 라이브 채팅 트랜스크립트에서 추출한 20개의 무작위 운영 질의를 동일한 루브릭(rubric)으로 실행: 0/20개의 환각(hall), 20/20개 인용 감사(cite-audit) 클린.
Phase 5 — 남은 과제. 계획의 첫 번째 폐쇄(close) 단계에서는 6개 질의 중 3회 실행 시 평균 8점 이상의 기준(mean ≥8 bar)을 충족한 것이 1개에 불과했습니다. Q3(외환(FX) 차입 전망)가 가장 까다로운 문제였습니다. 메모 지침에서 인용을 2개로 제한했음에도 불구하고, 모델은 답변당 3~4개의 브리핑 인용(briefing citations)을 계속 생성했습니다. 이를 해결하기 위해 규율 스택(discipline stack)에 cap_briefing_cites() 함수를 추가했습니다: 사후적(post-hoc), 문장 인식(sentence-aware), 결정론적(deterministic) 방식입니다. 이 함수는 브리핑이 아닌 인용이 함께 존재하는 문장에서만 과도한 브리핑 산문 인용을 제거합니다. 따라서 증거가 삭제되는 것이 아니라 중복된 인용 항목만 제거됩니다. 사실에 기반한 브리핑 청크(briefing/…#fact_NNNN)는 산문 제한 규칙이 아닌 숫자 사실 규율을 따르므로 제외됩니다.
제한 기능이 연결되자, Q3의 평균 점수가 7.33에서 8.67로 상승했습니다. Q4는 자연스러운 변동성에 힘입어 함께 상승했습니다. 위 6개 질의 모두 기준치를 상회했습니다.
결과
2026-07-14에 라이브 프록시(live proxy)를 대상으로 3회 연속 실행했습니다. 모든 질의, 모든 실행 결과:
| 질의 | R1 | R2 | R3 | 평균 |
|---|---|---|---|---|
| 나이지리아에서 드론 공장 설립이 가능한가요? | 8 | 8 | 8 | 8.00 |
| 나이지리아 농민을 대상으로 하는 핀테크를 어떻게 시작하나요? | 9 | 8 | 9 | 8.67 |
| 나이지리아 기업의 외환(FX) 차입 비용에 대한 12개월 전망은 어떠한가요? | 9 | 8 | 9 | 8.67 |
| 현재 나이지리아의 어느 주가 농업 대출 부도 위험이 가장 높습니까? | 8 | 9 | 7 | 8.00 |
| 2025년 보험 산업 개혁법(Insurance Industry Reform Act)이 방카슈랑스(bancassurance) 경제를 어떻게 변화시킬까요? | 8 | 8 | 8 | 8.00 |
| 나이지리아의 오프그리드(off-grid) 태양광 시장 규모는 어느 정도이며 주요 설치업체는 누구입니까? | 9 | 9 | 8 | 8.67 |
| 합계 / 60 | 51 | 50 | 49 | 50.0/60 (83%) |
모든 질의가 평균 8점 이상의 기준을 넘었습니다. Q4가 R3에서 7점으로 떨어졌으나, 이는 시스템적 퇴보가 아니라 온도(temperature) 0.2에서의 LLM 샘플링 변동성(sampling variance)이며, 평균값에 의해 상쇄됩니다.
그리고 미세 조정 (fine-tune)
이 이야기의 핵심이자, 이 글을 마케팅 게시물이 아닌 증거(receipts) 중심의 게시물로 작성하는 것이 정직하다고 느껴지는 이유입니다.
위의 그 어떤 것도 커스텀 미세 조정 (fine-tuned) 모델에 의존하지 않았습니다. 위에서 언급한 모든 것은 수정되지 않은 qwen3:14b — Ollama를 통해 배포되는 베이스 모델 (base model) — 에서 실행됩니다.
이 프로젝트가 4월부터 목표로 해온 특화된 미세 조정 (fine-tune) 모델인 asotele-econ은 실제 진행 중인 작업 흐름 (workstream)입니다. 이 모델의 v1 (R4a)은 5월에 훈련, 배포되었으나 기록된 퇴보 (regression) 현상으로 인해 운영 환경에서 복구되었습니다. 즉, SFT 코퍼스 (SFT corpus)가 모델에게 자체 출력에는 없는 인용 형태 (citation shape)를 학습시켰고, 그 결과 7개 카테고리 기준선 (baseline)에서 미세 조정 모델의 점수가 베이스 모델 대비 20.9% → 10.5%로 하락했습니다. R5 쌍 (pairs)은 진단 후 준비되었으나 아직 훈련되지는 않았습니다.
7월로 계획했던 목표는 코퍼스 형태 (corpus-shape)의 근본 원인을 해결하고 v2 SFT를 실행하는 것이었습니다. 하지만 대신 발생한 일은 추론 규율 스캐폴딩 (reasoning-discipline scaffolding) — 검색 범위 (retrieval breadth) + 의도 분류기 (intent classifier) + 메모 템플릿 (memo templates) + 구성 프롬프트 (composition prompts) + 규율 레이어 (discipline layers) — 이 미세 조정 (fine-tune)이 목표로 했던 가치의 대부분을 흡수해 버린 것입니다. 적절한 오케스트레이션 (orchestration)을 갖춘 베이스 qwen3가 미세 조정 모델이 달성해야 했던 수락 테스트 (acceptance test)를 통과했습니다.
그렇다고 해서 미세 조정 (fine-tune)의 여정이 끝난 것은 아닙니다. 위치가 재조정된 것입니다. 이제 v2 SFT는 규율 스택 (discipline stack)을 대체하는 것이 아니라, 그 위에 더해지는 품질 승수 (quality-multiplier)로 프레임이 설정되었습니다. 미세 조정 (fine-tune)이 여전히 제공할 수 있는 세 가지 구체적인 이점은 다음과 같습니다:
- 지연 시간 (Latency) 및 비용 — 더 낮은 추론 비용 (inference cost)으로 qwen3:14b의 품질과 일치하는 특화된 소형 모델을 제공하며, 이는 온프레미스 (on-prem) 은행 배포에 유용합니다. 2. 오픈 웨이트 (Open weights) — 베이스 모델에 대한 오케스트레이션 레시피 (orchestration recipe) 대신, 어디서나 실행 가능한 실제로 휴대 가능한 특화 모델을 배포할 수 있는 능력입니다. 이는 컴퓨팅 보조금 및 B2B 피칭에서 다른 입장을 취할 수 있게 합니다. 3. 다국어 접지 (Multilingual grounding) — 베이스 모델 프롬프팅 (prompting)만으로는 메울 수 없는 Hausa / Yoruba / Igbo / Pidgin 언어별 F1 격차를 해소합니다.
우리가 배운 것
일반성 순서대로 정리한 세 가지입니다.
프롬프트 스캐폴딩 (Prompt scaffolding) + 검색 규율 (retrieval discipline)은 미세 조정 (fine-tune)이 약속하는 가치의 상당 부분을 대체할 수 있습니다. 전부를 대체할 수는 없습니다. 위에 나열된 세 가지는 실제적인 것이니까요. 하지만 "이 기준에 도달하기 전에 미세 조정이 필요하다"라는 말이 틀렸음이 밝혀질 정도로 충분한 가치가 있습니다. 오케스트레이션 (orchestration)이 충분히 철저했다면, 베이스 모델 (base model)만으로도 그 기준에 도달할 수 있었습니다. 구조적 수정은 일반화되지만, 개별 질의별 수정은 대개 그렇지 않습니다. hall-audit fixture에 의해 드러난 두 가지 라우터 버그 — 관할권 (jurisdiction) 및 무역 자문 (trade-advice) — 는 동일한 형태(주변 문맥을 무시하는 별칭 일치)를 띠고 있었으며, 동일한 패턴(라우터가 실행되기 전에 단락 회로를 만드는 술어)으로 수정되었습니다. 하나의 클래스, 하나의 수정으로 두 버그를 모두 해결한 것입니다. 이는 진단용 fixture를 조기에 구축해야 한다는 논거가 됩니다. 두 번째 버그는 첫 번째 버그가 수정되고 감사가 새로운 클래스를 포함하도록 확장될 때까지 보이지 않았습니다. 테스트의 엄격함과 정직함은 복리로 작용합니다. 6개 질의 루브릭 (rubric)은 휴리스틱 (heuristic) 방식으로 채점되었습니다. 즉, 5가지 차원, 결정론적 임계값(deterministic thresholds)을 사용하며 LLM 판정관을 사용하지 않았습니다. 과정 중에 루브릭에서 채점 버그가 두 번 발견되었습니다 (괄호 대 백틱 인용 정규 표현식 문제, 브리핑 사실 청크가 산문 제한에 잘못 계산되는 문제). 두 번 모두 정직한 대응은 채점기가 통과할 때까지 모델을 튜닝하는 것이 아니라, 채점기를 투명하게 수정하는 것이었습니다. 즉, 수정을 문서화하고 과거 점수가 변동되었음을 기록하는 것이었습니다. 그렇게 함으로써 fixture는 진정한 척도로 남을 수 있습니다. 만약 불편한 사항이 발견될 때마다 기준을 완화했다면, 오늘날의 50/60점은 지금과 같은 의미를 갖지 못했을 것입니다.
현재 상태 (Standing state)
- 3회 실행 결과, 6개의 핵심 질의(north-star queries)에서 평균 8점 이상 달성. - 24개의 환각 함정(hall traps) 및 20개의 무작위 프로덕션 질의(production queries)에서 환각(hallucination) 발생 0건. - 20개 질의의 프로덕션 샘플에 대한 인용 감사(cite-audit) 결과 100% 클린. - 프로덕션 환경에서 규율 스택(discipline stack: retrieval, memo templates, section-ref gate, entity-figure filter, cite_verify strict_filter, cap_briefing_cites)을 적용한 Base
qwen3:14b사용 중. -asotele-econ미세 조정(fine-tune) v1은 5월에 롤백됨; v2 SFT는 날짜가 지정되지 않았으며, 현재의 규율 스택(discipline-stack) 출력을 학습 신호(training signal)로 사용하는 코퍼스 재구축(corpus rebuild) 단계에 따라 진행됨.
이것이 오늘 현재의 상태입니다. 계획이 수립된 후, 4~5주가 걸릴 것이라고 예상했던 작업이 단 4일 만에 완료되었습니다. 계획에서 최종적인 차별화 요소로 예측했던 것 — 특화된 나이지리아 경제 LLM — 은 여전히 로드맵 상에 있지만, 이제는 이미 수락 테스트(acceptance test)를 통과한 인프라 조각과 나란히 자리 잡고 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기