이 글은 Do it! BERT와 GPT로 배우는 자연어 처리: 트랜스포머 핵심 원리와 허깅페이스 패키지 활용법 <1장 처음 만나는 자연어 처리>를 읽고 공부하며 작성한 내용입니다.
Natural Language Processing
- 정의: 사람이 사용하는 언어(자연어)를 컴퓨터가 이해하고 처리하도록 만드는 기술
- 활용: 번역기, 유튜브 자막, 챗봇, 검색 엔진 등
여기서 중요한 질문
“컴퓨터가 언어를 이해한다는 것은 무엇을 의미할까?”
Computers understand human languages.
- 컴퓨터가 인간처럼 언어의 의미를 이해한다.(X)
- 컴퓨터는 입력된 문장을 계산을 통해 확률로 처리한다.(O)
예를 들어 “나는 행복하다”라는 문장을 입력 -> 모델은 이 문장이 긍정일 확률 0.9, 중립일 확률 0.1과 같은 식으로 출력. 즉, 이해라기보다는 확률 계산에 가까움.
NLP Model
- 정의: 특정 입력값(문장이나 문서 형태의 자연어)을 받아 해당 입력이 특정 범주에 속할 확률을 반환하는 함수.
- 예시: 감성 분석 모델 -> 하나의 문장을 입력받아 긍정, 부정, 중립 범주에 속할 확률을 출력
Basic terms in NLP Models
자연어 처리 모델이 동작하기 위해서는 학습 과정이 필요
- 레이블(Label): 학습 데이터의 정답. 예) “나는 행복하다” -> "긍정" 라벨링(labeling)
- 학습(Learn): 모델이 데이터 패턴을 익히는 과정.
- 업데이트(Update): 모델이 예측한 값과 정답의 차이를 줄여가는 과정.
- 트레인(Train): 학습과 업데이트를 반복하는 전체 과정.
- 후처리(Post-processing): 모델이 출력한 확률값을 사람이 이해할 수 있는 언어(자연어)로 바꿔주는 단계.
Deep Learning in NLP
딥러닝: 인간의 뇌 구조를 본뜬 인공 신경망을 깊고 촘촘하게 쌓아 올려 -> 모델이 데이터 패턴을 스스로 학습하도록 하는 방법
자연어 처리 분야에서는 특히 트랜스포머(Transformer) 기반 모델이 많이 쓰임.
트랜스포머 모델 예시
- BERT: 양방향 문맥을 이해. 빈칸 채우기 같은 태스크에 강함
- GPT: 순방향 문맥을 이해. 다음 단어 예측하기 같은 태스크에 강함. 문장 생성에 활용됨.
Transfer Learning in NLP
자연어 처리 모델은 보통 트랜스퍼 러닝 방식 사용.
- 트랜스퍼 러닝이란? 한 번 학습한 지식을 다른 과제에 재활용하는 기법
Upstream Task (사전 학습)
- 대규모 말뭉치로 문맥을 이해하게 만드는 기본 훈련 단계
- BERT 계열: 빈칸 채우기(마스크 언어 모델)
- GPT 계열: 다음 단어 맞히기
Downstream Task (실제 활용)
-
실생활 속 구체적인 과제들...
- 문서 분류: 리뷰가 긍정/부정인지 판별
- 자연어 추론: 두 문장이 모순인지, 참인지, 중립인지 판별
- 개체명 인식: 문장에서 “서울”은 장소, “이순신”은 인물처럼 범주 구분
- 질의응답: 질문과 지문을 입력받아 정답 추출
- 문장 생성: 번역, 요약, 대화 생성 등
-
다운스트림 태스크 수행 전략
- 파인튜닝(Fine-tuning): 모델 전체를 새로운 데이터에 맞게 다시 학습
- 프롬프트 튜닝(Prompt tuning): 모델 일부만 업데이트
- 인컨텍스트 러닝(In-context learning): 모델을 업데이트하지 않고 예시만 제공
- 제로샷: 예시 없이 수행
- 원샷: 예시 1개만 제공
- 퓨샷: 예시 몇 개 제공
(7Steps) How NLP Models Learn
자연어 처리 모델을 실제로 학습할 때는 다음과 같은 흐름을 따름
- 설정값 정의: 하이퍼파라미터, 러닝레이트, 배치 크기 등
- 데이터 준비: 학습/평가용 데이터셋 다운로드
- 사전 학습 모델 불러오기: 허깅페이스 트랜스포머 등
- 토크나이저 준비: 문장을 토큰 단위로 변환
- 데이터 로더 준비: 데이터를 배치 단위로 모델에 전달
- 태스크 정의: 분류, 질의응답 등 목적에 맞는 태스크 지정
- 모델 학습: 설정한 조건으로 트레이너를 통해 학습 수행
위 과정을 요리에 비유하면 아래와 같다..
- 설정값 정의 = 요리 레시피 정하기
- 데이터 준비 = 재료 사오기
- 사전 학습 모델 불러오기 = 반조리 식품 꺼내오기
- 토크나이저 준비 = 재료 손질하기
- 데이터 로더 준비 = 재료를 일정량씩 덜어내어 (배치 단위)한 접시씩 올려놓기
- 태스크 정의 = 요리 방식 결정하기
- 모델 학습 = 실제 요리하기
Conclusion
번역기, 챗봇, 추천 시스템, 그리고 계속해서 주목받고 있는 생성형 AI까지 모두 자연어 처리 모델 위에서 돌아가고 있다.
처음 공부할 때는
큰 그림(업스트림 → 다운스트림)을 먼저 이해하고,
그 안에서 세부 개념(BERT, GPT, 파인튜닝 등)을 차근차근 익히는 것이 중요해보인다.
기초는 이정도로 공부하고
앞으로 조금 더 심화 개념을 공부해보도록 한다..~~!~!