Ttoro_Tech

[AIVLE_3기]_16주차_KoAlpaca 세미나(goorm_commit) 본문

Tech Plus

[AIVLE_3기]_16주차_KoAlpaca 세미나(goorm_commit)

Lee_Ttoro 2023. 5. 24. 20:43

https://www.youtube.com/watch?v=rOmrWC_K6M4  ('23.05.25. 기준 한 달뒤 공개될 예정)

LLM?

  • ChatGPT
  • GPT-4
  • Bard

왜 LLM이 이렇게 인기가 많지?

  • 다양한 Text 학습
    • 다양한 지식을 알고 있음
  • 언어 이해 능력
    • 각 맥락의 문맥을 이해함
  • ICL : 학습없는 학습
    • 예제 몇 개만으로도 높은 Few-shot 성능
  • 쉬운 API 서비스들
    • OpenAI의 API

현실적 이슈

  • 인력
    • LLM을 학습하거나 응용할 AI 개발자
  • 예산
    • CPU 컴퓨팅은 비싸다
  • 데이터
    • 우리는 충분한 데이터를 가지고 있나?
  • 그외 Privacy, Legal Issue

LLM을 이용하는 다양한 방법

1. API 서비스를 활용하기

ChatGPT, GPT-4, HyperClova, ... 같은 서비스를 곧바로 적용하자!

  • 장점
    • 고성능
    • 사용한 만큼 비용 부과하는 정책
    • 큰 모델을 곧바로 서비스에 적용 가능
    • AI 개발자 별도로 필요 X, 기존 개발자들도 이용 가능
  • 단점
    • 서버 관리가 잘 된다는 보장 없음(OpenAI 서버는 자주 죽음)
    • GPT-4와 같은 경우는 매우 낮은 Quota(분당 200건 요청 수 제한)
    • 서비스 유지가 의존적

2. 작은 전용 LM을 쓰기

BERT, GPT-2,... 등의 1B 이내의 작은 LM으로 서비스를 만들기

  • 장점
    • 원하는 형태의 출력이 가능
    • 비싸지 않은 학습 비용
    • CPU 등으로 서빙하면 비용 절감도 가능
  • 단점
    • 제한된 성능
    • Task별 Finetune용 데이터 구축 필요 -> LLM 학습용 텍스트 구축보다 어려움
    • AI 연구 개발 인력 필요
    • LLM보다 성능이 좋을지 알 수 없음
  • 여전히 서빙에 대한 고려가 필요함

3. 오픈소스 LLM 활용

LLAMA, Polyglot-ko 등 < 100B 이내의 작은 LLM으로 서비스를 만들기

  • 장점
    • GPT-4급은 아니어도 어느 정도 나오는 성능
    • 도메인 지식을 추가로 학습시킬 수 있음
    • 모델의 성능을 꾸준히 개선시킬 수 있음
  • 단점
    • 개선되었지만, 100B이상 LLM보다는 낮은 성능

상황별 현실적 접근 방법

큰 IT기업 / 대기업 그 사이 어딘가 자유로운 스타트업
자체 데이터 + 자체 GPU
(A100 * 1000대 이상)
보안에 신경써야 함
고객 Privacy도 신경써야 함
법률적 문제
Privacy / 법률 이슈 없음
ChatGPT / GPT-4

Q. 토큰을 매번 낭비하지 않으면서 모델에 추가적인 지식을 넣되
     유출 가능성이 낮으면서도 내부망에 서빙이 가능할까?

1. 토큰을 매번 낭비하지 않으면서

  • LLM API는 쓰는 글자 수(= 토큰 수)가 곧 비용
  • Finetune 아니라, 추가 지식 정보를 Prompt에 넣어주는 방식
  • $0.04/1k tokens(GPT-4)
  • 매번 요청모다 다른 매락이라면
  • Batch Decoding 기법도 쓰기 어려움

2. 모델에 추가적인 지식을 넣자

