Shuu12121/CodeSearch-ModernBERT-Snake-Plus 🐍

このモデルは、Shuu12121/CodeModernBERT-Snake をベースにした Sentence Transformer モデルであり、特に多言語コード検索タスクにおいて高い性能を発揮するようファインチューニングされています。

This is a Sentence Transformer model based on Shuu12121/CodeModernBERT-Snake, fine-tuned for high performance on multilingual code search tasks.


📊 MTEB評価 / MTEB Evaluation

このモデルは、Massive Text Embedding Benchmark (MTEB) のCodeSearchNet Retrievalタスクにおいて、以下のスコアを記録しています。

指標 スコア (標準版) スコア (COIR版)
main_score (nDCG@10) 0.87926 0.77199
ndcg_at_1 0.78900 0.68372
ndcg_at_3 0.86324 0.74734
ndcg_at_5 0.87229 0.76061
ndcg_at_10 0.87926 0.77199
recall_at_10 0.95667 0.85808
mrr_at_10 0.85375 0.74433

※ 標準版:通常のMTEB評価設定、COIR版:より厳しい類似度評価設定
※ 公式に提出していないためランキング情報は記載していません。(参考順位としては,標準版は10位前後のモデルとほぼ同等ぐらいでCOIR版は8位前後と同等ぐらいです,2025年4月現在)


🆚 Crow-Plusとの比較 / Comparison with Crow-Plus

Crow-Plus(Shuu12121/CodeSearch-ModernBERT-Crow-Plus)と比較すると、
Snake-Plusは、パラメータ数を約半分に削減しながら、非常に高い性能を維持しています。

指標 Crow-Plus Snake-Plus コメント
main_score (nDCG@10, 標準版) 0.89296 0.87926 SnakeはCrowに迫る水準を維持
main_score (nDCG@10, COIR版) 0.79884 0.77199 厳しい設定でもSnakeは健闘
パラメータ数 (推定) 約150M 約77M SnakeはCrowの約半分
Recall@10 (標準版) 96.1% 95.6% ほぼ同等のリコール率

🔥 Snake-Plusの主な特徴

  • パラメータ数はCrow-Plusの約半分(50%)
  • 推論速度の高速化、メモリ消費量の低減が可能
  • 性能もほとんど維持(nDCG@10ではCrow比約98%)
  • 軽量なモデルが必要な環境(例:オンデバイス検索、低リソース推論)に特に適する

客観的分析まとめ

Snake-Plusは、高性能を維持したまま小型化を実現したモデルです。
特に「推論コストを削減しつつ、実用レベルの検索性能を確保したい」ユースケースに非常に適しています。

一方で、絶対的な最高性能を目指す場合(特に難易度の高いドメインデータ)では、Crow-Plusの方が優位となる場面もあり得ます。
用途とリソースに応じた使い分けが推奨されます。


🔧 モデル詳細 / Model Details

  • ベースモデル: Shuu12121/CodeModernBERT-Snake
  • アーキテクチャ: ModernBERT (hidden_size: 512, layers: 12, heads: 8)
  • 最大入力長: 1024トークン
  • ファインチューニング: CodeSearchNetなどの自然言語–コードペアを用いた類似性学習
  • Pooling: CLS Poolingを使用(SentenceTransformer互換)

🚀 使用方法 / How to Use

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("Shuu12121/CodeSearch-ModernBERT-Snake-Plus")

code_snippets = [
    "def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)",
    "function binarySearch(arr, target) { let left = 0, right = arr.length - 1; while (left <= right) { const mid = Math.floor((left + right) / 2); if (arr[mid] === target) return mid; if (arr[mid] < target) left = mid + 1; else right = mid - 1; } return -1; }"
]

queries = [
    "calculate the factorial of a number recursively",
    "find an element in a sorted array using binary search"
]

code_embeddings = model.encode(code_snippets)
query_embeddings = model.encode(queries)

想定用途と制限 / Intended Use & Limitations

用途例 / Intended Use:

  • 多言語コード検索 (Natural Language to Code, Code to Code)
  • コードの類似性判定
  • コード分類・クラスタリング
  • コード推薦システム構築

対象言語 / Target Languages:

  • Python, Java, JavaScript, PHP, Ruby, Go, Rust

制限 / Limitations:

  • 主に関数レベルのコードに最適化。非常に長いファイルや構文エラーを含むコードには弱い傾向あり。
  • ドメイン特化タスクには追加ファインチューニングが有効な場合がある。
  • 生成タスク(例:コード補完・生成)には向いていない(エンコーダ専用)。

📩 連絡先 / Contact

ご質問・ご提案はこちらへどうぞ。
For questions or suggestions, please contact:

📧 [email protected]

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

Model tree for Shuu12121/CodeSearch-ModernBERT-Snake-Plus

Finetuned
(2)
this model

Datasets used to train Shuu12121/CodeSearch-ModernBERT-Snake-Plus