Search

커스텀 에이전트 + 일반 문서를 활용한 Golden Dataset 생성

Number
8

커스텀 에이전트 + 일반 문서를 활용한 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를 포함해 추적 가능성을 확보해야 합니다.