いつもの日本語Embedding計画の実験結果。新しいディスプレイなかなか良いね。

pesuchin
·

目標

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

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

今回の実験内容

  • 学習に使うプロンプトをタスクごとに1つに固定する

    • ノイズになってるかもしれないしね。

利用するモデル

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

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

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

  • JNLI: 20073

  • MARC-ja: 363371

  • JSICK: 4500

  • JSTS: 12457

  • JaQuAD: 31984

  • JSQuAD: 27533

  • tydiqa-goldp: 1436

  • ner-wikipedia-dataset: 20766

実験結果

ベースライン(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は分類モデルとしての評価を出すようにしています。

前回の結果

今回の結果

よくわからないけど性能悪化した…。

軽い考察

プロンプトは固定しない方が良いということなのかもしれない。

次のアクション案

  • データセットの追加

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

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

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

  • 独自のデータセットを作るための仕組みを作って継続的に精度を出していく。

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