LM에 추가적인 지식을 넣어주는 Finetune

  • LLM API도 fine-tune 지원
  • 대표적으로 openAI GPT-3.5(text-davinci-003)
  • 학습도 비용, inference는 더 비싼 비용

LLM Finetune도 Full Finetune이 아닌 일부만 학습

  • 지식과 task에 대해 동시에 학습 요청
  • API로만 사용 가능(weight 얻을 수 없음)

Pretrain -> Domain Adaptation -> Task Adaptation

3. 유출 가능성이 낮으면서도 내부방에 서빙

  • 인터넷 요청이 아닌 내부에서 처리
  • 인터넷을 거치는 + 서비스 제공자에게 데이터가 넘어가는 외부 LLM API 서비스
  • 서비스 계약에 따른 보안 보장
  • 법률적 한계 혹은 고객에게 추가적 동의 절차 필요
  • 개발 후 실 데이터를 곧바로 적용 가능한 내부 서버

Instruction-Following LM, Alpaca

  • 언어 능력을 사용해서 학습
  • OpenAI InstructGPT(3.5)로 Instruct Set 52k개 제작
  • LLAMA 7B 모델을 Full Finetune
  • 단순히 말을 잇는 것이 아닌, Instruct에 맞게 행동하는 LM
모델은 이미 수많은 정보를 알고 있지만, 어떻게 말할지 모를 뿐

KoAlpaca!

Alpaca, 단순히 모델만 공개한게 아니라, DataSets도 공개됨

한국어 Instruct를 따르는 한국어 LM

  • 한국어 언어 모델을 Full Finetune
  • 한국어 Instruction Set을 제작
    • KoAlpaca v1.0 : Alpaca 번역 기반으로 데이터 생성 & 학습

Polyglot-Ko?

  • EleutherAI의 모델
  • 한국어 데이터로 학습
  • 1/3/5/12.8B 크기 모델
  • 오픈소스 한국어 LM 중 가장 큰 모델!

Hugging Face에서 사용 가능

KoAlpaca 밥주기!

  • v1.0 : 한국어 명령어를 따르는 한국어 LM 만들기
  • Alpaca 데이터셋 52k개의 Instruct와 Input을 DeepL로 번역(~$100)
  • 번역된 데이터를 기반으로 Output을 ChatGPT API로 새로 생성, Batch Decoding 활용

제공된 영어 Datasets을 번역기를 통해 데이터 셋 생성
제공된 데이터에 대해서는 잘 설명하는 것을 확인 가능

v1.1a 제작 과정

  • 친절하게 답변하는 한국어 LM 만들기
  • 네이버 지식인 데이터를 기반으로 질문-답변 데이터쌍 생성(한국어에 특화된 데이터 셋을 생성)
  • 지식인의 "채택" 데이터의 퀄리티를 믿고 사용
  • "채택" = Human Preference모두 검수하기엔 시간과 자원의 어려움

  • 그래서 ChatGPT를 통해 데이터를 생성하도록 만듦

한국어 대화 형식에 맞게 잘 설명해줌
하지만 추가 맥락에 대해서는 이해 못함

KoAlpaca, 앞에 나온 걸 참고해봐

  • v1.1b 제작 과정

맥락이 없으면 Hallucination이 심해짐
맥락이 추가되니 잘 답변함

  • v1.0 아는 것만 답변한 모델
  • v1.1 맥락을 알지 못하는 모델
  • v1.2 맥락이 더해져 강력해진 모델

언어 모델의 크기가 작아도, 좋은 Finetune 데이터로 새 능력을 넣어줄 수 있다

 

Emergent vs Instruct-Tuning

  • Emergent : 무한히 LM이 커지면, 모르는 것도 해결하는 능력을 보여줌
  • 100B 이상 크기의 LLM에서 나타나는 Emergent
  • Few-shot, Zero-shot에서 뛰어난 능력 발견

꼭 100B 아니어도 60B 수준에서도 발견되기도 함

