카테고리 없음

스파르타 AI-8기 TIL(11/19) -> 처음부터 계속하기

kimjunki-8 2024. 11. 19. 21:33
LLM
대형 언어 모델(Large Language Model, LLM)은 인간이 언어를 이해하고 생성할 수 있도록 훈련된 인공지능 모델을 의미합니다. 이 모델들은 방대한 양의 텍스트 데이터를 기반으로 학습하여, 단어나 문장의 이미를 이해하고, 새로운 텍스트를 생성할 수 있습니다.

LLM의 핵심은 "패턴 인식"입니다. 언어에는 수많은 패턴이 존재하는데, 이 패턴을 학습하기 위해 수백만에서 수십억 개의 문장을 포함한 방대한 텍스트 데이터를 사용합니다. 이를 통해 모델은 단어 간의 관계, 문장 구조, 문맥 등을 이해하게 됩니다. 이를 기반으로 사람과 대화하거나 글을 쓸때 자연스러운 텍스트를 생성할 수 있습니다.
NLP
자연어 처리 (NLP)는 컴퓨터와 사람들이 인간의 언어를 사용하여 컴퓨터가 이해하고 처리할 수 있도록 하는 기술을 말합니다. NLP는 우리의 자연스러운 의사소통 수단은 음성이나 텍스트를 입력으로 받아들이고 이를 분석하거나 변환한 뒤 원하는 결과를 생성하여 응답하는데 도움이 됩니다. 주요 목표는 컴퓨터가 인간의 언어를 이해하고, 생성하고, 해석하는데 도움을 주는 것입니다.


머신러닝 기반 NLP
머신러닝 기법은 규칙 기반 시스템이나 단순한 통계적 방법보다 훨씬 더 복잡한 패턴을 학습할 수 있었으며, 자연어 처리의 다양한 응용에 적용되었습니다. 특히, Support Vector Machines(SVM), 의사결정 트리(decision trees), 랜덤 포레스트(random forests) 등의 기법이 텍스트 분류, 감정 분석, 그리고 질문-답변 시스템에 사용되었습니다.

딥러닝
딥러닝(deep learning)이 자연어 처리의 중심 기술로 떠오르게 됩니다. 워드투벡(Word2Vec) 모델은 2013년 구글이 발표한 대표적인 딥러닝 기법으로, 단어를 벡터 공간에서 표현하는 방식을 통해 단어 간의 의미적 유사성을 수치로 나타낼 수 있었습니다. 이는 단어를 문맥에 따라 보다 정확하게 이해하고, 유사한 단어들 간의 관계를 파악하는 데 혁신적인 성과를 거두었습니다.

RNN과 LSTM
딥러닝에서 순환 신경망(Recurrent Neural Networks, RNNs)과 그 변형인 장단기 기억 네트워크(Long Short-Term Memory, LSTM)는 자연어 처리에서 매우 중요한 역할을 했습니다. RNN과 LSTM은 시퀀스 데이터를 처리하는 데 탁월한 능력을 보여주었으며, 특히 기계 번역, 텍스트 생성, 음성 인식 등에서 널리 사용되었습니다.

BERT
BERT(Bidirectional Encoder Representations from Transformers)는 자연어 처리의 패러다임을 바꾸었습니다. BERT는 텍스트 데이터를 사전학습(pre-training)한 후, 다양한 자연어 처리 작업에 미세 조정(fine-tuning)할 수 있는 방식을 도입했습니다. BERT의 혁신은 양방향성(bidirectionality)을 활용한 것으로, 텍스트의 전후 맥락을 모두 고려하여 문장의 의미를 보다 깊이 있게 이해할 수 있었습니다.

