1. OfflineRL for Trading with Decision Transformer (GPT2)
한줄요약: OfflineRL for Trading with Decision Transformer (GPT2)
시간 | 요약 |
---|---|
01:04 | 사용자들은 모델의 포지션을 확인하고, 과거 성과를 기반으로 신뢰할 수 있는 모델을 선택하여 트레이딩을 진행할 수 있음. |
01:32 | 오프라인 강화 학습의 중요성이 강조되며, 퀀 기반 알고리즘과 예측 모델이 트레이딩에서 유용함. 퀀 모델은 기술적 지표를 활용하고, 예측 모델은 가격 예측에 중점을 둠. |
02:03 | 지속적인 발전을 위해 노력하고 있으며, 사용자와의 소통을 강화하기 위한 계획을 세우고 있음. |
02:33 | 강화 학습은 고정된 데이터셋을 통해 최적의 정책을 학습하는 방식으로, 로보틱스와 트레이딩 등 위험이 큰 분야에서 활용됨. |
04:34 | 디시전 트랜스포머는 트랜스포머 구조를 기반으로 하여 시퀀스 데이터를 처리하고, 상태, 행동, 보상 정보를 활용하여 다음 행동을 예측함. |
08:02 | 모델의 행동이 변동성이 큰 구간에서 수익에 미치는 영향을 분석하고 있으며, 이러한 분석을 통해 더 나은 모델 개발이 가능할 것으로 기대됨. |
08:33 | 모델의 행동 그래프에서 변동성이 큰 구간이 나타나며, 이로 인해 수익의 감소와 증가가 발생함. 데이터의 유한성으로 인해 모든 상황을 반영할 수는 없지만, 다양한 모델 활용이 안정적인 수익을 가져올 수 있음. |
09:02 | 모델의 행동 변화가 거래 비용과 슬리피지 수수료에 미치는 영향을 고려해야 하며, 보상 체계에 이러한 요소를 반영할 필요가 있음. |
09:34 | 데이터 수집과 모델 훈련, 배포 과정이 체계적으로 이루어지고 있으며, 각 모델마다 데이터 배치와 스케줄링이 다름. |
11:02 | 시스템 유지 비용을 충당하기 위해 트레이딩 시스템의 수익을 활용하고 있으며, 서비스는 사용자 관심을 기반으로 수익을 창출하고자 함. |
11:33 | 금감원과의 절차 논의가 진행 중이며, 심사 결과에 따라 회원제 도입과 부가 기능 제공 방안을 검토하고 있음. |
2. 스크립트
안녕하세요. 오늘은 제가 학습하는 트레이딩 모델의 훈련, 오프라인 강화 학습 기반 무대를 중점으로 살펴보고, 훈련 모델의 어떤 요소들을 트레이딩 외 서비스에 이용할 수 있는지 알려 드리도록 하겠습니다. 사실 과거 저 영상들을 뒤져보면 중복되는 내용들이 좀 있을 텐데, 새로 유입되는 분들이 꾸준히 늘고 있어서 아무래도 반복되는 이야기를 해야 되는 점 양해 부탁드립니다. 그래서 제목은 '오프라인 R시전 트랜스포머'인데, 보통 기본 디시전 트랜스포머에서 GPT-2로 되어 있어서 GPT-2 트랜스포머의 디시전 트랜스포머 버전을 살펴볼 예정입니다. 예전에도 말씀드린 적 있지만, 제가 트레이딩 모델로 활용할 수 있는 종류는 여러 가지가 있지만, 저는 퀀에 기반한 알고리즘 모델들, 그리고 예측 모델과 강화 학습 모델까지 활용하고 있습니다. 또한, 퀀들은 우리가 아는 기술적인 지표가 어느 수치 이상이면 매수 또는 매도를 결정하는 인간 중심적인 모델입니다.인간이 직관적으로 생각했을 때 그런 알고리즘 전략들을 생각해 낼 수 있고, 퀀도 AI 트레이딩도 다 여기서부터 시작했었던 모델들이에요. 그래서 다른 모델들에 비해 간단하지만 무시할 수 없는 모델입니다. 왜냐하면 과거부터 현재까지 계속해서 유의미한 수익을 내고 있는 모델들이기 때문이죠. 그리고 두 번째는 예측 모델입니다. 예측 모델은 제가 주로 다뤄왔던 모델들이고, 주로 시계열을 분석해서 가격의 예측에 중점을 둔 모델들입니다. 가격의 예측을 기반으로 매수나 매도에 의견을 낼 수도 있겠지만, 손실 함수 자체가 예측의 MSE를 보다 보니까 트레이딩 모델로 활용하기보다는 예측을 잘하는 모델로 훈련이 되었기 때문에 아쉬운 점은 있습니다.
그래도 매수나 매도에 대한 의견과 투자 수익을 학습 과정에 반영할 수 있으면 더 좋은 모델이 될 수 있겠죠. 마지막은 강화 학습인데, 강화 학습은 주로 온라인 러닝 영역에 알고리즘들이 많이 널려 있고, 학습할 것들도 그쪽 영역이 더 많은데, 저는 시장 데이터를 수집해서 학습을 시키기 때문에 실제 상호 작용할 수 있는 환경이 아니라 오프라인에서 학습을 하는 거잖아요. 그래서 오프라인 러닝 강화 학습을 이용한 학습을 합니다. 이번에 서비스를 개편하면서 강화 학습을 여러분들께 선보일 수 있도록 시스템을 좀 수정하고 있는데, 과정에서 일어났던 일들을 조금씩 기록해 보려고 합니다. 그다음이 코드가 디시전 트랜스포머 모델의 포워드 함수거든요. 이전에도 디시전 트랜스포머에 대해서 다룬 적은 있는데, 간단하게 디시전 트랜스포머와 오프라인 강화 학습에 대해서 알아보도록 하겠습니다.
우선 오프라인 강화 학습 에이전트가 실시간으로 내가 정복하고자 하는 환경과 상호 작용하는 거 없이 고정된 데이터셋으로 학습하는 방법인데, 실제 환경에서 학습하기에 적합하지 않은 모델들이 있어요. 그런 경우에 이런 방식을 많이 활용합니다. 대신에 미리 수집된 데이터셋을 이용해서 최적의 정책을 학습하는 방법이죠. 트레이딩의 환경의 경우도 제가 이전에 공유했던 것처럼 합성 데이터를 이용해서 훈련하는 방법도 있지만, 아직 실험적인 단계 수준이잖아요. 로보틱스, 의료, 트레이딩 등 환경과 상호 작용이 위험하거나 비용이 높은 경우에 학습을 합니다. 그 대신에 학습 데이터 분포를 좀 주의해서 다룰 필요가 있는데, 학습 데이터로 가져온 데이터 내의 분포만 학습이 이루어지고, 새로운 데이터와 상호 작용을 하다 보면 더 많은 시행착오를 겪어야 할지도 모릅니다.
사실 이런 것들에 주의하기 위해서 나온 모델들과 논문들이 많은데, 그런 부분들도 다시 차츰차츰 여러분들께 공유하고, 그런 것들을 어떻게 적용했는지도 공유할 예정입니다. 시장은 알 수 없는 변동성이 넘치는 것 같다가도 현재 보이는 패턴들이 과거에도 많은 모습을 보이고 있다는 걸 찾아볼 수 있습니다. 그래서 갑작스러운 변동성의 알고리즘의 알파가 무너질 수 있지만, 결국 확률 위에 추세를 이용한 모델들은 시장 이상의 성과를 낼 수 있다고 믿습니다. 요즘엔 동네 할머니, 할아버지들도 최치비트를 이제 알더라고요. 그만큼 인간에게 필요한 서비스, 가치 있는 서비스가 나오면 최전선의 기술이 닫기 어려운 사람들에게도 손쉽게 전달되는 것 같아요. 그러면서 세상에 더 많은 가치가 나오고, 더 살 만한 세상이 되는 것이 아닌가라는 생각으로 저도 열심히 노력하고 있습니다.
GPT라는 것도 결국 T가 트랜스포머의 약자예요. 그래서 디시전 트랜스포머와도 큰 부류에는 트랜스포머라는 같은 소속을 가집니다. 이 트랜스포머는 시퀀스 어텐션으로 중요한 포인트들을 잘 짚어내고, 이를 이용해서 오프라인 강화 학습을 시퀀스 모델링 문제로 재구성한 모델이 디시전 트랜스포머입니다. 전통적인 강화 학습에서는 가치 함수 학습, 정책 경사 같은 것들에 대해서 학습을 했는데, 과거 상태, 행동, 그리고 그에 따른 보상이라는 것을 1년의 시퀀스로 기존 시계열 예측 모델이 시계열 데이터 자체를 예측했으니.... 트랜스포머에서는 시계열 데이터인 상태와 그에 따른 행동 및 보상을 1년 동안 시계열로 보는 겁니다. 그래서 트랜스포머의 병렬 처리와 장거리 의존성 학습 능력을 이용해 긴 시퀀스의 특징들을 포착하고, 현재 상태와 내가 지금까지 받은 보상에 기반해 다음에 유리한 행동들을 해 나가게 되는 거죠.
강화 학습 자체가 이 환경의 상태를 보고 행동을 하는 모델인데, 입력도 스테이트, 액션 등을 봤습니다. 그런데 트레딕토리 데이터로 학습하는 오프라인 강화 학습이기 때문에 이 트라토리로 볼 수 있는 보상과 리턴 투고 등이 더 추가됩니다. 그래서 정리해 보면 입력은 상태, 행동, 보상, 예상 누적 보상, 그리고 타임스텝과 어텐션 마스크 등이 필요합니다. 이러한 입력에 대해 트랜스포머의 출력은 다음 상태를 예측하고, 다음 행동, 그리고 다음 리턴스를 예측합니다.. 제가 예전 버전 라이브러리를 사용해서 그런지 모르겠는데, 이 모델의 디바이스를 GPU로 설정해도 어텐션 마스크는 처리되지 않는 이슈가 있습니다. 클래스에서 어텐션 마스크를 모델의 보드에 넣지 않았을 때 어텐션 마스크가 안 들어왔으면, 클래스 내에서 어텐션 마스크를 생성해 주는 로직은 있지만, 그 부분에 디바이스로 옮겨주는 로직은 없더라고요.
그래서 어텐션 마스크를 별도로 지정하지 않고 실행하면 에러가 날 수 있는데, 학습 시 입력을 넣어줄 때 어텐션 마스크를 별도로 지정해서 디바이스로 옮겨주고 학습을 했던 기억이 납니다. 예를 들어서 클래스 내에서 어텐션 마스크 지정 코드는 이렇게 되어 있는데, 지금 디바이스로 이동해 주는 코드가 없습니다. 그래서 어텐션 마스크를 꼭 넣어야 이 로직이 작동합니다.. 이제 인베딩 부분을 보겠습니다. 인베딩이라고 하는 것은 우리가 이 함수에 넣어주었던 모델에 넣은 데이터들을 다른 차원의 공간의 데이터로 변환하는 것입니다. 각 입력은 별도의 인베딩 레이어를 거쳐 고정된 히든 사이즈의 차원으로 변환됩니다.
그리고 타임스텝은 인코딩처럼 처리되어 각 인베딩에 추가되어 포지셔널 인베딩 역할을 할 수 있겠죠. 곧바로 시퀀스를 구성하는데 입력은 RSA, 그 다음 RSA 이런 식으로 쌓여 나갑니다.. 강화 학습을 공부하다 보면 고전적인 알고리즘에는 '쌀쌀'이라는 것이 나오죠. '쌀쌀'은 거의 약자가 SARS로, 여기서 나온 것입니다. 상태, 행동, 보상, 상태, 행동, 보상. 그래서 '쌀쌀'한 알고리즘도 과거에 있었습니다.
결국에는 중첩된 인풋을 만들고 레이어 노멀라이제이션도 진행합니다. 그 다음에는 어텐션 마스크인데, 어텐션 마스크도 RSA 순서에 맞게 세 배로 확장되어 처리됩니다. 트랜스포머의 인코더는 여기서 GPT-2에 기반해 시퀀스를 처리하고 문맥 정보를 학습하겠죠. 출력은 배치 사이즈, 시퀀스 길이의 세 배, 그리고 히든 사이즈, 그리고 출력을 재구성하는 과정, 마지막으로 예측을 생성해내는 과정이 모델 디시전 트랜스포머 기반의 디시전 트랜스포머 모델의 포워드 함수였습니다.. 이런 1년의 과정들을 훈련하면서 계속 진행하고, 예측 행동이 정답 행동과 비교해 보면서 미분을 계속 진행해 가면서 학습이 되겠죠. 간단하게 이번 하락장에 대해 말씀드리면, 빨간선이 시장 그래프입니다.
하락장에 대해 훈련을 진행해 봤습니다. 하늘색, 주황색, 초록색 모델의 성과들은 파라미터 수를 조금 변화시켜 가면서 트레이딩 시뮬레이션을 동작시켰고, 보수적인 행동들을 쌓아가다 보니 처음에는 시장보다 저조한 수익을 보이다가 결국에는 시장을 능가하는 모습을 보였습니다. 이번 케이스는 너무 안정적으로 수익이 쌓여가서 아마 일부 데이터의 루코헤이드 바이어스 데이터가 있는지 살펴봐야 할 것 같습니다.. 두 번째 차트는 모델의 행동 그래프인데, 보시는 바와 같이 상태들을 보고 최적의 행동들을 선택하고 있습니다. 중간에 행동들이 주파수 모양처럼 변동성이 심한 모습을 보이고 있죠. 학습 데이터에서 저런 행동이 유의미하게 작용했기 때문에 저런 행동을 하는 것으로 보이는데, 이렇게 변동성이 큰 구간에 오히려 수익이 감소하는 경향도 있고 오르는 경우도 있습니다.
실제 데이터는 테스트 데이터이기 때문에 이 구간에서는 모델이 경험하지 않은 데이터들을 본 것입니다. 이런 전략을 취했음에도 언제나 학습한 데이터가 유한하다 보니 모든 상황을 다 정보할 수는 없습니다. 하지만 만약 우리가 이 세 개의 모델들을 다 활용했으면 더 안정적으로 수익을 낼 수 있었겠죠.. 사실 저렇게 행동을 마구 바꿔가면서 트레이딩을 하는 것은 거래 비용이나 슬리피지 수수료를 생각했을 때 좋은 행동이 아니기 때문에, 이런 부분들까지 행동의 보상으로 반영해 주면 더 좋은 모델이 될 것 같습니다. 모델의 생애 주기를 한번 살펴보면 이렇습니다. 제가 데이터를 수집하고 가공하는 과정, 그리고 여러분들께 서비스로 제공되는 시점까지 간단한 흐름을 그려봤습니다.
데이터의 수집과 모델 훈련을 위한 가공.. 그리고 모델 훈련, 배포, 자동화된 데이터 배치와 출론 스케줄링, 그리고 하나의 웹 서비스를 위한 채테크랩 서비스들까지 제가 모두 구현하고 있습니다. 더 세부적으로 이야기하면, 처음에 이야기했던 모델의 종류마다 서비스에서 보여지는 데이터의 역할도 다를 거죠. 그래서 모델마다 어떤 데이터 배치가 있는지도 다르고, 어떤 스케줄링도 다르며, 프리미엄 고객들에게 제공되는 데이터도 따로 있기 때문에 그런 영역까지 세세하게 다 컨트롤해 줘야 한다고 보시면 됩니다. 이거는 서비스에 쓰이는 영역이고, 제가 트레이딩에 쓰이는 영역은 또 따로 있겠죠. 그래서 여러분들에게 공개되지 않은 다른 시스템들도 유지 보수하고 개발해야 하기 때문에 제가 많이 찾아오지 못한 점 양해 부탁드립니다..
제가 학습한 모델들을 여러분들이 어떻게 활용할 수 있을지 고민을 많이 해봤는데, 예측 모델은 현대 시장의 예측, 그리고 알고리즘 모델들과 공학습 모델들은 현대 시장의 통계적인 기법을 이용해서 확률적으로 수익을 위한 유리한 포지션을 모델이 생각하는 그대로 실시간으로 공유해 줄 수 있을 것 같아요. 그럼 여러분들은 제 서비스에 와서 모델이 어떤 포지션을 구축하고 있는지 보고, 이 모델이 과거에는 수익률이 어땠는지, 지금 시장에서는 좀 괜찮은 모델인지, 아니면 최근에는 성과가 안 좋았지만 지금은 믿어볼 만한 모델이라고 판단하면 그런 모델을 따라서 트레이닝을 할 수도 있습니다. 여러분들이 직접 여러분들에게 맞는 모델들을 꾸려서 이런 모델들로 했을 때 수익이 어땠는지 백테스트해 보고, 상호 작용할 수 있는 요소들을 고민하고 있습니다..
그래서 1년의 과정에는 시스템을 유지하고 개발하고, 또 데이터를 사오는 데도 비용이 많이 들어가고 있거든요. 그래서 지금은 제가 트레이딩 시스템에서 벌어들인 돈으로 충당하고 있는데, 트레이딩 시스템은 제가 스스로의 레버리지를 일으켜서 하는 돈벌이라면, 서비스는 사업이죠. 그리고 제가 여러분들의 관심을 바탕으로 일으키는 돈벌이고, 그 과정에서 이 돈 이외에도 가치라는 게 세상에 뿌려지기 때문에 서비스를 출시하고 싶은 마음이기도 합니다..
그래서 사업의 현황에 대해서 공유를 드리면, 지금 아직도 금감원과 관련된 절차에 대해서 논의를 하고 있고, 조만간 심사 결과가 나올 것 같긴 합니다. 심사 결과가 나오면 아마도 유튜브 채널에 회원제를 도입해서 아이디를 발급해 주거나 인증된 회원분들에게만 서비스의 부가적인 기능을 더 제공하는 방안으로 논의를 했고요. 올해는 그런 것들을 깔끔하게 다 처리해서 서비스화했으면 좋겠습니다..
그래서 올해도 시간이 많이 흐르고 슬슬 더워지기 시작하는데, 올 한 해 많은 것들을 이루고 싶은 마음이 커서 급하기도 하지만 또 차근차근 조금씩 일들을 처리해 가고 있습니다. 그래서 앞으로 더 자주 이야기드릴 수 있도록 노력하겠습니다..
3. 영상정보
- 채널명: JeTech
- 팔로워 수: 6,370
- 좋아요 수: 33
- 조회수: 731
- 업로드 날짜: 2025-04-21
- 영상 길이: 12분 8초
- 다시보기: https://www.youtube.com/watch?v=ECiMN6A2dsk