본문 바로가기

Programming/컨퍼런스

[당근 ML 밋업] LLM을 프로덕션에 적용하며 배운 것들

https://www.youtube.com/watch?v=NzxlIGPbICY

 

 

 

내용

 

  • 활용
    • 중고거래 : 관련된 키워드로 추천, 광고 노출
    • 동네생활 :장소 이름 추출, 정보 제공
    • 동네생활 : 별도 해시태그 사용하지 않아도 해시태그 생성, 추천태그에 노출
    • 모임 : 모집하는 나이, 성별, 주제 기반 모임 추천
    • 부동산 : 복붙한 줄글을 인식하고 입력폼 자동 작성

 

 

  • 실시간 LLM 파이프라인

 

 

  • TIP 1 : 프롬프트의 중요성

프롬프트는 자연어로 작성돼 태생적으로 모호함

띄어쓰기, 줄바꿈으로 결과가 달라지기도 함

 

 

  • TIP 2 : 반복된 실험, 평가

1. 평가 데이터셋 마련하기

중요한 엣지 케이스 포함, 보완

 

2. 자동화된 배치 평가 파이프라인 마련하기

Task-specific Metric

Error / Invalid format Rate

GPT-4 Auto Eval

도메인 전문가 정성 평가

 

 

 

 

  • TIP 3 : 좋은 프롬프트 만드는 노하우 체계화하기

 

 

  • TIP 4 : 구분자로 구조를 명확하게

Markdown, XML 등 문법으로 명확하게 구조화해 모델이 이해하기 쉽도록 함

 

 

  • TIP 5 : 요구사항 구체화

 

 

  • TIP 6 : 예시 활용하기

예시가 너무 구체적이고 많으면 성능이 저하될 수도 있음

예시 기반으로 편향될 수도 있음

=> 이해, 출력 형식 설명을 위한 1~2개의 예시만 제한적으로 사용하는 것을 추천함

 

  • TIP 7 : 생각하고 말하게 하기

단계별로 사고 과정을 작성하게 해 정확한 추론을 하도록 함

단계별 설명, 요약, paraphrase, 조건 추가 통해 효과적으로 prompt

 

 

  • TIP 8 : Pseudo Code로 지시

 

 

  • TIP 9 : 지시사항, 사용자 입력의 순서도 중요

컨텍스트가 길면 앞쪽 내용이 잊혀질 수 있어 지시사항, 사용자 입력을 뒤쪽에 두는 것이 나음

 

 

  • TIP 10 : 필드 이름도 중요

 

 

  • TIP 11 : 잘 모르면 지어냄 (할루시네이션)

조건을 벗어나거나 예외일 때 어떻게 처리할지 알려줘야 함

 

 

  • TIP 12 : 출력 형식 제어하기

 

 

  • TIP 13 : 실패 대비하기

LLM API에서 장애 발생할 때가 있으므로 서비스 불가 상태 되었을 때, 지연시간 길어질 때의 대응방안 필요

 

1. Model Fall-back

실시간 서비스 => 다른 모델로 대체하기

동일 프롬프트로도 모델에 따라 품질 다를 수 있어 주의해야 함

 

2. Data back fill

비동기 데이터 처리 => 실패 건에 대해 장애 후 재처리

 

 

  • TIP 14 : 모델 수명 고려하기

LLM은 계속 새 버전으로 업데이트되고 제한된 수명 가짐

Auto-updated 모델 alias 사용하면 모르는 사이 업데이트될 수도 있음

=> 

프로덕션에서는 버전 지정해 사용하는 것 추천

 

 

  • TIP 15 : 사용량 고려하기

LLM API는 사용량 제한 있음

다양한 파이프라인에서 하나의 서비스 계정 사용 => 사용량 초과, 모든 파이프라인에서 장애가 발생할 수 있음

 

1. 서비스 계정별 사용량 모니터링

2. 파이프라인별 사용량 모니터링

3. 파이프라인별 계정 분리하기

 

 

  • TIP 16 : 서비스와 기능의 성공에 집중하기

성공 측정 지표 모니터링

배치 평가에서 보지 못한 오류, 예외 모니터링 → 평가 데이터에 추가해 반복적으로 개선하기

 

 

  • 요약

실험과 평가를 반복적으로, 빠르게 하기
좋은 프롬프트에 대한 노하우를 체계화해 가이드라인 만들기
서비스, 기능의 성공에 집중하고 지속적으로 개선하기