하위 질문 분해 전략
복잡한 다중 단계 질문을 하위 질문으로 나누고 각각 답한 뒤 최종 답변으로 합성해보세요.
하위 질문 분해 전략은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
단일 단계 검색이 실패하는 경우
일부 질문에는 여러 번의 조회가 필요합니다:
"2022년 Apple의 매출과 2023년 Microsoft의 매출을 비교하십시오."
한 번의 유사도 검색으로는 두 사실을 모두 가져올 수 없으므로, TWO개의 하위 쿼리가 필요합니다.
하위 질문 분해
LlamaIndex의 SubQuestionQueryEngine은 질문을 하위 질문으로 나누고 각각에 답한 다음 결과를 합성합니다:
from llama_index.core.query_engine import SubQuestionQueryEngine
from llama_index.core.tools import QueryEngineTool, ToolMetadata
query_engine_tools = [
QueryEngineTool(
query_engine=apple_index.as_query_engine(),
metadata=ToolMetadata(name='apple', description='Financial data for Apple Inc.')
),
QueryEngineTool(
query_engine=msft_index.as_query_engine(),
metadata=ToolMetadata(name='microsoft', description='Financial data for Microsoft Corp.')
)
]
engine = SubQuestionQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
response = engine.query('Compare 2022 revenue of Apple vs 2023 revenue of Microsoft')작동 방식
- LLM이 질문을 분석합니다
- LLM이 하위 질문을 생성하고 각각을 도구에 할당합니다
- 각 하위 질문이 병렬로 실행됩니다
- LLM이 하위 답변을 바탕으로 최종 답변을 합성합니다
하위 질문 확인
엔진이 생성한 하위 질문을 확인할 수 있습니다:
response = engine.query('Compare X and Y')
for sq in response.metadata.get('sub_qa', []):
print(sq.sub_q.sub_question, '->', sq.answer)하위 질문을 사용할 때
- 비교 쿼리(X와 Y 비교)
- 여러 소스의 집계
- 서로 구분되는 여러 사실을 포함한 질문
사용하지 말아야 할 때
- 단순한 질의응답 — 지연 시간과 비용이 증가합니다
- 단일 문서 컨텍스트
- 분해의 이점이 없는 작업
LLM을 사용한 라우팅
하위 질문 엔진을 RouterQueryEngine과 결합하면 먼저 어떤 인덱스 모음을 조회할지 결정할 수 있습니다:
from llama_index.core.query_engine import RouterQueryEngine
router = RouterQueryEngine.from_defaults(query_engine_tools=query_engine_tools)
# Routes 'apple revenue' to apple index, 'msft margins' to msft, etc.코딩 에이전트를 위한 하위 질문
코드를 작성하는 에이전트에서 하위 질문은 단계를 계획하는 방법입니다:
"REST API 구축" -> 하위 작업: 모델 설계, 하위 작업: CRUD 처리기 작성, 하위 작업: 인증 추가.
비용 영향
하위 질문은 1개가 아닌 N개의 하위 쿼리를 만듭니다. 각각에 LLM 호출과 검색이 필요합니다. 예산을 이에 맞게 책정하십시오. 단일 단계 검색보다 비용이 3~4배 더 높습니다.
ReAct와 비교
하위 질문은 사전에 수행하는 계획입니다. 다음 과정에서 다룰 ReAct는 단계별 접근 방식입니다. 분해 방식이 명확한 쿼리에는 하위 질문이 더 빠르고, 탐색적 작업에는 ReAct가 더 잘 적응합니다.
결합: ReAct + 하위 질문 도구
가장 유연한 방식은 하위 질문 엔진을 도구로 사용하는 ReAct 에이전트입니다. 각 "도구 호출" 자체가 여러 하위 쿼리로 다시 분해될 수 있습니다.
하위 질문 품질 평가
LLM이 합리적인 하위 질문을 생성하는지 추적하십시오. 추적 기록을 확인하지 않으면 잘못된 분해를 디버깅하기 어렵습니다.
분해 사용 사례
어떤 유형의 질문에서 하위 질문 분해가 가장 유용합니까?
복습
하위 질문 분해는 하나의 복잡한 쿼리를 여러 개의 간단한 쿼리로 바꿉니다. 비용은 더 높지만 비교 질문과 여러 소스에 걸친 질문에서는 정확도가 크게 향상됩니다.
자주 묻는 질문
“하위 질문 분해 전략” 강의는 무료인가요?
네 — “하위 질문 분해 전략” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
“하위 질문 분해 전략”에서 뭘 배우나요?
복잡한 다중 단계 질문을 하위 질문으로 나누고 각각 답한 뒤 최종 답변으로 합성해보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Agents을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“하위 질문 분해 전략” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.