หลังจากนั่งงมอยู่นานสำหรับการทำ model เพื่อ predict หา asset ที่อาจจะ perform ในสัปดาห์หน้า ในตอนแรกลองใช้ tensorflow แบบ LSTM แต่มีการใส่ input เป็น symbol ของ asset เข้าไปทำให้ต้องแปลงข้อมูลจาก long form หรือที่เรียงเป็น row ให้เป็น wide form ที่จะเกิด column ตาม symbol asset ผลที่ตามมาคือเมื่อ asset มากขึ้น column ก็จะมีจำนวนมากตามขึ้นเรื่อยๆ ทำให้ยากที่จะจัดการเป็นปัญหาแน่นอน เลยหาวิธีอื่นดูเลยไปเจอ GNN (Graph Neural Network) ซึ่งต้องใช้ pytorch ในการทำ
เมื่อใช้ pytorch ผมก็ไม่เคยเขียนมาก่อน เลยให้ AI ลอง Gen code แล้วผมก็ลองประกอบร่างเอาข้อมูลที่มีมา predict ดูผลออกมาไม่ค่อยแม่นยำเลย แต่ก็ขอข้ามไปก่อนไม่นั้นจะติดปัญหานี้นานเกินไปจนไม่ได้ทำอะไรต่อ แต่การลอง pytorch ผมว่าแนวทางหรือ style ในการทำออกจะคล้ายไปทางพวก c++ สักหน่อยอันนี้ความเห็นส่วนตัวนะครับ การเข้ากันกับ hardware ผมว่าทาง pytorch ทำออกมาได้ดีกว่า tensorflow
เมื่อได้ model GNN จาก pytorch แล้วผมก็ลองทำการ build image fastapi ที่ใส่ตัว file model เข้าไปด้วย
แล้วก็ run container จากนั้นก็เอาตัว airflow ไป call request server fastapi ที่อยู่ docker ตัว server ที่มีการเขียนโปรแกรมให้ load data แล้วส่งให้ model predict ว่า asset ไหนมีโอกาสจะ perform ใน week หน้าบ้างโดยจะ predict ทุกสิ้นสัปดาห์ จากนั้นเมื่อได้ ผลการทำนายออกมาเป็น response json เจ้า airflow ก็จะทำการแปลงแล้วบันทึกลง postgresql ที่อยู่บน server render เพื่อเก็บข้อมูล
เมื่อข้อมูลอยู่เป็น database render server ก็ให้เจ้า fastapi ที่เป็น backend ทำการไปดึงข้อมูลส่งต่อให้ส่วน frontend ก็ได้ page asset rank ใน side project =⇒ https://aegisshadow.com/ranking
ก็เป็นอันครบ loop การลองทำ model สำหรับ predict next week perform เพื่อใช้ในการกำหนดกลยุทธ์ในกรณีเอาไปใช้สำหรับ asset rotation ได้ แต่ตัว model ยัง predict ออกมาแย่อยู่ แต่ไม่อยากติดปัญหาตรงจุดนี้นานเกินไปเลยข้ามไป implement project ในส่วนอื่นก่อนแล้วค่อยย้อนกลับมาทำใหม่