ChatGPT

·2023년 3월 21일
1

Bing Chat 은 OpenAI의 GPT-4 기반으로 만들어지고 최근까지 데이터 전부 체크해 최신화 잘 되어있다.

ChatGPT란?

https://blog.naver.com/210maker/223038522726

핵심은 Attention Mechanism이고
이 원리가 바로 ChatGPT의 답변방식의 기본원리이다.

Attention Mechanism

https://wikidocs.net/22893
https://glee1228.tistory.com/3
https://heekangpark.github.io/nlp/attention

seq2seq 대안
기계 번역 분야에서 입력 문장이 길면 번역 품질 떨어지는 현상 대안으로
입력 시컨스가 길어치면 출력 시퀀스의 정확도 떨어지는것 보정해주기 위해 등장한 기법인 Attention

인코더, 디코더 개념
https://woodforest.tistory.com/123

디코더 : n비트의 정보를 입력으로 받아 2n개의 출력으로 해독
인코더 : 2n 비트의 정보를 입력받아 n개의 출력으로 암호화

ChatGPT 로드맵

토크나이징 (Tokenizing)

토큰화는 텍스트를 단어나 문장 부호와 같은 토큰이라고 하는 더 작은 조각으로 나누는 과정입니다. 이러한 토큰은 텍스트의 추가 분석에서 개별 단위로 사용됩니다.

예를 들어, "The quick brown fox jumped over the lazy dog."라는 문장을 생각해 보십시오. 이 문장을 토큰화하려면 개별 단어로 분해하여 ["The", "quick", "brown", "fox", "jumped", "over", "the", " lazy", "dog", "."].

토큰화는 감정 분석, 텍스트 분류, 언어 번역과 같은 자연어 처리 작업에서 일반적인 사전 처리 단계로 텍스트 데이터를 보다 효율적이고 정확하게 분석할 수 있습니다

임베딩 (Embedding)

자연어 처리에서 임베딩은 단어나 구를 숫자 벡터로 나타내는 프로세스이며, 그런 다음 기계 학습 모델에 대한 입력으로 사용할 수 있습니다. 임베딩을 사용하면 단어 간의 의미론적 관계를 캡처하여 텍스트 데이터를 보다 효율적이고 정확하게 분석할 수 있습니다.

단어 임베딩을 생성하는 방법에는 여러 가지가 있지만 널리 사용되는 방법 중 하나는 Word2Vec 알고리즘입니다. Word2Vec은 텍스트 데이터의 대규모 Corpus에 나타나는 컨텍스트를 기반으로 단어의 벡터 표현을 학습합니다. 알고리즘은 각 단어를 조밀한 벡터로 표현하며, 유사한 단어는 벡터 공간에서 서로 더 가까운 벡터로 표현됩니다. 예를 들어, "고양이"와 "개"에 대한 벡터는 "고양이"와 "자동차"에 대한 벡터보다 서로 더 가까울 수 있습니다.

벡터가 생성되면 기계 학습 모델에 대한 입력으로 사용할 수 있습니다. 예를 들어 감정 분석 작업에서 문장의 단어를 나타내는 벡터를 평균화하여 문장의 전체 감정을 나타내는 벡터를 생성할 수 있습니다. 그런 다음 이 벡터를 사용하여 문장의 감정이 긍정적인지, 부정적인지 또는 중립적인지 예측할 수 있습니다.

임베딩은 단어 간의 의미론적 관계를 캡처하여 텍스트 데이터를 보다 정확하게 분석할 수 있으므로 자연어 처리에서 강력한 도구가 되었습니다. 기계 학습 모델은 단어를 벡터로 표현함으로써 텍스트의 의미와 맥락을 더 잘 이해할 수 있으므로 언어 번역, 텍스트 분류 및 감정 분석과 같은 작업의 정확도가 향상됩니다.

N-그램 (N-gram)

N-gram은 자연어 처리 및 전산 언어학에 사용되는 일종의 텍스트 분석 도구입니다. 간단히 말해 n-gram은 주어진 텍스트에 나타나는 n개의 단어 또는 문자의 시퀀스입니다. 예를 들어, "The quick brown fox jumps over the lazy dog"라는 문장에서 2-그램(bigrams라고도 함)은 "The quick", "quick brown", "brown fox", "fox jumps", "jumps over", "over the", "the lazy", "lazy dog".

N-그램은 대량의 텍스트 데이터에서 통계적 패턴과 관계를 추출하는 데 사용됩니다. 언어 모델링, 텍스트 분류 및 정보 검색과 같은 광범위한 응용 프로그램에 사용할 수 있습니다. 예를 들어, n-gram은 검색 엔진에서 사용자 쿼리를 관련 문서와 일치시키고, 음성 인식에서 구어를 식별하고, 기계 번역에서 텍스트를 한 언어에서 다른 언어로 번역하는 데 사용됩니다.

n-gram에서 "n" 값의 선택은 특정 작업과 분석 중인 텍스트의 특성에 따라 다릅니다. Unigrams (n=1)은 n-그램의 가장 간단한 유형이며 텍스트의 개별 단어를 나타냅니다. Bigram(n=2)은 가장 일반적으로 사용되는 n-gram이며, trigram(n=3) 및 상위 n-gram은 더 복잡한 분석에도 사용할 수 있습니다. 그러나 "n"의 값이 증가함에 따라 텍스트의 고유한 n-gram 수도 증가하여 희소성 및 계산 문제가 발생할 수 있습니다.

전반적으로 n-gram은 텍스트 데이터를 분석하고 유용한 통찰력을 추출하기 위한 강력한 도구입니다. 텍스트를 더 작은 단위로 나누고 해당 단위의 패턴을 분석하면 언어가 작동하는 방식과 사람들이 언어를 사용하는 방식을 더 잘 이해할 수 있습니다.

MLP

MLP(Multi-Layer Perceptron)는 기계 학습에서 분류 및 회귀와 같은 지도 학습 작업에 일반적으로 사용되는 일종의 신경망입니다. 입력 데이터에서 복잡한 패턴을 학습하는 데 사용되는 뉴런이라고도 하는 상호 연결된 노드의 여러 계층으로 구성됩니다.

