Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

cb

[Do It! 자연어 처리] Chapter 01 - 처음 만나는 자연어 처리 본문

ai - study

[Do It! 자연어 처리] Chapter 01 - 처음 만나는 자연어 처리

10011001101 2024. 3. 13. 20:43

본 게시물은 <Do It! BERT와 GPT로 배우는 자연어 처리>의 1장을 보고 정리한 글입니다. 실습에서 사용되는 오픈소스 패키지는 아래의 링크를 참고하시길 바랍니다.

 

GitHub - ratsgo/ratsnlp: tools for Natural Language Processing

tools for Natural Language Processing. Contribute to ratsgo/ratsnlp development by creating an account on GitHub.

github.com


기계의 자연어 처리

모델: 입력을 받아 해당 입력이 특정 범주일 확률을 반환하는 확률 함수

모델의 출력은 확률(probability)이다. 어떤 사건이 나타날 가능성을 의미하는 수치

0-1 사이의 값으로 나타남

 

"자연어 처리"는 자연어를 입력받아 해당 입력이 특정 범주일 확률을 반환하는 확률 함수임.

하지만 사람은 자연어 형태의 출력을 선호

출력된 확률을 후처리(post processing)해서 자연어 형태로 바꿔 줌


딥러닝 모델의 학습

표 1-1 감성 분석 학습 데이터

딥러닝 자연어 처리 모델을 만들기 위해서는 우선 데이터를 준비해야 함.

 

위의 표를 보면 해당 문장이 어떤 감성을 갖고 있는지 각각의 레이블(label)을 갖고 있는 걸 확인할 수 있음.

데이터는 이처럼 대개 데이터와 라벨쌍을 가지는 형태임

 

데이터가 마련되었다면, 모델은 데이터의 패턴(pattern)을 스스로 익히는 학습(train) 과정을 거쳐야 함.

모델은 해당 입력의 확률값을 반환한다고 했기 때문에, 아래와 같이 값이 반환될 수 있음

 

모델의 출력이 정답과 차이가 있다면 업데이트를 여러 번 수행하여 정답에 가까운 출력을 내도록 조정할 수 있음

이렇게 업데이트하는 과정 전체를 학습(train)이라고 함


트랜스퍼 러닝(transfer learning)

트랜스퍼 러닝이란 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법

기존에 학습하던 방식보다 모델의 학습 속도가 빨라지고 새로운 태스크를 더 잘 수행하는 경향

BERT, GPT도 트랜스퍼 러닝이 적용된 모델

 

업스트림 태스크

주어진 프로세스나 작업에서 이전에 수행되어야 하는 작업

예를 들어, 다음 단어 맞히기, 빈칸 채우기 등 대규모 말뭉치의 문맥을 이해하는 과정

 

업스트림 태스크를 학습하는 과정을 프리트레인(pretrain)이라고 함

 

- 다음 단어 맞히기

 

그림 1-7 다음 단어 맞히기

 

문맥이 주어지면 해당 문맥을 바탕으로 다음에 올 단어를 분류하는 태스크

대규모 말뭉치를 가지고 반복수행하면 모델은 해당 언어의 풍부한 문맥을 이해할 수 있게 된다

- 빈칸 채우기

1-9 빈칸 채우기

 

문장에서 빈칸을 만들고 해당 위치에 들어갈 단어가 무엇일지 맞히는 과정을 학습

다음 단어 맞히기와 마찬가지로 해당 언어의 풍부한 문맥을 내재화 가능

 

다운스트림 태스크

 

주어진 프로세스나 작업에서 후속되어야 하는 작업

문서 분류, 개체명 인식 등 우리가 풀고자 하는 자연어 처리의 구체적인 문제들

 

보통 프리트레인을 마친 모델을 구조 변경 없이 그대로 사용하거나 태스크 모듈을 덧붙인 형태로 수행

 

다운스트림 캐스크의 학습 방식은 모두 파인튜닝(fine-tuning)

프리트레인을 마친 모델을 다운스트림 태스크에 맞게 업데이트하는 기법

 

- 문서 분류

그림 1-11 문서 분류

자연어 문서나 문장을 입력받았을 때, 해당 입력이 어떤 범주(긍정, 중립, 부정 같은 것)에 속하는지 확률값을 반환

문장의 앞 뒤에 있는 CLS, SEP는 문장의 시작과 끝에 붙이는 특수한 토큰

 

- 자연어 추론

그림 1-12 자연어 추론

 

문장 2개를 입력받아 두 문장 사이의 관계가 참, 거짓, 중립 등 어떤 범주에 해당하는지 확률값을 반환

 

- 개체명 인식

그림 1-13 개체명 인식

자연어 문서나 문장을 입력받아 단어별로 기관명, 인명, 지명 등 어떤 개체명 범주에 속하는지 확률값을 반환

 

 

- 질의응답

그림 1-14 질의응답

자연어 질문+지문을 입력받아 각 단어가 정답의 시작일 확률값과 끝일 확률값을 반환

 

- 문장 생성

그림 1-15 문장 생성

자연어 문장을 입력 받아 어휘 전체에 대한 확률값을 반환

이 확률값은 입력된 문장 다음에 올 단어로 얼마나 적절한지를 나타내는 점수임