多言語コード検索タスクのSentence Transformerモデルである、CodeSearch-ModernBERT-Crow-Plusを試してみます。
類似コードのデータセットを使ってテストしました。
dataset = [
{
"code": """
def add(a, b):
return a + b
""",
"comment": "2つの数値を加算して結果を返す関数です。"
},
{
"code": """
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
""",
"comment": "再帰的にnの階乗を計算する関数です。"
},(以下略)
以上を使って、以下のコードを検索します。
# テスト用の入力コードスニペット
input_code = """
def sum_numbers(x, y):
return x + y
"""
以下の結果が得られました。
生成されたコメント: 2つの数値を加算して結果を返す関数です。
類似度スコア: 0.636911153793335
こうしたモデルを小気味よく連携させていくことになるのでしょう。MCPの盛り上がりを見ているとそう思います。
今回使ったColabです。