--- license: apache-2.0 datasets: - code-search-net/code_search_net - Shuu12121/java-codesearch-filtered - Shuu12121/javascript-codesearch-filtered - Shuu12121/ruby-codesearch-filtered - Shuu12121/python-codesearch-filtered - Shuu12121/rust-codesearch-filtered language: - code tags: - code - code-search - python - java - javascript - php - ruby - go - rust - modernbert --- # CodeModernBERT-Crow 🐦‍⬛ **High-performance encoder for multilingual code search and understanding** 開発者: [Shuu12121](https://huggingface.co/Shuu12121) License: Apache-2.0 --- ## 🔍 概要 / Overview **CodeModernBERT-Crow** は、関数レベルのコード理解およびコード検索に特化したエンコーダモデルです。 ベースには [ModernBERT](https://arxiv.org/abs/2310.08588) を採用し、長文コードへの高いスケーラビリティを持ちます。 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 * **ゼロからの事前学習(ModernBERTアーキテクチャに基づく)** * 重複除去済みの高品質データセットを使用(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 ```python from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("Shuu12121/CodeModernBERT-Crow") model = AutoModel.from_pretrained("Shuu12121/CodeModernBERT-Crow") ``` ### コード埋め込みを取得する関数: ```python 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 - [`CodeSearch-ModernBERT-Crow-Plus`](https://huggingface.co/Shuu12121/CodeSearch-ModernBERT-Crow-Plus): 本モデルをベースにした SentenceTransformer 形式のコード検索専用モデル --- ## 📬 お問い合わせ / Contact 質問・提案などは以下のメールアドレスへお気軽にご連絡ください: 📧 shun0212114@outlook.jp