반응형

- GPT-3에서 원하는 결과를 얻기 위해 적절한 프롬프트가 필요하다. 프롬프트 엔지니어링

- 사람의 생각도 비슷하다. 언어로 생각을 유도할 수 있다.


https://youtu.be/tZoJb3e6LPo


[출처] https://blog.naver.com/allbareunkr/222852267626

 

GPT-3에 대한 종합적인 이해

2020년 5월, OpenAI는 <Language Models Are Few-Shot Learners>라는 혁신적인 논문을 발표...

blog.naver.com

 

- 좋은 프롬프팅의 중요성

  • 프롬프트 : 필요한 output을 만들기 위해 샘플 트리거를 제공해야 합니다. 이 트리거를 GPT-3에서는 프롬프트라고 합니다. AI가 해결하고자 하는 문제의 맥락을 파악할 수 있도록 제공하는 파라미터입니다.이미지, 텍스트 형태의 힌트라고 생각하셔도 될 듯 합니다.

[출처]  https://m.blog.naver.com/jjcpa/221983698349

 

 

신경언어 프로그래밍(Neuro-Linguistic Programming, NLP)

정의(개념)   1. NLP는 20세기에 개발된 실용심리학의 한 분야로 인간 행동의 긍정적인 변화를 이...

blog.naver.com

NLP의 원리는,

첫째, 먼저 자신과 라포를 형성하고 다음으로 타인과의 라포를 형성한다.

둘째, 자신이 달성하고자 하는 바, 즉 목표를 파악한다.

셋째, 감각기관을 통하여 자신의 행동을 이해하고 나은 방향으로 나아간다.

넷째, 여러 행동 대안을 염두에 두고 선택하여 행동하는 행동적 융통성을 갖는다.

 

라포[rapport]

상담이나 교육을 위한 전제로 신뢰와 친근감으로 이루어진 인간관계이다. 상담, 치료, 교육 등은 특성상 상호협조가 중요한데 라포는 이를 충족시켜주는 동인(動因)이 된다. 라포를 형성하기 위해서는 타인의 감정, 사고, 경험을 이해할 수 있는 공감대 형성을 위하여 노력하여야 한다. 따라서 효과적인 장애 학생 교육이나 부모 상담을 위해서는 라포의 형성이 무엇보다 중요하다. (특수교육학 용어사전, 2009., 국립특수교육원)

 

NLP의 전제는 다음 열여섯 가지로 제시할 수 있다.


첫째, 지도는 영토가 아니다. 사람들은 현실 그 자체가 아닌 자신이 가지고 있는 실재에 대한 지도에 반응한다. 지도는 영토를 편리하게 그려 놓은 것으로서 인간은 (**자신의)지도에 따라서 움직이고 의사소통을 한다. , NLP는 현실 자체가 아닌 그것을 반영하는 지도를 변화시키는 기술이다.

 

둘째, 인간의 행동은 목적 지향적이다. 인간은 목적이 무엇인지 항상 의식하면서 행동하는 것은 아니지만 행동의 이면에는 어떤 목적이 존재한다.

 

셋째, 의사소통에서 전달하고자 하는 의미는 상대방으로부터 내가 얻는 반응에 의해 결정된다. 따라서 의사소통을 제대로 하는지의 문제는 상대방으로부터 원하는 반응을 얻었는가의 문제와 직결된다. 우리가 하는 말은 의도와 다르게 전달될 수 있지만 그렇다고 실패는 아니며 단지 상대방에게서 어떤 반응과 피드백을 얻는 것뿐이다.

 

넷째, 경험은 일정한 구조로 구성된다. 우리의 사고와 기억은 나름의 일정한 패턴으로 이루어진다. 그 구조나 패턴을 바꾸면 경험의 내용 또한 바뀐다. 예를 들어, 나쁜 기억은 불쾌한 시각적 장면이나 청각적 소리 및 나쁜 감정을 일으키는 내용의 구조로 이루어진다. 그러므로 그 장면을 좋은 것으로, 소리를 좋은 것으로, 좋은 감정을 일으키는 내용으로 구조를 바꾸면 기억도 변화될 수 있다.

 

다섯째, 모든 행동은 좋은 의도에서 나온다. 우리의 행동은 언제나 우리에게 가치 있는 무엇인가를 성취하기 위해 나온다. NLP에서는 행위 그 자체와 그 행위 뒤에 있는 의도나 목적을 구분한다. 어떤 행동이 부정적으로 보이는 것은 우리가 그 행동의 목적을 알지 못하기 때문이다.

 

여섯째, 마음과 몸은 하나의 체계이며 서로 영향을 주고받는다. 다른 하나에 영향을 주지 않고 변화시키는 것은 불가능하다.

 

