AI
Advance AI - 1일차
fygoo-826
2024. 6. 18. 00:00
728x90
반응형
# 과정 일정
- Transformer
- Gen AI / LLM
- 모델 평가
- metric/ leaderboard
- LLMOps stack(개발 방향성)
- On Device AI
- Quantization
- sLLM(phi-w, Gemini Nano)
- Prompt Engineering 심화
- 타 서비스 프롬프트 분석
- 프롬프트 비용 / 압축
- RAG 심화
- Indexing
- Retrieval
- Generation
- Query translations
- Routing
- Query structuring
- Multi representation
- Find Tuning
- 경량 모델 파인 튜닝
- 평가 (Rouge, BLEU)
- LLM Pipeline
- Parallel Multiple & Function Calls
- Fine Tuning
- AI Agent Integration
- Multimodal 이해
# 사전 준비
- LLM 원리
- 주제별 실행 방법 및 주의 사항
- 트레이드 오프 밸런스 및 성능 개선 방법
- (개선된, 새로 나올) 모델, 라이브러리
- 기본적인 감이 있어야 한다
- computing 이 값 싼 시절이 있었는데, LLM 시절에는 다시 비싸졌다
- 클라우드 환경에 오면서 더 심해진 것 같다
- 아직은 정설이 없다 (best practice 가 없음)
- 매일 끝 없이 나오는 model, library... -> 각자 어떤 태도, 방법으로 following 할지 정해보자
# Basic
- AI 란 무엇일까?
- 알고리즘을 만드는 것
- 프로그램의 입력과 출력의 관계를 결정하는 것
- 소프트웨어 1.0: 알고리즘
- 입력 데이터 > 알고리즘 > 출력
- 소프트웨어 2.0: 데이터셋으로 부터 만들어진 머신러닝 모델
- 학습용 데이터 > 데이터셋 학습 > 머신러닝 모델
- 입력 데이터 > 머신러닝 모델 > 출력
- 소프트웨어 3.0: 프롬프트
- 프롬프트 = 컨텍스트 + 지시
- 컨텍스트가 프로그램이 될 수 있다(?!?)
- 프롬프트( = 프로그램 + 입력 데이터) > LLM(Agent) > 출력
- '관련 이미지 링크
- 알고리즘을 만드는 것
- Traditional ML vs DL?
- Feature Engineering vs Representation Learning 과 같다
- DL 에서 Hidden Layer 가 결국 REpresentation 을 의미하며 그 필터(Representation) 을 학습하고 저장하여 관리하는 것을 의미한다
- Parameter Learning
- 출력 = a * (입력) + b 라는 1차 함수라고 가정했을 때, a, b 와 같은 "기울기 a" 와 "y 절편 b" 를 추론해 나가는 것을 의미
- 정답과 출력값의 오차를 줄여가는 형태로 iteration 을 반복한다면 "a", "b" 를 정답에 가깝게 추론해나갈 수 있다
- Word Embedding
- 이미지를 3차원으로 나타낸 것을 RGB 라고 하는 것 처럼 언어도 N 차원으로 표현할 수 있을까?
- 이 것을 "Word Embedding" 이라고 한다
- 다양한 임베딩 규칙이 있으며 최근에는 OpenAI 에서도 API 형태로 제공해준다
- 문장 전체를 임베딩할 수 있고, document 전체를 embedding 할 수 있음
- 비슷한 방식으로, Word 말고도 문장, 이미지 등에 대해서도 vector(N 차원) 으로 변경해줄 수 있다
- gpt 의 경우 dimension 이 12_000 개 이상이라고 함
- 관련 링크
- Attention
- Attention Is All You Need (Transformer)
- Attention 이랑 무엇이 다를까?
- Reasoning -> 왜 그럴까? 를 확인해보면 프롬프트 엔지니어링이 개선이 된다
- step by step 이 쓰여있는 글과 아닌 글 차이의 맥락의 차이가 있기 때문에 Reasoning 에 영향을 준다
- "할머니가 위독한데 .." 로 시작하는 것도 결과에 영향을 끼친다고 한다..
- workd embedding for "Apple"
- 만일 2차원으로 표시한다면 전자 기기 context 에 가까워야할까 아니면 과일, 채소 쪽에 가까워야할까
- 따라서 주변 단어의 영향을 받아 결론지을 수 있다는 것이 핵심
- self attention 이 transformer 의 핵심이다
- workd embedding for "Apple"
- Similarity
- cos 를 가장 많이 쓴다
- Query, Key, Value
- Query: current word's vector to focus
- Key: Each word's vector against the word
- Value: each word's vector to carry information
- 위 3가지 개념을 이해하는 과정에 Python Dictionary, Java Map 과 같은 자료구조를 빗대어 표현할 수 있다
- Parallel Processing
- Positional Encoding
- Residual Connection
- Decoder
- Previous Output * Encoder Hiddle States 를 같이 활용하여 다시 stack 을 통과시켜 processing(attention) 작업을 도입한다
- Encoder 중 가장 마지막 layer 의 hidden state 결과물(z) 를 사용하는 것 같음 (이미지 참조)
- GPT
- Decode Only Transformer
- Encoder 가 없으니 학습 속도, 계산 속도가 빨라진다
- Encoder-Decoder Self Attention 을 지워버림
- Masked Self Attention 만 사용한다
- Language Model 로 맞추는 역할로 사용하기 보다는 생성언어로 활용하게 되는 계기가 된다 (모델 구조에 차이로 인한)
- 정말 코드 레벨에서 분석을 해보고 싶다면 링크 참고
- Token : basic unit of model
- Tokenizer 규칙에 따라서 한 단어임에도 불구하고 2개 이상의 Token 이 생성될 수 있음
- 한글보다 영어로 학습한 경우가 많아서 Tokeniner 가 훨씬 잘 동작할 것이며 그에 따라 Decode output 이 더 좋을 가능성이 높다는 뜻이다
- 가장 중요한 핵심
- Leader board
- ELO 스코어로 확인하는게 좋다(유저 피드백)
- 연산량 변화 조차 무어의 법칙을 뛰어넘는 것 같다
- 어떤 모델을 쓸 것인가??
- pre-traning 은 정말 중요하지만.. Inference 만 생각해보자
- Cloud Based API Service
- Open Model
- Cloud
- On prem
- On device
- 큰 모델 부터 -> 작은 모델부터(비용/하드웨어)
- llm 이 문제를 풀 수 있는지 검증해보고 싶은 사람은 현존하는 제일 좋은 모델을 통해 test 해보고 비용을 줄여나가는 형태로 가져가는 형태로 개발해나가는 것이 낫다
- 튜닝을 잘 못한건지, 모델을 잘 못 선택한건지, 데이터가 적은 건지 등.. 여러 오차가 많이 발생할 수 있기 때문에
- 한글의 경우는 English based model 이랑은 차이가 있을 수 있으니 그럴 땐 Cloud 혹은 Hugging face 기반 공개된 모델을 통해 해결해보자
- 가장 중요한 건 되기는 한다!! 라는 확신
- 클라우드 기반 주요 API 서비스
- Context Token 이란? -> Attention 모델에서 Query, Key 에 해당되는 keyword vector size 를 의미
- 일반적으로 클 수록 당연히 여러 단어와 비교를 해볼 수 있다는 것이다
- 앞서 공유한 내용 중 Word =~ Token
- ChatGPT -> 12.8만 토큰, Gemini -> 100만 토큰, Claude v3 -> 25만 토큰
- 임베딩에 투자하기 vs find tuning 에 투자하기는 차이가 있다
- 예를 들어, terminology 가 특화된 서비스의 경우에는 임베딩을 새로 해야할 수도 있고 그게 제일 쌀 수도 있다
- 비용은 계속 싸지고 있음
- 심지어 MS 에서도 간단한 모델의 경우 gpt 3.5 를 쓴다고 한다 ㅋㅋ
- 단점
- Controllability (Limited + Expensive fine tuning)
- Transparency
- Stability & Rate limit
- Privacy & Security
- Cost
- Context Token 이란? -> Attention 모델에서 Query, Key 에 해당되는 keyword vector size 를 의미
- 공개된 모델의 특징
- 모델 크기를 줄이고, 학습 데이터와 학습량을 늘림 -> 학습때만 비용이 들게
- Test Loss -> distribution 간에 유클리드 거리 혹은 코사인 유사도 라고 생각하면 되며 그 값을 줄이는 형태로 학습을 진행한다
- 이것이 Object Function 이 될 수 있고, 그 값을 줄이는 형태로 학습시키는 것이다
- GPT 170B 라는 숫자 값의 의미??
- Latency vs Throughput
- latentcy ~ cpu
- throughput ~ memory bandwidth
- KV caching
- Q K V 에서 K, V 는 RDB 로 비유하자면 세컨더리 인덱스와 실제 데이터(블록에 저장된)를 의미한다
- Q 는 인덱스를 찾기위한 query 의 값이므로 변화하지만 K, V 는 재활용될 터이니 KV-cache 로 캐싱하며 효율화할 수 있다고 한다(속도 관점에서)
- MoE (Mixture of Expert)
- 각각의 모델이 서로 다른 것을 학습 한 후, combination 해서 섞는 것을 의미한다
- e.g. GPT 4o, Apple
- query 가 들어오면 가장 중요한 Experts 모델 1 ~ 2개만 사용할 수 있다면 hbm 메모리를 싼 것을 사용할 수 있지 않을까?? 에서 나온 아이디어
- ETC
- Nvidia A100, H100, V100 등은 transformer only 용 GPU 임을 잊지말자
- On device 용 ai 는 cpu, gpu, memory 를 device 에서 돌릴것이니 보안상 문제가 없을 것이다라는 개념에서 출발
- Privacy
- Internet bandwidth free
- Low latency
- Reliability
- Cost
- LLM in a flash
- 하드웨어 별로 TOPS 가 다르기 떄문에 하드웨어 레벨에서 이 문제를 해결하려는 노력이 꽤 크다
- LLM in a flash with mac
- Quantization (양자화) -> 파라미터 32 bit - 16 bit - 4bit 까지 줄여버리면 정확도는 낮아져도 속도는 굉장히 빨라진다
728x90
반응형