본 글은 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의 이점
- 하나의 모델이 다양한 업무에 사용될 수 있다. 모델 하나가 거대한 데이터를 학습해 수십억 개의 파라미터를 가졌기 때문에 번역, 문장 완성, 텍스트 분류, 질의응답 등의 작업을 수행할 수 있다.
- LLM은 최소한의 필드 학습 데이터만 있으면 모델을 조정하여 그 분야에 해당하는 특정 문제를 해결할 수 있다. 도메인 학습 데이터가 거의 없어도 few-shot, zero-shot 학습 기법을 이용해 모델을 학습시킬 수 있다.
- Few shot: 최소한의 데이터로 모델을 훈련시키는 것
- zero-shot: 이전 학습에서 학습하지 않은 것을 모델이 인식하는 것
- 더 많은 데이터와 파라미터 추가 시 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: 모델이 처음에 답에 대한 이유를 설명한 출력값을 내면 옳은 답변을 얻을 확률이 높아진다.
- 처음에 모델이 옳은 답을 바로 내놓을 가능성은 적다.
- 두 번째 질문을 할 때쯤에는 출력이 정답이 될 가능성이 높아진다.
- 처음에 모델이 옳은 답을 바로 내놓을 가능성은 적다.
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 |