MLP의 입력 계층은 입력 데이터의 기능을 가져오고 출력 계층은 모델의 최종 출력을 생성합니다. 그 사이에 있는 계층을 숨겨진 계층이라고 하며 일련의 비선형 변환을 통해 입력 데이터를 변환하여 데이터에서 더 복잡한 패턴을 학습합니다. 레이어의 각 뉴런은 이전 레이어의 모든 뉴런에 연결되며 각 연결에는 연결된 가중치가 있습니다. 학습 중에 가중치는 예측 출력과 실제 출력 간의 오차를 최소화하도록 조정됩니다.

MLP는 확률적 경사하강법과 같은 다양한 최적화 알고리즘을 사용하여 훈련되어 각 계층에서 뉴런의 가중치와 편향을 업데이트할 수 있습니다. 각 뉴런의 활성화 함수는 일반적으로 sigmoid 또는 ReLU 함수와 같은 비선형 함수로, 모델이 입력 데이터와 출력 데이터 간의 비선형 관계를 학습하는 데 도움이 됩니다.

MLP의 한 가지 장점은 데이터에서 복잡한 비선형 관계를 학습할 수 있어 이미지 및 음성 인식, 자연어 처리, 시계열 예측과 같은 광범위한 애플리케이션에 적합하다는 것입니다. 그러나 MLP는 모델이 교육 데이터에 너무 가깝게 맞고 보이지 않는 새로운 데이터에서 제대로 수행되지 않는 과대적합이 발생하기 쉽습니다. 이를 해결하기 위해 교육 중에 정규화, 조기 중지 및 드롭아웃과 같은 기술을 사용하여 과적합을 방지할 수 있습니다.

전반적으로 MLP는 기계 학습의 광범위한 응용 프로그램에 사용할 수 있는 강력하고 유연한 유형의 신경망입니다. 일련의 비선형 변환을 통해 입력 데이터의 복잡한 패턴을 학습함으로써 MLP는 다양한 작업에 대해 매우 정확한 예측을 생성할 수 있습니다.

RNN

RNN(Recurrent Neural Network)은 기계 학습에서 시계열 예측, 언어 모델링, 음성 인식과 같은 순차적 데이터 관련 작업에 일반적으로 사용되는 일종의 신경망입니다. 기존의 피드포워드 신경망과 달리 RNN에는 시퀀스의 한 단계에서 다음 단계로 정보를 전달할 수 있는 피드백 루프가 있습니다.

RNN의 핵심 아이디어는 시퀀스의 이전 단계 출력을 현재 단계에 대한 입력으로 사용하여 모델이 시퀀스의 컨텍스트를 학습하고 기억할 수 있도록 하는 것입니다. RNN의 가장 간단한 유형은 기본 RNN으로, 자체적으로 루프백되는 단일 숨겨진 레이어가 있습니다. 시퀀스의 각 단계는 다음 단계의 입력으로 전달되는 출력 및 숨겨진 상태를 생성합니다.

기본 RNN의 한 가지 문제는 훈련 중에 가중치를 업데이트하는 데 사용되는 기울기가 네트워크를 통해 다시 전파됨에 따라 매우 작아지는 기울기 소실 문제로 어려움을 겪을 수 있다는 것입니다. 이를 해결하기 위해 LSTM(Long Short-Term Memory) 및 GRU(Gated Recurrent Unit)와 같은 고급 RNN 아키텍처가 개발되었습니다.

LSTM 및 GRU 네트워크는 게이팅 메커니즘을 사용하여 시퀀스의 이전 단계에서 정보를 선택적으로 기억하거나 잊어버립니다. 이를 통해 모델은 데이터의 장기적인 종속성을 학습하고 기울기 소실 문제를 피할 수 있습니다.

RNN은 각 계층에 있는 뉴런의 가중치와 편향을 업데이트하기 위해 확률적 경사 하강법과 같은 다양한 최적화 알고리즘을 사용하여 훈련할 수 있습니다. 학습 중에 사용되는 손실 함수는 특정 작업에 따라 다르지만 일반적인 손실 함수에는 회귀 작업의 평균 제곱 오차와 분류 작업의 교차 엔트로피 손실이 포함됩니다.

RNN의 장점 중 하나는 다양한 길이의 시퀀스를 모델링하고 누락된 값이 있는 입력 데이터를 처리하는 기능입니다. 또한 텍스트나 음악과 같은 새로운 데이터 시퀀스를 생성하는 데 사용할 수도 있습니다. 그러나 RNN은 계산 비용이 많이 들 수 있으며 효과적으로 학습하려면 많은 양의 훈련 데이터가 필요합니다.

전반적으로 RNN은 순차 데이터와 관련된 광범위한 애플리케이션에 사용할 수 있는 강력한 유형의 신경망입니다. 피드백 루프를 사용하여 시퀀스의 한 단계에서 다음 단계로 정보를 전달함으로써 RNN은 시퀀스의 컨텍스트를 학습 및 기억하고 매우 정확한 예측을 생성할 수 있습니다.

추가정보
https://casa-de-feel.tistory.com/39

LSTM

LSTM은 Long Short-Term Memory의 약자로 기존 RNN에서 공통적으로 발생하는 문제인 기울기 소실 문제를 처리하도록 설계된 순환 신경망(RNN)의 한 유형입니다.

Vanishing Gradient 문제는 네트워크에서 가중치를 업데이트하는 데 사용되는 기울기가 시간이 지남에 따라 거꾸로 전파되어 학습이 느려지거나 학습이 없을 때 매우 작아질 때 발생합니다. LSTM 네트워크는 네트워크가 장기간에 걸쳐 정보를 선택적으로 기억하거나 잊을 수 있도록 하는 메모리 셀을 도입하여 이 문제를 해결합니다.

LSTM 네트워크는 여러 LSTM 블록으로 구성되며 각 블록에는 메모리 셀과 3개의 게이트(입력 게이트, 망각 게이트 및 출력 게이트)가 포함됩니다. 입력 게이트는 셀에 새로운 정보를 허용할지 여부를 제어하고, 망각 게이트는 셀에서 어떤 정보를 폐기할지 제어하며, 출력 게이트는 셀에서 어떤 정보를 출력해야 하는지를 제어합니다.

