일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- hyperclovaX
- OpenAI
- 3기
- AIVLE
- gpt
- AI
- 인공지능
- KoGPT
- ML
- nlp
- generative
- 생성형
- 네이버
- TRANSFORMER
- Meta
- KT
- LLaMA
- 생성형 AI
- naver
- GPT-4
- SearchGPT
- ChatGPT
- LLM
- GPT4
- Stable Diffusion
- deeplearning
- SKT
- GPT-3.5
- 딥러닝
- Today
- Total
Ttoro_Tech
[AIVLE_3기]_16주차_KoAlpaca 세미나(goorm_commit) 본문
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 중 가장 큰 모델!
KoAlpaca 밥주기!
- v1.0 : 한국어 명령어를 따르는 한국어 LM 만들기
- Alpaca 데이터셋 52k개의 Instruct와 Input을 DeepL로 번역(~$100)
- 번역된 데이터를 기반으로 Output을 ChatGPT API로 새로 생성, Batch Decoding 활용
v1.1a 제작 과정
- 친절하게 답변하는 한국어 LM 만들기
- 네이버 지식인 데이터를 기반으로 질문-답변 데이터쌍 생성(한국어에 특화된 데이터 셋을 생성)
- 지식인의 "채택" 데이터의 퀄리티를 믿고 사용
- "채택" = Human Preference모두 검수하기엔 시간과 자원의 어려움
- 그래서 ChatGPT를 통해 데이터를 생성하도록 만듦
KoAlpaca, 앞에 나온 걸 참고해봐
- v1.1b 제작 과정
- 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)
QnA
- 1. 많은 모델들이 GPT-4는 물론, 3.5에도 성능이 딸리는 것 같은데 성능은 괜찮은지?
- 영어는 많은 데이터셋이 존재하나, 한국어의 경우 AI HUB에서 제공하는 데이터 셋만으로 부족함
- 많은 양질의 데이터가 있다면 좋은 성능이 나올 수 있으나, 이는 유니콘 같은 느낌
- 하지만 충분한 양의 데이터만 학습할 수 있다면 좋은 성능을 보여줄 수 있을거라 기대함
- 2. LLM의 성능 비교는 어떻게 되는가?
- 아직 정확한 Metrics가 없기 때문에 애매함
- 이와 같은 분야는 아직도 연구가 되어야 한다고 생각함.
- 3. 버전 업데이트를 할 때 어떻게 하였는가?
- 아직 문서화하지 못해서 많은 질문을 받음
- 같은 방식으로 학습한 것이 아니라 다양한 방식의 방법으로 학습하는 방법을 사용함
- 4. Ko-RWKV 극복 방법?
- RNN을 사용하였고, 병렬 학습 방법으로 학습을 진행하였음.
- 멀리 떨어진 맥락을 잊어버리는 것은 아직 해결하지 못하였으나, 아직 그만큼의 크기의 데이터를 학습하지 않았기 때문
- 5. KcELECTRA 잘 쓰고 있습니다.
- 많은 사용 바랍니다 :)
'Tech Plus' 카테고리의 다른 글
[Technical Interview]_자기 반성의 방_1~3 (2) | 2024.02.25 |
---|---|
[HyperCLOVA X]_Naver_DAN23_Conference (0) | 2023.08.25 |
[세미나_goorm]_‘KoAlpaca’_개발기 (0) | 2023.05.18 |
[세미나]_AIFactory_LLM기반_챗봇_만들기 (0) | 2023.05.09 |
[Jupyter_CUDA]_Jupyter에서 외장그래픽 사용하기 (0) | 2023.04.25 |