CodeMorph-ModernBERTv2について

本モデルはCodeMorph-ModernBERTにファインチューニングを行ったモデルです.主な目的は苦手であったJavaやJavaScriptの検索をPythonなどの得意な言語の精度を下げないように改善できないか行った結果です.

評価結果サマリー

言語 モデル MRR MAP R-Precision
Python CodeMorph-ModernBERT 0.8099 0.8099 0.7520
CodeMorph-ModernBERTv2 0.7907 0.7907 0.7190
Java CodeMorph-ModernBERT 0.6384 0.6384 0.5400
CodeMorph-ModernBERTv2 0.6663 0.6663 0.5760
JavaScript CodeMorph-ModernBERT 0.5879 0.5879 0.4850
CodeMorph-ModernBERTv2 0.6202 0.6202 0.5200
PHP CodeMorph-ModernBERT 0.7527 0.7527 0.6740
CodeMorph-ModernBERTv2 0.7502 0.7502 0.6660
Ruby CodeMorph-ModernBERT 0.7099 0.7099 0.6140
CodeMorph-ModernBERTv2 0.7171 0.7171 0.6310
Go CodeMorph-ModernBERT 0.5318 0.5318 0.4250
CodeMorph-ModernBERTv2 0.4766 0.4766 0.3630

ファインチューニング手法について

今回のv2モデルでは、各言語間の性能格差を低減するため、以下の手法を採用しました。

  • 均等サンプリングによるデータ抽出
    ファインチューニングには、[google/code_x_glue_ct_code_to_text]データセットを用い、Python、Java、PHP、Ruby、Goなどの各言語から、同程度のデータ量を抽出しました。なお、元々データセット内のコードが少ない言語は(JavascriptとRuby)は全データ使用となっています。

  • 手法を選んだ背景
    CodeSearchNetデータセットでは、PythonやPHPなど特定の言語のサンプルが多く、学習データが偏っていた可能性がありました。これにより、特定の言語でのみ高い性能が得られるという傾向が見受けられたため、各言語から均等な量のデータを抽出することで、言語間のバランスを改善し、より汎用的な性能向上を狙いました。

このアプローチにより、Pythonなどでは従来の高い性能を維持しつつ、Java、JavaScript、Goなど他の言語でも相対的に均一な性能を実現することを目指しました。Goでの結果が低下してしまいましたが他の言語では目的を一定程度達成することができました。


Downloads last month
27
Safetensors
Model size
152M params
Tensor type
F32
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.

Model tree for Shuu12121/CodeMorph-ModernBERTv2

Finetuned
(1)
this model

Dataset used to train Shuu12121/CodeMorph-ModernBERTv2