LSTM 블록은 먼저 망각 게이트를 사용하여 이전 셀 상태에서 어떤 정보를 잊어야 하는지 결정한 다음 입력 게이트를 사용하여 셀 상태에 어떤 새로운 정보를 추가해야 하는지 결정하여 일련의 입력을 처리합니다. 마지막으로 망각 게이트와 입력 게이트를 결합하여 셀 상태를 업데이트하고 출력 게이트를 사용하여 어떤 출력을 생성해야 하는지 결정합니다.

LSTM 네트워크에서 사용되는 활성화 함수는 일반적으로 게이트에 대한 시그모이드 함수와 셀 상태 및 출력에 대한 하이퍼볼릭 탄젠트 함수입니다. 시그모이드 함수는 0에서 1 사이의 값을 출력하는데, 이는 셀에 새로운 정보를 허용할지 또는 이전 정보를 잊어버릴지 확률로 해석할 수 있습니다. 하이퍼볼릭 탄젠트 함수는 -1과 1 사이의 값을 출력하며, 셀 상태 및 출력에서 정보의 흐름을 조절하는 데 사용할 수 있습니다.

LSTM 네트워크는 음성 인식, 자연어 처리 및 이미지 캡션을 포함한 다양한 작업에 성공적으로 적용되었습니다. 언어 모델링이나 장기간에 걸친 주식 가격 예측과 같이 장기적인 종속성이 중요한 작업에 특히 유용합니다.

추가정보
http://www.incodom.kr/LSTM

Seq2Seq

Seq2Seq 또는 Sequence-to-Sequence는 자연어 처리, 음성 인식 및 기계 번역과 같은 시퀀스 데이터와 관련된 작업을 위해 설계된 신경망 아키텍처 유형입니다. Seq2Seq 아키텍처는 인코더와 디코더의 두 부분으로 구성됩니다.

인코더는 소스 언어의 문장과 같은 일련의 입력을 받아 해당 시퀀스의 고정 크기 표현(일반적으로 벡터)을 생성합니다. 인코더는 일반적으로 LSTM(Long Short-Term Memory) 네트워크 또는 GRU(Gated Recurrent Unit) 네트워크와 같은 RNN(Recurrent Neural Network)을 사용하여 구현됩니다. 인코더의 출력은 입력 시퀀스의 요약을 포함하는 RNN의 최종 숨겨진 상태입니다.

디코더는 인코더의 출력을 입력으로 받아 대상 언어의 문장과 같은 일련의 출력을 생성합니다. 인코더와 마찬가지로 디코더는 일반적으로 순환 신경망을 사용하여 구현됩니다. 그러나 인코더와 달리 디코더는 인코더의 최종 숨겨진 상태로 초기화되며 이전에 생성한 토큰을 조건으로 한 번에 하나의 토큰을 예측하여 일련의 출력을 생성합니다.

교육 중에 Seq2Seq 모델은 주어진 입력 시퀀스에서 대상 시퀀스의 우도를 최대화하도록 교육됩니다. 이것은 일반적으로 교차 엔트로피 손실 함수를 사용하여 수행됩니다. 추론 중에 Seq2Seq 모델은 이전에 생성한 토큰을 조건으로 한 번에 하나의 토큰을 반복적으로 예측하여 출력 시퀀스를 생성하는 데 사용됩니다. 프로세스는 시퀀스 종료 토큰이 생성되거나 최대 시퀀스 길이에 도달할 때까지 계속됩니다.

Seq2Seq 모델은 기계 번역, 텍스트 요약 및 음성 인식과 같은 다양한 작업에 성공적으로 적용되었습니다. 기계 번역과 같이 입력 및 출력 시퀀스의 길이가 다른 작업에 특히 유용합니다. Seq2Seq 아키텍처는 어텐션 메커니즘으로 확장되어 디코더가 다른 타임스텝에서 입력 시퀀스의 다른 부분에 주의를 기울일 수 있어 성능이 더욱 향상됩니다.

추가정보
https://blog.naver.com/sooftware/221784419691

Attention

Attention 메커니즘은 자연어 처리 및 컴퓨터 비전 작업에 사용되는 신경망 모델의 핵심 구성 요소입니다. 이를 통해 네트워크는 전체 입력 시퀀스를 한 번에 처리하는 대신 입력 데이터의 특정 부분에 선택적으로 집중할 수 있습니다. 이것은 모델의 정확성과 효율성을 모두 향상시킬 수 있습니다.

높은 수준에서 어텐션 메커니즘은 입력 시퀀스의 각 요소에 대한 어텐션 가중치 집합을 계산하여 작동합니다. 이러한 가중치는 현재 작업 또는 출력에 대한 각 요소의 상대적 중요성을 나타냅니다. 그런 다음 네트워크는 이러한 가중치를 사용하여 입력 요소의 가중치 합계인 컨텍스트 벡터를 생성합니다.

어텐션 가중치를 계산하는 방법에는 여러 가지가 있지만 일반적인 접근 방식 중 하나는 쿼리 벡터와 각 입력 요소와 관련된 키 벡터 집합 간에 내적을 사용하는 것입니다. 그런 다음 내적은 가중치를 정규화하고 합계가 1이 되도록 softmax 함수를 통과합니다.

주의 가중치가 계산되면 입력 시퀀스에 가중치를 부여하고 컨텍스트 벡터를 생성하는 데 사용됩니다. 그런 다음 이 컨텍스트 벡터는 다른 정보(예: 순환 신경망의 이전 숨겨진 상태)와 결합되어 최종 출력을 생성합니다.

전반적으로 어텐션 메커니즘을 통해 네트워크는 전체 시퀀스를 한 번에 처리하는 대신 입력 시퀀스의 관련 부분에 선택적으로 집중할 수 있습니다. 이는 특히 긴 입력 시퀀스 또는 요소 간의 복잡한 관계가 포함된 작업의 경우 정확도와 효율성을 크게 향상시킬 수 있습니다.

추가정보
https://blog.naver.com/sooftware/221784472231

Pretrained LM(언어모델)

< 사전학습 언어모델 >

