※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다.
임베딩(텍스트를 숫자 형태의 데이터로 변경) 단계
- 토큰화(tokenization) : 텍스트를 적절한 단위로 잘라 숫자형 아이디를 부여하는 것
- 토큰 아이디를 토큰 임베딩 층을 통해 여러 숫자의 집합인 토큰 임베딩으로 변환
- 위치 인코딩 층을 통해 토큰의 위치 정보를 담고 있는 위치 임베딩을 추가해 모델에 최종적으로 입력할 임베딩 생성
토큰화
텍스트를 적절한 단위로 나누고 숫자 아이디를 부여하는 것으로 토큰화를 할 때는 어떤 토큰이 어떤 숫자 아이디로 연결됐는지 기록해 둔 사전을 만들어야 한다. 예를 들어, 단어를 단위로 토큰화하는 경우 어떤 단어를 몇 번으로 변환했는지 모두 저장한다. 큰 단위를 기준으로 토큰화를 할수록 텍스트의 의미가 잘 유지된다는 장점이 있지만, 사전의 크기가 커진다는 단점이 존재한다. 그리고 새로운 단어는 사전에 없기 때문에 처리하지 못하는 OOV(Out Of Vocabulary) 문제가 발생한다. 반대로 작은 단위로 토큰화하는 경우 사전의 크기가 작고 OOV 문제를 줄일 수 있지만 텍스트의 의미가 유지되지 않는다.
최근에는 데이터에 등장하는 빈도에 따라 토큰화 단위를 결정하는 서브워드(subword)토큰화 방식을 사용한다.
서브워드 토큰화 방식은 자주 나오는 단어는 단어 단위 그대로 유지하고 가끔 나오는 단어는 더 작은 단위로 나눠서 유지함으로 사전의 크기는 작고 더 효율적으로 유지할 수 있다.
딥러닝 모델이 텍스트 데이터를 처리하기 위해서는 입력으로 들어오는 토큰과 토큰 사이의 관계를 계산할 수 있어야 한다. 토큰과 토큭 사이의 관계를 계산하기 위해서는 토큰의 의미를 숫자로 나타낼 수 있어야 하는데, 토큰화에서 부여한 토큰 아이디는 하나의 숫자일 뿐이므로 토큰의 의미를 담을 수 없다. 의미를 담기 위해서는 최소 2개 이상의 숫자 집합인 벡터여야 한다. 데이터에 의미를 담아 숫자 집합으로 변화하는 것을 임베딩(embedding)이라고 하는데 토큰을 임베딩으로 변화하므로 토큰 임베딩이라 부른다.
딥러닝은 모델이 특정 작업을 잘 수행하도록 학습하는 과정에서 데이터의 의미를 잘 담은 임베딩을 만드는 방법도 함께 학습한다.
임베딩 벡터는 학습 과정에서 점진적으로 다음과 같은 특성을 가지게 됩니다.
- 의미적 유사성 : 유사한 의미를 가진 단어들은 임베딩 공간에서 가까운 위치에 놓이게 된다.
- 문법적 유사성 : 유사한 문법적 역할을 하는 단어들도 비슷한 임베딩 벡터를 가지게 된다.
- 맥락 정보 : 특정 단어가 자주 등장하는 문맥을 반영하여, 단어의 다양한 의미를 잘 포착하게 된다.
트랜스포머는 순차적인 처리 방식이 아닌 모든 입력을 동시에 처리하기 때문에 순서 정보가 사라지게 된다. 하지만 텍스트에서 순서는 매우 중요한 정보이기 때문에 추가해줘야 하는데, 이를 위치 인코딩이 담당한다.
입력 토큰 위치에 따라 고정된 임베딩을 더해주는 것을 절대적 위치 인코딩(absolute position encoding)이라고 한다. 이는 간단하게 구현할 수 있다는 장점이 있지만 토큰과 토큰 사이의 상대적인 위치 정보는 활용하지 못하고, 학습 데이터에서 보기 어려웠던 긴 텍스트를 추론하는 경우에는 성능이 떨어진다는 문제가 있어 상대적 위치 인코딩(relative position encoding) 방식도 사용한다.
※ 인코딩 정리
하나의 문장을 단어 단위로 토큰화를 수행하고 각 토큰에 토큰 아이디와 위치 아이디를 부여한다. 여기서 토큰 아이디는 사전에 저장된 토큰의 고유한 아이디를 의미하고 위치 아이디는 토큰의 위치를 의미한다. 두 아이디는 숫자로 되어있는데, 이 숫자 아이디는 데이터의 의미를 담을 수 없기 때문에 의미를 담을 수 있도록 토큰 임베딩 층과 위치 인코딩 층을 통해서 토큰 임베딩과 위치 임베딩으로 변환한다.
'LLM' 카테고리의 다른 글
트랜스포머 아키텍처(4) (0) | 2024.08.11 |
---|---|
트랜스포머 아키텍처(3) (0) | 2024.08.10 |
트랜스포머 아키텍처(1) (0) | 2024.08.09 |
딥러닝과 언어 모델링(3) (0) | 2024.08.08 |
딥러닝과 언어 모델링(2) (0) | 2024.08.07 |