AI 투자 리서치 에이전트

공시, 시세, 수급, 뉴스를 종합하여 주식종목을 분석하는 AI 에이전트

스크린샷

투자 판단에 필요한 정보는 너무 분산되어 있다. 차트, 공시, 재무, 수급, 거시지표, 뉴스를 매번 따로 열어보는게 비효율적이라 AI 비서를 만들어보고 싶다는 욕심이 있었는데, 토스증권의 AI 시그널 기능을 보고 이와 비슷한 기능을 만들어보고자 했다. 다만, 의료나 금융처럼 정확성이 중요한 도메인에서 LLM을 활용하고자 할 때, 낙관적 평가에 치중된 결과나 근거 없는 추측이 섞인 답변은 꽤 까다로운 장벽이다. 이를 해결하고, 실제로 참고할 수 있을만한 답변을 내놓는 에이전트를 개발해보고자 했다.

github 링크

데이터

데이터는 다음 네 곳에서 수집한다.

  • PyKRX: 시세와 외인,기관 수급 및 공매도 데이터
  • DART: 공시 이벤트와 분기 재무제표
  • FRED: 한미 금리, 환율, VIX 등의 거시지표
  • 네이버 RSS: 종목 뉴스

GCP, Gemini API 비용을 최소화하여 개발하고자 했기 때문에, 다음 8개 종목에 대해서만 데이터를 수집한다.

  • 삼성전자, SK하이닉스, 현대차, 네이버, 카카오, 셀트리온, KB금융, 한화에어로스페이스

시스템 구조

시스템 구조

사실 추출과 추론 부분을 분리하여 근거 없는 사실 및 추측은 제거한 후, 정리된 사실 근거를 LLM에 입력으로 넣는다. 이때, 사실 추출 단계에서 모든 문장에 ID를 부착해 fact_pack 형태로 묶고, LLM을 이용한 추론 파트에서는 fact_pack만 참조하도록 강제했다. 추론 결과는 날짜별로 캐시 테이블에 적재해 재호출 비용을 줄였다.

LLM 생성 결과에 대한 검증은 아래 4단계로 이루어진다.

  • 출력에 ‘예상된다’, ‘전망된다’ 와 같은 추정형 표현이 섞여있을 경우 정규표현식으로 차단
  • fact_pack에 없는 인용 ID가 발견되면 다음 노드로 전달되기 전에 제거
  • 각 문장이 인용한 근거와 일치하는지 이진 판정으로 검증하고, 실패 시 재생성 요청
  • 한국어 여부 및 추정형 표현 잔존 여부 확인

또한, 매수 근거 노드와 매도 근거 노드를 분리하고, 균형잡힌 결과를 추출하기 위해 한쪽 근거가 2개 미만이면 해당 노드의 답변을 최소 2개 이상 생성하도록 재요청한다

한계

  • 투자 조언을 위한 AI 비서에게 사용자는 ‘이 종목에 투자해도 될까?’를 궁금해 할 것이지만, 충분히 검증되지 않은 에이전트에서 투자 조언을 하는 것은 부적절하기에, 투자에 대한 긍정/부정적 근거는 강제로 균형있게 생성하도록 했다.
  • 에이전트가 생성한 결과 정확성 테스트가 충분하지 않다. 현재는 아래 2가지 테스트를 진행했다. 향후 좀 더 타당한 테스트를 진행할 필요가 있다.
    • 토스증권의 AI 시그널 결과를 임시 테스트셋으로 하고, 약 50건의 데이터로 공통의 근거 언급이 있는지 여부를 확인
    • 에이전트에서 생성한 결과 및 인용 근거가 거짓이 아닌지 확인

© 2024. All rights reserved.

Powered by Hydejack v9.2.1