CodeModernBERT-Crow 🐦‍⬛

High-performance encoder for multilingual code search and understanding
開発者: Shuu12121
License: Apache-2.0


🔍 概要 / Overview

CodeModernBERT-Crow は、関数レベルのコード理解およびコード検索に特化したエンコーダモデルです。
ベースには ModernBERT を採用し、長文コードへの高いスケーラビリティを持ちます。

This model is designed for efficient and accurate function-level code retrieval across multiple programming languages, extending ModernBERT for code intelligence tasks.


🌟 特徴 / Key Features

  • 対応言語:Python, Java, JavaScript, PHP, Ruby, Go, Rust
  • 重複除去済みの高品質データセットを使用(CodeSearchNet の test split 除外済)
  • CodeModernBERT-Crow-Pre から継続学習により高性能を実現
  • 最大 8192 トークンの入力長に対応(学習時は 2048 トークンで調整)

📐 モデル仕様 / Model Architecture

パラメータ / Parameter 値 / Value
vocab_size 50,004
hidden_size 768
num_hidden_layers 12
num_attention_heads 12
intermediate_size 3,072
max_position_embeddings 8,192
rotary_embedding (RoPE) 160,000
local_attention_rope_theta 10,000
dropout 0.0

🧪 評価結果 / Evaluation

CodeSearchNet Test Split(MRR@100)に基づいた比較評価:

モデル / Model Python Java JavaScript PHP Ruby Go
CodeModernBERT-Crow 0.9372 0.8642 0.8118 0.8388 0.8392 0.8522
CodeModernBERT-Crow-Pre 0.5279 0.4718 0.3282 0.4236 0.3014 0.6390
CodeBERT-base (Microsoft) 0.1513 0.1016 0.0908 0.0921 0.0850 0.0943
GraphCodeBERT-base (Microsoft) 0.5686 0.5450 0.4485 0.5261 0.5571 0.4226
CodeBERTa-small-v1 (Hugging Face) 0.7383 0.5875 0.4476 0.5748 0.5252 0.5995
CodeT5p-220M-bimodal (Salesforce) 0.8013 0.7853 0.7101 0.7895 0.7130 0.7547

評価方法:100件の候補からランク付け(固定評価スクリプト使用)


🚀 使用方法 / How to Use

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("Shuu12121/CodeModernBERT-Crow")
model = AutoModel.from_pretrained("Shuu12121/CodeModernBERT-Crow")

コード埋め込みを取得する関数:

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()}
    with torch.no_grad():
        outputs = model(**inputs)
        return outputs.last_hidden_state[:, 0, :]

🤝 関連モデル / Related Models


📬 お問い合わせ / Contact

質問・提案などは以下のメールアドレスへお気軽にご連絡ください:
📧 [email protected]

Downloads last month
142
Safetensors
Model size
152M 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-Crow

Finetunes
3 models

Datasets used to train Shuu12121/CodeModernBERT-Crow