사전 훈련된 언어 모델은 비지도 방식으로 방대한 양의 텍스트 데이터에 대해 훈련된 일종의 신경망 모델입니다. 즉, 훈련을 위해 레이블이 지정된 데이터가 필요하지 않습니다. 이러한 모델은 일반적으로 자가 지도 학습 방식을 사용하여 학습되며, 여기서 모델은 텍스트 시퀀스에서 누락된 단어 또는 다음 단어를 예측하는 방법을 학습합니다.

BERT, GPT 및 ELMo를 포함하여 몇 가지 인기 있는 사전 훈련된 언어 모델이 있습니다. 이러한 각 모델은 약간 다른 아키텍처 및 교육 접근 방식을 사용하지만 모두 대규모 텍스트 데이터 Corpus에서 신경망을 사전 교육한다는 동일한 기본 아이디어를 공유합니다.

사전 학습된 언어 모델의 주요 이점은 텍스트 분류, 감정 분석 및 질문 답변과 같은 광범위한 다운스트림 자연어 처리 작업에 맞게 미세 조정할 수 있다는 것입니다. 이 미세 조정 프로세스에는 특정 다운스트림 작업에 대해 레이블이 지정된 예제의 더 작은 데이터 세트에서 사전 훈련된 모델을 교육하는 작업이 포함됩니다. 사전 훈련된 모델은 훈련의 시작점 역할을 하며 미세 조정 프로세스는 모델이 작업별 기능 및 패턴을 학습하는 데 도움이 됩니다.

사전 학습된 언어 모델을 사용하는 주요 이점 중 하나는 다운스트림 작업에 필요한 레이블이 지정된 데이터의 양을 크게 줄일 수 있다는 것입니다. 사전 학습된 모델은 이미 많은 양의 비지도 학습 데이터에서 언어에 대한 일반적인 이해를 학습했기 때문에 처음부터 시작하는 것에 비해 특정 작업을 학습하는 데 훨씬 적은 레이블이 지정된 데이터가 필요합니다.

사전 학습된 언어 모델의 또 다른 장점은 기존의 규칙 기반 또는 통계 모델을 사용하여 캡처하기 어려울 수 있는 언어의 복잡한 관계와 패턴을 캡처할 수 있다는 것입니다. 이는 텍스트 데이터의 컨텍스트 또는 장기적인 종속성을 이해해야 하는 작업에 특히 중요합니다.

전반적으로 사전 훈련된 언어 모델은 레이블이 훨씬 적은 데이터로 모델을 훈련하기 위한 시작점을 제공하고 다른 방법으로는 캡처하기 어려울 수 있는 언어의 복잡한 패턴을 캡처할 수 있으므로 자연어 처리 작업을 위한 강력한 도구입니다.

추가정보
https://hyen4110.tistory.com/45

Transformer

Deep Learning Transformer는 Vaswani 등이 2017년 논문에서 소개한 신경망 아키텍처입니다. 기계 번역, 요약 및 언어 모델링과 같은 자연어 처리 작업에 특히 적합한 Seq2Seq 모델 유형입니다.

Transformer 아키텍처는 모델이 예측을 할 때 입력 시퀀스의 다른 부분에 선택적으로 주의를 기울일 수 있는 self-attention 메커니즘을 기반으로 합니다. 이 셀프 어텐션 메커니즘은 각 입력 요소와 학습된 쿼리, 키 및 값 벡터 세트 사이의 어텐션 가중치를 계산하는 멀티 헤드 어텐션 레이어를 사용하여 구현됩니다.

또한 Transformer에는 위치 인코딩 계층이 포함되어 있어 모델이 입력 시퀀스의 순서를 캡처할 수 있습니다. 각 입력 요소의 학습된 표현인 입력 임베딩에 위치 인코딩이 추가됩니다.

트랜스포머는 인코더와 디코더로 구성되며 둘 다 여러 계층의 self-attention 및 feedforward 계층으로 구성됩니다. 인코더는 입력 시퀀스를 입력으로 사용하고 입력 시퀀스의 의미 체계를 캡처하는 숨겨진 표현 집합을 생성합니다. 디코더는 인코더의 숨겨진 표현을 입력으로 사용하고 한 번에 한 요소씩 출력 시퀀스를 생성합니다.

Transformer의 주요 장점 중 하나는 패딩이나 자르기 없이 가변 길이 입력 시퀀스를 처리할 수 있어 데이터 준비 프로세스를 단순화할 수 있다는 것입니다. 또한 self-attention 메커니즘을 통해 모델은 입력 시퀀스에서 장기적인 종속성을 캡처할 수 있으며, 이는 기존의 순환 신경망에서 어려울 수 있습니다.

전반적으로 Deep Learning Transformer는 자연어 처리 작업을 위한 강력한 신경망 아키텍처입니다. 가변 길이 입력 시퀀스를 처리하고, 장기 종속성을 캡처하고, 입력 시퀀스의 다른 부분을 선택적으로 처리하는 기능을 통해 광범위한 NLP 응용 프로그램에 매우 효과적인 도구가 됩니다.

추가정보
https://moondol-ai.tistory.com/460

Bert

Bidirectional Encoder Representations from Transformers의 줄임말인 BERT는 텍스트 분류, 질문 응답, 명명된 엔터티 인식과 같은 다양한 자연어 처리(NLP) 작업에 사용되는 사전 훈련된 언어 모델입니다. BERT는 트랜스포머 아키텍처를 기반으로 하며 2018년 Google에서 도입했습니다. BERT는 마스킹된 언어 모델링 목표와 다음 문장 예측 목표를 사용하여 대규모 텍스트 데이터 모음에서 학습됩니다.

BERT의 핵심 개념은 양방향 언어 모델이라는 것입니다. 즉, 예측할 때 각 단어의 왼쪽 및 오른쪽 컨텍스트를 모두 고려할 수 있습니다. GPT 시리즈 모델과 같은 전통적인 언어 모델에서는 각 단어의 왼쪽 컨텍스트만 다음 단어를 예측하는 데 사용됩니다. 이는 어순 및 장거리 종속성과 같은 언어의 특정 측면을 캡처하는 모델의 기능을 제한합니다.

