학습일지/AI

SK Tech Summit 2023 - 비즈니스에 실제로 활용 가능한 LLM 서비스 만들기

inspirit941 2024. 2. 17. 00:18
반응형

비즈니스에 실제로 활용 가능한 LLM 서비스 만들기

SKT Data Application팀 김찬호님

스크린샷 2024-02-16 오후 4 11 39

 

개요

스크린샷 2024-02-16 오후 4 22 00스크린샷 2024-02-16 오후 4 22 56

 
chatGPT 출시 전인 22년 9월 / 출시 이후인 23년 9월에 세콰이어 캐피털에 올라온 글.

스크린샷 2024-02-16 오후 4 25 25

 
GPT-4한테 요약시킨 결과

  • 22.09: Gen AI가 창의성의 일부분에서 인간보다 우월한 성과를 내고 있다.
  • 23.09: Gen AI는 혁신적인 제품이었다. 유용성에 의문이 있었으나, 가치를 창출하는 시장이 출현하고 있다. 기대해볼 만하다.

스크린샷 2024-02-16 오후 4 27 22스크린샷 2024-02-16 오후 4 29 35

 

  • 22.09: foundation 모델 열거하고, 도메인 예시만 짤막하게 썼던 반면
  • 23.09: Stack 구조를 소개함. 도메인별 foundation 모델 / serving, management tool / framework / application / monitoring 등 다양한 부분이 발전했음

Production Level에서 가치를 창출하는 '적용 사례' / Challenge?

  • 슬라이드에는 6개가 명시되어 있지만, 이건 어디서 공식으로 명명된 게 아니며 상호 영향을 미치는 부분도 있다.

Security

스크린샷 2024-02-16 오후 4 37 20스크린샷 2024-02-16 오후 4 38 13

 
미디어에서 한창 겁주던 시절의 대표적인 보도예시.

  • 기업 내부정보가 유출되는 게 아닐까?
  • 서비스의 Monitoring / Audit이 가능한가?

스크린샷 2024-02-16 오후 4 42 31스크린샷 2024-02-16 오후 4 43 06

 
Azure Cloud에서 제공하는 OpenAI를 선택했었는데

  • Cloud Provider에서 제공하는 Compliance, Reliability, Security를 신뢰할 수 있었기 때문.
  • 데이터센터 연결 쪽에서 특히 좋음.

스크린샷 2024-02-16 오후 4 44 56

 
public OpenAI는 서비스 품질개선이나 악의적인 공격 방지를 위해 데이터를 일정 기간 수집하고, 필요시 human access가 가능하다는 점을 명시함.
Azure OpenAI의 경우, 서비스 시작할 때부터 opt-out 옵션을 제공했음.

  • prompt monitoring
  • content filtering

OpenAI vs Azure OpenAI: 앱 특징, 타겟 고객 특징, 인프라 요구사항에 맞춰서 선택하면 된다.

Hallucination / Controllability

스크린샷 2024-02-16 오후 4 49 18스크린샷 2024-02-16 오후 4 50 02

 
23년 2월, Bard가 오답을 내놓은 사례.

  • LLM이 잘못된 답을 생성할 때 어떻게 해야 하나?
  • 내부자료나 최신자료를 근거로 답변하도록 만들 수 있나?
  • 답변 정확도 높이는 방법은?
  • 원하는 형태로 답을 받으려면?

스크린샷 2024-02-16 오후 4 51 12스크린샷 2024-02-16 오후 4 52 11

 
대부분의 LLM에서는 temperature / top P 등의 옵션을 제공함.
결국 LLM은 '다음에 나올 단어 예측' 모델이므로, 특정 단어 다음에 어떤 단어가 나올지 확률을 계산할 수 있다.

  • 때로는 특정 단어가 높은 확률로 나올 수도 있고 (Peaked), 다양한 단어가 비슷한 확률로 등장할 수도 있다 (Flat)

top P

  • 기준이 되는 확률값을 정의한 뒤, 개별 단어의 확률 총합이 기준 확률에 도달할 때까지 후보군을 수집한다.
  • 후보군에서 랜덤으로 하나 고르는 식.
    • i.e. 오른쪽 예시의 경우 top P가 0.5라면, 개별 등장확률이 0.08 미만인 thougth, knew, had... 등 다양한 단어가 후보군에 올라간다.
    • 계산 편하게 대충 0.08 확률이라고 치면, 0.5에 근접할 때까지 확률을 더하다 보면 6~7개 단어가 후보군에 포함됨.
    • 그 6~7개 단어 중에서 랜덤으로 하나 뽑는다
  • 만약 왼쪽 예시처럼 단어 하나가 0.8로 높은 확률이라면, 그 단어 하나만 뽑아도 top P 기준치였던 0.5를 초과함. 따라서 단어 선택지는 하나밖에 안 나온다.

