커스텀 에이전트 + 일반 문서를 활용한 Golden Dataset 생성
1. 일반 문서로 Golden Dataset을 만드는 이유
FAQ와 일반 문서의 차이
•
FAQ는 이미 Q/A 쌍이 명시되어 있어 파싱이 비교적 쉽습니다.
•
반면 일반 문서는 장, 조, 절, 편처럼 계층 구조만 있고, 질문과 답변이 직접적으로 존재하지 않습니다.
•
따라서 일반 문서를 활용한 데이터셋 생성은 더 복잡한 태스크입니다.
핵심 목표
•
문서를 바탕으로 질문과 답변(QnA) 쌍을 생성하는 것
•
단순히 문장 일부를 추출하는 것이 아니라, 문서의 의도와 목적을 이해한 뒤 유의미한 질문을 만들기
2. 문서 요약을 먼저 수행하는 이유
문서 목적 파악
•
AI에게 문서를 먼저 읽게 한 뒤 요약을 시킵니다.
•
요약의 목적은 문서 전체의 의도와 목적을 파악하는 것입니다.
•
이를 기반으로 중요한 내용만 추출하여 QnA를 생성합니다.
불필요한 정보 제거
•
문서에는 질문 생성에 필요 없는 내용도 많습니다.
•
예:
◦
“직원 복리후생 및 복지 가이드의 목적은 무엇인가요?”
•
이런 식의 질문은 실사용 관점에서 의미가 약하므로,
◦
건강보험
◦
건강검진
◦
적용 대상
같은 실질적인 항목 중심으로 질문을 생성하도록 유도합니다.
3. Anthropic(Claude) 모델을 활용한 기본 생성 방식
환경 설정
•
Anthropic API Key를 .env에 저장하여 사용합니다.
•
환경 변수를 먼저 로딩한 뒤 에이전트를 실행합니다.
ANTHROPIC_API_KEY=...
Bash
복사
사용한 구성 요소
•
Pydantic 모델: QnA 결과를 구조화하기 위해 사용
•
Anthropic 모델: Claude 계열 모델 사용
•
Agent: 문서를 읽고 QnA를 생성하는 역할 수행
시스템 프롬프트 설계
•
에이전트에게 다음과 같은 역할을 부여합니다.
◦
그라운드 트루스(Ground Truth) 생성 전문가
◦
문서를 읽고
◦
문서의 목적을 파악하고
◦
정확한 QnA 쌍을 생성
실무 팁
•
문서를 기반으로 QnA를 만들 때는 도구 없이 프롬프트만으로도 충분히 가능한 경우가 많습니다.
•
특히 문서 수가 적거나 작업이 단순하면, 툴 호출보다 프롬프트 기반 접근이 더 효율적입니다.
4. 프롬프트만으로 생성할 때의 장점
장점
•
구현이 단순함
•
토큰 소모가 적음
•
실행 속도가 빠름
•
비용도 비교적 낮음
예시로 확인한 결과
•
도구를 쓰지 않은 방식:
◦
약 18초
◦
약 $0.06
•
도구를 사용한 방식:
◦
약 70초
◦
약 $0.3
•
즉, 도구를 사용하면 대략
◦
시간은 약 4배
◦
비용은 약 5배
증가했습니다.
5. 도구(Tool)를 활용한 커스텀 에이전트 설계
도구를 사용하는 이유
•
프롬프트만으로 원하는 결과가 잘 나오지 않을 때
•
작업을 명확히 분리하고 싶을 때
•
예:
◦
문서 목적 분석
◦
QnA 리스트 생성
도구 분리 예시
1.
Analyze Document
•
문서의 목적과 성격을 파악
2.
Generate QnA List
•
분석 결과를 바탕으로 질문과 답변 목록 생성
LangChain/LangGraph 스타일 도구 선언
•
@tool 데코레이터로 함수가 도구임을 명시
•
도구 이름, 설명, 입력 인자를 통해 에이전트가 사용 여부를 판단
@tool
def analyze_document(...):
...
Python
복사
@tool
def generate_qna_list(...):
...
Python
복사
6. 도구 사용 시 주의점
구조화 출력이 중요
•
도구를 사용할 때는 결과가 항상 일정한 포맷으로 나와야 합니다.
•
그래서 구조화된 출력이 필요합니다.
•
강의에서는 with structured output 계열의 접근이 언급되었습니다.
문제점
•
도구를 붙이면:
◦
오히려 실행이 느려질 수 있음
◦
토큰 사용량이 증가할 수 있음
•
따라서 작은 작업은 굳이 도구를 붙이지 않고,
◦
시스템 프롬프트 + 모델 직접 호출로 처리하는 것이 더 효율적일 수 있습니다.
7. 프롬프트 수정으로 품질 개선하기
문제 사례
•
처음에는 질문이 너무 일반적으로 생성되거나,
•
문서 제목이 빠져서 질문이 애매하게 생성되는 문제가 있었습니다.
개선 방식
•
시스템 프롬프트에 다음과 같은 규칙을 추가합니다.
◦
문서에 대해 언급할 때는 제목을 포함하라
◦
불필요한 포괄 표현 대신 정확한 문서명을 사용하라
효과
•
예전: “이 가이드의 적용 대상은 누구인가요?”
•
개선 후: 문서 제목이 포함된 더 명확한 질문 생성
8. 여러 문서에 대해 일괄 생성하기
대상 확장
•
하나의 문서가 아니라, 여러 마크다운 파일 전체를 대상으로 실행합니다.
•
각 문서에서 생성된 결과를 누적하여 Golden Dataset을 구성합니다.
결과에 포함할 수 있는 정보
•
QnA 쌍
•
source document
◦
어떤 문서에서 생성되었는지 추적 가능하도록 출처 정보를 함께 저장
장점
•
나중에 평가 시
◦
어떤 문서에서 나온 데이터인지 확인 가능
◦
데이터 검증과 디버깅이 쉬워짐
9. 실습 흐름 요약
전체 파이프라인
1.
마크다운 문서 로딩
2.
문서 내용을 AI에게 전달
3.
문서 요약 및 목적 파악
4.
그 목적을 바탕으로 QnA 생성
5.
필요 시 출처(source document) 추가
6.
여러 문서에 대해 반복 실행
7.
결과를 누적하여 Golden Dataset 생성
10. 핵심 정리
•
FAQ는 이미 Q/A가 있어 단순하지만, 일반 문서는 문서 목적을 이해해야 하므로 더 어렵습니다.
•
일반 문서를 활용할 때는 먼저 문서 요약/목적 파악을 수행한 뒤 QnA를 생성하는 것이 좋습니다.
•
프롬프트만으로도 충분히 좋은 결과를 얻을 수 있으며, 작은 작업에서는 이 방식이 더 빠르고 저렴합니다.
•
필요할 때만 도구(Tool) 를 추가해 기능을 분리하는 것이 좋습니다.
•
생성된 결과에는 가능하면 source document를 포함해 추적 가능성을 확보해야 합니다.