GPT 토크나이저 (Tokenizer) 구축하기
요약
이 기술 기사는 대형 언어 모델(LLM)의 핵심 구성 요소인 토크나이저를 처음부터 구축하는 과정을 다룹니다. 토크나이저는 문자열을 토큰으로 인코딩하고, 토큰을 다시 문자열로 디코딩하는 역할을 수행하며, LLM 파이프라인에서 독립적인 단계임을 강조합니다. 강연에서는 Byte Pair Encoding (BPE) 알고리즘의 작동 원리를 상세히 설명하고, 실제 GPT-2 및 GPT-4에 사용된 `tiktoken` 라이브러리의 구현 방식과 차이점을 분석하여 토크나이저 구축 방법을 실습합니다.
핵심 포인트
- 토크나이저는 LLM 파이프라인에서 독립적이고 필수적인 전처리 단계이다.
- 주요 알고리즘인 Byte Pair Encoding (BPE)는 가장 빈번하게 나타나는 문자 쌍을 반복적으로 병합하여 어휘 집합(vocabulary)을 구축한다.
- 실제 GPT 모델들은 `tiktoken`과 같은 라이브러리를 사용하여 토크나이징하며, 모델 버전에 따라 정규식 패턴이나 특수 토큰 처리 방식에 차이가 있다.
- 토크나이저를 이해하는 것은 LLM의 이상한 행동이나 문제점의 근본 원인을 파악하는 데 도움을 준다.
토크나이저 (Tokenizer) 는 문자열과 토큰 (텍스트 조각) 을 상호 변환하는 대형 언어 모델 (LLM) 의 필수적이고 보편적인 구성 요소입니다. 토크나이저는 LLM 파이프라인의 완전히 별개의 단계로, 자체 학습 데이터셋, 학습 알고리즘 (Byte Pair Encoding), 그리고 학습 후 문자열에서 토큰으로 encode() 와 토큰에서 문자열로 decode() 라는 두 가지 기본 기능을 수행합니다. 이 강연에서는 OpenAI 의 GPT 시리즈에 사용된 토크나이저를 처음부터 구축합니다. 이 과정에서 LLM 의 많은 이상한 행동과 문제들이 실제로 토크나이징 (tokenization) 에 기인함을 알게 될 것입니다. 우리는 이러한 문제를 하나씩 살펴보며, 왜 토크나이징이 책임지고 있는지 논의하고, 궁극적으로 이 단계를 완전히 삭제하는 방법을 찾는 사람이 어디에 있는지 살펴볼 것입니다.
장:
00:00:00 소개: 토크나이징, GPT-2 논문, 토크나이징 관련 문제
00:05:50 웹 UI (tiktokenizer) 를 통한 예시 토크나이징
00:14:56 파이썬 문자열, 유니코드 코드 포인트
00:18:15 유니코드 바이트 인코딩, ASCII, UTF-8, UTF-16, UTF-32
00:22:47 꿈꾸기: 토크나이징 삭제
00:23:50 Byte Pair Encoding (BPE) 알고리즘 워크스루
00:27:02 구현 시작
00:28:35 연속된 쌍 세기, 가장 흔한 쌍 찾기
00:30:36 가장 흔한 쌍 병합
00:34:58 토크나이저 훈련: while 루프 추가, 압축 비율
00:39:20 토크나이저/LLM 다이어그램: 완전히 별개의 단계
00:42:47 토큰을 문자열로 디코딩
00:48:21 문자열을 토큰으로 인코딩
00:57:36 범주 간 분할을 강제하는 정규식 패턴
01:11:38 tiktoken 라이브러리 소개, GPT-2/GPT-4 정규식 차이
01:14:59 OpenAI 에서 공개된 GPT-2 encoder.py 워크스루
01:18:26 특수 토큰, tiktoken 처리 방식, GPT-2/GPT-4 차이
01:25:28 minbpe 연습 시간! 자체 GPT-4 토크나이저 작성
01:28:42 sentencepiece 라이브러리 소개, Llama 2 어휘 훈련에 사용됨
01:43:27 어휘 집합 설정 방법? gpt.py transformer 재검토
01:48:11 새로운 토큰 훈련, 프롬프트 압축 예시
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube AI 채널의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기