temperature: scaling parameter

  • 확률 간 절대값 차이를 줄여주는 옵션.
  • 좀전의 예시에서 0.8 확률의 단어는 이론의 여지 없이 그냥 선택됨. temperature 값을 주면, 0.8이었던 가중치가 예컨대 0.5 이하로 내려가도록 scale을 조정한다.
    • 조정되면, 랜덤 샘플링에서 선택할 수 있는 단어의 선택지가 많아질 수 있다.

스크린샷 2024-02-16 오후 5 06 13스크린샷 2024-02-16 오후 5 06 42스크린샷 2024-02-16 오후 5 06 49

 
RAG 기법 / 아키텍처로 응답에 필요한 레퍼런스 지식을 전달할 수 있다. Cache 아키텍처를 좀더 보자면

  • Ask Question -> Embedding -> Vector Space에서 relevant Docs를 가져온다 -> LLM에 전달
  • 여기서, 자주 호출될 것 같은 query는 long-term memory에 저장해두고, cache hit할 경우 LLM 거치지 않고 바로 응답하도록 한다.
    • controllability 향상. 내가 의도한 답변을 전달할 수 있기 때문.

스크린샷 2024-02-16 오후 5 52 14

 
Prompt 관련 설정들

  • Directive: Complex한 Direction을 주고
  • Data: 적절한 데이터 넣어주고
  • Role: 역할을 부여한다.

스크린샷 2024-02-16 오후 5 54 28스크린샷 2024-02-16 오후 5 55 02

 
Chain of Thoughts (COT) / 이걸 트리 구조로 확장하면 단방향 Tree of Thoughts.

스크린샷 2024-02-16 오후 5 55 33

 
단방향 말고, 과거에 만든 tree 정보도 재활용하자 - Graph of Thoughts
이외에도 기상천외한 방법들이 사례로 나오고 있는데

  • Take a deep breath and Work on this step by step 했더니 성능이 올라갔다
  • 감정에 호소하니까 성능이 올라갔다

언어는 수학이나 공학으로 이루어진 게 아니므로... 그럴 수 있다고 생각한다.

학습한 언어 데이터에 이런 경향성이 반영되어 있을 수 있기 때문.

Performance / Measurement

스크린샷 2024-02-16 오후 5 55 33스크린샷 2024-02-16 오후 6 00 16

 
OpenAI는 RateLimit을 설정해뒀다. 리소스가 부족하니까.

스크린샷 2024-02-16 오후 6 00 52스크린샷 2024-02-16 오후 6 02 13

 
Performance를 올리는 방법으로 Scale up, Scale out이 있는데

  • scale up: reserved capacity 지원. 비싼 대신 빠르다.
  • scale out

스크린샷 2024-02-16 오후 6 04 08스크린샷 2024-02-16 오후 6 05 05

 
Measurement: MMLU가 거의 표준으로 자리잡았음.

  • 57개 영역 - 수학, 공학 등 다양한 분야의 지식에 정답을 맞추는지 확인하는 것.
  • GPT-4가 제일 수치가 높음.

그러나.. 이게 비즈니스 / vertical 영역에 부합하는지는 불확실.

스크린샷 2024-02-16 오후 6 06 40

 
요런 정성적인 기준을 가지고 평가할 수 있음.

  • Grounded: RAG로 던져준 지식이 LLM 응답결과에 얼마나 포함되었나
  • Relevance
  • Coherence: 응집도 있는 답변인가
  • ...

LangSmith 프레임워크에서도 이런 기준을 제시하고 있음.

Actionability / Feedback / UX

스크린샷 2024-02-16 오후 6 09 04

 
챗봇 말고, 실제로 Action을 가능하게 하려면?

  • Function Call, Agent...

사용자의 피드백을 어떻게 사용할 것인가

  • 좋은 답변은 cache해서 넘겨주거나
  • 따봉 받은 input / output Pair를 fine-tuning에 쓴다던가

interaction 디자인 / LLM 잘못 쓰는 것들 방어는 어떻게?

스크린샷 2024-02-16 오후 6 11 34

 
Agent Architecture 예시: MS의 AutoGen

스크린샷 2024-02-16 오후 6 11 56

 
LLM chat 서비스에서 시작할 때 쓰는 UX 예시

  • '나는 무슨 일을 하는 챗봇입니다' 소개
  • 예시로 어떤 문장을 넣을 수 있는지 안내

스크린샷 2024-02-16 오후 6 12 14

 
다양한 분야에서 논의 / 발전이 이루어지는 중.


스크린샷 2024-02-16 오후 6 13 15스크린샷 2024-02-16 오후 6 13 35

 
Foundation 모델 자체의 발전속도도 빠르다. Multi Modal인 GPT-4V의 경우

  • '존맛탱' 이 포함된 이미지를 던져주면 그게 무슨 뜻인지 설명해준다거나
  • 사진을 주고 '이 사람이 차보다 큰가' 질문하면 '원근감 때문에 확신할 수 없다' 라고 답한다거나
반응형