일곱째, 사람은 그 당시에 할 수 있는 가장 최선의 선택을 한다. 아무리 파괴적이고 악한 행동이라 해도 그것은 그 사람이 자신에게 주어진 세상에 대한 지도 혹은 모형으로 당시에 할 수 있는 최선의 선택을 한 결과다. 그의 세상모형 혹은 지도에서 더 나은 선택을 할 수 있는 선택권을 부여한다면 그는 그것을 받아들일 것이다.

 

여덟째, 사람들은 자기 나름으로는 완벽하게 일한다. 어느 누구에게도 잘 못한다거나 서투르다고 말할 수 없다. 중요한 것은 그들이 어떤 방식으로 행동하는지 알아내어 그 방법을 보다 유익하고 바람직한 방향으로 변화시키는 것이다.

(**기억력이 없어서 일을 잘 못한다면 기억력을 향상시키면 된다? 아직 이해가 안 되는군)

 

아홉째, 실패란 없고 단지 피드백(배움)이 있을 뿐이다.

 

열째, 배움은 살아 있다는 증거이며 우리는 배우지 않을 수 없다.

 

열한째, 우리에게는 필요한 모든 자원이 이미 있거나 새롭게 창조할 수 있다. 자원이 없는 사람은 없으며, 다만 자원이 없는 상태가 있을 뿐이다.

(**기억력이 없다면 새롭게 보충할 수 있나? 오메가3?)

 

열두째, 어떤 사람이 무엇인가 할 수 있다면 다른 사람도 그것을 배워 행할 수 있다. 탁월성은 복제가 가능하며 탁월성을 모방하고 그것을 다른 사람에게 가르칠 수 있다. 인간은 성공적인 성취를 모방함으로써 탁월성을 달성할 수 있다.

(**기억력이 없다면 기억력이 탁월한 사람을 모방할 수 있나? 내가 말꼬리 잡는군.)

 

열셋째, 선택할 수 있다는 것은 선택할 수 없는 것보다 바람직하다. 가능하면 광범위하게 여러 가지 선택을 할 수 있는 자신의 지도를 찾는 것이 중요하다. 항상 선택의 폭을 넓히고 가장 많은 선택, 즉 가장 유연한 사고와 행동을 하는 사람이 모든 상호작용에서 가장 큰 영향력을 미치게 된다.

 

열넷째, 무의식은 선한 의도를 가지고 있다. 무의식은 의식의 균형을 잡아주며 본래 악의적인 것이 아니고 선의적이다.

(**무의식이 선한 의도를 가진다? 무의식의 의도를? 그냥 무의식의 속성은 선하다겠지. 그리고 선하다고? 무슨 의도로 이런 前提를 하는지 모르겠다.- 이섬백은 전제조건이란 진리가 아니라 바람직한 결과를 얻기 위해 사실인것 처럼 받아들이는 명제란다. 그렇다면 전제가 아니라 가정이라고 해야.)

 

열다섯째, 이해하기를 원한다면 실행해야 한다. 인간은 행동을 하고 나서 그것을 이해하게 되고 행동의 결과로 배우는 경우가 많다.

 

열여섯째, 인간은 감각을 통하여 모든 정보를 처리한다. 이러한 전제를 바탕으로 한 NLP의 전략은 크게 메타 모형(meta-model), 라포 형성, 해결 지향적 행동패턴의 관점바꾸기, 앵커 충돌, 표상체계와 빈사(서술, 단언), 모델링 등이다.

반응형

'생각' 카테고리의 다른 글

싱크 어게인(Think Again)  (1) 2024.02.27
아비투스  (0) 2023.01.24
퍼스널 브랜딩  (0) 2022.12.27
집중과 몰입  (1) 2022.12.14
감정 훈련  (0) 2022.12.13
반응형

https://www.summarizingtool.net/

 

Summarizing Tool - Best Text Summary Generator Tool

AdBlock Detected! Our website is made possible by displaying ads to our visitors. Please support us by whitelisting our website.

www.summarizingtool.net

- 한글도 잘됩니다.

- 품질이 좋습니다.

- 핵심 구절들도 보여줍니다.

반응형
반응형

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

비정형 데이터 분석 11/11 GPT

https://youtu.be/ZgIH1RoFZaA

 


[GPT 추가 자료]

https://www.quantumdl.com/entry/12%EC%A3%BC%EC%B0%A81-Improving-Language-Understanding-by-Generative-Pre-Training

요약하자면 Unsupervised Learning을 통한 Pretrained-LM의 구축과

Supervised Learning을 통한 Task prediction구조를 통해

여러 종류의 NLP downstream task에 대해 'Generative'한 방법을 통한 text representation을 학습 모델을 제안한다.

Model Architecture

Unsupervised Learning

