본 기술 블로그는 이화여자대학교 캡스톤창업프로젝트A TechPing팀의 'EASY-STOCK' 개발 기술 블로그입니다.
현재 GPT Pretrained Model이 얼마나 높은 성능을 내는지 확인하기 위해서, Pretrained Model의 성능 검증이 우선되어야 한다고 생각했다.
"주식 전문가" 라고 커스텀한 test GPT Skeleton Model에 "현재 삼성전자 주가" 에 대한 정보를 쿼리했다.
그 결과, GPT Skeleton Model의 응답은 다음과 같았다.
죄송하지만, 저는 실시간 주가 정보를 제공할 수 없습니다.
삼성전자의 최신 주가 정보는 주식 거래 플랫폼, 금융 뉴스 웹사이트, 또는
주식 시장 앱을 통해 확인하실 수 있습니다.
다른 질문이 있으시면 도와드리겠습니다!
OpenAI의 GPT 모델은 실시간 정보를 제공하지 않으며, 학습된 데이터에 기반한 응답만을 생성한다.
따라서 우리 테크핑 팀의 챗봇 '스토기' 의 기능을 구현하기 위해, 증권사 Open API인 Yahoo Finance API를 도입했다.
Pretrained Model의 한계점을 보완하고, 주식 관련 정보를 사용자 맞춤형으로 제공하기 위해 Prompt-Tuning과 Fine-Tuning이라는 두 가지 방법을 고려했다.
- Prompt-Tuning
Prompt-Tuning은 기존 모델의 파라미터를 변경하지 않고, 프롬프트 설계를 통해 원하는 결과를 얻는 방법이다.
이는 빠르게 적용 가능하고, 적은 자원으로도 효과적인 결과를 얻을 수 있다는 장점이 있다.
예를 들어, Skeleton GPT 모델에 아래와 같은 프롬프트 구조를 추가했다.
system_prompt = "당신은 대한민국 주식 시장 전문가입니다."
user_prompt = "삼성전자 현재 주가는?"
하지만 Prompt-Tuning만으로는 다음과 같은 제약이 존재했다.
✅ 정확한 데이터 출처 필요
: GPT 모델은 학습된 데이터로 응답을 생성하므로, 실시간 주가 데이터를 제공할 수 없다.
✅ 응답 신뢰도 부족
: 사용자 요청에 대해 정확성과 맥락을 강화하려면 추가적인 학습이 필요하다.
- Fine-Tuning
Fine-Tuning은 기존 모델의 파라미터를 업데이트하여 특정 도메인 지식을 학습시키는 방식이다.
이를 통해 다음과 같은 목표를 달성할 수 있다.
✅ 주식 시장 전문성 강화
: 뉴스 데이터, 주식 용어 등을 학습하여 GPT 모델이 보다 구체적이고 신뢰도 높은 응답을 생성할 수 있다.
✅ 스토기 특화 응답 생성
: 스토기(Chatbot '스토기')의 정체성을 반영한 답변 스타일 제공.
Fine-Tuning에서는 아래와 같은 데이터셋을 활용했다.
{
"prompt": "삼성전자 주가가 급등한 이유가 뭐야?",
"completion": "삼성전자는 XYZ 발표로 인해 반도체 매출이 크게 증가하면서 주가가 상승했습니다."
},
{
"prompt": "주식 초보를 위한 기본 투자 전략은?",
"completion": "분산 투자와 장기 투자를 권장합니다. 또한 매수 시점과 목표 수익률을 명확히 설정하세요."
}
Prompt-Tuning은 빠른 적용과 테스트에 적합하며, Fine-Tuning은 전문성과 사용자 맞춤형 응답을 강화하는 데 유용하다. 따라서 스토기의 경우, 두 접근법을 병행하여 UX를 극대화하는 전략을 채택했다.
Prompt-Tuning으로 기본 GPT 모델의 한계를 보완.
Fine-Tuning을 통해 스토기만의 특화된 대화 모델 완성.
스토기의 구현 과정은 Prompt-Tuning과 Fine-Tuning의 균형을 통해 빠르게 발전할 수 있었다.
이 방식은 빠른 적용성과 기술적인 깊이를 동시에 만족시키는 최적의 선택이었다.
Fine-Tuning 작업은 OpenAI의 모델에 주식 관련 전문 지식을 추가 학습시키기 위해 이루어졌다. 모델 학습의 주요 과정은 다음과 같다.
1. 데이터셋 구축
Fine-Tuning에 필요한 데이터셋은 주식 관련 질의응답, 초보자를 위한 투자 전략, 실시간 정보를 대체할 수 있는 컨텍스트 기반 답변으로 구성했다. 데이터셋은 JSONL 포맷으로 작성되었으며, 아래는 예시 데이터이다.
"prompt": "초보 투자자에게 분산 투자는 왜 중요한가요?",
"completion": "분산 투자는 리스크를 줄이는 데 필수적입니다. 다양한 산업과 자산에 투자함으로써 특정 주식이나 시장의 부정적 영향을 최소화할 수 있습니다."
}
2. 학습 파라미터 설정
OpenAI Fine-Tuning API를 통해 아래와 같은 학습 파라미터를 설정했다.
openai api fine_tunes.create \
-t "stock_dataset_train.jsonl" \
-m "curie" \
--n_epochs 3 \
--batch_size 32
질문: 주식 초보를 위한 투자 팁 좀 알려줘.
응답: 초보 투자자는 소액으로 분산 투자하며, 장기적인 시각에서 접근하는 것이 중요합니다. 또한, 시장의 흐름을 꾸준히 관찰하세요.
결과 분석
Fine-Tuning을 통해 얻은 결과는 다음과 같은 주요 성과를 보였다.
✅ 전문성 향상
일반 Pretrained 모델에 비해 주식 관련 질의에 대한 응답이 더 구체적이고 신뢰도가 높았다.
✅ 사용자 맞춤형 응답
스토기(Chatbot '스토기')의 특화된 응답 스타일이 반영되어 사용자 경험이 크게 개선되었다.
✅ 실시간 정보 보완
실시간 정보를 직접 제공할 수 없지만, 관련 맥락을 기반으로 유사한 대안을 제시했다.
두 가지 접근 방식을 결합한 최종 스토기 모델은 다음과 같은 구조를 따른다.
Prompt-Tuning
사용자의 질문을 특정 도메인으로 제한하는 시스템 프롬프트 설정.
예: "당신은 대한민국 주식 전문가입니다. 삼성전자 관련 정보를 사용자에게 제공하세요."
Fine-Tuning
주식 관련 데이터셋으로 학습된 Fine-Tuned 모델 사용.
Fine-Tuning의 결과물은 사용자 쿼리에 대해 보다 구체적이고 맥락 있는 응답을 생성.
외부 API 통합 (Optional)
추후 실제 주가 데이터를 제공하기 위해 Open API를 연동하여 실시간 데이터를 제공할 계획.
1) 향후 계획
✅ 주식 초보자를 위한 챗봇 튜토리얼 기능 추가.
✅ AI 모델과 주식 시장의 Open API를 결합하여 실시간 정보 제공.
✅ 주식 용어 및 뉴스 분석 기능을 통해 사용자 학습 지원.
2) 기대 효과
스토기(Chatbot '스토기')는 Prompt-Tuning과 Fine-Tuning의 결합으로, 사용자에게 맞춤형 주식 정보를 제공하며 사용자 만족도를 높일 것으로 기대된다.
주식 초보자부터 숙련자까지 폭넓은 사용자 층을 아우르는 강력한 AI 도우미로 자리 잡을 전망이다.
이제 스토기는 단순한 AI 챗봇이 아닌, 주식 투자 전문가로서의 역할을 할 준비를 마쳤다. 🚀