LLM 으로 금융데이터 다뤄보기
bloomberg 채용공고 를 보면 Code Generation 을 할 수 있는 LLM(언어모델) 전문가를 뽑는것을 알 수 있습니다. 모두들 Bloomberg 하면 BloombergGPT 만 이야기를 하는데 사실 Code Generation 이야 말로 금융을 혁신할 수 있다고 생각합니다.
이미 학계에서는 언어모델이 Code 를 다루게하는것은 오래전 부터 논의되어왔던 연구주제이기도 하죠. Code + LLM = Better Reasoner 즉, Code 를 훈련시킨 LLM 은 Reasoning 을 더 잘한다는 연구부터 단순히 코드를 Generation 하는것을 넘어 Execution 하여 결과를 Reasoning Path 에 넣는 연구까지 코드를 활용하면 언어로 하기 어려운 많은 복잡하고 반복된 작업을 가능하게 만들기도 합니다.
이 작업을 간단하게 정리해보면,
유저가 Random Data 를 생성하라고 하고 Best Fitting Line 을 그려달라는 질문에 GPT4 는 언어로는 이 작업을 할 수 없지만 코드를 사용하면 단순한 계산 뿐만 아니라 이미지를 매개로 사람한테 더 효과적인 정보전달까지 가능하게됩니다.
또 이를 언어모델과 코드 능력이 가장 잘 발휘될 수 있는 분야가 금융이라고 생각합니다. (수치데이터 처리와 언어능력을 이용한 비정형 데이터처리)
GPT4 + Code
우선 GPT4 가 Code 를 이용할 수 있게하려면
Jupyter Notebook (멀티턴 대화시 반복되는 변수를 저장하도록)
GPT4 API + Code Extraction + Logic Controller
가 필요합니다.
자세한 구현 설명은 Jupyter Notebook , GPT4Code Interpreter 코드 링크로 대체하도록 하겟습니다.
금융질문 물어보기
간단한것 부터 시작해보도록 하겠습니다.
엔비디아의 90일 차트를 띄어달라고 했습니다. yfinance 를 이용해서 데이터를 가져오는것을 확인할 수 있습니다. GPT4 가 Plt.show() 를 했기 때문에 아무것도 보이지 않는 모습입니다.
이부분을 SYSTEM_PROMPT 에 넣어보도록하겠습니다.
그리고 조금 더 어려운 질문을 해보겠습니다. 그런데 저는 금융전문가도 아니고 금융 질문을 잘 모르기때문에 GPT4한테 어려운 질문을 만들라고 시켜보겠습니다. Evo-Instruct 같은 방법을 사용해서 이런 과정을 자동화할 수도 있습니다. 비슷한 방법을 사용해 좀 더 어려운 질문인
Can you plot btc chart with two lines. two lines at t is defined by moving average(window 20days) price at (0:t-1) +(-) variance of (0:t-1)을 얻었습니다. GPT4 의 결과를 보도록 합시다.
최근에 비트코인이 mean +varaince 의 upper bound 를 깨고 올라온 모습을 확인할 수 있습니다. 기존의 가격 평균과 변동성을 초과한 어떤 움직임이 있었다는 이야기겠죠?
What's Next?
해당 Youtube 클립을 보면 카이스트 교수님이 연구의 많은 부분이 현재는 1%의 천재가 돌파구를 제시하는 식으로 이어진다고 합니다. 그런데 언어모델이 인간보다 훨씬 더 많은 정보를 동시에 볼 수 있기 때문에 더 많은 정보처리가 가능하고 언어모델이 앞으로의 연구방향을 제시하고 결과적으로 전체적인 기술발전이 자가발전을 할 수 있지 않을까 하는 식으로 설명을 하고있습니다. 다시 서론의 Bloomberg 로 돌아가서 만약 모든 금융데이터를 API화하고 여러 소스들을 조합할 수 있다면 어떻게 될까요? 인간은 많아봐야 3,4개의 데이터소스를 조합할 수 있는데 (예시 : 금리와 소비의 상관관계는 어떻게돼? - 2개) 만약 언어모델이 스스로 더 많은 데이터를 다룰 수 있고 Program Execution 결과로 부터 자가비판을 통해 스스로 더 개선된 결과를 낼 수 있다면 시장의 새로운 Alpha 를 찾을 수도 있지 않을까요?
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.