인공지능(AI)/자연어처리(NLP)

    프롬프트 러닝, Prompt Learning이란?

    프롬프트 러닝, Prompt Learning이란?

    프롬프트(Prompt)란? ChatGPT를 사용해 과제나 리포트 작성을 할 때, 원하는 방향으로 답변이 나오도록 여러가지 입력을 준 경험이 한 번씩 있다면, "프롬프트를 잘 줘야 ChatGPT가 대답을 잘해줘"라는 말을 들은 경험도 있을겁니다. 여기서 말하는 프롬프트(Prompt)란 무엇일까요? 위의 경험에 빗대어 생각해보면, ChatGPT 즉, 인공지능 모델에 넣어주는 입력값이라 볼 수 있을 것입니다. 조금 더 자세하게 살펴보기위해 프롬프트의 사전적 정의를 확인해보겠습니다. " An act of assisting or encouraging a hesitating speaker." 그대로 번역하자면, "망설이는 화자(Speaker)를 돕거나(Assist) 격려(Encourage)하는 행동"이라는 뜻입니다..

    [NLTK] 자연어 처리를 위한 패키지

    [NLTK] 자연어 처리를 위한 패키지

    자연어처리(NLP, Natural Language Processing)를 위해서는 각 테스크에 맞는 전처리(preprocessing)과정이 필수적으로 필요합니다. 본 게시글에서는 전처리를 위한 패키지인 NLTK를 간단한 예제와 함께 알아보도록 하겠습니다. NLTK에서는 다양한 기능을 제공하지만, 본 글에서는 아래의 기능 위주로 다룹니다 Searching Text Word Statistics Searching Text NLTK에서 제공하는 텍스트 예제로 진행하기 위해, book을 불러오도록 하겠습니다. import nltk from nltk.book import * NLTK에서 book을 불러올 경우 아래의 9개의 책의 텍스트를 불러올 수 있습니다. text1에 저장된 Moby-Dick으로 nltk를 적용..

    End-to-End Memory Networks, 엔드-투-엔드 메모리 네트워크

    End-to-End Memory Networks, 엔드-투-엔드 메모리 네트워크

    End-to-End Memory Networks 2015년 NIPS에 FaceBook AI Research가 발표한 논문으로 당시 자연어처리 분야에서 가장 좋은 성능을 보여주었던 모델 중 하나입니다. 기존의 일반적인 신경망 모델과 다르게 메모리(Memory)라는 구조를 사용한다는 점이 가장 큰 특징입니다. Model Architecture(1): Single Layer 이해를 돕기 위해 먼저 본 논문에서 제안하는 모델의 싱글 레이어 구조를 살펴보도록 하겠습니다. 모델의 입력값으로는 Context 문장, Question 문장이 들어가고 학습시 업데이트 되는 파라미터는 Fig1.의 Embedding $A,B,C$와 Weight Vector $W$입니다. 모델의 학습 과정은 크게 다음과 같이 세 단계로 이루어..

    Prompt-Based Learning, 프롬프트 기반 학습

    Prompt-Based Learning, 프롬프트 기반 학습

    해당 강의노트는 Vilhelm Gustavsson님의 [Prompt-based Learning: A paradigm shift in NLP]를 참고하여 작성됐습니다. Prompt-Based Learning이란? 모델에 들어가는 입력 데이터(input data)를 사람이 읽을 수 있는 설명(human readable instructions)으로 잘 작성된 텍스트와 연결하여 수정하게 되는데 이 때 만들어지는 텍스트를 프롬프트(prompt)라고 합니다. 프롬프트는 task-specific하게 훈련되지 않아도 사전학습 언어모델(PLM, Pre-trained Lanugage model)이 새로운 테스크(e.g. 질의응답, 기계번역 등)에 대해서 잘 수행되도록 합니다. 즉, 단지 자연어로 모델이 어떤 일을 수행해야..

    [LM 평가지표] Perplexity, PPL

    유원준님의 딥러닝을 이용한 자연어 처리 입문의 펄플렉서티(Perplexity, PPL) 글을 요약한 게시글입니다 언어모델의 평가 방법(Evaluation metric of Language Model), Perplexity PPL은 문장의 길이로 정규화된 문장 확률의 역수로, 문장 W의 길이가 N이라고 했을 때, PPL은 아래와 같다 $PPL(W)=P(w_1,w_2, \cdots, w_N)^{-\frac{1}{N}} = \sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N$ 문장의 확률에 체인룰(chain rule)을 적용하면 아래와 같다 $PPL(W)=\sqrt{\frac{1}{P(w_1,w_2, \cdots, w_N)}}^N=\sqrt{\frac{1}{\Pi_{i=1}^N P(w..

    [NLP] 워드투벡터(Word2Vec)

    [NLP] 워드투벡터(Word2Vec)

    Word2Vec Model Word2Vec는 단어 간 유사도를 반영할 수 있도록 단어의 의미를 벡터화할 수 있는 방법이다. Word2Vec의 주요 아이디어는 "비슷한 분포를 가진 단어라면 비슷한 의미를 가질 것"이다 즉, 자주 같이 등장할수록 두 단어는 비슷한 의미를 가짐을 의미한다. Word2Vec은 Input, Hidden, Output Layer 3개의 층으로만 이루어져 학습이 빠르고 많은 단어 뭉치를 학습할 수 있어 성능이 좋다. Word2Vec 모델은 Continous Bag of Words(CBoW)와 Skip-Gram 두 가지 방식이 있다 Continous Bag of Words(CBoW) CBoW란? 주변에 있는 단어들을 가지고 중간에 있는 단어들을 예측하는 방법 즉, "The fat ca..

    [NLP] 단어 표현 방법(Word Representation)

    [NLP] 단어 표현 방법(Word Representation)

    자연어처리에서 사용하는 단어의 표현 방법 국소 표현(Local Representation) 국소표현이란? 해당 단어 그 자체만 보고, 특정값을 매핑하여 단어를 표현하는 방법 국소표현의 종류 One-hot vector N-gram Count Based Bag-of-Word, BoW(DTM) : 단어의 빈도수를 카운트하여 단어를 수치화하는 표현 -> Bow란? 분산 표현(Continuous Representation) 분산 표현이란? 분산 표현 방법은 그 단어를 표현하고자 주변을 참고하여 단어를 표현하는 방법 분산 표현의 종류 Prediction Based Word2Vec(FastText) : 예측을 기반으로 단어의 뉘앙스를 표현 -> Word2Vec란? Doc2Vec: Word2Vec에서 확장된 개념 Co..

    [NLP] 단어 표현 방법 : Bag-of-Word Model(Bow)

    Bag-of-Word(BoW) Model 기계학습 알고리즘(MLA)을 자연어 처리 테스크에 사용할 때, 입력값인 텍스트는 그 자체로는 사용할 수 없다. 이산적인(discrete)한 텍스트 즉, 문자열을 연속적인(continuous) 모델이 연산할 수 있도록 숫자로 바꾸어주는 과정이 필요하다. 만약 문서 분류 작업(document classification task)을 수행한다고 했을 때, 각 문서는 예측 알고리즘의 input 값에 해당하며 분류 즉, 클래스 레이블이 output값이다. 알고리즘은 input값을 숫자로 이루어진 벡터들로 받으며, 따라서 문서를 고정된 크기의 벡터로 변환하는 작업이 필요하다 기계학습을 위해 텍스트로 이루어진 문서들을 백터화하는 간단하고 효과적인 방법은 Bag-of-Words ..