강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

RAG를 활용한 LLM Application 개발 (feat. LangChain)

3.4 LangChain을 활용한 Vector Database 변경 (Chroma ➡️ Pinecone)

Metric 3가지 방식 중에 추천해주시는 방식이있나요?

작성

·

18

·

수정됨

0

제목 그대로 추천해주시는 Mertic 방식이 있나요? 각 방식마다 장 단점이 있을거같고 특수 상황에서 쓰이는 방식들이있을거같아서요.

답변 2

1

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 유사도 검색 방식을 말씀하시는거겠죠?

RAG구현 케이스에서는 텍스트 검색이기 때문에 cosine이 제일 많이 쓰입니다. 텍스트 임베딩은 보통 문장의 의미(semantic meaning)를 담는데, 문장 길이에 따라 norm이 달라질 수 있어요. cosine은 크기 대신 방향(각도)만 본다는 점에서 문장의 의미적 유사성만 비교할 수 있습니다

euclidean의 경우에는 벡터 크기에 민감합니다. 문장이 길어져 norm이 커지면 실제 의미와 상관없이 거리가 커지는 문제가 있습니다. 그리고 차원이 높아질수록 모든 벡터가 비슷한 거리를 갖는 현상이 있는데요, 따라서 텍스트의 “방향” 유사성보다는 “절대적 위치 차이”를 보는 유클리드는 텍스트 의미 비교에는 적합하지 않습니다.

dot product의 경우에는 크기(norm)에 크게 의존합니다. 그래서 길이가 긴 문장(=norm 큰 벡터)이 짧은 문장보다 dot product 값이 과도하게 커짐. 그냥 문장이 길다는 이유만으로 유사하다고 판별하게 되는거죠. 그런데 모델이 이미 L2-normalize를 해서 출력한다면, dot product 와 cosine similarity 값이 유사해집니다. 이 경우 dot product도 충분히 쓸 수 있는데요, dot product의 경우에는 cosine similarity보다 계산 속도가 훨씬 빠르기 때문에 이점이 있긴합니다.

0

안녕하세요, 인프런 AI 인턴입니다. 내향적인 개발자 IDev님.

Metric을 선택하는 것은 프로젝트의 특성과 목표에 따라 달라질 수 있습니다. 그러나 일반적으로 몇 가지 대표적인 Metric 방식과 그 사용 권장 상황을 소개해 드리겠습니다:

  1. 정확도(Accuracy)

    • 장점: 전체적인 성능을 빠르게 파악할 수 있는 가장 직관적인 지표 중 하나입니다.
    • 단점: 불균형한 데이터 셋에서는 신뢰도가 떨어질 수 있습니다. 즉, 특정 클래스의 데이터가 대부분을 차지하는 경우, 정확도는 높게 나올 수 있지만 실제 성능은 좋지 않을 수 있습니다.
    • 사용 추천: 데이터 분포가 비교적 균일할 때 사용하면 좋습니다.
  2. 정밀도(Precision)와 재현율(Recall)

    • Precision: 모델이 예측한 값 중 실제로 맞은 것의 비율을 나타냅니다.
    • Recall: 실제 맞아야 할 것 중에서 모델이 맞춘 비율을 나타냅니다.
    • 장점: 불균형 데이터 셋에서 유용합니다.
    • 단점: 두 지표를 균형있게 잡기 어렵기 때문에 단독으로 사용하기보다는 보완적으로 사용하는 것이 좋습니다.
    • 사용 추천: 중요하게 다뤄야 하는 False Positive(정밀도 중점), False Negative(재현율 중점)가 있을 때 사용하기 적합합니다.
  3. F1 Score

    • 정밀도와 재현율의 조화 평균을 이용한 점수입니다.
    • 장점: 정밀도와 재현율을 함께 고려한 지표로, 불균형한 데이터에서 더 객관적인 성능 평가가 가능합니다.
    • 단점: 두 지표의 균형을 잘 잡지 않으면 여전히 성능 평가에 오차가 있을 수 있습니다.
    • 사용 추천: 데이터 분포가 불균형하더라도 두 지표 모두 중요할 때 유용합니다.

각 Metric은 그 자체로 중요한 정보를 제공하므로 사용하려는 모델 및 데이터에 맞춰 적합한 방식을 선택하는 것이 중요합니다. 상황에 따라 복수의 Metric을 조합하여 사용하는 것도 좋은 전략이 될 수 있습니다.

관련 질문에 대한 더 많은 정보는 아래 링크를 통해 확인해 보세요:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

내향적인 개발자 IDev님의 프로필 이미지
내향적인 개발자 IDev

작성한 질문수

질문하기