반응형
문제 상황
LLM을 활용해 기능을 실행하는 도구를 설계할 때 처음부터 복잡한 선택지를 주는것 보다 기본 동작을 단순하게 고르고, 이후 옵션을 보정하는 방식을 사용하는 것이 Accuracy를 높이는데 도움을 준다.
예를 들어 LLM이 커피 주문을 처리한다고 하자. 사용자는 다음과 같이 말할 수 있다.
- "아메리카노 큰거 한잔 줘"
- "라떼 하나, 아이스로"
- "디카페인 아메리카노 따듯한걸로"
orderCoffee('아메리카노', '뜨거운', '디카페인', '라지')
만약 이런 주문을 처음부터 LLM이 모든 옵션을 포함한 함수를 호출해야 한다면 옵션이 누락되거나 잘못된 매핑과 순서가 뒤죽박죽 되는 것과 같은 오류가 발생할 가능성이 높아진다.
단순한 접근성
정확도를 높이는 방법은 다음과 같이 두 단계로 구분하는 것이다.
- 최초 선택 : 기본 동작만
- 사용자의 자연어에서 우선 "커피 주문"이라는 동작으로 매핑한다. 즉, LLM은 orderCoffee() 라는 단일 액션만 선택한다.
- 옵션 재선택 : 후처리, 세부 파라미터 보정
- "아메리카노" → { type: 'americano' }
- "아이스" → { temperature: 'ice' }
- "디카페인" → { caffeine: 'decaf' }
- "큰 사이즈" → { size: 'large' }
액션과 옵션을 조합하여 최종 실행
orderCoffee({ type: "americano", temperature: "ice", caffeine: "decaf", size: "large" });
정확도가 올라가는 이유
- 선택 공간 축소: LLM이 무엇을 할지만 고르면 되니 혼동하지 않음
- 후처리 규칙 적용 가능 : 옵션은 규칙 기반 파서로 보정이 가능함 (아이스 → ice)
- 학습 데이터 효율화 : 모든 문장은 orderCoffee로 규결되므로 데이터 밀집도가 높아져 안정적 학습이 가능
마무리
최초 선택은 단순하게, 옵션은 보정하는 전략을 사용하여 혼돈을 줄이고, 정확도를 높이고, 다양한 자연어 표현에 대응할 수 있다.
반응형
'Dev Stories > AI|ML(인공지능|머신러닝)' 카테고리의 다른 글
LLM을 활용한 자연어 처리 파이프라인: 의도 분류용 프롬프트 (0) | 2025.09.17 |
---|---|
LLM을 활용한 자연어 처리 파이프라인: 시나리오1 (0) | 2025.09.17 |
다중 의도 처리 (Multi-intent Handling) (0) | 2025.09.03 |
가장 많이 사용되는 임베딩(Embedding) 모델 (0) | 2025.07.07 |
[AI] LLM 모델의 평가 및 검증 (0) | 2025.07.07 |