BERT의 교육 프로세스에는 Wikipedia 또는 전체 BookCorpus 데이터 세트와 같은 대규모 텍스트 데이터 Corpus에 대한 모델 사전 교육이 포함됩니다. 사전 학습 중에 모델은 마스크된 언어 모델링으로 알려진 문장에서 누락된 단어를 예측하도록 학습됩니다. 마스킹된 언어 모델링에서 입력 토큰의 일정 비율이 임의로 마스킹되고 나머지 마스킹되지 않은 토큰을 기반으로 원래 토큰을 예측하도록 모델이 학습됩니다.

마스킹된 언어 모델링 외에도 BERT는 사전 훈련 중에 다음 문장 예측 목표를 사용합니다. 이 목표는 문장의 모델 쌍을 공급하고 두 번째 문장이 원본 텍스트의 첫 번째 문장을 따르는지 여부를 예측하도록 훈련하는 것입니다. 이를 통해 모델은 질문 응답 및 자연어 추론과 같은 작업에 유용한 문장 간의 관계에 대해 학습할 수 있습니다.

모델이 사전 훈련되면 감정 분석 또는 텍스트 분류와 같은 특정 다운스트림 작업을 위해 미세 조정할 수 있습니다. 미세 조정 중에 사전 훈련된 BERT 모델은 추가 작업별 계층과 결합되고 당면한 작업과 관련된 더 작은 데이터 세트에서 훈련됩니다.

요약하면 BERT는 Transformer 아키텍처를 기반으로 하는 사전 훈련된 양방향 언어 모델입니다. 마스킹된 언어 모델링과 다음 문장 예측 목표의 조합을 사용하여 훈련되며 특정 다운스트림 NLP 작업에 맞게 미세 조정할 수 있습니다. BERT의 양방향 특성으로 인해 장거리 종속성과 단어 순서를 캡처할 수 있으므로 광범위한 NLP 애플리케이션을 위한 강력한 도구가 됩니다.

추가정보
https://happy-obok.tistory.com/23

GPT, GPT-2, GPT-3

GPT

Generative Pre-trained Transformer의 줄임말인 GPT는 2018년 OpenAI에서 도입한 언어 모델 제품군입니다. GPT는 Transformer 아키텍처를 기반으로 하며 언어 모델링 목표를 사용하여 대규모 텍스트 데이터 Corpus에서 학습됩니다. GPT 모델의 목표는 일부 초기 메시지가 주어지면 일관성 있고 상황에 맞는 적절한 텍스트를 생성하는 것입니다.

GPT의 핵심 개념은 일관성 있고 문맥상 적절한 텍스트를 생성하는 기능입니다. 이것은 모델이 입력 시퀀스의 다른 부분에 참석하고 장거리 종속성을 캡처할 수 있도록 하는 큰 사전 훈련 Corpus와 Transformer 아키텍처의 사용을 통해 달성됩니다.

GPT의 사전 학습 프로세스에는 언어 모델링 목표를 사용하여 대규모 텍스트 데이터 Corpus에 대한 모델 학습이 포함됩니다. 언어 모델링에서 모델은 이전 단어가 주어진 시퀀스에서 다음 단어를 예측하도록 훈련됩니다. 사전 학습 중에 모델은 마스크된 언어 모델링으로 알려진 문장에서 누락된 단어를 예측하도록 학습됩니다.

모델이 사전 훈련되면 텍스트 분류, 명명된 엔터티 인식 또는 질문 답변과 같은 특정 다운스트림 NLP 작업에 대해 미세 조정할 수 있습니다. 미세 조정 중에 사전 훈련된 GPT 모델은 추가 작업별 계층과 결합되고 당면한 작업과 관련된 더 작은 데이터 세트에서 훈련됩니다.

가장 잘 알려진 GPT 모델 중 하나는 2020년에 출시된 GPT-3이며 현재 사용 가능한 가장 크고 강력한 언어 모델 중 하나입니다. GPT-3는 광범위한 NLP 작업에서 잘 수행되는 것으로 나타났으며 창의적 글쓰기 및 예술 프로젝트를 위한 일관성 있고 상황에 맞는 텍스트를 생성하는 데 사용되었습니다.

요약하면 GPT는 Transformer 아키텍처를 기반으로 하는 언어 모델 제품군이며 언어 모델링 목표를 사용하여 대량의 텍스트 데이터 모음에서 학습됩니다. GPT의 핵심 개념은 일관성 있고 문맥상 적절한 텍스트를 생성하는 기능입니다. GPT 모델은 특정 다운스트림 NLP 작업에 대해 미세 조정할 수 있으며 광범위한 응용 프로그램에 매우 효과적인 것으로 나타났습니다.

GPT-2

GPT-2(Generative Pre-trained Transformer 2)는 2019년 OpenAI에서 도입한 언어 모델입니다. Transformer 아키텍처를 기반으로 한다.

GPT-2의 핵심 기능은 크기와 복잡성으로, 사용 가능한 가장 크고 강력한 언어 모델 중 하나입니다. 800만 개가 넘는 웹 페이지의 대규모 Corpus에서 훈련되어 15억 개의 매개 변수가 있는 모델이 생성되었습니다.

GPT-2는 몇 가지 초기 프롬프트가 주어지면 일관되고 상황에 맞는 텍스트를 생성할 수 있습니다. 이는 입력 시퀀스의 다른 부분에 주의를 기울이고 장거리 종속성을 캡처할 수 있는 Transformer 아키텍처의 사용과 크기의 조합을 통해 이를 달성합니다.

GPT-2의 주목할만한 기능 중 하나는 명시적인 교육 없이 특정 언어 작업을 수행할 수 있는 능력입니다. 예를 들어 비유를 완성하고, 언어를 번역하고, 긴 문서를 요약할 수 있습니다. 또한 뉴스 기사, 시, 심지어 컴퓨터 코드와 같은 다양한 스타일로 사실적이고 일관된 텍스트를 생성할 수 있습니다.

그러나 GPT-2의 출시는 너무 강력하고 가짜 뉴스 생성이나 개인 사칭과 같은 오용에 잠재적으로 위험한 것으로 간주되어 논란이 되었습니다. 결과적으로 OpenAI는 처음에 전체 모델에 대한 액세스를 제한하고 더 작은 버전만 공개했습니다.

