
자연어처리 모델이란?
자연어를 입력 받아 해당 입력이 특정 범주일 확률을 출력하고 이 확률 값을 적당히 후처리 해서 자연어 형태로 가공해서 반환하는 인공지능 모델을 말합니다.
자연어 추론
문장 2개를 입력 받아 두 문장 사이의 관계가 참, 거짓, 중립 등 어떤 범주인지 그 확률값을 반환하는 것을 말합니다.
그럼, 자연어 처리에서 토큰의 뜻은 무엇일까요?
토큰은 문장보다 작은 단위로 보통 띄어쓰기만으로 나눌 수 있거나 의미의 최소 단위읜 형태소 단위로 나누는 2가지의 분리 기준을 가집니다.
토큰화
문장을 토큰 시퀀스로 나누는 과정을 의미하고 문자, 단어, 서브워드 등 3가지 방법이 존재합니다.
단어 단위 토큰화는 공백으로 분리하기 때문에 별도의 토크나이저 사용을 하지 않고 어휘 집합의 크기가 매우 커집니다.
예시) 갔어, 갔다, 갔네 등
문자 단위 토큰화는 한글로 표현할 수 있는 글자 1만 1172개 한글을 모든 문자로 어휘집합에 포함하므로 미등록 토큰으로부터 자유로운 장점이 있으나 문자 토큰이 의미있는 단위가 되는지는 확실하지 않습니다.
예시) 나, 는, 귀, 엽, 다 (5개 토큰)
서브워드 토큰화는 단어와 문자 단위 토큰화의 중간에 있는 형태로 바이트 페어 인코딩이라고도 부릅니다.
바이트 페어 인코딩(BPE)
원래는 정보를 압축하는 알고리즘으로 제안되었는데 최근에는 자연어 처리 모델에 널리 쓰이는 토큰화 기법입니다.
참고로 GPT는 BPE 기법으로 토큰화 수행했고 BERT는 BPE와 유사한 워드 피스를 토크나이저로 사용합니다.
Byte Pair Encoding은 텍스트에서 가장 빈번하게 나타나는 바이트(또는 문자) 쌍을 반복적으로 병합하여 미리 정의된 어휘 크기에 도달할 때까지 반복하는 데이터 압축 기법입니다.
동작 방식은
1. 초기 어휘 사전을 구성
2. 빈도를 계산 후 가장 빈번한 두 글자를 한글자로 병합
3. 어휘를 업데이트 하고 1, 2의 과정을 반복
text = "low lower lowest"
# 어휘 초기화
Vocabulary: {'l', 'o', 'w', 'e', 'r', ' ', 's', 't'}
# 어휘 빈도 계산
Pair Frequencies:
('l', 'o'): 1
('o', 'w'): 1
(' ', 'l'): 2
('l', 'o'): 2
('o', 'w'): 2
('w', 'e'): 1
('e', 'r'): 1
('r', ' '): 1
(' ', 'l'): 1
('l', 'o'): 1
('o', 'w'): 1
('w', 'e'): 1
('e', 's'): 1
('s', 't'): 1
# 빈도가 높은 어휘 ('l', 'o')를 업데이트
Updated Vocabulary: {'l', 'o', 'w', 'e', 'r', ' ', 's', 't', 'lo'}
워드 피스(WordPiece)
워드 피스는 자연어 처리에서 널리 사용되는 토크나이제이션 기법으로, 주로 구글의 BERT 모델과 같은 대규모 언어 모델에서 사용됩니다. 워드 피스는 단어를 더 작은 서브워드 단위로 분할 하여 텍스트를 표현하는 토크나이제이션 기법으로 희귀 단어와 새로운 단어를 처리할 때 유용하고, 어휘 크기를 관리 가능한 수준으로 유지하면서 언어 모델의 성능을 향상 시킵니다.
동작 방식은
1. 어휘 초기화
2. 빈도 계산
3. 서브워드 병합
4. 어휘 업데이트
5. 반복
text = "가방 가방을 가지고 가방에 넣었다"
# 어휘 초기화
어휘: {'가', '방', '을', '가지', '고', '에', '넣', '었', '다'}
# 빈도 계산, 가방 빈번한 쌍을 병합해 새로운 서브워드 생성, 가, 방 병합해 가방 생성
{'가', '방', '을', '가지', '고', '에', '넣', '었', '다'}
# 어휘 업데이트
{'가방', '을', '가지', '고', '에', '넣', '었', '다'}'LLM 생성할레나' 카테고리의 다른 글
| [OpenAI] LLM 파인 튜닝하기 (0) | 2024.08.06 |
|---|---|
| [openai/API] Audio Response Format 음성 응답 형식 (1) | 2024.06.07 |
| [LLM/임베딩] 임베딩 이란? 임베딩 모델 추천 (1) | 2024.05.28 |
| [LLM/모델 선정] 모델 선정 시 고려 사항 (1) | 2024.05.27 |
| [STT/Whisper] Speech To Text 빠른 시도와 작은 실패 (0) | 2024.05.20 |