우잉's Development

[LLM 기본] 임베딩과 시멘틱 서치 본문

Deep learning/LLM

[LLM 기본] 임베딩과 시멘틱 서치

우잉이 2023. 9. 6. 16:16
728x90
반응형

Grounding

  • LLM에게 검색등을 통해 문맥에 맞는 정보를 제공하거나, 계산기 등을 사용해 정확한 계산 결과를 제공하는 방법
  • 정확한 정보를 제공하여 환각을 줄이거나, LLM 학습 후 나온 새로운 정보를 이용한 결과를 생성할 수 있음.

RAG

  • Retrieval-Augmented Generation의 약자로, 정보를 검색해 와서 이를 기반으로 텍스트를 생성하는 방법
  • 대화의 맥락을 유지하기 위한 장기 기억 메모리로도 활용

Embedding

 

[LLM 기초] 프롬프트 엔지니어링 개요

프롬프트 엔지니어링 ? => 컴퓨터와 대화하는 방법이자 컴퓨터에게 업무를 시키는 방법 LLM에서의 prompt engineering은? => zero-shot, one-shot learning, Few-shot learning, Chain of Thought, Zero Shot Chain of Thought Zero-sh

wooingg.tistory.com

  • embedding model 선택 
    - 모델의 성능은 데이터셋마다 다르므로, 사용할 데이터에 테스트해보고 가장 적절한 모델을 선택해야함.
    - 민감하거나 정확도가 높아야 하는 데이터의 경우 파인튜닝한 모델을 사용하는 방법을 고려
    - OpenAI의 text-embedding-ada-002모델이 대부분의 경우 일정 수준 이상의 결과를 보여주며 한국어에서도 대체로 성능이 우수한 편으로, 가격도 매우 저렴하여 기본 선택 모델로 좋은편
  • Vector DB
    - Vector Search를 통해 단어가 실수로 이루어진 벡터로 변환해준다. 변환된 벡터를 단어로 다시 가져오기 위해 필요한 DB.
    - 메타데이터와 함께 결과 반환하며 필터링등을 이용한 하이브리드 검색이 가능하다.
    - 실시간 인덱싱이 되며 다양한 인덱싱 및 검색 알고리즘을 제공한다.
    - 높은 확장성 및 편의 기능 등이 있다.
Vector DB 종류
1.  Pincone
2. Milvus
3. Weaviate
4. Qdrant
5. Chroma
6. Redis
7. Elasticsearch
8. PostgreSQL

검색기능 

  1. Hybrid Search : 검색 정확도를 높이기 위해, 키워드 필터링이나 Dense, Sparse벡터등을 조합해 검색하는 방법
  2. Re-rank :  1차 벡터 서치에 사용한 것과 다른 경량의 임베딩 모델을 사용하거나 1차 결과를 LLM으로 사용자 요청에 맞게 재정렬하여 생성하는 등 Re-rank목적에 맞는 방법을 사용
  3. Chuncking : 텍스트를 적절한 길이로 자르는 방법
    - 임베딩 모델의 최대 토큰수를 넘는 텍스트를 이베딩하기 위해 사용
    - 김텍스트를 여러개의 작은 부분으로 나누어 각 부분을 독립적으로 임베딩할 수 있게 하여, 텍스트 데이터의 특징을 더욱 잘 표현하고, 더욱 정교하게 검색하거나 분석하기 위해 사용
    - 단순히 토큰 수 단위나 단어 단위로 잘라도 되지만, 문장이나 문단 혹은 구조화된 문서라면 섹션 단위로 자르는 등의 방법을 사용하면 좋음.
    - 임베딩 모델과 문서의 성격에 따라 적절한 청킹 방법이 다르므로, 문서에 따라 실험을 통해 적절한 방법과 길이의 청킹 방법을 찾아야함.
  4. Overlab & Sliding : 텍스트 분리했을 때 의미가 소실되거나 왜곡되는 것을 방지하고 문백을 보존 하기 위해 사용
    1) Overlab : 각 청크가 일부의 공통된 데이터를 포함하도록 하는 기법
    2) Sliding Window : 일정한 길이의 토큰(혹은 단어 등) 윈도우로 텍스트를 스라이드하면서 데이터의 청크를 캡쳐하는 방법
예시) 
학원을 가기 전에 떡볶이를 먹으러 분식점에 갔습니다.
window size: 3, Overlap size : 1
학원을/ 가기/ 전에   |   전에/떡볶이를/ 먹으러   |   먹으러/분식점에/ 갔습니다.

 

728x90
반응형
Comments