꾸준한 기록

[LLM] 텍스트 임베딩 본문

AI

[LLM] 텍스트 임베딩

Doo혀니 2024. 6. 10. 22:13

텍스트 임베딩이란

  • 텍스트를 다차원 공간에서 기계가 읽을 수 있는 벡터로 표현하는 방법
  • 기본 원리: 두 구문이 유사하다면 이 구문들을 나타내는 벡터들은 유클리드 거리와 같은 측정치로 볼 때 서로 가까워야 한다.
  • 결론: 텍스트 임베딩 값이 가깝다 ➡️ 두 구분이 유사하다

텍스트 임베딩 장점

1. 텍스트의 표면적인 의미와 철자를 넘어선 다른 의미를 포착할 수 있다.

2. 텍스트 임베딩을 사용하면 언어에 관한 풍부한 정보를 활용해서, LLM의 사전 훈련과 파인튜닝이 기반이 되는 애플리케이션을 거의 무한하게 구축할 수 있다.

3. 다양한 언어를 활용하여 작업할 때, 정교하고 의미적으로 정확한 모델을 구축할 수 있다.

 

텍스트 임베딩 작업

비대칭적 의미기반 검색

  • 의미기반 검색 시스템은 사용자가 제공한 쿼리의 의미와 문맥을 이해하고, 이를 검색할 수 있는 문서와 비교한다.
  • 이러한 시스템은 정확한 키워드나 n-gram 일치에 의존하지 않고도 데이터베이스에서 결과를 찾아낼 수 있으며, 사전 훈련된 LLM을 이용해서 쿼리와 문서/정보의 뉘앙스를 이해한다.
  • 비대칭적 의미기반 검색에서 '비대칭'은 입력 쿼리의 의미 정보(기본적으로 크기)와 검색 시스템이 탐색해야 하는 문서 사이에 불균형이 있다는 것을 의미한다. 즉, 일반적으로 둘 중 하나가 나머지 하나에 비해 훨씬 짧다.
  • 장점: LLM을 사용하기 때문에 쿼리에 정확한 단어가 포함되어 있지 않더라도 정확한 검색 결과를 얻을 수 있다.
  • 단점
    • 대문자 또는 구두점의 차이와 같은 텍스트의 작은 변화에 지나치게 민감할 수 있다.
    • 현지화된 문화 지식에 의존하는 풍자나 아이러니 같은 애매한 개념에 어려움을 겪는다.
    • 기존 방식보다 유지하고 구혀하는데 더 많은 계산 비용이 들 수 있다

의미기반 검색시스템의 동작 흐름

  • 1단계: 문서 저장
    • 임베딩을 위한 문서 저장한다.
    • 저장된 문서를 가지고 텍스트 임베딩을 생성한다.
    • 생성한 임베딩은 나중에 유저가 쿼리를 제공했을 때 탐색할 수 있도록 데이터베이스에 저장한다.

 

  • 2단계: 문서 검색
    • 사용자에게 전처리되고 정리할 수 있는 쿼리가 주어진다. (ex: 사용자가 입력한 검색어)
    • 임베딩 유사도를 통해 후보 문서를 검색한다. (ex: 유클리드 거리)
    • 필요한 경우 후보 문서 순위를 재순위화(re-ranking)한다.
    • 최종 검색 결과를 사용자에게 반환한다.

의미기반 검색 시스템의 구성 요소

1. 텍스트 임베더

  • 입력받은 텍스트를 벡터로 변환한다.
  • 벡터의 조건
    • 입력된 텍스트마다 고유해야 한다.
    • 텍스트의 맥락적 의미를 포함하고 있어야 한다.
  • 텍스트 임베더로 무엇을 사용하느지에 따라서 벡터의 품질이 달라지기 때문에 매우 중요하다.
  • 무엇이 텍스트를 '유사'하게 만드는가?
    • 텍스트를 벡터로 변환하면, 텍스트끼리 유사한지 여부를 파악하기 위해 유사한 정도를 수학적으로 표현해야 한다.
    • 코사인 유사도(cosine similarity): 두 벡터가 얼마나 유사한지 측정하는 방법.
      • 두 벡터 사이의 각도를 살펴보고, 방향이 얼마나 가까운지에 따라 점수를 매긴다.
      • 벡터의 크기는 중요하지 않고 방향만 중요한다.
      • 벡터가 정확히 같은 방향을 가리키면 코사인 유사도는 1이다. 수직이면 0이다. 반대 방향을 가리키면 -1이다.
    • 또다른 유사도 측정방법: 내적(Dot product), 유클리드 거리(Euclidean distance)

 

 

 

 

 

'AI' 카테고리의 다른 글

Apple Intelligence 에서 사용하는 LLM Model  (0) 2024.06.23