naverのSPLADEの実装は、GitHubのnaver/spladeにあるけど、これが商用不可だったりするので、ゼロから実装して、何かで使いたいときの際にベースとして利用できるものがほしいなーと思ってました。というわけで、シンプルなSPLADEの実装を作ろうということで、marevol/simple-spladeとして、作ってみました。ChatGPTと壁打ちしながら、作っていった感じではあるけど、たぶん、それっぽい感じにはなったかなと思います。
main.pyでAmazonのECSIデータを利用して、クエリー(query)と商品名(product_title)を学習する感じになってます。ExactのEをpositiveで、それ以外をnegativeとして扱ってます。コード量も多くないので、簡単に眺めることができるのではないかな…と思いますし、たぶん、手を加えやすいと思います。
マルチリンガルで、とChatGPTに言ったら、xlm-roberta-baseになったので、そのままですが、別なモデルでも良いような気もしてます…。
勢いで作った感じはありますが、何かあれば、修正してください。