"여기에 AI를 추가하자"는 아이디어는 AI가 목표에 도달하는 가장 저렴한 방법일 때만 좋은 생각입니다. 종종 그렇지 않습니다. 여기서는 일반 스크립트(script), 정규식(regex) 또는 조회 테이블(lookup table)이 더 나은 답변인 세 가지 유형의 작업과, 해당 작업이 어느 쪽에 속하는지 알려주는 간단한 테스트를 소개합니다.
테스트: 세 가지 질문
- 규칙이 안정적이고 작성 가능한가요? 결정을 새로운 동료에게 10줄로 설명할 수 있다면, 10줄로 코딩할 수 있습니다.
- 볼륨이 작은 편인가요? 일주일에 20번 수행하는 작업이라면, 모델을 구축하고 평가하며 모니터링하는 것은 정당화되지 않습니다.
- 오류가 비용이 많이 드나요? 잘못된 답변 하나가 수동 작업 한 달 치보다 비싸다면, 완전히 테스트할 수 있는 결정론적(deterministic) 동작을 원합니다.
세 가지 질문에 모두 '예', '예', '예'라고 답한다면, 모델은 건너뛰세요.
순서 번호, 알려진 템플릿의 날짜, IBAN, 추적 코드 등입니다. 정규식(regex)과 체크섬을 사용하면 호출당 비용 없이 100% 반복 가능한 방식으로 이를 처리할 수 있습니다:
import re
ORDER = re.compile(r"\bORD-(\d{6})\b")
def order_ids(text: str) -> list[str]:
...
모델은 동일한 입력에 대해 98%의 정확도를 얻을 수 있지만, 그 2%를 찾는 데 몇 주를 소비하게 될 것입니다.
2. 명시적 신호에 의한 라우팅 (Routing by explicit signals)
티켓에 이미 양식 필드(form field), 발신자 도메인 또는 특정 키워드가 포함되어 있어 대기열을 결정한다면, 그 신호를 기반으로 라우팅하세요. 조회 테이블은 감사 추적(auditable)이 가능합니다: 누군가 "왜 이것이 청구 부서로 갔나요?"라고 물었을 때, 답변은 확률값이 아니라 한 줄의 명확한 설명이어야 합니다.
Documents moving through a fixed set of rules
3. 작고 변화가 거의 없는 볼륨 (Small, rarely changing volumes)
5개 공급업체로부터 매달 30개의 인보이스가 들어온다고 가정해 봅시다. 공급업체별로 템플릿을 만드는 것이 어떤 범용 모델보다 효과적입니다. 손익분기점(break-even point)은 볼륨과 형식 변경 빈도에 따라 달라지므로, 결정하기 전에 둘 다 계산해야 합니다.
모델이 제자리를 찾을 때
다양한 표현과 계속 변화하는 형식을 가진 자유 형식 텍스트, 그리고 의심스러운 사례는 사람이 잡아내는 것을 전제로 측정 가능한 오류율 허용 범위가 필요한 경우입니다. 저의 티켓 분류 데모 (공개 Banking77 데이터, 테스트 번호)에서는 단순한 TF-IDF 모델만으로도 77개의 자유 형식 텍스트로 표현된 의도(intent)를 규칙 기반으로 작성할 수 없기 때문에 약 76%의 티켓을 97.7%의 정확도로 자동으로 처리했습니다.
이 데모는 대규모 언어 모델(LLM)을 전혀 사용하지 않았다는 점에 주목하십시오. 이 접근 방식은 규칙(rules)부터 시작하여, 그다음 고전적인 머신러닝(ML), 그리고 LLM 순서로 계단식으로 구성되어 있으며, 아래 단계가 측정 목표를 충족시키지 못할 때만 다음 단계로 올라갑니다.
핵심 요약 (Takeaway)
목표를 숫자로 설정하고, 이를 달성할 수 있는 가장 저렴한 도구를 먼저 시도하며, 측정 결과 더 저렴한 도구가 부족하다고 판단될 때 AI를 추가하십시오.
포트폴리오 및 연락처: @Kotenev01_bot.
저는 비즈니스를 위한 실용적이고 측정 가능한 AI 도입에 대해 글을 씁니다. 테스트 데이터를 사용한 데모를 제공하며, 꾸며낸 사례 연구는 없습니다. Telegram 채널: @kotenev01_en