728x90
1. 텍스트 데이터를 모델에 적용하기 전에 어떤 전처리 과정을 거치나요?
- 정제(Cleaning): 노이즈 제거와 표준화를 통해 일관된 텍스트로 만든다.
- 토크나이징/인코딩 : 토큰 단위로 쪼개고 숫자 시퀀스로 변환한다.
- 정규화/정렬: 길이, 대소문자, 특수기호, 공백 등을 일관되게 맞춘다.
- 특수 목적 처리: 불용어, 표제어/어간, 오탈자, 이모지/URL/코드 블록 등 도메인별 룰을 적용한다.
- 레이블/메타 처리: 지도 학습이면 레이블 정제, 불균형/누락 처리, 샘플 재가공을 수행한다.
단계별 상세
- 기본정제
- 공백 정리, 중복 문자 축약, 제어문자 제거, 잘못 인코딩된 문자 정정
- URL, 이메일, 숫자 패턴, 해시태그/멘션, 이모지 처리 규칙을 정의(보존/마스킹/삭제 중 선택)
- 대소문자 통일: 영어는 소문자화가 보편적이나, 고유명사/약어가 중요한 태스크면 유지
- 한국어 특화: 초성/중성 분리 현상, 맞춥법/띄어쓰기 오류가 성능에 영향을 주면 교정기를 고려
- 토크나이징
- 전통 NLP: 공백/구두점 기반, 형태소 분석기(한국어: mecab, Khaiii, Komoran 등)로 어절 → 형태소 분해
- 신경망/딥러닝: 서브워드 토크나이저 사용(BPE, WordPiece, Unigram). 미등록어 문제를 줄이고 어휘 크기 통제
- 문자/바이트 단위: 노이즈가 많거나 다국어 혼재 시 byte-level(BPE)로 견고성을 확보한다.
- 인코딩과 수치화
- 정수 인덱싱: 토큰→정수 ID 매핑
- 패딩/마스킹: 배치 처리를 위해 길이 맞추기(최대 길이, truncation 규칙 정의)
- 어휘 사전: 빈도 기준 최소 출현(threshold) 설정, 특수 토큰( [PAD], [UNK], [CLS], [SEP]) 정의
- 임베딩 초기화: 학습형 임베딩 또는 사전학습 임베딩(Word2Vec, FastText, GloVe) 사용 결정. 트랜스포머는 내장 임베딩 사용
- 텍스트 정규화 선택지
- 불용어 제거: 정보 손실-간소화 트레이드오프가 있음. 전통 모델(tf-idf, linear)에서는 효과적이나, 딥러닝에서는 문맥 손실 우려가 있다.
- 표제어 추출/어간 추출: 영어,유럽어권에서 변형을 줄인다. 한국어는 형태소 기반 원형 복원이 더 자연스러움
- 숫자/단위/날짜: 정규 표현식으로 표준 포맷으로 통일하거나 토큰으로 치환한다.
- 품질/노이즈 대응
- 오탈자/비표준어: 교정기 적용을 검토(과교정으로 의미 왜곡 가능성이 있어 샘플 검증해야함)
- 스팸/반복/이상치: 규칙 필터링 또는 이상치 탐지로 제거/가중치 조정
- 민감정보: 개인정보, 키 등은 비식별화/마스킹 처리
- 태스크별 특화
- 분류/감성: 문장 단위 정제, 이모지/감탄사 보존 여부 중요(감성 신호로 작용)
- 질의응답/요약: 문장 분할, 문단 유지, 특수 토큰으로 구조 표식
- 문서 검색/랭킹: 형태소 기반 키워드 추출 + 문장 임베딩 병행
- 코드/로그: 토크나이저를 코드 친화적으로 설정, 서식 및 기호 보존
- 데이터 분할/검증
- 중복/누수 방지: 유사 문서가 train/val/test에 동시에 들어가지 않도록 그룹 기준 분할해야함
- 라벨 불균형: 샘플링/가중치/데이터 증강(역번역, 동의어 치환 등)으로 보정
전처리 전략
- 트랜스포머(예: BERT, RoBERTa, GPT 등)
- 해당 모델의 토크나이저와 정규화 규칙을 그대로 따른다.
- 소문자화 여부, 특수토큰, 최대 길이를 모델 설정과 일치시킨다.
- 과도한 정규화(불용어 제거, 표제어/어간)은 대부분 불필요하며 오히려 성능을 해칠 수 있다.
- 전통 모델(BoW, tf-idf, n-gram, SVM/로지스틱)
- 불용어 제거, 표제어/어간, 구두점/숫자 정규화가 효과를 낸다.
- 한국어 과제
- 형태소 분석기 품질과 도메인 적합도를 우선 검토한다.
- 도메인 신조어가 많으면 서브워드/바이트 수준이 안정적이다.
2. FastText가 Word2Vec과 다른 점은 무엇이며, 어떤 장점이 있나요?
차이점
차이점 Word2Vec FastText 서브워드 (문자 n-그램)
사용 여부- 단어를 하나의 토큰으로만 본다.
- 단어 임베딩을 단어 ID 기준으로 학습한다.- 단어를 문자 n-그램 조각으로 분해해 임베딩을 학습한다.
- 최종 단어 벡터는 해당 n-그램 벡터들의 합/평균으로 구성된다.희귀어/미등록어
처리학습 어휘에 없는 단어(OOV)는 벡터가 없다. 문자 n-그램을 통해 OOV 단어라도 구성 가능한 n-그램이 있으면 벡터를 생성한다. 형태 변형·접사 표현 단어 형태가 바뀌면 별도 토큰으로 취급된다. 공통 n-그램을 공유해 어근/접사 관계를 일부 반영한다. 학습목표/
알고리즘두 모델 모두 CBOW/Skip-gram, 네거티브 샘플링 등 학습 목적은 유사하게 사용할 수 있다. 토큰 대신 n-그램 임베딩 조합을 학습한다는 점이 구조적 차이를 만든다. 메모리/속도 모델이 단어 임베딩 테이블 하나여서 가볍고 빠르다. n-그램 임베딩 테이블까지 학습하므로 메모리 사용이 증가하고, 학습/추론이 다소 무거워진다. (하지만 최적 구현으로 실무에서 충분히 빠르게 응용된다)
FastText의 장점
- OOV와 희귀어에 강하다.
- 문자 n-gram 기반이라 처음 보는 단어라도 합리적 벡터를 생성
- 도메인 신조어, 오탈자, 형태 변화가 많은 언어에서 유리
- 형태학적 일반화가 된다.
- 어근/접사 공유로 유사 형태 단어 간 벡터가 가까워져 의미 일반화가 잘 된다.
- 한국어/형태가 풍부한 언어에서 효과적
- 데이터가 적을 때 안정적이다.
- 단어별 데이터가 부족해도 n-그램 공유로 표현이 보완됨
- 다운스트림 성능 개선이 가능하다.
- 희귀어 비중이 높은 코퍼스(사용자 로그, 소셜, 도메인 전문용어)에서 분류, 유사도, 검색 성능이 개선되는 경우가 많음
선택 가이드
- 대규모 일반 코퍼스, 표준 어휘 중심 → Word2Vec로 충분한 성능
- 신조어,오탈자,희귀어,형태 변화가 많은 언어(한국어 포함) → FastText가 더 견고하게 동작
- 리소스 제약이 큰 경우 → Word2Vec이 더 가볍게 운용
3. Attention 메커니즘이 Seq2Seq 모델의 어떤 문제를 해결하는 데 도움이 되나요?
- 단일 고정 길이 벡터 병목 문제 해결
- 기존 RNN 기반 Seq2Seq는 인코더가 전체 입력을 하나의 고정 길이 컨텍스트 벡터로 압축한다.
- 문장이 길어질수록 정보 손실이 커지고, 디코더가 필요한 세부 정보를 복원하기 어려워진다.
- Attention은 디코더가 매시점마다 인코더의 모든 은닉 상태를 "가중합"으로 참조하도록 해서, 고정 병목을 제거하고 길게 늘어난 문장에서도 정보 접근이 가능해진다.
- 장기 의존성/길이 증가에 따른 성능 저하 완화
- 중요한 단어가 멀리 떨어져 있어도, 해당 시점에 높은 어텐션 가중치를 주어 직접 참조한다.
- 이로 인해 긴 문장 번역, 요약 등에서 재현율과 일관성이 개선된다.
- 위치별 동적 정보 선택을 가능하게 한다
- 디코더가 현재 생성하려는 토큰에 맞춰 인코더 시퀀스 내 "어디를 볼지"를 동적으로 결정한다.
- 불필요한 정보는 낮게, 관련 위치는 높게 가중하여 정밀한 대응을 이끈다.
- 정렬(alignment) 정보 암묵적 제공
- 소스-타깃 단어/구의 대응 관계가 어텐션 가중치 행렬로 드러난다.
- 해석 가능성과 오류 분석이 용이해진다.
- 기계 번역/요약의 문맥 일관성과 커버리지 문제 개선
- 필요한 부분을 반복 참조하고, 커버리지 확장(커버리지 벡터 등)을 통해 같은 소스 구간을 과도하게 반복 번역하거나 누락하는 문제를 줄일 수 있다.
4. Transformer 모델은 Seq2Seq 구조와 어떤 점에서 근본적으로 다른가요?
1) 근본적 차이(개념 축)
- RNN 의존 vs 어텐션 전면화
- 전통 Seq2Seq(RNN 기반): 인코더·디코더가 순차적으로 토큰을 처리한다. 순서 의존이 강하고 긴 의존성 학습이 어렵다.
- Transformer: 전부 어텐션(Self-/Cross-Attention)으로 구성해 순차 의존을 제거한다. 병렬 처리가 된다.
- 고정 컨텍스트 병목 vs 전역 컨텍스트 접근
- RNN Seq2Seq: 고정 길이 컨텍스트 벡터 병목이 존재하거나, 어텐션을 붙여도 기본 표현은 순차 누적에 의존한다.
- Transformer: 각 토큰이 전 시퀀스에 직접 어텐션한다. 전역 문맥 접근이 기본 동작이 된다.
- 표현 방식
- RNN Seq2Seq: 순차 상태 전이로 시점별 은닉 상태를 갱신한다.
- Transformer: 위치 임베딩을 추가해 순서를 암시하고, 다중 헤드 어텐션과 피드포워드로 표현을 갱신한다.
2) 구조·학습 관점
- 병렬화
- RNN: 길이 T에 비례해 순차 계산해야 한다 → 병렬화가 제한된다.
- Transformer: 인코더 학습 시 전체 토큰을 한 번에 처리한다 → 대규모 병렬화가 된다. 디코더는 마스킹으로 오토리그레시브지만, 내부 행렬 연산은 병렬화된다.
- 장기 의존성
- RNN: 기울기 소실/폭주로 먼 의존성 학습이 어렵다(LSTM/GRU로 완화).
- Transformer: 어텐션으로 먼 토큰 간 직접 연결이 된다 → 장기 의존성에 강하다.
- 용량·스케일링
- RNN: 깊이·폭을 늘려도 순차 병목이 남는다.
- Transformer: 너비/깊이/헤드 수/토큰 길이를 늘리며 스케일 업이 잘 된다(메모리·시간은 O(n^2) 어텐션 비용 이슈가 있다).
3) 입력/출력 처리
- Seq2Seq(RNN): 인코더가 순차로 입력을 요약하고, 디코더가 이전 토큰을 조건으로 다음 토큰을 생성한다. 어텐션을 추가하면 인코더 은닉 상태 위에 가중합을 얹는다.
- Transformer: 인코더-디코더 구조에서도 각 층마다 Self-Attention과 Cross-Attention 블록으로 직접 상호작용한다. 분류/요약/번역 등 다양한 태스크에 맞춰 헤드를 바꾸기 쉽다.
4) 성능·실무적 차이
- 데이터/연산 효율
- RNN: 짧은 시퀀스·경량 환경에서는 여전히 유효하다.
- Transformer: 대규모 데이터·가속기 환경에서 압도적 성능과 생산성을 보인다. 다만 긴 시퀀스에서 O(n^2) 비용이 커져 효율적 어텐션(Linear/Long/Flash 등) 기법을 병행한다.
- 해석·정렬
- RNN+Attention: 정렬이 어텐션 맵으로 드러나지만, 기본 표현은 순차 은닉에 얹는 형태다.
- Transformer: 멀티헤드 어텐션 맵이 다양한 관계를 병렬로 포착한다(구문·의미·코리퍼런스 등).
Transformer는 순차 RNN을 버리고 어텐션을 전면에 둔 구조로, 전 토큰에 대한 병렬·전역 컨텍스트 접근이 기본이 된다.
그 결과 긴 의존성, 스케일링, 학습 속도에서 RNN 기반 Seq2Seq와 근본적으로 다르게 작동하고, 대규모 데이터/모델에서 더 강력한 성능을 보인다.
'#위클리 페이퍼' 카테고리의 다른 글
#위클리 페이퍼 9 (0) | 2025.09.07 |
---|---|
#위클리 페이퍼 8 (3) | 2025.08.29 |
#위클리 페이퍼 7 (0) | 2025.08.22 |
# 위클리 페이퍼 6 (3) | 2025.08.15 |
#위클리 페이퍼 5 (3) | 2025.08.08 |