GPT 시리즈와 생성형 언어 모델
GPT(Generative Pre-trained Transformer) 시리즈는 텍스트 생성 능력에서 놀라운 발전을 이뤄냈습니다. GPT-2는 방대한 양의 인터넷 데이터를 기반으로 학습하여 주어진 텍스트 입력에 따라 자연스럽고 일관된 텍스트를 생성할 수 있었습니다. GPT 시리즈는 기본적으로 비지도 학습을 통해 대규모 데이터를 먼저 학습한 후, 사용자가 제공하는 입력에 적응하는 방식으로 작동했습니다.

T5와 기타 모델들
T5(Text-To-Text Transfer Transformer) 모델은 또 다른 대규모 사전학습 모델로 주목받았습니다. T5는 모든 자연어 처리 작업을 텍스트 변환 문제로 통일하는 접근 방식을 취했습니다. 예를 들어, 번역, 요약, 문장 분류와 같은 모든 작업이 "텍스트 입력을 받아 텍스트 출력으로 변환하는 문제"로 표현될 수 있다는 것입니다. 이 통일된 접근 방식은 T5가 여러 가지 자연어 처리 작업에서 효율적으로 학습하고, 다양한 작업을 하나의 모델로 처리할 수 있게 했습니다.

NLP
NLP로 할 수 있는것들
1. 텍스트 분류
주어진 텍스트 데이터를 사전에 정의된 여러 클래스 중 하나로 분류하는 작업입니다. 예를 들면 스팸 메일 분류, 감성 분석(긍정, 부정, 중립), 주제 분류 등이 있습니다. 주요 기법으론 나이브 베이즈(Naive bayes), 서포트 벡터 머신(Support Vector Machine, SVM), 결정 트리, 랜덤 포레스트(RandomForest), 딥러닝 모델(CNN, RNN, Transformer)들이 있습니다.

2. 개체명 인식
텍스트에서 인물, 장소, 조직, 날짜 등 특정 명칭을 인식하고 분류하는 작업입니다. 예를 들면
주요 기법으론 CRF(Conditional Random Field), BiLSTM-CRF, Transformer기반 모델(BERT, RoBERTa)

3. 질문 답변
사용자가 질문을 하면 해당 질문에 대한 정확한 답변을 찾아내는 작업입니다.
주요 기법으로는 Seq2Seq모델, Transformer 기반 모델, Extract QA(텍스트에서 답변 추출), Abstractive QA(새로운 답변 생성)이 있습니다.

4. 요약
텍스트 요약은 긴 텍스트를 짧고 간결하게 요약하는 작업입니다. 두 가지 유형이 있습니다. 추출적 요약(Extractive Summarization)과 생성적 요약(Abstractive Summarization)
주요 기법으로는 추출적 요약(Extractive Summarization)과 생성적 요약(Abstractive Summarization) Transformer 기반 모델(BART, T5)이 있습니다.

5. 번역
번역은 텍스트를 다른 언어의 텍스트로 변환하는 작업입니다.
주요 기법으로는 Seq2Seq 모델, Attention machanism, Transformer 기반 모델(Transformer, MarianMTmBART)등이 있습니다.

6. 텍스트 생성
텍스트 생성은 주어진 입력을 새로운 텍스트를 생성하는 작업입니다. 예를 들면 소설 작성, 대화 생성, 코드 생성 등이 있습니다.
주요 기법으로는 RNN, LSTM, GRU, Transformer 기반 모델(GPT 시리즈 , Llama, mistral등)
NLP(자연어 처리) 학습 별 간단 정리
1. 지도학습(Supervised Learning)
지도학습은 라벨이 있는 데이터를 사용하여 모델을 학습시키는 방법, 정답지를 통한 높은 정확도와 신뢰도 제공합니다. 종류는 아래와 같습니다.
텍스트 분류(Text Classification) - 이메일 스팸 필터링, 감성 분석등에서 사용
개체명 인식(Named Entity Recognition, NER) - 텍스트에서 인물, 장소, 조직등 고유명사 식별
기계 번역(Machine Translation) - 텍스트 다른 언어로 변환
질문 응답(Question Answering) - 질문에 대한 답변
문장 유사도(Sentence Similarity) - 두 문장의 유사도

