Shuu12121 / CodeHawks-ModernBERT

huggingface.co
Total runs: 136
24-hour runs: 0
7-day runs: 0
30-day runs: 0
Model's Last Updated: March 02 2025
sentence-similarity

Introduction of CodeHawks-ModernBERT

Model Details of CodeHawks-ModernBERT

CodeHawks‑ModernBERT

概要

CodeHawks‑ModernBERT は、コード検索およびコード理解のタスク向けに1からトレーニングしたCodeMorph-ModernBERT-BPE-1.3に追加学習を行った事前学習済みモデルです. 従来のCodeMorph-ModernBERTシリーズとは異なる,より構造を意識した継続学習を行い,これまでのCodeMorphシリーズとは 一線を画す性能 を実現しました.

最大シーケンス長2048トークン (従来のMicrosoftモデルは512トークン)

  • アーキテクチャ : ModernBERT ベース
  • 目的 : コード検索 / コード理解 /コードクローン発見
  • トレーニングデータ : CodeSearchNet (全言語) code_x_glue_tc_text_to_code
  • ライセンス : Apache 2.0
主な特徴
  • 長いシーケンス対応
    最大2048トークンのシーケンス処理が可能。長いコードや複雑な関数にも対応します。

  • 高いコード検索,コード理解,コードクローン発見性能
    Pythonをはじめとする6言語対応のBPEレベルのトークナイザとコード全体を把握させるための事前学習によりこれまで苦手だったJava,JavaScript,RubyやGoでの性能が改善し,すべての言語でこれまでのシリーズの中で最高性能を達成しました.

  • 専用にトレーニングされたモデル
    CodeSearchNet,CodeXGLUEのデータセットを用いて1から事前学習したCodeMorph-ModernBERT-BPE-1.3に対して,同じデータセットで異なる継続学習を行い,より洗練されたコード理解を実現しました.

パラメータについて

以下のパラメータで設計しています。

パラメータ名 設定値
vocab_size 50000
hidden_size 768
num_hidden_layers 12
num_attention_heads 12
intermediate_size 3072
max_position_embeddings 2048
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
モデルの使用方法

Hugging Face Transformers ライブラリを利用して、本モデルを簡単にロードできます。(※ Transformers のバージョンは 4.48.0 以上のみ動作します)

モデルのロード
from transformers import AutoModelForMaskedLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("Shuu12121/CodeHawks-ModernBERT")
model = AutoModelForMaskedLM.from_pretrained("Shuu12121/CodeHawks-ModernBERT")
コード埋め込みの取得
import torch

def get_embedding(text, model, tokenizer, device="cuda"):
    inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=256)
    if "token_type_ids" in inputs:
        inputs.pop("token_type_ids")
    inputs = {k: v.to(device) for k, v in inputs.items()}
    outputs = model.model(**inputs)
    embedding = outputs.last_hidden_state[:, 0, :]
    return embedding

embedding = get_embedding("def my_function(): pass", model, tokenizer)
print(embedding.shape)
評価結果

code_x_glue_ct_code_to_text データセットのTestを用いて評価を行いました.(プールサイズ100) 実験結果は こちらのリンクからご確認 できます


Python
言語 モデル MRR MAP R‑Precision
Python Shuu12121/CodeMorph-ModernBERT 0.8098 0.8098 0.7520
Python Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.4110 0.4110 0.2950
Python microsoft/graphcodebert‑base 0.5493 0.5493 0.4480
Python microsoft/codebert‑base‑mlm 0.5243 0.5243 0.4480
Python Salesforce/codet5p‑220m‑bimodal 0.8266 0.8266 0.7610
Python Shuu12121/CodeHawks‑ModernBERT 0.8551 0.8551 0.8000

Java
言語 モデル MRR MAP R‑Precision
Java Shuu12121/CodeMorph-ModernBERT 0.6386 0.6386 0.5380
Java Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.3627 0.3627 0.2460
Java microsoft/graphcodebert‑base 0.5879 0.5879 0.4900
Java microsoft/codebert‑base‑mlm 0.3134 0.3134 0.2160
Java Salesforce/codet5p‑220m‑bimodal 0.8867 0.8867 0.8330
Java Shuu12121/CodeHawks‑ModernBERT 0.7971 0.7971 0.7370

JavaScript
言語 モデル MRR MAP R‑Precision
JavaScript Shuu12121/CodeMorph-ModernBERT 0.5996 0.5996 0.5020
JavaScript Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.2184 0.2184 0.1110
JavaScript microsoft/graphcodebert‑base 0.5051 0.5051 0.4000
JavaScript microsoft/codebert‑base‑mlm 0.2694 0.2694 0.1760
JavaScript Salesforce/codet5p‑220m‑bimodal 0.7628 0.7628 0.6730
JavaScript Shuu12121/CodeHawks‑ModernBERT 0.7634 0.7634 0.6940

PHP
言語 モデル MRR MAP R‑Precision
PHP Shuu12121/CodeMorph-ModernBERT 0.7513 0.7513 0.6660
PHP Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.3998 0.3998 0.2830
PHP microsoft/graphcodebert‑base 0.6225 0.6225 0.5100
PHP microsoft/codebert‑base‑mlm 0.2642 0.2642 0.1620
PHP Salesforce/codet5p‑220m‑bimodal 0.9027 0.9027 0.8600
PHP Shuu12121/CodeHawks‑ModernBERT 0.8578 0.8578 0.8060