이 단계에서는 Unsupervised Learning을 통한 Language Model을 구성한다. 여기서는 Transformer block을 사용해서 Language Model을 구성하는 것으로 나오는데, 토큰화 된 문장을 Token Embedding matrix로 구성하는 과정에서 Transformer의 decoder부분만 사용하게 된다. 대신 기존의 Transformer가 Encoder/Decoder 6쌍으로 구성되었다고 하면 여기서는 Decoder만 12개(Multi-head)로 구성한다는 점을 특징으로 잡을 수 있다.

간단히 요약하자면, 일단 문장단위로 Encoding(BPE)하고 Transformer Decoder를 거쳐 Context-level Embedding을 하는 과정을 통해 Unsupervised Learning을 사용한 LM을 학습한다.

 

Supervised Learning

Supervised Learning부분은 크게 두 부분으로 나눠볼 수 있다. Text/Position Embedding부터 12개의 Decoder가 있는 부분인 Pretrained Model, 그리고 Task Prediction/Classification 부분까지 두 부분으로 나눠보자.

 

Pretrained Model에서는 Global한 NLP feature를 학습하도록 구성되어있다. 여기서 각 Embed는 Unsupervised에서도 언급했듯이 BytePair Encoding으로 구성되어있다. 이렇게 학습된 representation은 Context에 대해 소실되는 정보가 거의 없이 학습된다고 가정하고, 이를 Decoder를 통해 Task에 맞는 정답 Feature를 추출하고자 한다.

 

두번째로 Task prediction/classification부분이다. 여기서 기억해야 할 점은, Task Classifier 또는 Task Prediction과 같이 하나의 예상만 출력하지 않는다는 점이다. 논문에서도 이러한 구조를 Auxiliary Task라는 용어로 표현하고 있다. 쉽게 풀어 말하자면, 하나의 Task objective에 대해서만 학습하는 것 보다 Auxiliary objective(sub-task)를 같이 학습하는 것이 주요 task에 대한 정확도를 높여주는 것이다.

How to use (in different tasks)

GPT-1의 전체적인 구조

Input transformations for fine-tuning on different tasks

사실 GPT가 pretrained model을 제시한다고 해서 모든 task에 대해 사용법이 전부 동일한 것은 아니다. 위 그림에서 보이듯이 Classification은 True/False 또는 category를 예측하기 위해 하나의 구조만 가지고 있지만, Similarity나 Multiple Choice의 경우 Context/Text를 비교하기 위해 각 부분마다 모델을 적용시킨 후, 이를 취합하는 구조를 보인다. 이와 같이 GPT 모델을 사용할 때는, 하고자 하는 Task에 맞춰 모델을 알맞게 구성해 줄 필요가 있다.

 

Result & Conclusion

Result

