CodeModernBERT-Snake🐍

コード検索と理解を強化する軽量・長シーケンス対応モデル

概要

CodeModernBERT-Snake🐍は、コード検索やコードクローン検出を手軽に行えるよう設計された軽量モデルです。
モデルサイズが従来の約半分(76Mパラメータ)に削減されているため、学習コストが大幅に低減しました。
また、最大シーケンス長を8192トークンに拡張し、長大なコードや複雑な関数にも対応できるようになっています。

主な用途:

  • コード検索
  • コード理解
  • コードクローン検出

データセット: CodeSearchNet (全言語)
ライセンス: Apache 2.0


主な特徴

  • 最大シーケンス長8192トークン対応
    長大なコードや複雑な関数にも対応可能です。(従来モデルは512トークン対応)

  • モデルサイズを約半分に削減
    CodeModernBERT-Owl(152Mパラメータ)に比べて約半分(76Mパラメータ)まで軽量化。
    メモリ効率が向上し、推論速度も改善されました。


モデルパラメータ

パラメータ名 設定値
vocab_size 50004
hidden_size 512
num_hidden_layers 12
num_attention_heads 8
intermediate_size 2048
max_position_embeddings 8192
type_vocab_size 2
hidden_dropout_prob 0.1
attention_probs_dropout_prob 0.1
local_attention_window 128
rope_theta 160000
local_attention_rope_theta 10000

実験結果

学習方法

単純なMLM(マスク付き言語モデル)学習後、継続学習を実施し、以下の評価結果を得ました。 学習用データセット: CodeSearchNet (Train) 比較用データセット: code_x_glue_ct_code_to_text (Test)
評価指標: MRR, R-Precision(プールサイズ100)

MLM学習後

言語 MRR R-Precision
Python 0.4216 0.2960
Java 0.4211 0.3000
JavaScript 0.2753 0.1710
PHP 0.4642 0.3330
Ruby 0.2637 0.1530
Go 0.4410 0.2800

継続学習後

言語 MRR R-Precision
Python 0.7553 0.6730
Java 0.7660 0.6890
JavaScript 0.5934 0.4870
PHP 0.7766 0.7030
Ruby 0.6056 0.5020
Go 0.8323 0.7550

考察

継続学習後のモデルでは、すべての言語で0.2以上のMRRおよびR-Precisionの向上が確認できました。
特にPython、Java、PHP、Goにおける精度向上が顕著であり、従来のモデルに追随するレベルに達しています。


注意点

最大シーケンス長8192トークンに対応していますが、8192トークンまでの学習を特別に行ったわけではないため、
2048トークンを超えた入力では精度が低下する可能性があります。モデルサイズを削減する過程で対応範囲を拡張しましたが、
あくまでオプションとしての対応と捉えてください。ご了承ください。


最後に

CodeModernBERT-Snake🐍は、コード検索や理解のコストを削減しながら高い精度を実現することを目指して設計されました。
軽量で長大なコードも処理できるため、多くのユースケースで役立つモデルです。
ぜひ活用してみてください!

Downloads last month
28
Safetensors
Model size
76.3M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Shuu12121/CodeModernBERT-Snake

Finetunes
2 models

Dataset used to train Shuu12121/CodeModernBERT-Snake