개발일반/도대체

도대체 Embedding Model과 Token은 뭘까?

문괜 2024. 9. 20. 12:00
반응형

Embedding과 Token의 경우 AI에서 정말 많이 쓰이는 단어중 하나이다. 그래서 이번에 먼저 AI에서의 Embedding과 Token의 의미를 보고 LLM관련 개발에 있어서는 어떻게 쓰이는 표현인지 알아보자.

 

먼저 Embedding의 경우 AI와 기계학습에 있어 주어진 데이터에 대한 이해를 높이기 위해 사용된다. 예를 들어 '사과' 혹은 사과의 사진은 사람이 단어로써 이해하고 있고 시각적으로 이미 알고 있기에 쉽게 이해할 수 있다. 하지만 반대로 컴퓨터는 우리와는 다르게 눈도 없고 데이터로서 '사과'라고 한국어로 저장 돼 있지 않다. 그런 컴퓨터에게 '사과'라는 데이터를 이해시키기 위해 '사과'가 가진 시각적 혹은 언어적 내용을 Vector로 표현하고 이 과정을 Embedding이라고 한다. 

 

그래서 위의 '사과'와 사과의 사진 예시에서 알 수 있듯이 사용하는 목적과 의도에 따라 Embedding 방식이 달라져야 한다. 그리고 이런 방식의 차이와 목적에 맞춰 Embedding 방식이 구분 되어지기에 Embedding Model이 존재한다. 

 

대표적으로 Bert, World2Vect과 같은 모델이 있다.

 

그럼 LLM Application 개발에 있어서의 Embedding은 뭘까? 일단 아래의 사진을 보면 된다. 

LangChain Conceptual Guides

LangChain을 기준으로 Embedding Model은 Vector Store에 들어가는 Document에 대한 Embedding과 그리고 질문에 대한 의도와 특징을 파악하기 위한 Query에 대한 Embedding이 있다.

 

여기서 중요한점이 위의 사진과 같이 Embedding Model을 통해 Vector는 Token을 기준으로 전환이 되고 모든 Vector들은 같은 Dimension Length를 가지고 있다. 그래서 Query Embedding과 Document Embedding에 있어서 같은 Embedding Model을 사용해야 한다. 혹은 최소한 공통된 Dimensoin Length를 가져야 한다. 

 

그럼 Token은 어떤 역할을 할까? 

먼저 아래의 사진을 통해서 알 수 있다.

LangChain Conceptual Guides

 

AI 전반과 LLM에서도 공통되게 Token의 경우 Model이 이해하는 데이터에 대한 최소단위 혹은 기본단위라고 생각하면된다. 예를 들어 "와 오늘 그만하고 싶다."라고 했을 때 토큰은 '와', '오늘', '그만', '하고', '싶다'와 같이 5개의 Token으로 나뉠 수 있다. 

 

그런데 여기서 생각해봐야하는 부분이 있다. 예를 들어 한국어의 경우 '그만'이 아니라 '그만하고'가 좀 더 맞을 수 있다. 또한 Token의 경우 모델에 이해시키기 위한 직접적인 단위이기 때문에 단순히 숫자가 높다고 해서 좋은것도 아니다. 그렇기 때문에 만들고자하는 Application에 맞춰 Token을 지정해야하기도 한다. 또한 단순한 문장이아닌 글의 경우 주어진 데이터에 맞춰 적절한 Token의 숫자를 지정해야 한다. 

(추후에 LLM을 위한 최적의 Document를 찾는 과정에서 정리할 예정이다.)

 

이렇게 Embedding과 Token에 대해 정리해 봤다.

 

결론적으로 Embedding은 단순히 Vector만들저 주는 기계가 아니라 만들어진 Vector의 특징 또한 인지 하고 있어야 하고 Token도 단순히 단위가 아닌 Token으로 달라지는 AI의 이해도 또한 어느정도 고민해봐야 한다.

 

참고

 

임베딩이란 무엇인가요? - 기계 학습에서의 임베딩 설명 - AWS

ML 모델은 원시 형식의 정보를 명확하게 해석할 수 없으며, 입력으로 숫자 데이터를 필요로 합니다. 신경망 임베딩을 사용하여 실제 정보를 벡터라는 숫자 표현으로 변환합니다. 벡터는 다차원

aws.amazon.com

 

 

Conceptual guide | 🦜️🔗 LangChain

This section contains introductions to key parts of LangChain.

python.langchain.com

 

 

Conceptual guide | 🦜️🔗 LangChain

This section contains introductions to key parts of LangChain.

python.langchain.com

 

 

 

반응형