AYNIG — LLM 결과를 통제 가능한 구조로 만든 곡물 투자 AI 시스템
개발
2025. 09 - 2026. 02

AYNIG — LLM 결과를 통제 가능한 구조로 만든 곡물 투자 AI 시스템

22주 부스트캠프 AI Tech 8기 RecSys 트랙 과정의 최종 팀 프로젝트. 뉴스 30만 건을 이벤트 스키마로 정형화하고, LLM을 판단·실행 오케스트레이터로 설계. ReAct 패턴 기반 AI Agent + 마이크로서비스 아키텍처로 응답 시간 30초 → 1초 이내 달성. 백테스트에서 밀·옥수수·대두 3종목 모두 Buy & Hold 대비 수익률 우위 기록.

응답 시간 개선

30x

30초 → 1초 이내 (SSE 스트리밍)

백테스트 수익률

3/3

밀·옥수수·대두 전 종목 Buy & Hold 대비 우위

처리 데이터

296,514건

2017–2025 곡물 뉴스 정형화

PythonPyTorchNLPHugging Face
Server 설계API 구현데이터 파이프라인 구축LLM 검증 워크플로우 설계Tool 인터페이스 설계

Overview

22주 커리큘럼 기반으로 RecSys 전공 트랙을 이수하며 대회 2개를 거쳐 완성한 최종 팀 프로젝트. 뉴스를 '계산 가능한 데이터'로 정형화하고, LLM이 결론을 내리는 것이 아니라 판단 근거와 흐름을 단계적으로 제시하는 AI Agent 시스템을 설계했다.

22주 커리큘럼 기반 성장

AI Core 공통 9주 + RecSys 전공 12주. 대회 2개 → 최종 시스템 프로젝트 순서로 이론·실습·서빙 End-to-End 경험

LLM 오케스트레이터 설계

LLM을 답변 생성기가 아닌 판단·실행 통제 모듈로 제한. ReAct 패턴 + LangGraph 3노드 구조로 도구 호출과 응답 생성을 분리 설계

마이크로서비스 아키텍처

Agent / Price / Event 서버 분리 + FastAPI Cloud Orchestrator. GPU 서버 3대 + GCP 기반 외부 배포 환경 구축

이벤트 스키마 기반 데이터 정형화

비정형 뉴스 → 스키마로 구조화. LLM 출력을 검증 가능한 중간 단위로 제한

실시간 응답 최적화

SSE 스트리밍 + Python async 처리로 응답 30초 → 1초 이내. GIL 한계를 비동기 설계로 극복

RAG 기반 뉴스 큐레이션

Qdrant 네이티브 Range 필터 + Amazon Titan 임베딩. 한국어 질문 → 영어 번역 후 코사인 유사도 검색

Problem

22주, 3개 프로젝트 수행
네이버 부스트캠프 AI Tech 8기는 AI Core(공통 9주) → AI Production(RecSys 전공 12주)의 단계적 구조로, 전원이 공통 기초를 먼저 학습한 뒤 한 트랙을 전공으로 선택한다.
  • AI Core (공통, 9주): PyTorch 기초 / ML Lifecycle / EDA & 데이터 시각화 / Generative AI
  • AI Production (RecSys 전공, 12주): 추천 시스템 모델링 심화 / Product Serving / 모델 최적화·경량화
교육 과정
단계기간내용형태
Core9주PyTorch / ML / EDA 등이론 + 실습
Production 1초반영화 추천 시스템팀 대회
Production 2중반도서 평점 예측팀 대회
Production 3후반AYNIG AI Agent 시스템팀 자유 프로젝트
LLM 기반 시스템 설계의 구조적 문제
① LLM 출력을 신뢰할 기준이 없음
  • 뉴스 해석은 확률적·맥락 의존적 → Hallucination 발생 가능성 상시 존재
  • 프롬프트를 수정해도 개선됐는지 측정할 기준 자체가 없는 상태
  • "LLM 이벤트가 실제 가격 데이터와 정합적인가"를 검증할 구조 필요
② 비정형 뉴스를 모델 입력으로 쓸 수 없음
  • 원문 텍스트를 그대로 feature화 → 고카디널리티 / sparsity 문제
  • 공급·수요 인과관계와 가격 변동의 방향·강도를 수치화하는 정형화 스키마 선행 필요
③ 실시간 응답 불가능
  • 다중 서버 동기 호출 + 전체 응답 완료 후 반환 구조 → 응답 대기 30초 이상
  • Python GIL 구조상 멀티스레드로는 해결 불가 → 비동기 설계 전환 필요

Solution

