• Feed
  • Explore
  • Ranking
/
/
    💭LLM

    [RAG] RAG 평가 및 개선

    k
    kawaihachiwarae
    2025.01.17
    ·
    6 min read

    8538

    Ch2. LangSmith API를 활용한 프롬프트 최적화

    01. LangChain Dataset Testing에 데이터셋 생성

    • 데이터셋을 구축하기 위해선 크게 3가지 과정에 대한 이해 필요

      1. Retrieval이 Question에 Relevant 한지 평가

      2. Answer이 Question에 Relevant 한지 평가

      3. Answer가 검색된 문서 안에서 답변하였는지 (할루시네이션)

    • Langsmith의 Dataset에 생성

    • 데이터셋 예제는 추가 가능

    02. LLM-as-judge

    • LLM을 평가자로 두는 방법

    • input(질문), prediction(생성 답변), reference(정답 혹은 문맥)을 전달해줘야한다.

    • 평가가 빠르며 비용이 저렴

    1. Question-Answer Evaluator

    • 가장 기본적이며 질문과 답변을 평가

    • ask_question이라는 함수를 만들어 input key에 해당하는 데이터를 evaluate에 넣어서 평가를 실행

    • 정답이 맞았는지 correct or incorrect로 평가

    • 함수를 생성해 LangSmith에 테스트 데이터셋 업로드 (랜덤 100개)

      • 100개 질문을 테스트하는데 약 10분 소요

      • 맞았는데 incorrect로 나온 문장들 제외하면 incorrect 3개 - 정확도 97%

    2. Context-Answer Evaluator

    • 참조를 사용하도록 지시

    • context를 반환하는 함수를 별도로 정의해야한다.

    • 정답 답변에 관련있는 문서가 들어갔는지 correct or incorrect로 평가

    03. Criteria Evaluator

    • 기준들을 정의해놓고 평가

    04. Embedding Evaluator

    • 답변과 정답 답변 사이의 거리를 측정하는 평가자를 생성한다.

    • cosine 유사도는 할루시네이션 말고 답변 형태가 비슷한지를 더 고려한다.

    • 정답 형태가 비슷했으면 좋을 때 사용한다.

    • 양식에 맞춘 답변을 평가하고 싶을 때 사용한다.

    05. Custom LLM-as-judge

    • 사용자 정의 Evaluator로 평가로 사용자가 점수를 정의할 수 있다.

    06. 한글 형태소 분석기

    • 문장을 형태소 단위로 분리

    • 각 형태소의 품사 태깅

    • 형태소의 기본형 추출

    07. 휴리스틱 평가

    1. Rouge

      자동 요약 및 기계 번역의 품질을 평가하는 데 사용되는 평가지표

      생성된 텍스트가 참조 텍스트의 중요 키워드를 얼마나 포함하는지 측정

      n-gram 중첩을 기반으로 계산한다.

      Rouge-1, Rouge-2, Rouge-L 등으로 계산한다.

    2. BLEU

      생성된 텍스트가 참조 텍스트와 얼마나 유사한지 측정

      1-gram부터 4-gram까지의 정밀도를 계산

      단어의 중요도를 구분하지 않고 문자열 일치만 확인하기에 한계가 있다.

    3. METEOR

      단어 매칭, 정밀도와 재현율 계산, F-mean 계산, 순서 패널티 계산

      동의어와 어간 변형을 인식해 더 유연한 평가가 가능

      Rouge와 달리 단어 순서를 명시적으로 고려

      계산이 더 복잡하고 시간이 오래걸릴 수 있다.

    4. SemScore

      의미적 텍스트 유사성 기반

      단순한 단어 매칭을 넘어 문장의 전반적인 의미를 고려한다.

      사전 훈련된 언어 모델을 사용해 문장 임베딩을 생성한다.

    08. 실험별 비교 분석

    • LangSmith에서 제공하는 Compare 기능 활용

    09. Summary Evaluators

    • 전체 수준의 점수를 사용자 재정의 가능

    • 리스트에 질문을 통째로 받는다.

    • retriever answer에 가중치를 더 줄 수 있다.

    10. Groundedness Evaluator

    • 할루시네이션 평가하는 방식에 활용

    11. 실험 비교 분석을 위한 Pairwise 평가

    • llm 2개 모델이 생성해낸 답변을 비교한다.

    • 끝낸 2개의 실험에 대해 생성

    12. 반복 평가

    • 여러 번 평가를 내서 평균을 구한다.

    • num_repetition을 지정

    13. 온라인 LLM 평가를 활용한 평가 자동화

    • LangSmith 자체적인 기능

    • Chain을 RunnableParallel로 묶고 context, answer, question key를 넣어줘야한다.

    • 태그를 통해 분류해서 평가 가능







    - 컬렉션 아티클