Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- mp4fpsmod
- pytest
- terminal
- 깡돼후
- table not found
- 오블완
- k8s #kubernetes #쿠버네티스
- 자원부족
- 달인막창
- 겨울 부산
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- Value too long for column
- taint
- python
- JanusWebRTC
- 개성국밥
- vfr video
- Spring Batch
- JanusWebRTCGateway
- 코루틴 컨텍스트
- tolerated
- PytestPluginManager
- 티스토리챌린지
- kotlin
- 코루틴 빌더
- JanusWebRTCServer
- PersistenceContext
- preemption #
- JanusGateway
- VARCHAR (1)
Archives
너와 나의 스토리
NLP 발전 과정과 LLM의 등장 / GPT 로직 및 Attention Mechanism 설명 본문
반응형
NLP(Natural Language Processing)
- 컴퓨터가 인간의 언어를 이해하고 생성하며 분석할 수 있도록 하는 인공지능의 한 분야.
- NLP는 넓은 분야를 의미하고, LLM은 그 중 하나의 접근 방식이다.
LLM(Large Language Mechanism)
- 방대한 양의 데이터로 훈련된 모델로, 자연어 이해와 생성에 뛰어난 성능을 보인다.
- 규칙 기반(Rule based) 접근 방식의 한계를 극복하고, 문맥 이해와 다양한 NLP 작업을 처리하는 능력을 갖추고 있다.
작동 방식은 크게 3가지로 나뉜다.토큰화트랜스포머 모델프롬프트
토큰화
자연어 처리의 일부로 일반 인간 언어를 저수준 기계 시스템이 이해할 수 있는 시퀀스로 변환하는 작업
트랜스포머 모델
순차적 데이터를 검사하여 어떤 단어가 서로 뒤따를 가능성이 높은지 관련 패턴을 식별하는 신경망의 일종으로 각각 다른 분석을 수행하여 어떤 단어가 호환되는지 결정하는 계층으로 구성된다.
프롬프트
개발자가 LLM에 제공하는 정보
언어 모델링
- 자기회귀 언어 모델(Autoregressive Language Model)
- 이전 토큰만을 기반으로 다음 토큰을 예측하도록 훈련된다.
- 이러한 모델은 트랜스포머 모델의 디코더 부분에 해당하며, 어텐션 헤드가 앞서 온 토큰만 볼 수 있도록 전체 문장에 mask가 적용되어 있다.
- 자기회귀 언어 모델은 텍스트 생성에 이상적이다.
- 예: GPT
- 자동 인코딩 언어 모델(Autoencoding Language Model)
- 손상된 버전의 입력 내용으로부터 기존 문장을 재구성하도록 훈련된다.
- 이러한 모델은 트랜스포머 모델의 인코더 부분에 해당하며 mask 없이 전체 입력에 접근할 수 있다.
- 주요 애플리케이션은 문장 분류 또는 토큰 분류이다.
- 예: BERT
- 자기회귀 + 자동 인코딩 조합의 모델
- 다양하고 유연한 텍스트를 생성하기 위해 인코더와 디코더를 함께 사용할 수 있다.
- 더 다양하고 창의적인 텍스트를 생성할 수 있다.
- 예: T5
NLP 발전 과정과 LLM의 등장
- 규칙 기반 접근 방식 (Rule-Based Approaches)
- 초기 자연어 처리(NLP) 시스템은 명시적인 규칙을 사용하여 텍스트를 처리했다.
- 이 방식은 복잡한 문맥을 처리하기 어렵고 확장성이 떨어졌다.
- 통계적 모델 (Statistical Models)
- 텍스트 데이터에서 발생 빈도와 같은 통계적 정보를 기반으로 언어를 모델링.
- 아직 부족.
- 예: n-그램 모델, 히든 마르코프 모델(HMM), 최대 엔트로피 모델 등
- 머신러닝 모델 (Machine Learing Models)
- 통계적 정보를 기반으로 언어를 모델링.
- 특정 작업에 대해 높은 성능을 보이나, 아직 복잡한 언어 구조 처리하는 데 어려움.
- 단어 임베딩 (Word Embedding)
- 단어 임베딩은 단어를 저차원 밀집 벡터로 표현하는 방법이다.
- 머신러닝 모델의 성능을 더욱 향상시키기 위해, 단어를 더 잘 표현할 수 있는 임베딩 기법이 도입.
- Word2Vec, GloVe와 같은 알고리즘을 사용하여 단어 간의 의미적 유사성을 반영하는 벡터를 학습한다.
- 벡터 내에서 거리가 의미적 유사성을 반영함.
- 단어 임베딩은 NLP 모델의 성능을 크게 향상시켰다.
- 예: Word2Vec, GloVe, FastText 등.
- 딥러닝 모델 (Deep Learning Model)
- 인공 신경망을 기반으로 하는 머신러닝의 한 분야로, 대규모 데이터와 강력한 컴퓨팅 자원을 사용하여 복잡한 패턴을 학습한다.
- 딥러닝의 발전은 NLP의 성능을 크게 향상시켰고, LLM의 핵심 기술이 되었다.
- 긴 시퀀스를 처리하는 데 어려움이 있으며, 병렬 처리가 어렵다.
- 예: RNN, LSTM, GRU 등.
- Seq2Seq(Sequence to Sequence)
- 인코더-디코더 구조를 사용하여 입력 시퀀스를 출력 시퀀스로 변환하는 모델
- 주로 RNN을 사용하며, 번역, 요약, 질의응답 등에서 사용된다.
- 이 모델은 인코더와 디코더로 구성된다.
- 인코더는 입력 시퀀스(원시 텍스트)를 고정된 크기의 컨텍스트 벡터로 변환하고, 어텐션을 사용하여 텍스트의 맥락을 이해한다.
- 디코더는 이 컨텍스트 벡터를 사용하여 다음에 올 최적의 토큰을 예측함으로써 출력 시퀀스(텍스트)를 생성한다.
- 인코더-디코더 구조는 긴 시퀀스를 처리하는 데 여전히 한계가 있다.
- 트랜스포머 모델 (Transformer)
- 시퀀스 데이터를 처리하는 혁신적인 모델로, RNN의 한계를 극복하기 위해 개발되었다.
- 어텐션 메커니즘을 사용해 병렬 처리가 가능하고, 긴 시퀀스도 효율적으로 처리할 수 있다.
- 문맥 이해 능력이 뛰어나고, 병렬 처리로 학습 속도가 빠르다.
- 트랜스포머는 현재 대부분의 최신 NLP 모델의 기반이 된다.
- Attention Mechanism
- 트랜스포머의 핵심 기술로, 모델이 입력 시퀀스의 모든 위치를 참조하여 중요한 부분에 더 많은 가중치를 부여할 수 있게 한다.
- 이는 모델이 문맥을 더 잘 이해하고, 긴 시퀀스에서도 중요한 정보를 유지하는 데 도움을 준다.
- 예: BERT, GPT, T5 등
- 대규모 언어 모델 LLM(Large Language Models)
- 방대한 양의 데이터를 학습하여 복잡한 패턴을 이해하고 생성할 수 있는 능력을 갖췄다.
- 높은 정확도와 유연성을 가지고 있으며, 사전 학습과 미세 조정을 통해 다양한 작업에 적용할 수 있다.
- 예: GPT, BERT, T5 등
Attention과 Context Vector의 차이점
- Context Vector는 문장의 전체 정보를 하나의 벡터로 압축한다. 이는 모델이 문장의 모든 부분을 동일하게 중요하게 여길 때 효과적이다. 그러나 긴 문장이나 문서의 경우, 정보 손실이 발생할 수 있다.
- Attention은 문장의 특정 부분에 가중치를 두어 처리한다. 이는 중요한 부분에 더 집중하게 하여 정보 손실을 줄이고, 더 정확한 예측을 가능하게 한다.
GPT(Generative Pre-trained Transformer)
- 주로 언어 생성 작업에 사용되는 LLM
- Transformer의 기본 아키텍처를 기반
- 하지만, Transformer의 인코더-디코더 구조 중 디코더 부분만을 사용.
- Self-Attention 메커니즘
- Pre-training
- 대용량의 데이터셋을 이용해서 미리 학습한(Pre-trained Transformer)를 이용.
- 이 단계에서 언어의 구조와 패턴을 학습.
- 순차적 언어 생성
- 이 모델이 텍스트를 생성할 때는 주어진 순서를 따르고, 미래의 정보를 보지 않도록 설계되어 있다.
- 이는 Masked Multi-Head Self-Sttention 메커니즘을 사용하여, 모델이 현재 단어를 예측할 때 미래의 단어를 참조하지 않게 한다.
- 비지도 학습
- GPT는 라벨링된 데이터를 필요로 하지 않으며, 대규모 비라벨링 텍스트 데이터를 사용하여 학습한다.
Self-Attention
- 입력 시퀀스의 각 단어가 다른 모든 단어와 얼마나 관련 있는지를 계산하고, 이를 바탕으로 각 단어의 표현을 업데이트한다.
Self-Attention의 두 가지 유형
- Multi-Head Self-Attention: Self-Attention 메커니즘을 여러 번 병렬로 실행하는 것. 각 헤드가 입력 시퀀스를 다른 관점에서 해석할 수 있게 한다.
- Masked Multi-Head Self-Attention: 특정 단어보다 미래에 있는 단어를 참조하지 못하도록 한다.
왜 Masked Multi-Head Self-Attention을 사용하는가?
- 순서 강제: 언어 모델링에서는 텍스트를 순차적으로 생성해야 한다. 현재 단어를 예측할 때 미래의 단어를 참조하면, 학습이 왜곡되고 잘못된 결과를 생성할 수 있다.
- 정보 누출 방지: 미래의 정보를 참조하지 못하도록 함으로써, 모델이 현재 단어의 맥락을 올바르게 학습하도록 한다.
- 정확한 확률 분포 학습: 텍스트 생성 시, 각 단어가 주어졌을 때 다음 단어의 확률 분포를 정확하게 모델링하기 위해 미래의 정보를 차단한다.
Multimodal LLM
- 텍스트뿐만 아니라 이미지, 음성, 비디오 등 다양한 형태의 데이터를 처리하고 이해할 수 있는 LLM
- 단일 모델이 여러 유형의 입력 데이터를 동시에 처리할 수 있는 능력을 갖추고 있다.
- 텍스트와 이미지, 텍스트와 오디오 등 다양한 모달리티 간의 상호작용을 이해하고 활용한다.
- 예: Gemini, GPT-4o
LLM 작동 원리
LLM Optimization
- Pre-training
- Transfer Learning
- Fine-tuning
- RAG(Retrieval Augmented Generation)
- Prompt Engineering
Pre-training
- 대규모 비지도 학습을 통해 일반적인 언어 이해와 생성 능력을 학습
- 비지도 학습(Unsupervised Learning): 레이블이 없는 데이터에서 패턴을 찾고 구조를 학습하는 방법
- 문맥, 구문, 의미적 연관성 등 언어의 다양한 패턴을 학습하여 일반적인 언어 처리 능력을 갖추게 됨
Fine-tuning
- Pre-trained model을 특정 작업이나 도메인에 맞춰 미세 조정
- 특정 작업(예: 감정 분석, 번역)에 맞춘 소규모의 레이블 된 데이터셋을 사용
- 가중치 조정
- fine-tuning을 통해 적은 데이터로도 높은 성능을 발휘할 수 있다.
Transfer Learning
- 한 작업에서 얻은 지식을 활용하여 다른 관련 작업의 성능을 향상시키는 기술.
- 텍스트 분류나 텍스트 생성과 같은 특정한 '실제' 작업을 위해 작업 특정 데이터로 모델의 파라미터를 업데이트함으로써 모델을 파인튜닝하는 것을 포함한다.
- 이러면 훨씬 적은 양의 데이터로 파인튜닝할 수 있다.
RAG(Retrieval Augmented Generation)
- 정보 검색과 언어 생성을 결합하는 기법
- 모델이 질문이나 요청에 대해 관련 정보를 외부 데이터베이스나 문서에서 검색
- 검색된 정보를 바탕으로 응답을 생성하는데, 이 과정에서 언어 모델의 생성 능력을 활용
Prompt Engineering
- 언어 모델의 출력을 제어하고 최적화하기 위해 입력 프롬프트(명령어)를 설계하는 과정
추가
RNN(Recurrent Neural Network)
- RNN은 시퀀스 데이터를 처리하는데 특화된 모델이다.
- 이전 단계의 출력을 현재 단계의 입력으로 사용하는 구조로, 문맥 정보를 유지하면서 시퀀스를 처리할 수 있다.
- 2019.07.11 - [Data Analysis/Machine learning] - RNN(Recurrent Neural Network)
One-Shot Vector Table
- 초기 단어 표현 방법으로, 각 단어를 고유한 벡터로 표현한다.
- 예를 들어, 단어를 정수로 인코딩하고 이를 One-Hot Encoding으로 표현한다.
- 단점: 고차원 벡터를 사용해야 하며, 단어 간의 유사성을 반영하지 못한다.
반응형
'Data Analysis > LLM' 카테고리의 다른 글
[LLM] RAG with OpenAI 쉬운 구현 방법과 설명 (0) | 2024.08.10 |
---|---|
LLM Conditioning 방법 - RLHF, PEFT (0) | 2024.07.13 |
[LLM] 프롬프트 엔지니어링 - 인젝션 공격, 제로샷/퓨샷, CoT, Self-Consistency, ToT (1) | 2024.06.24 |
[LLM] Text Embedding과 Vector DB (0) | 2024.06.21 |
[LLM] Chat Completion API / RAG with Llama-index / 임베딩이란 (0) | 2024.05.22 |
Comments