솔루션 요약
문제BeforeAfter
LLM 검증 기준없음GT 100건 + 1d/3d/5d Multiple Time Window 검증
뉴스 정형화원문 텍스트 그대로event_type / mechanism / impact / confidence 8개 필드 스키마
응답 시간30초 이상 (동기 처리)1초 이내 (SSE 스트리밍 + async)
① LLM 통제 구조: 검증 가능한 중간 판단 단위 설계
  • Event schema 정의: event_type / mechanism / impact_direction(-1·0·1) / impact_strength(1·2·3) / confidence
  • LLM 출력 → 스키마 정형화 → GT 100건 구축 → 1d/3d/5d Multiple Time Window로 실제 가격 변화와 비교 검증
  • 오답 패턴 3종 분류 (품목 인식 오류 / 과잉 라벨링 / 단어 매칭 오류) → reasoning 기반 Thinking Path 포함 V3 프롬프트 설계
② 뉴스 정형화 파이프라인: 비정형 → 구조화 자동 전환
  • LLM(Llama3-8B)으로 뉴스 기사를 이벤트 스키마로 변환 → vLLM 분산 처리로 30만 건 대응
  • 휴장일 뉴스 → 차기 개장일 매핑으로 시계열 정합성 확보
  • 뉴스 빈도(Quantity) + 영향력 강도(Quality)를 결합한 Net-Impact 지표 설계
③ 비동기 서빙 구조: Python GIL 한계 극복
  • FastAPI async + SSE 스트리밍 적용 → 질문 즉시 진행률 피드백, 1초 이내 첫 응답
  • Agent / Price / Event 서버 분리 + Cloud Orchestrator FastAPI 중심 마이크로서비스 구조
본문 이미지

Implementation

LLM 검증 워크플로우 및 Event Server 설계
  • 뉴스 데이터를 투자 의사결정 구조로 재정의 → LLM 역할을 자유 해석기가 아닌 스키마 출력 모듈로 제한
  • GT 100건 직접 구축 (confidence Low:Mid:High = 3:4:3 비율 선정, 근거 메모 포함)
  • Multiple Time Window 검증 설계: 1d(단기·노이즈 多) / 3d(안정적 시장 반응) / 5d(지속 방향 신호)
  • 오답 패턴 3종 분석 → V3 프롬프트 솔루션 설계:
    • Pattern 01: 다중 품목 누락 → Multi 규칙 명문화
    • Pattern 02: 비사건성 뉴스 과잉 라벨링 → Impact 0 Few-shot 예시 추가
    • Pattern 03: Macro 단순화 → 경제 추론 Thinking Path 강제
  • Agent용 Event 분석 Tool 인터페이스 구현 / GitHub Project·Issue·브랜치 전략으로 팀 협업 프로세스 주도
AI Agent 아키텍처
  • ReAct 패턴: 사용자 질문 분석 → 필요 도구 선택 → 병렬/순차 실행 → 최종 응답 생성
  • LangGraph 3노드 구조: 분석(Classifier) → 도구 호출 → 응답 생성(CoT 전략)
  • 5가지 Tool: 가격 예측 / 과거 가격 조회 / 이벤트 분석 / 통계 집계 / RAG 검색
  • 3단계 프롬프트 체인: System Prompt(페르소나 정의) → Analysis Prompt(질문 분류기) → Response Prompt(CoT 기반 답변)
가격 예측 모델
  • XGBoost: 단기 예측. RSI / MACD / Bollinger Bands 등 기술 지표 + 뉴스 이벤트 feature 결합
  • DLinear: 중장기 추세 예측
  • Airflow 자동화 파이프라인 구축 → TradingView 데이터 수집 + Google Drive 자동 연동
RAG 시스템 및 서빙 인프라
  • Qdrant Vector DB: 네이티브 Range 필터 + 복잡한 시계열 조건 조합으로 밀리초 단위 검색
  • Amazon Titan Text Embeddings: 한국어 질문 → 영어 번역 후 임베딩 → 코사인 유사도 검색
  • GCP Compute Engine 기반 외부 배포 / GPU 서버 3대 운영
본문 이미지

Problem Solving

LLM 판단 개선에 대해, 프롬프팅의 한계
  • 문제: GT 기반 V3 프롬프트 적용 후에도 성능 향상이 수치로 드러나지 않음
  • 원인: 비전문가가 구축한 소규모(100건) GT는 모델 내재 편향 제거에 구조적 한계 존재 → 개선 효과 과소평가 가능
  • 해결: "프롬프트가 무의미하다"가 아니라 "GT 품질과 모델 체급이 함께 개선돼야 효과가 드러나는 단계"로 결론 재정의 → 한계를 설계 요인으로 명확히 문서화
  • 결과: 오답 패턴 3종 분류 자체는 유효 → 이후 더 큰 GT와 상위 모델 적용 시 개선 방향 확보
  • 인사이트: LLM 검증은 GT 품질이 전제돼야 한다. 수치 없는 개선은 설계 방향만 남긴다
