GETTING MY DUCKS IN A ROW

AI/Generative AI

[GenAI StudyJam] Introduction to Large Language Models

Yoobin Park 2024. 5. 15. 16:15
본 글은 Google Cloud Skills Boost의 Beginner:Introduction to Generative AI Learning Path >  Introduction to Large Language Models 영상에서 배운 내용을 정리한 글이며, 본 글에 첨부된 모든 사진 또한 해당 영상의 캡처본입니다.

Large Language Models (LLMs)

  • 대규모 언어 모델은 Deep learning의 하위집합으로, 생성형 AI와도 겹치는 분야이다.
  • 생성형 AI: 새로운 컨텐츠를 생산할 수 있는 인공지능의 한 유형인데 텍스트 이미지, 오디오, 합성 데이터 등이 예시다.
  • 대규모 언어 모델(Large, general-purpose language model)은 Pre-training을 진행한 후 특정 목적에 맞게 미세 조정할 수 있는 대규모 범용 모델이다.
  • 개를 생각해보자. 개에게 ‘앉아, 이리와, 엎드려, 기다려’ 등을 가르쳐 기본적인 기능(?)을 할 수 있도록 하는 훈련을 시킨다면, 이 훈련을 pre-training에 해당한다고 할 수 있다.

  • 하지만 만약 강아지를 경찰견, 시각장애인 안내견 등의 역할을 하게 하고 싶은 경우, 특별한 훈련이 추가적으로 필요하다.

  • 이와 같이 Large Language model들은 text classification, 질의응답, 문서 요약, 텍스트 생성 등 범용적인 언어 문제들을 해결할 수 있도록 훈련이 되어 있고, 이 미리 훈련된(pre-trained) 대규모 모델을 도소매, 금융, 엔터테인먼트 등 다양한 분야에 특정되는 상대적으로 적은 양의 데이터를 이용해 그 분야의 관련 태스크들을 해결할 수 있도록 재단할 수 있는데, 이를 fine-tuning이라고 한다.

Large Language Model의 3가지 특징

Large

  • Large training dataset → 때때로 PB 단위의 데이터를 가지고 훈련한다.
  • Large number of parameters → 모델 학습시 학습한 메모리나 지식 즉, 하이퍼 파라미터의 수가 굉장히 크다. 텍스트를 예측하는 것과 같은 스킬을 뜻하기도 한다.

General Purpose

  • 모델이 일반적인 문제를 해결하기에 충분하다.
  • Commonality of human languages → 태스크에 상관없이 인간이 사용하는 언어에 공통성이 있다.
  • Resource Restriction → 특정 조직만 거대한 데이터셋과 엄청난 수의 파라미터로 LLM을 학습시킬 수 있다. 그 조직에게 다른 조직일 사용할 수 있는 (일반적인 태스크를 처리할 수 있는) 기본 언어 모델을 만들게 하고, 나머지는 다른 조직의 작은 데이터셋으로 LLM을 훈련하게 한다.

Pre-trained and fine tuned

  • 대규모 언어 모델을 pre-training한 다음 훨씬 더 작은 데이터셋으로 목적에 맞게 미세 조정할 수 있다.

LLM의 이점

  1. 하나의 모델이 다양한 업무에 사용될 수 있다. 모델 하나가 거대한 데이터를 학습해 수십억 개의 파라미터를 가졌기 때문에 번역, 문장 완성, 텍스트 분류, 질의응답 등의 작업을 수행할 수 있다.
  2. LLM은 최소한의 필드 학습 데이터만 있으면 모델을 조정하여 그 분야에 해당하는 특정 문제를 해결할 수 있다. 도메인 학습 데이터가 거의 없어도 few-shot, zero-shot 학습 기법을 이용해 모델을 학습시킬 수 있다.
    • Few shot: 최소한의 데이터로 모델을 훈련시키는 것
    • zero-shot: 이전 학습에서 학습하지 않은 것을 모델이 인식하는 것
  3. 더 많은 데이터와 파라미터 추가 시 LLM의 성능이 계속 개선된다.

PaLM (Pathways Language Model)

  • 5,400억 개의 파라미터를 통해 cutting-edge 성능을 도달
  • 고밀도 decoder-only model
  • 새로운 Pathway 시스템으로 여러 개의 TPUv4 Pod를 통해 하나의 모델을 효율적으로 훈련
  • 새로운 AI 구조로 새 작업을 더 빠르게 학습
  • accelerators의 분산 연산 가능

Transformer model

  • Encoder와 Decoder로 구성
    • Encoder: input sequence를 encoding → decoder로 전달
    • Decoder: 관련 task에 관한 표현을 decoding하는 법을 학습