2. 비지도학습(Unsupervised Learning)
라벨이 없는 데이터를 사용하여 패턴을 학습 * 토픽 모델링(Toppic Modeling) - 대량의 문서에서 주제를 추출
군집화(Clustering) - 유사한 문서나 단어를 그룹화
단어 임베딩(Word Embeddings) - 단어를 벡터 공간에 임베딩하여 유사도 측정

3.반지도 학습(Semi-supervised Learning)
소량의 라벨링된 데이터와 대량의. 라벨링 되지 않은 데이터를 사용하여 모델을 학습시키는 방법, 라벨링 비용 절감 하면서 높은 성능 얻기 위함입니다. 
자기 학습 - 모델을 초기 라벨링된 데이터로 학습시킨 후, 예측된 라벨을 사용하여 라벨링 되지 않은 데이터의 일부 라벨링하여 학습에 재사용
공동 학습 - 두 개 이상의 서로 다른 모델을 이용하여 서로의 예측을 보완하면서 학습,
Consistency Regularization - 새로운 Input을 받았을때도 output이 아예 달라지지 않는다는 가정으로 모델을 regularize하며 학습
Pseudo-Labeling - 가짜 라벨

4. 자기지도학습(Self-supervised Learning)
비 지도학습의 한 형태로 데이터 자체에서 라벨을 생성하여 학습하는 방법, BERT, GPT등 최신 언어 모델들은 자기지도학습을 통해 사전 학습 수행합니다. * 마스킹 언어 모델(Masked Language Model, MLM) - 입력 문장의 일부 단어을 MASK 토큰으로 대체한 후, 모델이 마스킹된 단어을 예측하도록 학습, 이를 통해 문맥을 이해하는 능력 향상 BERT가 대표적 예시

다음 문장 예측(Next Sentence Prediction, NSP) - 두 문장을 확인 후 두 문장이 이어지는 문장인지 확인, Bert등

자기 회귀 모델(Auto-regressive Model)- Causal Language Model, 입력 시퀀스의 이전 토큰들을 이용하여 다음 토큰을 예측하는 방식, GPT, Llama등이 대표적인 예시

위의 내용들은 전반적으로 NLP학습 관련한 내용들입니다. 위의 내용들이 길어서 잘 이해가 안될시, 지금은 아래 문장을 중요하게 기억하면 될 것 같습니다. LLM에서는 모델의 학습, finetuning에서는 주로 지도 학습을 시키지만 이러한 데이터셋을 받아들이는 방식이나 모델이 문장을 뱉어내는 방식은 자기 회귀 모델의 방식을 따른다는 뜻입니다.

트랜스포머(transformer)
Transformer만의 특이한 점
인코더-디코더 프레임워크(encoder-decoder framework)
어텐션 메커니즘(attention mechanism)
전이학습(transfer training)
인코더 - 디코더 프레임워크는 마치 번역작업을 하는 두 사람의 협력 과정을 생각하시면 좋습니다. 인코더는 정보를 이해하고 요약하는 사람, 디코더는 요약한 정보를 바탕으로 새로운 문장을 생성하는 사람이라고 보시면 됩니다.

인코더 : 입력 시퀀스를 받아 고차원 벡터로 변환하는데, 여러층으로 구성되어 있으며, 각 층에는 Self-Attention과 Feed-Forward Neural Network가 포함되어 있습니다. 인코더는 입력 문장의 각 단어의 의미를 고차원 벡터로 압축하여, 문장의 문맥을 반영합니다.
디코더 : 인코더의 출력을 받아서 최종 출력을 생성하고, 여러 층으로 구성되어 있으며, 각 층에는 Self-Attention, Encoder-Decoder Attention, 그리고 Feed-Foward Neural Network가 포함되어 있습니다. 디코더는 이전 단어들과 인코더의 출력을 참고하여 다음 단어를 생성합니다.
예:

hi -> Hallo

어텐션 메커니즘(attention mechanism)
시퀀스가 긴 경우, 모든 것을 고정된 하나의 표현으로 압축하는 과정에서 시작 부분의 정보가 손실될 가능성이 있는데,  이를 보완하기 위한 방법.
어텐션 매커니즘의 기본 아이디어는 입력 시퀀스의 각 단어가 다른 단어예 얼마나 주의를 기울여야 하는지를 계산합니다. 디코더에서 출력 단어를 예측하는 시점(Step)마다, 인코더의 입력 시퀀스를 다시 참고하는 것을 의미하며, 이를 통해 각 단어가 문맥에서 중요하게 다뤄질 수 있게 합니다. 이 때 입력 시퀀스를 동일한 비중으로 참고하는 것이 아닌, 예측 던어와 관련이 있는 입력 단어를 더욱 치중해서 보기 때문에 Attenstion이란 단어를 사용합니다.

1. Self-Attention : 시퀀스 내의 각 단어가 다른 모든 단어와의 관계를 고려하여 문맥을 반영하는 방법. 이를 통해 각 단어는 시퀀스 내에서 중요도가 높은 다른 단어들에 주의를 기울임.

2. Multi-Head Attention : 여러 개의 어텐션 헤드를 병렬로 사용하여 서로 다른 측면의 정보를 학습. 각 헤드는 서로 다른 Query, Key, Value를 사용하여 다양한 문맥의 정보를 포착함.

예시:
1) 입력 시퀀스 : "Teh cat sat on the mat."

2) 어텐션 계산 :

번역 과정에서 "sat"라는 단어가 "cat"과 "on"의 의미를 이해해야 할 때, Self-Attention 매커니즘은 "sat"가 문맥적으로 "cat"과 관련이 깊다는 것을 학습

   . "sat"의 어텐션 점수는 "cat"과 높은 값을 가지게 되고, 이로 인해 "sat"의 의미를 정확히 파악할 수 있음.

3) 출력 생성 : 디코더는 "sat"의 번역을 생성할 때, "cat"과의 관계를 이해하여 문장 구조를 적절하게 생성

전이 학습 (Transfer Learning)
전이 학습은 기계학습에서 이미 학습된 모델의 지식을 다른 관련 작업에 활용하는 기술입니다. 이는 데이터가 부족하거나 학습 시간이 부족한 상황에서 유용하며, 모델이 다른 작업에 빠르게 적응할 수 있게 합니다. 
1. 사전 훈련(Pre-training) 및 미세 조정(Fine-tuning) - 사전 훈련 : 대규모 데이터셋에서 모델을 학습시켜 일반적인 특성과 패턴을 학습합니다. 예를 들어, 대규모 이미지 데이터셋(예: ImageNet)에서 학습된 모델이 이에 해당됩니다. - 미세조정 : 사전 훈련된 모델을 특정 작업에 맞게 조정합니다. 이 과정에서 새로운 작업에 맞게 네트워크의 일부를 조정하거나 학습합니다.
2. Feature Extraction  - 사전 훈련된 모델의 특정 층에서 추출한 특징을 새로운 작업에 활용합니다. 예를 들어 이미 학습된 CNN 특성 맵을 이용하여 새로운 이미지 분류 작업을 수행할 수 있습니다.

3. Fine-tuning - 전체 모델이나 일부 층을 새로운 데이터로 학습시키는 과정입니다. 기존의 모델 구조를 유지하면서 새로운 데이터에 맞게 모델을 재조정합니다.