요약하면 GPT-2는 다양한 스타일로 일관되고 상황에 맞는 텍스트를 생성할 수 있는 Transformer 아키텍처를 기반으로 하는 크고 강력한 언어 모델입니다. 크기와 복잡성으로 인해 명시적인 교육 없이도 특정 언어 작업을 수행할 수 있는 능력이 두드러집니다. 그러나 오용 가능성에 대한 우려로 출시 논란이 일었다.

GPT-3

GPT-3(Generative Pre-trained Transformer 3)은 GPT-2의 성공에 이어 OpenAI가 2020년에 도입한 언어 모델입니다. 현재 사용 가능한 가장 크고 강력한 언어 모델 중 하나이며 무려 1,750억 개의 매개변수가 있습니다.

이전 버전과 마찬가지로 GPT-3는 Transformer 아키텍처를 기반으로 하며 언어 모델링 목표를 사용하여 방대한 텍스트 데이터 Corpus에 대해 교육을 받습니다. 사전 훈련 프로세스에는 이전 단어가 주어진 시퀀스에서 다음 단어를 예측하도록 모델을 훈련하는 것과 문장에서 누락된 단어를 예측하도록 모델을 훈련하는 것(마스크된 언어 모델링)이 포함됩니다.

GPT-3는 뉴스 기사, 시, 심지어 컴퓨터 코드와 같은 다양한 스타일로 일관성 있고 상황에 맞는 텍스트를 생성할 수 있습니다. 또한 질문에 답하고, 언어를 번역하고, 심지어 인간과 같은 대화를 생성하는 것과 같은 명시적인 훈련 없이 특정 언어 작업을 수행할 수 있습니다.

GPT-3의 주목할만한 기능 중 하나는 아주 적은 훈련 데이터로 특정 작업을 수행할 수 있는 몇 번의 학습 기능입니다. 예를 들어, GPT-3는 번역의 몇 가지 예만으로 이전에 본 적이 없는 언어에서 문장의 고품질 번역을 생성할 수 있습니다.

GPT-3의 또 다른 주목할만한 기능은 텍스트 분류, 감정 분석 및 언어 추론을 포함하여 인상적인 정확도로 다양한 NLP 작업을 수행하는 기능입니다.

그러나 GPT-2와 마찬가지로 GPT-3의 출시 역시 이러한 강력한 언어 모델의 오용 가능성에 대한 우려를 불러일으키면서 논란이 되고 있다. 결과적으로 OpenAI는 전체 모델에 대한 액세스를 제한하고 더 작은 버전만 공개했습니다.

요약하면 GPT-3는 Transformer 아키텍처를 기반으로 하는 강력한 언어 모델로, 다양한 스타일로 일관되고 상황에 맞는 텍스트를 생성하고 인상적인 정확도로 다양한 NLP 작업을 수행할 수 있습니다. 그것의 몇 번의 학습 능력과 인간과 같은 대화의 가능성은 그것을 지금까지 가장 주목할만한 언어 모델 중 하나로 만들었지만 그것의 출시는 또한 잠재적인 오용에 대한 우려를 불러일으켰습니다.

추가정보
https://ainote.tistory.com/17

RL (강화학습),REINFORCE, A2C

RL은 에이전트(로봇,sw) 교육해 특정 목표를 달성하기 위해 환경에서 결정을 내리고 조치를 취하는데 중심을 둔 ML의 하위 분야이다.
에이전트는 환경과 상호 작용하고 여러 형태의 피드백을 받으며 시간이 지남에 따라 누적보상을 최대화하도록 조치를 조정해 학습한다.

RL의 주요 개념

  1. Agent : 로봇, SW 또는 환경과 상호 작용하는 기타 엔터티가 될 수 있는 강화학습 프로세스의 의사 결정자이다.

  2. Environment : Agent가 작동하는 world or 컨텍스트이다. 환경은 실제 공간과 같이 실제이거나 컴퓨터 게임과 같은 시뮬레이션된 것일 수 도 있다.

  3. State : 환경에서 agent의 현재 상황을 나타낸다. State는 agent가 결정을 내리는데 필요한 관련 정보를 캡처한다.

  4. Action : 환경의 상태를 변경하고 agent의 향후 보상에 영향을 줄 수 있는 agent의 이동 or 결정이다.

  5. Reward : agent가 행동에 대한 피드백으로 받는 스칼라 값. 긍정적인 보상은 행동이 유익했음을 나타내고 부정적인 보상은 최적이 아닌 행동을 나타낸다.

  6. Policy : State에서 agent가 따르는 작업으로의 매핑 또는 전략이다. 정책은 환경에서 agent의 행동을 결정하며 강화 학습의 목표는 누적 보상을 최대화하는 최적의 정책을 찾는 것

  7. Value Function : 특정 Policy가 주어졌을 때 각 상태, 상태-행동에 대한 예상 누적 보상을 추정하는 함수. 가치 함수는 agent가 행동의 장기적인 결과를 평가하는 데 도움이 된다.

  8. Exploration vs. Exploitation (탐색 vs 착취) : agent가 잠재적인 보상을 발견하기 위해 새로운 행동을 탐색하는것과 높은 보상을 산출하는 것으로 알려진 행동을 취하는 것(착취) 사이에서 균형을 유지해야 하는 강화 학습에서 발생하는 절충안

강화 학습 알고리즘 :

다양한 알고리즘과 접근 방식이 있고 크게는 모델 없는 방법과 보델 기반 방법으로 분류할 수 있다.

  1. 모델 없는 방법: 이 알고리즘은 환경 모델에 의존하지 않고 환경과의 상호 작용에서 직접 학습합니다. 예를 들면 Q-러닝, SARSA 및 심층 Q-네트워크(DQN)가 있습니다.

  2. 모델 기반 방법: 이 알고리즘은 상태 전환 및 보상을 예측하기 위해 환경의 내부 모델을 구축합니다. 모델을 사용하여 에이전트는 보다 효과적으로 작업을 계획할 수 있습니다. 예를 들면 MCTS(Monte Carlo Tree Search) 및 Dyna-Q가 있습니다.

강화 학습의 응용:

