日本語でプロンプトで制御できる文章埋め込み表現できたら良いな

pesuchin
·
公開:2023/12/30

目標

基本的には以下の論文の内容を世の中にある日本語のデータセットで再現しつつ、より改善していきたい。

Instructor Text Embedding (instructor-embedding.github.io)

今回の実験内容

利用するモデル

モデルに関してはoshizo/sbert-jsnli-luke-japanese-base-liteを利用してファインチューニングしている。

利用したデータセット一覧

加工後の学習データのサンプル数の分布

  • JNLI: 20073

  • MARC-ja: 363371

  • JSICK: 4500

  • JSTS: 12457

  • JaQuAD: 31984

  • JSQuAD: 27533

  • tydiqa-goldp: 1436 ← NEW

実験結果

ベースライン(oshizo/sbert-jsnli-luke-japanese-base-lite)

JSTS、JSICKについてはそのまま正解のスコアと予測した類似度のスピアマンの順位相関係数を求めて評価している。

JNLIは-1<類似度<-0.5のときはcontradiction、-0.5<類似度<0.5のときはneutral、0.5<類似度<1のときはentailmentと判定して、多クラス分類問題として基本的な評価指標をいろいろ出している。

前回との差分としては、MARC-jaは分類モデルとしての評価を出すようにしています。

前回の結果

今回の結果

前回と比べてJSICKは悪化したが、他は微増と言う感じでまあ増やしたデータ数も少なかったので当たり前だが、ほぼ変わらず

軽い考察

差分が小さいのでお休み

次のアクション案

  • データセットの追加

  • ネガティブのサンプル(label=-1.0)のデータを精度高く増やす手段を何か考える(特にハードネガティブを増やしたい)

  • MARC-jaもうちょい減らす

    • 現状ラベルが同じもの同士の組み合わせのケースで文章のAとBの組み合わせとBとAの組み合わせを別の組み合わせとして認識してしまっていて重複が許可されてしまっているのでその重複を削除する。

@pesuchin
備忘録を書いていく感じになりそう