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
Model tree for Shuu12121/CodeMorph-ModernBERTv2
Base model
Shuu12121/CodeMorph-ModernBERT