강화 학습은 다음과 같은 다양한 영역에서 성공적으로 적용되었습니다.

  1. 로보틱스: RL은 물체를 잡거나 환경을 탐색하는 것과 같은 복잡한 작업을 수행하도록 로봇을 훈련시키는 데 사용할 수 있습니다.

  2. 게임 플레이: RL은 초인적인 수준에서 바둑, 체스, 포커와 같은 게임을 할 수 있는 에이전트를 만드는 데 사용되었습니다.

  3. 자율 주행 차량: RL을 사용하여 자율 주행 차량의 제어 정책을 개발하고 안전과 효율성을 최적화할 수 있습니다.

  4. 추천 시스템: RL은 뉴스 기사 또는 비디오 스트리밍 플랫폼과 같은 추천 시스템에서 콘텐츠 선택 및 순위를 최적화하는 데 사용할 수 있습니다.

  5. 재무: RL은 포트폴리오 관리, 거래 및 기타 재무 의사 결정 프로세스에 사용할 수 있습니다.

강화 학습은 수많은 잠재적 응용 프로그램이 있는 흥미롭고 빠르게 발전하는 분야입니다. 복잡하고 불확실한 환경에서 의사 결정을 최적화하는 방법을 학습함으로써 RL은 다양한 산업과 기술을 혁신할 수 있는 잠재력을 가지고 있습니다.

추가 정보 사이트
https://codingopera.tistory.com/21

REINFORCE

Monte Carlo policy gradient로도 알려진 REINFORCE는 category of policy gradient methods 범주에 속하는 강화 학습 알고리즘입니다. REINFORCE의 주요 목표는 가치 함수 또는 환경 모델에 의존하지 않고 정책(상태에서 작업으로의 매핑)을 직접 최적화하는 것입니다.

REINFORCE의 기본 아이디어는 예상되는 누적 보상을 최대화하는 기울기 방향으로 정책 매개변수를 조정하는 것입니다. 이는 현재 정책에 따라 수집된 전체 궤적 또는 에피소드에서 파생된 그래디언트의 샘플 추정치를 사용하여 매개변수를 업데이트하여 수행됩니다.

REINFORCE 알고리즘의 몇 가지 중요한 측면은 다음과 같습니다.

  • Monte Carlo 추정: REINFORCE는 전체 에피소드를 사용하여 기울기를 추정하므로 Monte Carlo 방법이 됩니다. 이로 인해 그래디언트 추정치의 분산이 커지고 수렴 속도가 느려질 수 있습니다.

  • 탐색: REINFORCE는 on-policy 방식으로, 에이전트가 현재 정책을 따르면서 학습한다는 의미입니다. 이는 에이전트가 새로운 작업을 시도하고 그 효과를 발견할 가능성이 높기 때문에 탐색을 장려합니다.

  • 가치 함수 없음: 다른 강화 학습 알고리즘과 달리 REINFORCE는 가치 함수를 사용하여 학습을 안내하지 않습니다. 이것은 알고리즘을 더 간단하게 만들 수 있지만 경우에 따라 효율성을 제한할 수도 있습니다.

요약하면, REINFORCE는 그라디언트의 Monte Carlo 추정을 사용하여 policy을 직접 최적화하는 강화 학습을 위한 policy gradient 방법입니다. 다양한 문제에 적용할 수 있는 간단하면서도 강력한 알고리즘이지만 높은 분산과 느린 수렴은 특정 상황에서 한계가 있을 수 있습니다.

A2C

A2C(Advantage Actor-Critic)는 복잡한 환경에서 의사결정을 위한 최적의 정책을 학습하기 위해 Policy Gradient 방법(Actor)과 Value Function approximation(Critic)의 장점을 결합한 강화 학습 알고리즘입니다.

A2C 알고리즘에는 두 가지 주요 구성 요소가 있습니다.

  1. Actor : 액터는 정책, 즉 상태에서 작업으로의 매핑을 학습하는 신경망입니다. 액터는 현재 상태를 입력으로 사용하고 작업에 대한 확률 분포를 출력합니다. 그런 다음 에이전트는 이 분포에 따라 작업을 선택합니다.

  2. Critic : Critic는 각 상태에 대한 예상 누적 보상을 추정하는 가치 함수를 학습하는 또 다른 신경망입니다. Critic는 현재 상태를 입력으로 사용하고 해당 상태에서 예상되는 수익을 나타내는 스칼라 값을 출력합니다.

A2C 알고리즘은 비평가가 각 상태의 가치를 평가하는 동안 누적 보상을 최대화하는 행동을 선택하도록 액터를 훈련시키는 것을 목표로 합니다. 배우와 비평가를 결합함으로써 알고리즘은 두 구성 요소의 강점을 활용하여 보다 효과적으로 학습할 수 있습니다.

A2C 알고리즘의 주요 단계는 다음과 같습니다.

  1. 임의의 가중치로 Actor 및 Critic 네트워크를 초기화합니다.

  2. 환경에서 현재 정책(Actor)을 실행하여 배치 궤적을 수집합니다. 궤적은 일련의 상태-행동-보상 튜플로 구성됩니다: (s_t, a_t, r_t), 여기서 s_t는 시간 단계 t에서의 상태, a_t는 취해진 행동, r _t 받은 보상입니다.

  3. 수집된 궤적의 각 상태에 대해 해당 상태의 평균 동작과 비교하여 동작이 얼마나 더 나은지를 나타내는 이점 값을 계산합니다. 어드밴티지는 실제 수익(누적 보상)과 비평가가 제공한 추정 상태 값 간의 차이로 계산할 수 있습니다. A(s_t, a_t) = R_t - V(s_t), 여기서 R_t는 시간 단계 t에서 실제 수익이고 V(s_t)는 상태 값에 대한 Critic의 추정치입니다.

  4. 더 높은 이점 값을 가진 작업을 선호하도록 행위자의 정책을 업데이트합니다. 이것은 정책 기울기가 어드밴티지 값으로 조정되고 Actor의 가중치가 업데이트되어 예상 수익을 최대화하는 정책 기울기 접근 방식을 사용하여 수행됩니다.

  5. 실제 상태 값을 더 잘 추정하기 위해 Critic의 가치 함수를 업데이트합니다. 이것은 일반적으로 평론가의 예측과 궤적의 실제 수익(R_t) 간의 차이를 측정하는 평균 제곱 오차와 같은 손실 함수를 사용하여 수행됩니다.

  6. 원하는 성능 수준에 도달하거나 중지 기준이 충족될 때까지 2-5단계를 반복합니다.