별도의 학습 없이 모델의 내재된 능력만으로도 작업이 가능

LLM은 모든 상황에 대응하기 쉽지만...

  • 필요한 Use-case에 대응하는 LM?
  • Target Domain & Task를 이해하는 LM? 

가성비 좋은 접근법

모델 크기가 커지만 → 성능이 좋아진다!

어느 크기 수준의 LM을 어느 수준의 데이터로 얼마를 들여서 학습할까?

  • 현실적인 수준의 가성비 옵션
  • 학습뿐 아니라 서비스 서빙도 고려해야 함

3가지의 가성비(데이터/학습 비용/서빙 비용)

데이터 가성비

  • Pretrain Datasets
  • Domain Datasets
  • Task Datasets

학습 비용 가성비

  • A100/TPU 등으로 학습

학습을 하는데 많은 비용이 소모됨

LM 크기별 서빙에 필요한 장비

서빙 비용

서비스하는데 반응 시간을 어떻게 고려할 것인가?

  • 1. ms 단위 이하의 즉각적 응답
    • 상시 GPU로 떠있는 서버가 필요함
    • Cloud를 통해 사용하면 월 100만원 수준
  • 2. 수 초단위의 (지연된) 응답
    • Serverless GPU 서비스 활용
    • 사용하지 않으면 (거의) 무과금
    • 다양한 GPU 종류로 서비스가 가능함
  • 3. 배치성 작업
    • 메이저 클라우드 서비스의 Spot Instances를 사용 가능함
  • 저렴한 CPU를 사용할 수 있음(Vast.ai, Lambda Labs 등)

다양한 반응 시간에 따른 서비스

KoAlpaca처럼 LM을 잘 쓰려면?

 1) 바로 KoAlpaca 사용

  • ChatKoAlpaca 사용
  • ChatKoAlpaca는 챗팅을 학습했나요?
    • KoAlpaca-Polyglot-ko-12.8B 사용
    • 챗팅을 학습한 것이 아니라, 맥락에 따라 챗팅처럼 답변을 함

2) 비즈니스적 사용

ex) 진로톡톡

  • 초중고 진로 상담 수천 건을 학습
  • 진로 상담사의 역할을 학습
  • 이전 대화 맥락을 기억하고 상담 진행
  • 추가 정보를 DB 기반 Retrieval로 넣어주면 해당 맥락에 따라 정보도 제공

DATA DRIVEN

 

앞으로 나아갈 방향(Research Agendas)

'23.05.24. 당일 나온 논문

QnA

  • 1. 많은 모델들이 GPT-4는 물론, 3.5에도 성능이 딸리는 것 같은데 성능은 괜찮은지?
    • 영어는 많은 데이터셋이 존재하나, 한국어의 경우 AI HUB에서 제공하는 데이터 셋만으로 부족함
    • 많은 양질의 데이터가 있다면 좋은 성능이 나올 수 있으나, 이는 유니콘 같은 느낌
    • 하지만 충분한 양의 데이터만 학습할 수 있다면 좋은 성능을 보여줄 수 있을거라 기대함
  • 2. LLM의 성능 비교는 어떻게 되는가?
    • 아직 정확한 Metrics가 없기 때문에 애매함
    • 이와 같은 분야는 아직도 연구가 되어야 한다고 생각함.
  • 3. 버전 업데이트를 할 때 어떻게 하였는가?
    • 아직 문서화하지 못해서 많은 질문을 받음
    • 같은 방식으로 학습한 것이 아니라 다양한 방식의 방법으로 학습하는 방법을 사용함
  • 4. Ko-RWKV 극복 방법?
    • RNN을 사용하였고, 병렬 학습 방법으로 학습을 진행하였음.
    • 멀리 떨어진 맥락을 잊어버리는 것은 아직 해결하지 못하였으나, 아직 그만큼의 크기의 데이터를 학습하지 않았기 때문 
  • 5. KcELECTRA 잘 쓰고 있습니다.
    • 많은 사용 바랍니다 :)