260813

u·2026년 8월 17일

TIL

목록 보기
3/30

ReAct
생각(Reasoning): 뭘할지 말로 정리
-> 행동(Acting): 도구 고르고 입력을 줌
-> 관찰(Observation): 도구가 돌려준 결과를 받음

ㄴ 답이 나올 때까지 반복!


  • Hit@K
    : 상위 K개 안에 정답이 하나라도 있나 (있으면 1, 없으면 0)
  • Precision@K ; 정밀도
    : 상위 K개 중 몇 개가 정답인가 (정답 개수 / K)
  • Recall@K ; 재현율
    : 그 질문의 정답 중 몇 %를 건졌나 (찾은 정답 개수 / 전체 정답 개수)
  • MRR@K
    : 첫 정답이 몇 위에 있었나 (1 / (첫 정답의 순위))


  1. ReAct
  • Re(reasoning 추론)
  • Action(행)
    create_agent()함수호출 --> React 패턴의 Agent 만들어짐
  • 반복: 생각 -> 행동[도구호출] -> 관찰[도구결과]

1-1 도구 만드는 방법
--> 독스트링, 함수이름, 파라미터이름, 타입힌트(파라미터, 반환)
def sum(num1:int, num2:int) -> int :

  1. RAG의 검색기 평가 방법
  • Hit@K - K안에 정답이 있는지 유무 1,0
  • Recall@K - 맞춘 정답 개수 / 전체 정답 수
  • Precision@K - 맞춘 정답 개수 / K후보 개수
  • MRR@K - 정답순위에 대한 점수 - 1, 1/2, 1/3

2-1. 평가지표의 중요도

  • Hit, Recall,
    MRR(정답순위 - 상위에 배치하고 싶은 경우 --> 추천시스템),
    Precision --> 노이즈가 많으면 답변 품질이 떨어질 확률이 있다. (비용 발생)
  1. 평가셋 구축
  • (1) 질문 구축

    • 사람이 하는 것, LLM을 활용해서 문서기반으로 질문 자동 추출

    • 최대한 사용자 입장에서 말투와 질문 유형이 비슷

    • 다양한 난이도에 대한 질문셋 구축

    • 질문이 당연히 우리의 자료에 해당하는 질문

    • 전역질문 : 생성형 AI문서에 대한 전체적인 내용을 요약해서 알려줘
      -> 답을 우리가 직접 만들어서 --> 벡터 DB넣으면 된다.

  • (2) 질문에 대한 정답 라벨링 - 청크 id 라벨링
    ----> 자동화 방법
    ----> 질문에 해당하는 후보 군을 10~15개 정도 가져오고
    ----> LLM을 활용해서 해당 질문에 후보군이 답변을 하는 청크 조각만 구조화된 출력으로 받음
    ----> 후보 정답이 추려져서 --> 사람 검증

  • (3) 구축된 데이터셋에 대한 최종 사람 검증

  • (4) 평가셋 점검

    • 정답 청크 id가 실제 벡터 DB의 청크 id 목록에 포함되는지

0개의 댓글