A2C 알고리즘의 장점

  • 분산 감소: 상태 값을 추정하기 위해 Critic의를 사용하면 정책 기울기 업데이트의 분산이 줄어들어 보다 안정적인 학습이 가능합니다.

  • 더 나은 탐색: The actor-critic 아키텍처는 액터가 새로운 작업을 탐색하고 critic가 가치를 평가할 때 에이전트가 탐색과 착취의 균형을 더 잘 잡을 수 있도록 합니다.

요약하면 A2C 알고리즘은 의사결정을 위한 최적의 정책을 학습하기 위해 Policy 기울기와 가치 함수 근사 기법을 결합한 강화 학습 방법이다. Actor를 사용하여 정책을 학습하고 critic를 사용하여 상태 값을 추정함으로써 A2C 알고리즘은 탐색과 착취의 균형을 효과적으로 유지하여 복잡한 환경에서 학습 및 성능을 향상시킬 수 있습니다.

RL | TRPO, PPO

TRPO

TRPO(Trust Region Policy Optimization)는 policy gradient 방법 범주에 속하는 고급 강화 학습 알고리즘입니다. TRPO는 안정적이고 강력한 정책 업데이트를 보장하여 REINFORCE와 같은 기본 정책 기울기 방법의 일부 제한 사항을 해결하는 것을 목표로 합니다. TRPO의 기본 아이디어는 각 업데이트 동안 정책의 변경량을 제한하여 새 정책이 이전 정책에서 너무 많이 벗어나지 않도록 하는 것입니다. 이는 신뢰 영역 최적화 접근 방식을 사용하여 달성됩니다.

TRPO 알고리즘의 몇 가지 주요 측면은 다음과 같습니다.

  • 신뢰 영역 최적화: TRPO는 각 업데이트 동안 정책의 변경량을 제한하기 위해 신뢰 영역 최적화 접근 방식을 사용합니다. 이것은 새로운 정책이 이전 정책에서 크게 벗어나지 않기 때문에 보다 안정적이고 강력한 학습으로 이어집니다.

  • 단조로운 개선: 정책의 변경을 제한함으로써 TRPO는 단조로운 개선을 보장하는 것을 목표로 합니다. 즉, 업데이트 후에 정책의 성능이 감소해서는 안 됩니다.

  • 효율적인 policy gradient 추정: TRPO는 일반적으로 GAE(Generalized Advantage Estimation)와 같은 방법을 사용하여 REINFORCE와 같은 기본 policy gradient 방법에 비해 더 효율적이고 더 낮은 분산으로 policy gradient를 계산합니다.

요약하면 TRPO(신뢰 영역 정책 최적화)는 신뢰 영역 최적화 접근 방식을 사용하여 기본 policy gradient 방법의 일부 제한 사항을 해결하는 강화 학습을 위한 고급 policy gradient 방법입니다. TRPO는 각 업데이트 동안 정책의 변경량을 제한하여 안정적이고 강력한 정책 업데이트를 보장하여 복잡한 환경에서 보다 안정적이고 효과적인 학습을 유도합니다.

참고 논문
https://rlwithme.tistory.com/6 (TRPO 논문)
https://ropiens.tistory.com/82

PPO

PPO(Proximal Policy Optimization)는 policy gradient 방법 범주에 속하는 널리 사용되는 강화 학습 알고리즘입니다. PPO는 TRPO(Trust Region Policy Optimization)와 같은 이전 정책 최적화 기술의 일부 문제를 해결하는 고급 알고리즘입니다. PPO의 기본 아이디어는 새 정책이 이전 정책에서 크게 벗어나지 않도록 하여 효율적이고 안정적인 정책 업데이트를 만드는 것입니다. 이는 클리핑 메커니즘이 있는 대리 목적 함수를 도입하여 달성됩니다.

PPO 알고리즘의 몇 가지 주요 측면은 다음과 같습니다.

  • 대리 목적 함수: PPO는 클리핑 메커니즘과 함께 대리 목적 함수를 사용하여 각 업데이트 동안 정책 변경의 양을 제한합니다. 이것은 새로운 정책이 이전 정책에서 크게 벗어나지 않기 때문에 보다 안정적이고 강력한 학습으로 이어집니다.

  • 클리핑 메커니즘: 클리핑 메커니즘은 이전 정책 확률에 대한 새 정책 확률의 비율이 미리 정의된 범위 내에서 유지되도록 하여 과도하게 큰 정책 업데이트를 방지합니다.

  • 효율적인 policy gradient 추정: PPO는 일반적으로 GAE(Generalized Advantage Estimation)와 같은 방법을 사용하여 REINFORCE와 같은 기본 policy gradient 방법에 비해 분산이 더 낮고 보다 효율적으로 정책 기울기를 계산합니다.

  • On-Policy 학습: PPO는 On-Policy 방법으로 에이전트가 현재 정책을 따르면서 학습하는 것을 의미합니다. 이는 에이전트가 새로운 작업을 시도하고 그 효과를 발견할 가능성이 높기 때문에 탐색을 장려합니다.

요약하면, Proximal Policy Optimization(PPO)은 TRPO와 같은 이전 정책 최적화 기술의 일부 문제를 해결하는 강화 학습을 위한 고급 policy gradient 방법입니다. PPO는 클리핑 메커니즘이 있는 대리 목적 함수를 사용하여 안정적이고 강력한 정책 업데이트를 보장하여 복잡한 환경에서 보다 안정적이고 효과적인 학습을 유도합니다.

InstructGPT

참고 사이트
https://littlefoxdiary.tistory.com/101

참고 사이트 & 영상

ChatGPTers 그룹
https://www.chatgpters.org/c/beginners/chatgpt
https://www.youtube.com/watch?v=6-55fAV90TE&t=40s
(1, 2, 3편 구성)

0개의 댓글