simple-spladeを作った勢いで、ChatGPTと相談しながら、simple-*的な派生品を作り始めているのですが、ひとまず、simple-spladeppとして、SPLADE++を作ってみた。
teacherモデルをどうするかはあるけど、ざっとみた感じでは、こんな感じかなと思われる。日本語をどうするか?を考えるなら、ベースモデルを作るところも考えた方が良いような気もするけど、それは気が向いたら考えることにする。
そんな感じで、今後もsimple-*シリーズを増やしてみようかなと。
Challange IT For Future
simple-spladeを作った勢いで、ChatGPTと相談しながら、simple-*的な派生品を作り始めているのですが、ひとまず、simple-spladeppとして、SPLADE++を作ってみた。
teacherモデルをどうするかはあるけど、ざっとみた感じでは、こんな感じかなと思われる。日本語をどうするか?を考えるなら、ベースモデルを作るところも考えた方が良いような気もするけど、それは気が向いたら考えることにする。
そんな感じで、今後もsimple-*シリーズを増やしてみようかなと。
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になったので、そのままですが、別なモデルでも良いような気もしてます…。
勢いで作った感じはありますが、何かあれば、修正してください。
1つのOpenSearchのクラスターを利用できるようようにしておいて、複数のFessがそれを利用できるようにしました。元々できるような設定を入れていたものの、Docker Composeでその環境を真面目に作り始めたら、いろいろと課題が出てきたので修正が必要だった…。
ここにある感じで、compose-fessXX.yamlのように追加すれば、Fessのインスタンスを追加していくことができます。OpenSearch側でアクセスコントロールとかしていないので、管理画面のダッシュボードからはすべてのインデックスが見える感じにはなっていますが…。
現状、Fessのデモをいくつか動かしているけど、そろそろ一箇所にまとめたいな…と思い始め、マルチインスタンスでの動作も整理し始めました。次のリリースから使えるようになると思います。