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 정도가 높고, 무관한 것들은 낮게 나오도록 학습시킨다
    • 관련 링크
    • 관련 코드 스펙
  • Attention Is All You Need (Transformer)
    • Attention 이랑 무엇이 다를까?
    • Reasoning -> 왜 그럴까? 를 확인해보면 프롬프트 엔지니어링이 개선이 된다
    • step by step 이 쓰여있는 글과 아닌 글 차이의 맥락의 차이가 있기 때문에 Reasoning 에 영향을 준다
    • "할머니가 위독한데 .." 로 시작하는 것도 결과에 영향을 끼친다고 한다..
      • workd embedding for "Apple" 
        • 만일 2차원으로 표시한다면 전자 기기 context 에 가까워야할까 아니면 과일, 채소 쪽에 가까워야할까
        • 따라서 주변 단어의 영향을 받아 결론지을 수 있다는 것이 핵심
        • self attention 이 transformer 의 핵심이다
  • 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
  • 공개된 모델의 특징
    • 모델 크기를 줄이고, 학습 데이터와 학습량을 늘림 -> 학습때만 비용이 들게
    • 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
반응형