DeepSeek-R1 적용 실패, 긴 추론이 파싱을 깬다
  • 문제: DeepSeek-R1-distill 적용 시 내부 추론 과정이 길어져 정해진 스키마로 결과 추출 불가
  • 원인: 모델이 구조화된 JSON 출력 전에 장문의 내부 추론을 먼저 생성 → 파싱 에러 빈발
  • 해결: 운영 효율(반복 실험 속도)과 출력 파싱 안정성을 기준으로 Llama3-8B 선택
  • 결과: Qwen2.5-32B(운영 비용), DeepSeek-R1(파싱 불안정) 제외 → 모델 선정 근거 데이터로 확보
  • 인사이트: 모델 성능 수치보다 실제 운영 조건에서의 안정성이 선정 기준의 우선순위다
응답 30초 지연, 동기 처리 구조가 원인
  • 문제: AI Agent 응답 시간 30초 이상 → 실사용 불가
  • 원인: Python GIL로 인해 멀티스레드 병렬 처리 불가 + 다중 서버 호출 동기 처리 + 전체 완료 후 일괄 반환
  • 해결: FastAPI async + SSE 스트리밍 적용 → 질문 즉시 진행률 표시, 부분 응답 순차 전달
  • 결과: 첫 피드백 1초 이내 달성. Polars Lazy 처리 도입으로 DataFrame 로드 속도·메모리도 개선
  • 인사이트: 응답 속도 서빙 구조 좌우할 수 있다

Insight

LLM은 모듈로 제한할 때 효과적
  • LLM에게 자유롭게 결론 내리도록 두면 시스템 전체가 설명 불가능해진다
  • 역할을 스키마 출력 모듈로 제한하고, 출력을 검증 가능한 중간 단위로 만드는 것이 먼저
  • "AI를 정답을 요구하는 대상이 아니라, 목적을 달성하기 위해 설계하고 통제해야 하는 도구로 인식"하게 된 프로젝트
데이터 처리 역량은 누적된다
  • 대회 과정에서 쌓은 feature engineering / 분포 분석 / 재현 가능한 실험 설계 역량이 AYNIG 파이프라인 설계 기반이 됐다
  • 22주 커리큘럼이 준 것은 기술 스택이 아니라 "데이터를 구조로 보는 사고 방식"
서빙 구조는 모델만큼 중요한 설계 변수다
  • 응답 30초 지연은 모델 문제가 아니었다 → Python GIL + 동기 구조의 문제
  • Llama3-8B 선택도 성능 수치가 아닌 반복 실험 속도·파싱 안정성 기준으로 결정
  • AI 시스템에서 운영 가능성은 아키텍처 설계 단계부터 고려해야 한다

Result

Outcomes

  • 응답 시간 30초 → 1초 이내 — SSE 스트리밍 + Python async 처리 적용. GIL 한계를 비동기 설계로 극복

  • 백테스트 수익률 우위 — 100일 과거 데이터 기반 시뮬레이션. 밀·옥수수·대두 3종목 모두 단순 Buy & Hold 대비 모델 시그널 참고 시 수익률 우위 기록

  • 뉴스 296,514건 정형화 — 2017~2025 비정형 뉴스를 이벤트 스키마(8개 필드) 기반 구조화 데이터로 자동 변환

  • LLM 검증 구조 설계 — GT 100건 + 1d/3d/5d Multiple Time Window 검증. 오답 패턴 3종 분류 → V3 프롬프트 개선 반복

  • 5가지 Agent Tool 구현 — 가격 예측 / 과거 가격 조회 / 이벤트 분석 / 통계 집계 / RAG 검색. 병렬·순차 실행 지원

  • 모델 선정 근거 확보 — Qwen2.5-32B(운영 효율 열위), DeepSeek-R1(파싱 에러)를 실험으로 제외 → Llama3-8B 채택

Before / After Metrics

AI Agent 응답 시간

30초 → 1초
Before30
After97% 감소

뉴스 데이터 구조화

0건 → 296514건
Before0
After296514건

AYNIG — LLM 결과를 통제 가능한 구조로 만든 곡물 투자 AI 시스템 · Portfolio · Sojin Lee