LLM
LLM 모델의 종류
전통적인 LLM
트랜스포머 기반 모델
GTP(Generative Pre-trained Transformer) 계열 모델
BERT(Bidirectional Encoder Representations from Transformers) 계열 모델
T5(Text-to-Text Transfer Transformers) 및 기타 모델
Distil 계열
LLaMA 시리즈
Solar 시리즈
Mistral 시리즈
gemma 시리즈
phi 시리즈
claude 시리즈
LLM의 주요 개념
데이터셋은 LLM의 지식 기반이다
학습의 원천: LLM은 주어진 데이터를 기반으로 패턴을 학습합니다. 데이터셋이 없다면 모델은 학습할 내용이 없기 때문에 기능할 수 없습니다.

언어 이해와 생성: 다양한 주제와 문체를 포함한 방대한 데이터셋을 통해 모델은 언어의 복잡한 구조와 맥락을 이해하게 됩니다.

데이터셋의 규모와 다양성은 모델의 성능을 결정한다
규모의 중요성: 더 많은 데이터를 학습할수록 모델은 더 일반화된 패턴을 학습하고, 다양한 상황에서 좋은 성능을 보입니다.

다양성의 중요성: 다양한 주제, 도메인, 스타일의 데이터가 포함될수록 모델은 다양한 입력에 대응할 수 있습니다.
예시: GPT-3는 수백억 개의 파라미터와 대량의 텍스트 데이터를 활용하여 다양한 작업에서 뛰어난 성능을 발휘합니다.

데이터 품질은 모델의 품질에 직접적인 영향을 미친다
노이즈와 오류의 영향: 데이터셋에 노이즈나 오류가 많으면 모델의 출력에도 부정적인 영향을 미칩니다.

편향성(Bias): 데이터셋에 편향이 존재하면 모델도 그 편향을 학습하게 되어 공정성에 문제가 생길 수 있습니다.

정제된 데이터의 필요성: 품질이 높은 데이터를 사용하면 모델의 성능과 신뢰성이 향상됩니다.

사전 학습과 미세 조정에서의 데이터셋 역할
사전 학습(Pre-training): 대규모의 일반적인 텍스트 데이터셋을 사용하여 언어의 일반적인 구조와 패턴을 학습합니다.

미세 조정(Fine-tuning): 특정 작업이나 도메인에 맞는 데이터셋으로 모델을 추가 학습시켜 성능을 향상시킵니다.

전이 학습(Transfer Learning): 사전 학습된 모델을 다양한 태스크에 활용할 수 있도록 해주는 핵심 요소입니다.

도메인 특화 모델을 위한 데이터셋의 필요성
전문 분야 지식 학습: 의료, 법률 등 특정 도메인에서는 해당 분야의 전문 지식이 포함된 데이터셋이 필요합니다.

용어와 표현의 특수성: 도메인마다 사용하는 용어와 표현이 다르기 때문에, 해당 데이터를 학습해야 정확한 처리가 가능합니다.

사용자 맞춤형 모델 개발: 기업이나 조직에서 자체 데이터셋을 활용하여 맞춤형 모델을 개발할 수 있습니다.

데이터셋은 모델의 한계를 극복하는 열쇠
추론 능력 향상: 더 다양한 패턴과 예제를 학습하면 모델의 추론 능력이 향상됩니다.

제로샷 학습: 다양한 태스크의 데이터를 포함하면 모델이 새로운 태스크에도 적응할 수 있습니다.

한계 인식: 데이터셋의 범위를 벗어난 입력에 대해서는 모델이 부정확한 응답을 할 수 있으므로, 이를 인식하고 개선하는 데 데이터셋이 필요합니다.

데이터셋은 지속적인 모델 개선에 필수적이다
모델 업데이트: 새로운 데이터를 지속적으로 학습하여 모델의 최신성을 유지합니다.

에러 분석 및 개선: 모델의 오류를 분석하고, 해당 영역의 데이터를 보강하여 성능을 개선합니다.

사용자 피드백 반영: 실제 사용자의 피드백을 데이터셋에 반영하여 모델의 실용성을 높입니다.

여기까지..