CS/NLP 17

이론 3-1. 사전 학습된 모델

언어 모델 (language model)정의: 입력받은 전체 단어 시퀀스가 얼마나 그럴듯한지 확률을 부여하는 모델여기서 확률은 n개의 단어가 동시에 나타날 결합 확률(joint probability)를 의미따라서 언어 모델의 수식은 P(w1, w2, w3, ... , wn) = p(w1) * P(w2 | w1) * P(w3 | w1, w2) ....즉, 전체 단어 시퀀스가 나타날 확률 = 이전 단어들이 주어졌을 때 다음 단어가 등장할 확률의 연쇄와 동일(조건부확률)위 조건부 수식에 따라 또다른 정의 도출정의2: 이전 단어들이 주어졌을 때 다음 단어가 등장할 확률을 부여하는 모델 순방향 언어 모델(forward language model)학습 방법: 위 정의2에 의해서 언어 모델을 학습 방법은 이전 단어들..

CS/NLP 2023.11.10

이론 2-3. 실습 - 어휘 집합 구축

실습 목표허깅페이스 tokenizers 라이브러리를 활용하여 BPE 기반의 토크나이저 생성 실습 어휘 집합 구축BPE 기반 토크나이저를 사용하려면 어휘 집합(token.json)부터 구축 1st - 말뭉치 준비 ( 다운 및 전처리 )from Korpora import Korporansmc = Korpora.load("nsmc", force_download=True) import osdef write_lines(path, lines): with open(path, 'w', encoding='utf-8') as f: for line in lines: f.write(f'{line}\n')write_lines("/content/train.txt", nsmc.train.get..

CS/NLP 2023.11.10

이론 2-3. 워드피스(wordpiece)

vs BPE유사점: 말뭉치에서 자주 등장하는 문자열을 토큰으로 인식다른점:BPE는 단순히 빈도를 기준으로 병합워드피스는 말뭉치의 우도(likelihood)를 가장 높이는 쌍으로 병합 토큰화 방법BPE어절별로 병합 우선순위(merges.txt)가 높은 바이그램 쌍을 반복하여 병합병합된 토큰이 어휘 집합(vocab.json)에 있는지 확인하여 최종 결과 도출워드피스어휘 집합(vocab.json)만 가지고 토큰화 더 자세한 내용 p.50쪽

CS/NLP 2023.11.10

이론 2-2. 바이트 페이 인코딩(BPE)

바이트 페이 인코딩(Byte Pair Encoding: BPE)배경초기에는 정보를 압축하는 알고리즘으로 제안됨.but 최근에 자연어 처리 모델에 널리 쓰이는 토큰화 기법으로 사용예시)GPT 모델도 BPE 기법을 토큰화에 사용BERT 모델은 BPE와 유사한 워드피스(wordpiece)를 토크나이저로 사용정의정의: 데이터에서 가장 많이 등장한 문자열을 병합해서 데이터를 압축하는 방법말뭉치에서 자주 나타나는 문자열 = 서브워드 = 토큰장점: 사전 크기(어휘 집합) 증가를 억제하면서도 데이터 길이(시퀀스 길이)를 효율적으로 압축할 수 있는 알고리즘예시//언어 사전(a,b,c,d), 데이터 길이(11)aaabdaaabac -> aa가 많이 등장 -> aa를 Z로 병합//언어 사전(a,b,c,d,Z), 데이터 길이..

CS/NLP 2023.11.10

이론 2-1. 토큰화

토큰화(Tokenization)토큰화는 문장을 토큰 시퀀스로 분할하는 과정 토큰나이저(Tokenizer)토큰나이저는 토큰화를 수행하는 프로그램토큰화뿐만 아니라 품사 부착(Part-of-Speech Tagging)까지 수행예시: 한국어 토크나이저은전한잎(mecab)꼬꼬마(kkma) 토큰의 3가지 단위1. 단어(어절) 단위 토큰화공백으로 분리장점: 토크나이저가 필요 없음단점: 어휘 집합의 크기가 커질 수 있음예시:어제 카페 갔었어 -> 어제, 카페, 갔었어 어제 카페 갔었는데요 -> 어제, 카페, 갔었는데요학습된 토크나이저 사용어휘 집합 확장이 완화되나 여전히 크다예시:어제 카페 갔었어 -> 어제, 카페, 갔었, 어어제 카페 갔었는데요 -> 어제, 카페, 갔었, 는데요2. 문자 단위 토큰화장점: 어휘..

CS/NLP 2023.11.10

이론 모델 학습 파이프라인

모델 학습 파이프라인다운스트림 태스크 종류와 상관없이 공통으로 적용  각종 설정값 정하기프리트레인 모델 (업스트림 태스크 모델): 어떤 프리트레인 모델을 사용?학습 데이터: 학습에 사용할 데이터가 무엇?학습 결과: 학습 결과를 어디에 저장?하이퍼파라미터(hyperparameter): 모델 구조와 학습에 관계된 설정값을 설정학습률(learning rate)배치 크기(batch size)from ratsnlp.nlpbook.classification import ClassificationTrainArguments args = ClassificationTrainArguments( #프리트레인 모델 선정 pretrained model narne="beomi/kcbert-base", #학습..

CS/NLP 2023.10.19

이론 1장 NLP 기초 지식

NLP기본 지식자연어 처리(natural language processing) 기술2020년 전후로 NLP 분야에서 기술 발전을 이끈 핵심 기술 2가지트랜스포머(Transformer)전이 학습(transformer learning)이 핵심 기술을 가지고 만들어진 모델 -> BERT와 GPT 정의NLP 모델 : 자연어를 입력 받아, 해당 입력이 특정 범주일 확률을 반환하는 확률 함수ex) 해당 문장이 긍정, 중립, 부정일 확률  모델 종류입력(자연어)와 목적(감성 분석)에 맞는 최적의 모델을 선정요즘 인기있는 모델 종류 = 딥러닝(deep learning) : 데이터 패턴을 스스로 익히는 인공지능  딥러닝 기반의 NLP 모델자연어를 입력 -> 해당 입력이 특정 범주일 확률 출력 -> 후처리를 통해 자연어 ..

CS/NLP 2023.10.16