Ruby
言語 モデル MRR MAP R‑Precision
Ruby Shuu12121/CodeMorph-ModernBERT 0.7126 0.7126 0.6190
Ruby Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.2436 0.2436 0.1360
Ruby microsoft/graphcodebert‑base 0.5876 0.5876 0.4830
Ruby microsoft/codebert‑base‑mlm 0.3318 0.3318 0.2270
Ruby Salesforce/codet5p‑220m‑bimodal 0.7568 0.7568 0.6650
Ruby Shuu12121/CodeHawks‑ModernBERT 0.7469 0.7469 0.6630

Go
言語 モデル MRR MAP R‑Precision
Go Shuu12121/CodeMorph-ModernBERT 0.5423 0.5423 0.4420
Go Shuu12121/CodeMorph-ModernBERT‑BPE‑1.0 0.2495 0.2495 0.1250
Go microsoft/graphcodebert‑base 0.4243 0.4243 0.3270
Go microsoft/codebert‑base‑mlm 0.3262 0.3262 0.2440
Go Salesforce/codet5p‑220m‑bimodal 0.8117 0.8117 0.7280
Go Shuu12121/CodeHawks‑ModernBERT 0.9043 0.9043 0.8620

code_x_glue_tc_nl_code_search_adv (Test) で評価した結果はこちらです
モデル MRR MAP R‑Precision
Shuu12121/CodeHawks‑ModernBERT 0.6679 0.6679 0.5748
Salesforce/codet5p‑220m‑bimodal 0.5359 0.5359 0.4258

結果の考察と工夫点

初期のCodeMorph-ModernBERTではSentencePieceを使って作成したトークナイザを利用しモデルを作成していましたが,pythonやphpでは高い性能を出せたものの,ほかの言語ではあまり実用的なレベルではありませんでした. そこでよりプログラムの構造をつかんだトークナイザが必要だと感じ,BPEで作成したトークナイザを作成し,それを用いて事前学習を行いました(CodeMorp-ModernBERT-BPE-1.0)が、初期のモデルと比べてもいい性能が出せなかったので,より全体像を意識した学習方法を試してみた結果これまでのモデルよりも高い性能かつ.これまで苦手だったJavaやGoでの性能を上げることができました. また実験結果から考察できることは,Python,GOにおいては実験したすべてのモデルの中でCodeHawks‑ModernBERTモデルが一番優れており,ほかの言語でもcodet5p‑220m‑bimodalと競合できるレベルまで性能を上げることができています. さらに同じアーキテクチャ、同じデータセットで事前学習しているCodeMorph-ModernBERT‑BPE‑1.0 よりも圧倒的に高い性能を出していることから、 この継続学習がコード検索において有効 であったことが推測できます.

ライセンス

本モデルは Apache-2.0 ライセンスのもとで提供されます。

連絡先

このモデルで何か質問等がございましたらこちらのメールアドレスまでお願いします [email protected]

Runs of Shuu12121 CodeHawks-ModernBERT on huggingface.co

136
Total runs
0
24-hour runs
0
3-day runs
0
7-day runs
0
30-day runs

More Information About CodeHawks-ModernBERT huggingface.co Model

More CodeHawks-ModernBERT license Visit here:

https://choosealicense.com/licenses/apache-2.0

CodeHawks-ModernBERT huggingface.co

CodeHawks-ModernBERT huggingface.co is an AI model on huggingface.co that provides CodeHawks-ModernBERT's model effect (), which can be used instantly with this Shuu12121 CodeHawks-ModernBERT model. huggingface.co supports a free trial of the CodeHawks-ModernBERT model, and also provides paid use of the CodeHawks-ModernBERT. Support call CodeHawks-ModernBERT model through api, including Node.js, Python, http.

CodeHawks-ModernBERT huggingface.co Url

https://huggingface.co/Shuu12121/CodeHawks-ModernBERT

Shuu12121 CodeHawks-ModernBERT online free

CodeHawks-ModernBERT huggingface.co is an online trial and call api platform, which integrates CodeHawks-ModernBERT's modeling effects, including api services, and provides a free online trial of CodeHawks-ModernBERT, you can try CodeHawks-ModernBERT online for free by clicking the link below.

Shuu12121 CodeHawks-ModernBERT online free url in huggingface.co:

https://huggingface.co/Shuu12121/CodeHawks-ModernBERT

CodeHawks-ModernBERT install

CodeHawks-ModernBERT is an open source model from GitHub that offers a free installation service, and any user can find CodeHawks-ModernBERT on GitHub to install. At the same time, huggingface.co provides the effect of CodeHawks-ModernBERT install, users can directly use CodeHawks-ModernBERT installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

CodeHawks-ModernBERT install url in huggingface.co:

https://huggingface.co/Shuu12121/CodeHawks-ModernBERT

Url of CodeHawks-ModernBERT

CodeHawks-ModernBERT huggingface.co Url

Provider of CodeHawks-ModernBERT huggingface.co

Shuu12121
ORGANIZATIONS

Other API from Shuu12121