금융 AI Agent가 CoT 프롬프팅을 필요로 하는 이유
프롬프팅 기법 또는 전략 중에 CoT (Chain of Thought)는 복잡한 문제를 단계별로 풀어내도록 AI를 유도하는 방식이다
금융 관련 질문이 복잡한 문제, 그 자체가 아닌가 싶다
사용자가 "테슬라 주가 전망은 어때? 매수 지금이야?라는 질문을 한다면,
아마 최소한 아래의 단계를 거치지 않을까 싶다
- 먼저 기업 재무실적과 재무 비율을 검토하고
- 산업 및 시장 동향 분석하고
- 최근 뉴스나 이슈가 주가에 미치는 영향을 평가
- 종합하여 전망 예측
아니면 "창Dragon님이 금리 낮췄네, 향후 한국 경기 전망을 어떠한가?"라는 질문을 한다면,
- 거시경제 지표(GDP 성장률, 물가상승률, 실업률) 등등을 살피고
- 외부 변수나 국제 정세 등등을 단계적으로 고려할 것이다
금융/투자 분석 과정을 위해 CoT 프롬프팅은 필요하다
1. 세부 사항을 고려할 수 있다
- 금융 분석에서는 작은 세부 사항(예: 특정 분기 이익 감소나 정책 변화)도 결과에 큰 영향을 줄 수 있는데,
- CoT를 통해 해당 단계마다 집중하게 되므로 중요한 정보를 놓치지 않을 수 있음
- 많은 추론 과정이 필요하다면 작은 단위로 분할하여 순차적으로 해결한다
- 예를 들어 재무 추세 관찰 -> 주요 재무비율 계산 -> 종합적인 판단을 하게 하는 것
2. 결과의 투명성과 유저의 신뢰도
중간 추론 과정을 추적할 수 있기 때문에 최종 답변에 이르는 논리를 파악할 수 있다
- 1단계 : A기업의 부채 비율이 높고
- 2단계 : 금리 상승 국면이므로
- 결론: 재무 건전성 측면에서 위험이 있다.
라는 과정을 제시하면, 사용자는 답변의 근거를 이해할 수 있음
결론적으로 CoT를 통해 금융 분야 질의에 대한 답변의 정확성, 완전성, 설명력을 전반적으로 향상 시킬 수 있음
시카고대 연구에서 재무제표를 분석해 미래 수익을 예측하는 작업에서 CoT 프롬프팅을 적용한 경우 정확도가 60%, 그냥 했을 때는 52% 라고 함
AI Is Ready for a Bigger Role in Financial Analysis
GPT-4 Turbo outperformed professional analysts in predicting the direction of companies’ future earnings.
www.chicagobooth.edu
전문가가 아닌 나는, 어떤 CoT 프롬프팅 전략을 사용해야 하는가
Few-Shot CoT
Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
We explore how generating a chain of thought -- a series of intermediate reasoning steps -- significantly improves the ability of large language models to perform complex reasoning. In particular, we show how such reasoning abilities emerge naturally in su
arxiv.org
몇 개의 예시를 프롬프트에 제공하여 모델이 답변 전에 단계적 풀이를 생성하도록 유도하는 방법
질문 유형(예 : 금융 관련)에 따라 CoT 예시를 다르게 구성하는 것이 중요
약점이라면 예시 준비의 어려움이다.
예시가 고품질일수록 좋은데,
금융 전문가가 아니라면 이 예시가 얼마나 고품질인지, 어떠한 예시들이 필요한지 상당히 고민이 많이 되는 부분이다.
여기서는 이러한 문제를 Synthetic Data Generation(합성 데이터 생성)이나 Zero-shot Generalization(제로샷 일반화) 방식을 해결책으로 제시하고 있다.
Zero-Shot CoT
LLM에게 단계적 추론을 위해 어떤 예시를 전혀 제공하지 않는 방식
Few-Shot에서의 약점이었던 문제 예시 제공 필요성을 극복하며, 모델이 자체적으로 추론 과정을 생성해서 답을 도출하도록 유도한다.
"Let's think step by step" 같은 간단한 지시문으로 단계적 추론을 유도
Zero-Shot CoT 성능은 프롬프트에 따라 변동함
여기서는 "Let's think step by step" 프롬프트가 가장 성능이 좋았다고 함
Few-shot CoT 방식에서 했던 고민을 어느 정도 해결해 주기 때문에 괜찮은 방법이라고 생각.
하지만 Few-shot-CoT 보다 성능이 낮다는 연구
Auto-CoT (Automatic Chain-of-Thought)
위 2가지 방법을 적절하게 섞어서 사용하는 방법이다.
핵심은 Zero-shot CoT를 이용해 추론 과정을 작성하게 한 뒤, 그중 예시들을 선별하여 Few-Shot 프롬프트로 활용함
Automatic Chain of Thought Prompting in Large Language Models
Large language models (LLMs) can perform complex reasoning by generating intermediate reasoning steps. Providing these steps for prompting demonstrations is called chain-of-thought (CoT) prompting. CoT prompting has two major paradigms. One leverages a sim
arxiv.org
크게 2개 단계로 구성
- Question Clustering
- Demonstration Sampling
좀 더 세부적으로는
- 결론은 사용자의 질문을 잘 추론하려면 비슷한 예시를 제공하는 것이 중요
- 비슷한 유형의 예시를 만들기 위해, 데이터셋 내 질문들을 군집(클러스터링)하고, 각 질문이 어떤 유형과 유사한지 분석하는 과정이 필요함
- 따라서, 먼저 질문을 의미적으로 벡터화(Sentence-BERT 등 활용) 한 후, K-means 같은 클러스터링 기법을 적용하여 유사한 질문들을 그룹화
- 각 클러스터에서 가장 대표적인 질문을 선택함 이때 너무 복잡하거나 너무 단순한 질문은 배제
- 선택된 질문을 Zero-Shot-CoT 프롬프팅으로 추론 과정을 생성
- 생성된 추론 과정 + 정답을 Auto-CoT 예제 (demonstration)으로 저장, 다른 질문을 해결할 때 참고하는 프롬프팅 예시로 활용
하지만, Zero-Shot-CoT가 생성하는 추론 체인의 품질에 따라 성능이 좌우되는 한계가 있음
돌아와서 " 전문가가 아닌 나는, 어떤 CoT 프롬프팅 전략을 사용해야 하는가"에 대한 질문에 스스로 답변을 해보자
금융 도메인 특성상 질문이 너무 광범위하므로 특정한 예시를 미리 정의하는 Few-shot CoT 기법은 어려울 것 같음
주식에 대한 예시로 비트코인 질문에 적용하기 어렵듯이 말이다.
따라서 처음엔 Zero-Shot CoT와 ReAct 방식을 결합하고
Auto-CoT + ReAct를 함께 사용하면 좋지 않을까 싶다
'MLOps > Development' 카테고리의 다른 글
ESG 관련 데이터는 어디에 있나 : SEC Filing + Sustainability report (6) (0) | 2025.03.21 |
---|---|
SEC Filling - Search Filings 둘러보기 (5) (0) | 2025.03.13 |
금융 전문가 Agent - Fred API (3) (0) | 2025.02.21 |
금융 전문가 Agent - StateGraph (2) (0) | 2025.02.19 |
금융 전문가 Agent - 오픈소스 FinRoBot (1) (1) | 2025.02.07 |