Hacker News 의견
  • 코사인 유사성을 사용하는 RAG 애플리케이션에서는 "semantic re-ranker"나 "L2 re-ranking model"을 사용하여 결과를 재정렬하는 것이 좋음

    • pgvector-python의 예시에서는 cross-encoder 모델을 사용하여 재정렬을 수행함
    • 언어 모델을 사용하여 재정렬할 수도 있지만, 재정렬에 특화된 모델보다는 성능이 떨어질 수 있음
    • Azure RAG 접근법에서는 Bing이 검색 결과를 재정렬하는 데 사용하는 AI Search semantic ranker를 사용함
  • 단어 벡터는 두 단어가 같은 문맥에 나타나지 않더라도 강하게 연관될 수 있는 문제를 해결함

    • "Python"과 "Ruby"는 같은 문맥에 나타나지 않을 수 있지만, "scripting"은 둘 다의 문맥에서 발견될 수 있음
    • 그러나 차원의 저주 때문에 잘 작동하지 않는 경우가 많음
    • 단어 임베딩을 벡터 대신 정점으로 표현할 수 있을지에 대한 아이디어 제시
  • 미국에서는 word2vec이 espresso와 cappuccino를 거의 동일하다고 판단할 수 있지만, 이탈리아에서는 그렇지 않음

    • LLM 쿼리를 직접 사용하여 두 항목을 비교하는 것이 가장 좋은 접근법임
    • LLM은 "지갑을 어디에 두었지?"와 "열쇠를 어디에 두었지?"를 매우 유사하다고 판단할 수 있음
  • 코사인 유사성은 대부분의 딥러닝 기반 시맨틱 검색에서 사용됨

    • SentenceTransformers와 같은 모델은 코사인 유사성을 사용하도록 훈련됨
    • 이미지의 벡터 표현을 위해 CLIP과 같은 모델도 코사인 유사성을 사용함
  • LLM 쿼리를 직접 사용하여 두 항목을 비교하는 것이 가장 강력한 접근법임

    • Cross encoder는 성능이 뛰어나고 빠른 솔루션임
  • HyDE는 질문에 대한 가상의 답변을 생성하고 유사성을 비교하는 방법임

    • 청크의 형식을 표준화하고 동일한 형식으로 가상의 답변을 생성하는 것이 더 나은 방법임
  • 코사인 유사성과 top-k RAG는 구식처럼 느껴짐

    • 코사인 유사성은 데이터의 우연한 속성일 뿐임
    • 새로운 임베딩 모델은 코사인 유사성을 유사성 측정으로 사용하도록 훈련됨
  • RAG 접근법을 시도한 후 실망감을 느꼈으며, 모델이 RAG를 훈련 중에 수행할 수 있도록 구조화해야 한다고 생각함

    • 모델이 임베딩, 형식, 검색 프로세스를 정의하도록 하여 훈련 데이터 모델링을 개선할 수 있음
  • 3D 그래픽과 물리학에서는 중요성과 정확성이 명확하지만, 머신러닝에서는 벡터 공간이 너무 많은 것을 나타내어 점곱 사용이 모호하게 느껴짐