1 주차 - 1
CHAT GPT는 LLM이며 Generative Pre-trained Transformer이다.
Query기반으로 텍스트 응답을 형성한다.
트렌스포머 디코더 모델 기반이다.
트렌스포머 Transformer는 글자를 번역한다는 의미다.
Masked Multi-Head Self Attention
Masked Multi-Head Self Attention은 트랜스포머 모델에서 사용되는 기술 중 하나로, 특히 디코더 부분에서 중요한 역할을 합니다. 이 기법은 입력 시퀀스 내의 각 단어가 자신보다 뒤에 오는 단어들에 대한 정보를 '보지 못하도록' 마스킹 처리하는 과정을 포함합니다. 이를 통해 모델이 미래의 단어를 예측하는 과정에서 정보 누설을 방지합니다.
Multi-Head Self Attention
먼저, Multi-Head Self Attention에 대해 간단히 설명하겠습니다. Self Attention 메커니즘은 입력 시퀀스 내의 모든 단어 쌍 간의 관계를 모델링합니다. 이 과정에서 각 단어는 쿼리(Query), 키(Key), 밸류(Value)의 세 가지 다른 표현을 가지며, 이를 통해 단어 간의 가중치(주의도)를 계산합니다. Multi-Head는 이 Attention 메커니즘을 여러 번 병렬로 수행하여, 다양한 표현 공간에서 단어 간의 관계를 학습할 수 있도록 합니다.
Masking
디코더에서 Masked Self Attention을 사용하는 이유는, 디코더가 한 번에 하나의 출력을 생성하도록 하기 위해서입니다. 이 과정에서 디코더는 현재 생성하려는 단어의 위치 이전에 있는 단어들만 고려할 수 있습니다. 예를 들어, 문장을 번역하는 작업에서 "안녕하세요, 제 이름은" 다음에 오는 단어를 예측하려 할 때, "안녕하세요, 제 이름은"까지의 정보만 사용하고, 그 이후의 정보는 사용하지 않도록 해야 합니다. 이를 위해 마스킹 과정에서 현재 단어보다 뒤에 있는 단어들에 대한 정보를 차단합니다.
Masked Multi-Head Self Attention의 작동 원리
입력 시퀀스 준비: 입력 시퀀스가 주어지면, 각 단어를 쿼리, 키, 밸류로 변환합니다.
마스킹 처리: 현재 단어보다 뒤에 오는 단어들에 대한 정보를 차단하기 위해 특정 값을 이용해 마스킹 처리를 합니다. 이렇게 하면 Attention 계산 과정에서 미래 단어들이 고려되지 않습니다.
Self Attention 계산: 마스킹 처리된 입력을 바탕으로, 각 단어에 대해 Self Attention 값을 계산합니다. 여기서는 각 단어가 자신을 포함한 이전 단어들과 얼마나 관련이 있는지를 평가합니다.
Multi-Head 처리: 위의 Self Attention 계산을 여러 번 병렬로 수행하여 다양한 관점에서의 주의도를 학습합니다.
출력 생성: 모든 Multi-Head Attention의 결과를 종합하여 최종 출력을 생성합니다. 이 출력은 다음 단어 예측 또는 다른 태스크에 사용됩니다.
Masked Multi-Head Self Attention은 디코더에서 미래 정보의 사용을 방지하여 자동 번역, 문장 생성 등의 태스크에서 모델이 보다 정확한 예측을 할 수 있도록 돕습니다.
GPT 3.5는 대규모 언어 데이터 세트를 사용하여 사전 학습되었다.
강화 학습을 통해 미세조정(Fine- turning)한다. - 미세조정을 통한 상업적인 결과의 차이가 크다.
추측 시도나 할루시네이션이 문제가 되고 있다.
1주차 2
생성형 인공지능 - 텍스트, 이미지, 오디오, 비디오 생성 - 인코더 + 디코더 형식
GAN, VAE, Flow- based Models, Diffusion Models
생성형 인공지능엔 데이터셋의 중요도가 엄청 크다.
1주차 3
인지 인공지능 - 컴퓨터가 인간의 사고와 인지 과정을 시뮬레이션하는 방법을 주로 연구하는 분야
인간과 같은 인지 능력을 발휘할 수 있는 시스템 개발이 목표
생성 인공지능
이미지와 텍스트 등의 데이터를 생성하는 시스템을 개발
1주차 4 - 언어 생성
transformer - 자연어 처리에서의 최고봉
RNN, LSTM - 정보 손실의 문제
GAN - 생성기 + 판별기
VAE : 입력 영상의 잠재 변수(Latent vector) 분포를 학습한 다음 이 분포를 기반으로 새 이미지를 생성하는 자동 인코더 기반 모델
1주차 5 - 언어 생성 방법
텍스트 코퍼스 - 언어 생성을 위한 데이터 집합, 여러문장으로 구성되며 클래스, 품사와 같은 정보를 포함
토큰화 - 텍스트를 다른 입력 요소(단어, 형태소 등)로 분리
벡터화 - 토큰을 숫자 표현으로 변환
이베딩 - 의미 관계 또는 문맥적 의미를 추가하여 벡터 표현을 개선
Transformers - 모든 입력 토큰에 문맥 관계를 생성하는 멀티 헤드 셀프 어텐션 사용
GPT는 어떻게 학습하지 ?
GPT(Generative Pre-training Transformer)와 같은 언어 생성형 인공지능은 대규모의 언어 데이터를 활용하여 사전 학습(pre-training)을 수행하는데, 이 과정은 주로 비지도 학습(unsupervised learning) 방식에 속합니다. GPT는 특정 태스크에 대한 명시적인 라벨이 필요하지 않은 대량의 텍스트 데이터에서 패턴을 학습하여 언어의 일반적인 이해를 구축합니다.
비지도 학습(Unsupervised Learning)
GPT의 핵심은 매우 큰 규모의 언어 데이터를 활용하여 언어의 구조, 문맥, 의미 등을 스스로 학습하는 것입니다. 예를 들어, GPT는 주어진 텍스트의 다음 단어나 문장을 예측하는 학습 과정을 통해 언어 모델을 구축합니다. 이 과정에서 GPT는 특정한 '정답' 라벨 없이 텍스트 데이터 내의 패턴과 관계를 인식하고 학습합니다.
지도 학습(Supervised Learning)으로의 확장
비록 GPT의 사전 학습 과정은 비지도 학습에 해당하지만, 특정 태스크에 적용하기 위해 추가적인 미세 조정(fine-tuning) 과정을 거치는 경우가 많습니다. 이때는 특정 태스크에 대한 라벨링된 데이터를 활용하여 지도 학습(supervised learning) 방식으로 모델을 조정합니다. 이렇게 함으로써 GPT는 특정 태스크에 대해 더욱 향상된 성능을 발휘할 수 있습니다.
요약
GPT의 핵심 사전 학습 과정은 주로 비지도 학습 방식을 사용합니다. 이 과정에서 GPT는 대규모 언어 데이터를 통해 언어의 구조와 패턴을 학습합니다.
특정 태스크에 최적화하기 위한 미세 조정 과정에서는 지도 학습 방식이 사용될 수 있으며, 이를 통해 모델의 성능을 개선할 수 있습니다.
2주차 1 - RNN
CNN과는 다르게 이전(비중이 조금 적다.)과 현재의 데이터를 모두 사용한다.
2주차 2 - RNN
RNN의 문제점인 정보 소실, 대량의 메모리 필요
-> LSTM, GRU
2주차 3 - Attention
가변 길이 벡터!
RNN(Recurrent Neural Network)은 순차적 데이터를 처리하기 위해 설계된 신경망 구조입니다. 그러나 기본 RNN은 긴 시퀀스 데이터를 처리할 때 발생하는 기울기 소실(gradient vanishing) 또는 기울기 폭발(gradient exploding) 문제에 취약합니다. 이러한 문제를 해결하고자 나온 방법 중 하나가 가변 길이 벡터(variable length vectors)를 활용하는 것입니다.
가변 길이 벡터란?
가변 길이 벡터는 입력 시퀀스의 길이에 따라 동적으로 크기가 조정되는 벡터를 의미합니다. 이는 고정된 크기의 벡터 대신, 각 입력 시퀀스의 길이와 내용에 따라 변화하는 벡터를 사용하여 시퀀스 데이터의 정보를 보다 효과적으로 인코딩하고자 하는 개념입니다.
개선 방법
어텐션 메커니즘(Attention Mechanism): 가변 길이 벡터의 개념은 어텐션 메커니즘과 밀접하게 연관되어 있습니다. 어텐션 메커니즘은 입력 시퀀스에서 중요한 부분에 '주의'를 기울여 해당 정보를 가중치가 높은 벡터로 변환합니다. 이를 통해 모델은 입력 시퀀스의 길이와 상관없이 중요한 정보를 보다 집중적으로 학습할 수 있습니다.
시퀀스-투-시퀀스(Seq2Seq) 모델: 가변 길이 벡터를 활용하는 대표적인 예는 시퀀스-투-시퀀스 모델입니다. 이 모델은 입력 시퀀스를 인코딩하여 가변 길이의 컨텍스트 벡터로 변환하고, 이 컨텍스트 벡터를 바탕으로 출력 시퀀스를 생성합니다. 특히, 어텐션 메커니즘을 통해 각 시퀀스의 중요한 정보를 반영한 가변 길이 벡터를 생성하여 성능을 개선합니다.
결론
가변 길이 벡터는 RNN의 한계를 극복하고, 시퀀스 데이터의 중요한 정보를 보다 효과적으로 추출하고 활용하기 위한 방법입니다. 어텐션 메커니즘과 시퀀스-투-시퀀스 모델 등이 이 개념을 활용하여 순차적 데이터 처리의 성능을 크게 향상시키고 있습니다.
입력 시퀀스의 길이와 내용에 따라 벡터가 변화하는 것을 가변 길이 벡터라고 하며, 이는 어떤 특정한 정보나 패턴을 더 잘 포착하기 위한 방법입니다. 이를 쉽게 이해할 수 있는 예시로는 어텐션 메커니즘(Attention Mechanism)을 들 수 있습니다.
예시: 어텐션 메커니즘을 사용한 번역
상황을 가정해 봅시다. 우리가 한국어 문장 "나는 학교에 간다"를 영어로 번역하려고 할 때, 각 단어의 중요도를 판단하여 영어 문장 "I go to school"로 변환하는 과정을 생각해 봅시다. 여기서 어텐션 메커니즘이 작동하는 방식을 살펴보겠습니다.
입력 시퀀스 인코딩: 먼저, 입력 문장 "나는 학교에 간다"의 각 단어를 벡터로 변환합니다. 이 벡터들은 입력 문장의 정보를 담고 있습니다.
중요도 판단: 번역 과정에서 각 단어의 중요도는 다를 수 있습니다. 예를 들어, "학교에"는 영어로 번역할 때 "school"이라는 중요한 정보를 포함하고 있습니다. 어텐션 메커니즘은 이러한 중요도를 계산하여 가중치를 부여합니다.
가변 길이 벡터 생성: 중요도에 따라 가중치가 부여된 벡터들을 합하여 새로운 벡터를 생성합니다. 이 벡터는 입력 시퀀스의 길이와 내용에 따라 달라지며, 번역할 문장의 전체적인 의미를 담고 있는 가변 길이 벡터가 됩니다.
출력 시퀀스 생성: 생성된 가변 길이 벡터를 사용하여 최종 번역된 문장 "I go to school"을 생성합니다. 이 과정에서 가변 길이 벡터는 전체 문장의 중요한 정보를 바탕으로 각 단어를 적절하게 선택하는 데 도움을 줍니다.
결론
어텐션 메커니즘을 통해 생성된 가변 길이 벡터는 입력 시퀀스의 길이와 내용에 따라 동적으로 변화하며, 문장의 중요한 부분에 집중하여 정보를 효과적으로 추출하고 활용합니다. 이러한 방식으로, 모델은 더 정확하고 자연스러운 번역을 생성할 수 있게 됩니다.
2주차 4 - Attention
어텐션 메커니즘에서 "쿼리를 키-값 쌍의 집합에 매핑한다"는 말은 다음과 같은 과정을 의미합니다. 이 과정을 이해하기 쉽게, 우리가 도서관에서 특정 주제의 책을 찾는 상황으로 비유해볼게요.
도서관에서 책 찾기 비유:
쿼리(Query): 당신이 찾고자 하는 책의 주제나 키워드입니다. 예를 들어, "인공지능"에 대한 책을 찾고 싶다고 해봅시다. 여기서 "인공지능"이 바로 쿼리에 해당합니다.
키(Key): 도서관의 모든 책에는 색인이 있습니다. 이 색인들이 바로 "키"에 해당하며, 책의 주제나 내용을 대표하는 키워드들입니다.
값(Value): 키에 해당하는 실제 책들입니다. "인공지능"이라는 키워드(키)에 해당하는 모든 책들이 "값"입니다.
어텐션 메커니즘에서의 매핑 과정:
이제, 당신이 "인공지능"에 대한 책을 찾고 있다고 가정해봅시다. 여기서 쿼리는 "인공지능", 키는 책의 색인(키워드), 값은 실제 책들입니다.
쿼리 매핑: 당신의 쿼리("인공지능")를 도서관의 색인(키)들과 비교하여 어떤 색인들이 쿼리와 가장 관련이 깊은지를 판단합니다.
중요도 계산: 각 키와 쿼리의 관련성(중요도)을 계산합니다. 즉, 어떤 색인(키)이 당신이 찾고 있는 주제와 가장 밀접한지를 결정합니다.
값 추출: 가장 관련성 높은 키(색인)에 해당하는 값(책)을 가져옵니다. 이 과정에서 가중치(중요도)에 따라 특정 책들을 더 주목하게 됩니다.
최종 결과: 관련성이 높은 책들을 기반으로, 당신이 찾고자 하는 정보나 지식을 얻게 됩니다.
결론:
어텐션 메커니즘에서 "쿼리를 키-값 쌍의 집합에 매핑"한다는 것은, 당신이 찾고자 하는 정보(쿼리)를 가장 잘 대표하는 데이터(값)를 선택하기 위해, 데이터의 특성(키)와 쿼리의 관련성을 계산하는 과정입니다. 이를 통해 모델은 주어진 문제에 가장 중요한 정보에 집중할 수 있게 됩니다.
2주차 5
뭔가 이 과목은 깔쌈하게 이해되지 않네요....ㅠ
'인공지능 > 공부' 카테고리의 다른 글
인공지능과 빅 데이터 3주차 1 - 규칙 기반 시스템, 지식 기반 시스템 (0) | 2024.03.18 |
---|---|
딥러닝 개론 복습 1 (1) | 2024.03.14 |
강화학습 - 복습 1 with GPT4 (2) | 2024.03.12 |
머신러닝 퀴즈 2 (0) | 2024.03.12 |
머신러닝 퀴즈 1 (0) | 2024.03.12 |