왼쪽 그래프는 Transformer Decoder의 갯수에 따른 정확도(accuracy)의 변화를 나타낸다. RACE(https://arxiv.org/abs/1704.04683)와 MultiNLI(https://arxiv.org/abs/1704.05426)는 각각 데이터셋이며, RACE의 경우 Question Answering(QA)를 목적으로 하며, MultiNLI의 경우 textual entailment 또는 NLI(Natural Language Inference)를 목적으로 한다. 결과에서도 보이듯, 두 데이터셋 모두 Layer의 갯수가 많아질수록 정확도가 비약적으로 상승하는 것을 볼 수 있다. (다만 12개 정도에서 정확도가 Converge하는 듯하다)

 

오른쪽 그래프는 점선(Transformer대신 LSTM 사용)과 실선(Transformer사용)을 통해 Transformer를 사용할때와 사용하지 않을 때의 차이를 보여주고 있다. 각 색상은 특정 Task를 나타낸다. 모든 Task에 대해 증가율의 차이는 있지만 모두 상대적으로 performance가 증가한 것을 볼 수 있다.

 

위 표에서는 Auxiliary Objective(sub-task)가 있을때와 없을때, 그리고 pre-training이 없을때의 성능을 보여준다.

 

위 결과중 왼쪽의 4가지 Task와 오른쪽 4가지 Task의 결과가 다른데, 이는 데이터셋의 크기가 다르기 때문이다. 즉, 데이터셋이 클수록(QQP, MNLI, QNLI, RTE) auxiliary task가 성능 개선에 영향이 더 크며, 작을수록(CoLA, SST2, MRPC, STSB) auxiliary task없이 학습하는 것이 오히려 성능에 도움이 되는 것을 확인할 수 있다.

 

Transformer의 사용 여부에 대해서도 성능을 측정하고 있는데, 모든 경우에 대해 LSTM 대신 Transformer를 사용하는 것이 성능 개선에 도움이 되는 것을 확인할 수 있다.

 

또한 pre-training의 유무에 대해서도 성능을 측정하는데, full모델에 비해 pre-training이 없을 경우 전체적으로 성능이 매우 감소하는 것을 확인할 수 있다. (여기서 pre-training을 사용하지 않는다는 것은 unsupervised pre-training에 사용되는 구조를 모두 넘겨버리는 것을 말한다. 즉, supervised부분만 사용하는 것)

 

Conclusion

사실 GPT-1은 BERT에 비해 그리 주목받지 못한다. 이유가 몇가지 있는데, 우선 BERT가 범용적으로 쓰이기 더 용이하다는 점, 그리고 성능면에서도 BERT에 비해 좋다는 소식이 들리지 않기 때문도 있다(SQuAD 1.1이나 2.0을 살펴보면 GPT에 대한 성능 결과가 아무것도 없다).

 

하지만 그럼에도 불구하고 이 논문을 살펴봐야 할 이유는 있는데, Decoder로서 Transformer를 Pre-trained Language Model생성에 어떻게 사용하고 있는가에 대한 좋은 예시가 바로 GPT이기 때문이다. 다른 많은 부분은 BERT와 비슷하게 가는 부분이 많아도 이 점 하나는 알아갈만한 포인트로 보인다. (그리고 사실 BERT와 GPT-1은 많은 부분이 흡사하다)


https://youtu.be/o_Wl29aW5XM

 

https://youtu.be/p24JUVgDkQk

 


[이은아님 강의 모음]

https://www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 


 

반응형
반응형

 

배울 점이 많은 강의가 있어서 추천드리며, 시리즈로 글을 쓰고자 합니다.

 

비정형 데이터 분석 2/11 Word2Vec

 

youtu.be/G8UFjFlVVQQ

 

설명 구조

 

 

~식과 같고 이 식을 최대화하려면 분자는 키우고 분모는 줄여야합니다.

~값을 높인다는 것은 무엇일까요?

~의 의미에 대해 잠깐 살펴보겠습니다.

~은 한자~이며 ~입니다.

~의 정의는 ~과 같습니다.

~에 비유할 수 있습니다.

~의 

 


 

수식 입력 관련

blog.naver.com/alwaysneoi/220698343806

 

키워드 및 핵심 내용

 

Word2Vec/ skip-gram 모델 중심

 

- skip-gram 학습 방법

 

학습 목표는 중심단어(c)가 주어졌을 때, 주변단어(o)가 나타날 확률 최대화하는 것입니다.

그 확률은 아래 식과 같고 이 식을 최대화하려면 우변의 분자는 키우고 분모는 줄여야 합니다.

분자를 키우다는 것은 중심단어 벡터 v 와 주변단어 벡터 u의 내적 값을 높인다는 것입니다.

우선 내적의 정의는 아래 식과 같습니다.

주변단어가 중심단어에 더 가깝게 리프리젠테이션되면 그 내적 값은 더 크게 됩니다.

중심단어와 주변단어의 연관성을 높여야 합니다.

 

분모는 줄일수록 좋습니다.

윈도우 내에 등장하지 않는 단어를 포함한 전체 단어와 중심단어의 유사도를 감소시킨다는 정도로

이해하시면 될 것 같습니다.

 

word2vec 의 학습법은 경사상승법으로 업데이트를 수행합니다.

조금씩 이동하면서 가야할 방향을 결정해야 합니다.

가야할 방향과 보폭은 다음 식과 같습니다.

이 식이 만들어진 과정을 살펴보겠습니다.

 

방향을 결정한다는 것은 해당 지점에서의 기울기를 구하는 것을 의미합니다.

 

eda-ai-lab.tistory.com/122

 

- skip-gram 학습 트릭

 

1.다빈도 단어의 표본추출

- 자주 등장하는 단어를 샘플링에서 제외 -> 학습 부하 감소

- 제외 확률

 

2.윈도우 밖 단어의 표본추출

- negative sample : 윈도우(중심단어, 주변단어) 밖에서 5~20개 단어를 확률적으로 추출

- negative sample에 뽑힐 확률

- 3/4(0.75)승하여 많은 샘플은 확률을 약간 줄이고 적은 샘플은 확률을 약간 높임

 


 

[word2vec 추가 설명]

ratsgo.github.io/from%20frequency%20to%20semantics/2017/03/30/word2vec/

 

Word2Vec의 학습 방식 · ratsgo's blog

이번 포스팅에서는 최근 인기를 끌고 있는 단어 임베딩(embedding) 방법론인 Word2Vec에 대해 살펴보고자 합니다. Word2Vec은 말 그대로 단어를 벡터로 바꿔주는 알고리즘입니다. Neural Network Language Model(

ratsgo.github.io

 


[이은아님 강의 모음]

www.youtube.com/playlist?list=PLGAnpwASolI0vViZItiP90nWI_s9m91Av

 

이은아님 머신러닝 자연어처리 - YouTube

 

www.youtube.com


 


 

 

반응형

+ Recent posts