은행 업무를 위한 제로샷 의도 인식: RexUniNLU 적용 사례

은행 서비스의 의도 이해 과제

디지털 뱅킹 환경에서 고객 문의의 진의를 정확히 파악하는 것은 핵심 과제입니다. 기존 방식은 대량의 레이블 데이터와 전용 모델 학습이 필요해 비용이 높고 신규 업무 적용이 느렸습니다.

RexUniNLU의 기술 구조

Siamese-UIE 아키텍처 기반의 RexUniNLU는 대조학습과 프롬프트 학습을 결합합니다. 이중탑 구조가 레이블 설명과 입력 텍스트의 의미적 유사성을 계산하는 방식으로, 세 가지 장점을 제공합니다:

  • 레이블 데이터 없이 미확인 의도 인식 가능
  • 대형 언어 모델 대비 90% 이상 경량화, 5-10배 빠른 추론
  • 은행·증권 등 금융 도메인 별도 학습 없이 적용

은행 업무 적용 사례

스키마 설계 예시:

# 은행 의도 정의
bank_actions = [
    '계좌조회', 
    '송금이체',
    '대출신청',
    '카드분할결제'
]

# 금융 개체 정의
finance_terms = [
    '거래금액',
    '계좌번호',
    '적용이율',
    '상품명'
]

의도 분석 실행 코드:

from rex_uninlu import NLUProcessor

nlu_engine = NLUProcessor(model_path='rex_model')

def detect_intent(text_input):
    # 의도와 개체 태그 결합
    action_tags = bank_actions + finance_terms
    return nlu_engine.analyze(text_input, action_tags)

user_questions = [
    "어제 이체한 내역 확인 부탁드립니다",
    "카드 대금 50만원 분할납부 방법 알려주세요"
]

for question in user_questions:
    result = detect_intent(question)
    print(f"질의: {question}")
    print(f"결과: {result['intents']}")

상용 환경 배포

FastAPI 기반 REST 서비스 구현:

# API 서비스 실행
uvicorn.run(app, host="0.0.0.0", port=8080)

Docker 배포 설정:

FROM python:3.9
WORKDIR /app
COPY ./requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 8080
CMD ["uvicorn", "nlu_api:app", "--host", "0.0.0.0"]

성능 최적화 가이드:

환경 규모CPU메모리초당 처리량
테스트4코어8GB20QPS
상용8코어16GB100QPS

성능 비교 데이터

의도 유형키워드 매칭지도학습RexUniNLU
계좌조회78.2%92.5%89.7%
자금이체75.6%94.1%91.3%

스키마 설계 원칙

  • 비즈니스 용어 사용: "거래액" 대신 "이체금액"
  • 동사 포함: "대출" → "대출신청"
  • 계층적 구조 적용:
finance_schema = {
    "업무동작": ["잔액조회", "송금처리"],
    "금융개체": ["은행계좌", "거래일자"]
}

보안 및 규정 준수

  • 온프레미스 배포로 데이터 사생활 보호
  • 모든 분석 요청에 대한 감사 로깅
  • 스키마 버전 관리 체계 구축

태그: RexUniNLU 제로샷학습 의도인식 은행AI Siamese-UIE

5월 30일 10:45에 게시됨