퀴즈 리뷰
생성형 AI (Generative AI)
인공지능 > 머신러닝 > 딥러닝
인공지능 (AI; Artificial Intelligence)
: 인간이 하는 일을 대신 해주는 시스템을 만드는 컴퓨터 사이언스
머신러닝 (ML; Machine Learning)
: 인공지능의 기능을 구현함에 있어서, 데이터내에서 패턴을 찾아주는 블랙박스 형태
딥러닝 (DL; Deep Learning)
: 인공신경망의 다른 이름
- 인공신경망을 사용해서 기존의 ML 알고리즘이 처리하지 못하는 훨씬 더 복잡한 패턴도 처리할 수 있음
→ 생성형 AI는 딥러닝의 일부이다.
딥러닝 모델의 유형
1. Discriminative
: 레이블(=정답이 있는 훈련데이터)이 존재하는 데이터를 활용해서 분류(Classification)하거나 예측(Regression)함
→ 지도학습
ex. 주어진 이미지가 개 인지 or 고양이 인지 분류하는 것.
2. Generative (생성형 AI; Gen AI)
: 학습된 컨텐츠를 기반으로 또 다른 새로운 컨텐츠를 만드는 딥러닝 기술
- 분류하거나 예측하는 것이 아니라, 훈련된 데이터를 기반으로 패턴을 학습해서 비슷한 새로운 데이터를 만들어냄
- 훈련된 데이터의 통계적 특성을 이해해서 비슷한 컨텐츠를 만들어낼 수 있도록 함. 즉 정답이 있는 학습이 아니다. (모델을 돌릴때마다 매번 다른 결과물이 나올 수 있음)
→ 비지도학습
ex. 다양한 동물의 이미지가 주어졌을때, 이미지가 공통적으로 갖고 있는 특징이 무엇인지를 학습해서 학습된 데이터를 바탕으로 개 or 고양이 등의 새로운 이미지를 만들어내는 것.
일반적인 머신러닝 모델과의 차이는 '출력값'
- 일반적인 ML 모델의 출력값 : 숫자, 카테고리, 확률 등 (딱딱 나누어 떨어지는 것들)
- 생성형 AI 모델의 출력값 : 자연어, 이미지, 오디오 등
파운데이션 모델 (Foundation Model)
: 누군가 시간, 노력, 경험을 사용해서 광범위한 데이터 셋을 바탕으로 학습시킨 모델
- Pre-trained : 일반적인 지식(wiki pedia 등)이 학습되어 있다.
- Unsupervised Learning : 정답이 있는 것이 아닌, 대용량 데이터 셋을 학습하는 것이 목적이다.
- Transformer : 파운데이션 모델은 Transformer 모델 아키텍처를 사용한다.
** Transformer
- Google에서 BERT라는 모델을 만들면서 [Attention is All You Need] 논문에서 제안된 Transformer모델을 사용
- 하나의 트랜스포머 안에는 Encoder와 Decoder로 구성되어 있다.
- Transformer을 많이 사용함으로써 모델이 갖고 있는 성능을 확장하는 방식. Transformer 개수가 늘어날수록 시간과 비용이 늘어난다.
- 별도의 학습 없이 다양한 주제에 대해서 적용할 수 있다.
→ "Foundation(기반)"이라 부르는 이유. 일반적인 일들을 어느정도 할 수 있지만 매우 구체적인 내용에 대해서는 어렵다. 그래서 '근간'이 되는 일들을 작업할 수 있는 pre-trained된 모델인 것.
- GPT-3, GPT-4, BERT, T5, DALL-E 등
- 파운데이션 모델을 Fine-Tuning해서, 파운데이션 모델 위에 빠르게 조금 더 학습해서 우리가 원하는 성능을 만들어 낸다.
파인튜닝 (Fine-Tuning)
: 딥러닝에 일반적으로 존재하는 용어로, 누가 딥러닝으로 만든 모델이 있는 경우 이것을 약간 커스터마이징해서 내가 언하는 쪽으로 동작할 수 있또록 방향을 틀어주는 작업
** Supervised Fine-Tuning
: 베이스가 되는 Foundation model 위에 약간의 데이터를 가지고 가중치를 높인 형태로 재훈련 시키는 것.
ex. 기업의 Customer Service Chatbot을 만들고 싶은 경우, 해당 회사 제품에 대한 FAQ, 과거 Agent와 고객 간의 대화 내용 등을 입력으로 Foundation model위에 약간의 Layer을 만들어서 해당 Layer에 가중치를 학습시킨다. 그 결과가 Fine-Tuned LLM이 되는 것이다.
1) Pre-Trained LLM이 주어진다.
2) 해당 모델을 우리가 원하는 용도로 훈련데이터를 넣어준다.
3) 전체를 재훈련 하는 것이 아니라, Pre-Trained LLM은 그대로 두고 그 위에 Layer 하나만 쌓아서 그 모델을 학습시킨다.
** LLM (Large Language Model)
: 어떤 문장을 주면 그 뒤에 나오는 단어를 예측해주는 모델이다. Word Completion
** ChatGPT
: LLM을 바탕으로 대화하는 예제들을 넣어줘서 Fine-Tuning한 모델
어떤 Gen AI 모델들이 있을까?
1. Generative Language Models
: 입력으로 주어진 문장들로부터 패턴을 학습하는 모델로, 문장이 주어지면 다음 단어를 예측한다.
2. Generative Image Models
: 입력으로 주어진 이미지들로부터 패턴을 학습하는 모델을 만들고, 해당 모델에 프롬프트 혹은 이미지를 입력으로 넣어서 새로운 이미지를 만들어낸다.
Gen AI의 한계 = Hallucinations (환각)
생성형 AI가 항상 제대로 동작하는 것은 아니다.
모델의 output이 부정확하거나, 완전히 의미가 없거나, 조작된 정보일 수 있다는 것이다.
→ 즉, 생성형 AI를 사용할 때는 Fact-Checking이 필수적이다.
- 훈련데이터의 품질이나 크기가 불충분하기 때문
- 모델이 한번 빌딩하는데 너무 많은 노력이 들어가다 보니 최신 정보가 부족한 경우가 많음
- 모델을 사용할 때 사용자가 원하는 명령을 명확하게 입력해야 하는데, 대충 입력해버리면 생성형 AI또한 대충 답변을 할 수밖에 없음
입력에 따른 Gen AI 모델
1. Input : 이미지
→ (1) Output : 이미지
- Super Resolution : 해상도가 낮은 이미지를 입력으로 넣어주면 해상도가 높은 이미지로 출력하는 모델
- Image Completion/Correction : 수정해야 할 이미지에서 특정 영역의 이미지를 제거하거나 추가해주는 모델
→ (2) Output : 텍스트
- Image Captioning : 이미지에 대한 타이틀, 설명을 출력하는 모델
- Visual QA : 이미지를 입력으로 넣어주고 이미지에 대한 질문을 하면, 질문에 대한 답을 출력하는 모델
- Image Search : 비슷한 다른 이미지를 찾아서 출력하는 모델
→ (3) Output : 비디오
- Animation : 특정 상황을 가정해서 애니메이션으로 출력하는 모델
2. 텍스트
→ (1) Output : 이미지
- Image Generation
- Video Generation
→ (2) Output : 텍스트
- Translation
- Summarization
- Question Answering :
- Grammar Correction : 문법적으로, 원어민의 관점에서 봤을 때 해당 문법을 교정해서 출력하는 모델
→ (3) Audio
- Text to Speech : 입력된 문장을 읽어주는 모델
- Music Generation : 텍스트에 맞는 음악을 만들어주는 모델
→ (4) Output : 비디오
→ (5) Output : 3D
→ (6) Output : Task (어시스턴트의 역할)
- Coding Assistant
- Virtual Assistant
- Automation : 자동화해주는 모델
멀티모달 파운데이션 모델
: 입력으로 들어온 다양한 형태의 데이터(텍스트, 이미지, 오디오 등)를 훈련시켜서 파운데이션 모델을 만들면, 이 모델을 파인튜닝해서 다양한 분야에 적용할 수 있다.
** 멀티모달 (Multi Modal)
: 하나의 모델이 여러 형태의 미디어를 서포트하는 것
ChatGPT의 발전
1. GPT (Generative Pre-trained Transformer)
: OpenAI에서 만든 LLM(Large Language Model; 초거대 언어 모델)
GPT 유형
1) Word Completion : 문장이 주어지면 다음에 올 단어를 예측하는 모델로, 언어의 종류와 관계없이 지원한다.
2) Code Completion : 코드가 주어지면 다음에 올 코드를 예측하는 모델
2. GPT-3
: 모델에 엄청난 양의 파라미터(175조 개)가 있다.
- Context Window : 입력 문장 2048개로 구성되면 다음에 올 단어 1개를 예측하는 형태로 학습됨
- Context Window가 커질수록 기억력이 좋아지고 예측이 더 잘된다. (비용/시간/사용되는 리소스 또한 증가)
3. GPT-4
: 모델의 파라미터(1000조 개)
- 단어를 훨씬 더 세밀하게 표현할 수 있다.
- 이미지 인식까지 가능하다 (Multi-Modal)
4. GPT 4 Turbo
- 12만 8000개의 Context Window 입력이 주어지면 그다음 단어 1개를 예측한다. (= 300페이지에 해당되는 데이터를 학습한 것과 같음)
- API 기능이 개선되어, Seed를 줌으로써 모델의 입력이 항상 동일하게 제어할 수 잇고, 여러개의 함수를 동시에 호출 가능해졌다.
- 출력을 JSON으로 받음으로써 Parsing이 용이해졌다.
- GenAI 모델들이 새로운 지식을 습득해야 할 때 다시 파인튜닝하는 것이 힘들다 보니, 프롬프트를 만들 떄 제약조건 형태로 "~~를 알고 그것까지 참고해서 예측해줘." 라고 명령할 수 있는데 이러한 기능을 RAG라 한다.
RAG : 서비스/기업 내의 유스케이스에 적합한 사전 정보를 프롬프트 일부로 주는 기능
** 경량 언어 모델들
- 학습과 추론이 빠르고 쉽다.
- 대부분 사양이 좋은 개인 컴퓨터에서도 학습 가능하다.
5. ChatGPT
: LLM인 GPT를 채팅할 수 있도록 대화형(챗봇)으로 파인튜닝한 모델
- RLHF : 사람들이 만든 대화의 예시들을 훈련데이터로 활용해서 supervise learning 형태로 파인튜닝한 모델로 대화했을 때 ChatGPT가 준 응답들 중 좋은 응답을 선택해서 피드백형태로 줘서 모델을 재훈련
- 질의응답, 정보 추출, 번역, 대화생성, 글쓰기 지원, 코드 생성/리뷰 등의 모든 작업을 '대화형태'로 Promts를 활용하여 진행한다.
- GPT 4 Turbo 위에서 돌아가는 ChatGPT는 파인튜닝으로 API를 호출하지 않고 훨씬 더 쉽게 훈련한다.
정리)
- Fine-tuning : 굉장히 만들기 힘들고 비싼 foundation model이 이미 pre-trained된 LLM위에 매우 작은 내 유스케이스에 최적화된 콘텐츠를 가지고 새로운 모델을 만들 경우 비용이 훨씬 줄게되고 이를 파인튜닝이라 한다.
- GPT : pre-training된 foundation model
- ChatGPT : GPT로 대화할 수 있게 파인튜닝한 모델
- RLHF : GPT를 ChatGPT로 파인튜닝한 방식
1) 대화하는 예제를 생성
2) 예제를 가지고 GPT모델을 파인튜닝
3) 파인튜닝한 모델을 가지고 다양한 대화를 시도. 사람들에게 피드백받아서 모델을 재훈련
4) 의미가 없거나 잘못된 대답을 방지하기 위해서 모델을 다시 한번 재훈련
어떻게 대화를 하고 명령을 주는지가 중요하다.
이러한 대화/명령을 '프롬프트(Prompt)' 라고 한다.
1) 챗 지피티에게 역할[Role]을 부여한다.
2) 해당 역할로서 해야할 일[Task]를 알려준다.
3) 원하는 형태[Format]를 부여한다.
4) 원하는 컨텐츠의 목적[Objective]과 대상을 자세하게 설명한다.
5) 해당 컨텐츠의 전체적인 분위기[Tone]을 알려줘야 한다.
6) 컨텐츠를 만들어내는 과정에서 필요한 제약조건[Restriction]을 설정한다.
사용하면 좋은 표현들
- Let's think step by step : 단계별로 생각하고 알려달라고 요청
- Thank you for your hard work : ChatGPT 칭찬해주기 → 칭찬해주면 더 잘하기도 한다.
6. ChatGPT 4.0
- Code Interpreter 기능 추가 : 코드를 작서하고 Jupyter Notebook에서 실행, 데이터 분석 가능
- 필요한 정보를 수집해서 이를 바탕으로 답을 생성할 수 있음
- 이미지 업로드와 이미지에 대한 캡션 달기가 가능해짐
- 플러그인 지원 : 링크를 걸고 다른 활동들을 가능하게 한다. 앱스토어와 같은 기능. 다른 회사들이 Open AI의 챗지피티 생태계 안으로 들어올 수 있음
7. GPTs
- 에이전트 기능 구현 : 커스텀 챗봇을 쉽게 작성할 수 있음 → 내 환경에 맞는 맞춤형 버전을 쉽게 만들 수 있다.
- GPT Builder 기능 추가: API를 쓰는 것이 아니라 추가하고 싶은 지식이 기록된 파일을 업로드하면 OpenAI 측에서 파인튜닝을 하는 방식으로 돌아간다.
8. GPTs Store
- 내가 만든 GPT를 내부에서 개인적으로 사용하거나 외부로 퍼블리시할 수 있음
- 'Create A GPT' 버튼을 눌러서 GPT Builder로 내 목적에 맞는 커스텀 챗 지피티를 만들 수 있음
Gen AI 적용 케이스
듀오링고
구체적인 상황을 두고 롤플레잉
나의 대답 중 잘못된 부분이 있는 경우 이를 수정하고 세분화해서 구체적으로 설명해줌
Morgan Stanley
: 기존 키워드 검색으로 찾기 힘들었던 문제를 대화형으로 내부 문서를 검색해서 답변해주는 내부 직원용 챗봇
Viable
: GPT-4를 사용해서 정형화하기 힘든 고객 테스트 정보를 활용해서 시그널 등을 분석해서 분석하기 쉬운 형태로 만들어준다.
Gen AI를 활용한 업무 자동화