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.
- 開発者 (Developer): Shuu12121
- ベースモデル (Base Model): Shuu12121/CodeModernBERT-Snake
- ライセンス (License): Apache-2.0
📊 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:
- Downloads last month
- 5
Model tree for Shuu12121/CodeSearch-ModernBERT-Snake-Plus
Base model
Shuu12121/CodeModernBERT-Snake