LLM Development vs Traditional Development

  • LaMDA, PaLM, GPT 등 생성형 언어 모델은 인터넷을 통해 방대한 데이터 수집 → 프롬프트에 입력된 질문을 통해 간단하게 사용할 수 있는 기본 모델을 빌드함
  LLM Development (using pre-trained APIs) Traditional ML Development
ML expertise X O
Training examples X O
Model Training X O (Compute time + hardware)
All you need to do is… Prompt Design Minimizing a loss function

LLM Use Cases

Questing Answering (QA) 

  • 자연어로 제시된 문항에 자동으로 답하는 자연어 처리 (Natural Language Processing)의 일부
  • 많은 양의 텍스트와 코드로 학습하여 사실, 정의, 의견 기반 질문을 포함하여 광범위한 질문에 답할 수 있다. → 도메인 지식이 있어야 질의 응답 모델을 만들 수 있음

Generative QA

  • 문맥을 기반으로 free text 생성
  • Text generation 모델 사용
  • 도메인 지식 필요 없음

Prompt Tuning

Prompt Design

  • 언어모델에게 받고 싶은 응답을 명시하는 프롬프트를 만드는 과정
Prompt Design Prompt Engineering (전문적 개념)
특정 task를 달성하기 위해 언어모델에 전달할 문맥과 지시사항을 포함한 프롬프트 다양한 어플리케이션을 위한 언어모델을 효율적으로 사용하기 위해 프롬프트를 개발하고 최적화하는 일련의 수행과
영어 → 프랑스어 번역 시 프롬프트를 영어로 작성하고 프랑스어로 번역하도록 지정 도메인 지식 사용, 원하는 출력 예시 제공, 특정 시스템에 효과적인 것으로 알려진 키워드 사용
보다 일반적인 개념
필수적
전문적인 개념
고도의 정확도나 성능이 필요한 시스템일 때

LLM의 종류 3가지

  • Prompting 방법에 따라 3 가지로 나눌 수 있다.

Generic (or Raw) Language Models

  • 훈련 데이터의 언어를 기반으로 다음 단어(token)를 예측한다.

  • 위와 같이 ‘The cat sat on’ 이라는 완성되지 않은 문장이 주어졌을 때, 입력값의 토큰을 벡터로 표현하고, 출력값으로 나올 토큰의 벡터를 살펴보면 ‘the’가 올 가능성이 가장 크다. 검색창의 ‘자동 완성’기능을 생각하면 된다.

Instruction Tuned Models

  • 입력값으로 주어진 지시사항에 대한 응답을 예측하도록 훈련된 모델

  • 주어진 텍스트에 대해 중립, 부정, 긍정 등으로 감성분류를 하기도 한다.

Dialog Tuned Models

  • 다음 응답을 예측하여 대화를 할 수 있도록 학습된 모델.
  • 긴 대화가 오가는 맥락에 특화된 Instruction tuned으로, 요청사항이 주로 챗봇에 대한 질문으로 표현되는 튜닝법이다.
  • 일반적으로 자연스러운 질문 문구에 더 잘 먹힌다.

  • Chain of Thought Reasoning: 모델이 처음에 답에 대한 이유를 설명한 출력값을 내면 옳은 답변을 얻을 확률이 높아진다.
    1. 처음에 모델이 옳은 답을 바로 내놓을 가능성은 적다.
    2. 두 번째 질문을 할 때쯤에는 출력이 정답이 될 가능성이 높아진다.

Tuning vs Fine Tuning

Tuning

  • 모델에 새로운 데이터를 훈련시켜 모델을 새로운 도메인이나 특정 사용 목적으로 조절 수 있다.
    • e.g. 법률이나 의학 도메인에 특화된 훈련 데이터를 모아서 LLM을 tuning할 수 있다.
  • 일반적인 목적으로 설계된 LLM보다 이 LLM을 특정 분야의 task를 해결하도록 tuning하면 LLM은 더 안정적이게 된다.

Fine Tuning

  • 따로 훈련 데이터셋을 가지고 LLM의 모든 가중치를 튜닝하는 것
  • 굉장히 큰 훈련작업이 필요하기 때문에 비용이 많이 들고 비현실적인 경우가 많다. → 그렇다면 효율적인 튜닝방법은 없는걸까? 

Parameter-Efficient Tuning Methods (PETM)

  • 모델을 복제하지 않고 LLM을 본인만의 custom data로 튜닝하는 것. 기초 모델은 바뀌지 않고, 적은 수로 추가한 layer들에 대해 튜닝하여 추론 시에 그 layer들을 swap in/out할 수 있게 하는 것
  • Prompt tuning이 여기에 해당된다.

'AI > Generative AI' 카테고리의 다른 글

[GenAI StudyJam] Chain of Thought React (CoT)  (1) 2024.06.01
[GenAI StudyJAM] Introduction to Generative AI  (2) 2024.05.05