CoolFace
Modelpublic

aysinghal/ide-code-retrieval-qwen3-0.6b

sourceHugging Faceapache-2.0updated 6mo agoView on Hugging Face
1likes102downloads
Model Card

ide-code-retrieval-qwen3-0.6b

A SentenceTransformer model fine-tuned from Qwen/Qwen3-Embedding-0.6B for IDE code retrieval -- mapping natural-language commit queries to relevant source code documents via dense vector similarity.

Note: This is an intermediate checkpoint at step 9,000 / 9,150 (98.4% through 3 epochs). Training loss is still decreasing, so a later checkpoint may perform better.

Model Description

This model encodes both short natural-language queries (commit messages, search queries) and longer code documents into a shared embedding space. Retrieval is performed by computing cosine similarity between the query embedding and candidate code embeddings.

  • Base model: Qwen/Qwen3-Embedding-0.6B (0.6B parameters)
  • Max sequence length: 1024 tokens
  • Output dimensionality: 1024 (normalized)
  • Similarity function: Cosine similarity

Training Details

Dataset

  • Source: aysinghal/code-retrieval-training-dataset
  • Total pairs: 2,465,694
  • Train split: 2,342,409 pairs (95%)
  • Eval split: 123,285 pairs (5%)
  • Text strategy: truncate (max 4096 chars)
  • Negatives: Explicit hard negatives from the dataset
  • Pre-tokenized: Yes (token IDs stored on disk for zero-overhead data loading)

Loss Function

MultipleNegativesRankingLoss (InfoNCE) with explicit hard negatives. Each training example consists of an anchor (query), a positive (relevant code), and a hard negative (similar but irrelevant code). In-batch negatives provide additional contrast.

Hyperparameters

ParameterValue
Base modelQwen/Qwen3-Embedding-0.6B
Learning rate2e-05
LR scheduleLinear with warmup
Warmup ratio0.1
Epochs3
Effective batch size256
Per-GPU batch size64
Gradient accumulation2
Max sequence length1024 tokens
PrecisionBFloat16
Gradient checkpointingTrue
torch.compileEnabled (max-autotune)
Seed42
Eval strategyEvery 915 steps
Early stopping patience3

Hardware

  • GPUs: 2x NVIDIA L40S
  • Total training steps: 9,150 (3 epochs)

Training Progress (at checkpoint step 9,000)

  • Training loss: 2.8684 (step 50) → 0.4907 (step 9000)
  • Best eval loss: 0.1070 (step 7,320)
  • Progress: 9,000 / 9,150 steps (98.4%)
Evaluation Results
StepEpochEval Loss
9150.100.4585
1,8300.200.2753
2,7450.300.1975
3,6600.400.1387
4,5750.500.1226
5,4900.600.1146
6,4050.700.1108
7,3200.800.1070
8,2350.900.1072

<details> <summary>Full training loss history (click to expand)</summary>

StepEpochLossLearning Rate
500.00552.86843.57e-07
1000.01092.83607.21e-07
1500.01642.80201.09e-06
2000.02192.62631.45e-06
2500.02732.34961.81e-06
3000.03282.06952.18e-06
3500.03831.88262.54e-06
4000.04371.79772.91e-06
4500.04921.71633.27e-06
5000.05461.66143.64e-06
5500.06011.63644.00e-06
6000.06561.56954.36e-06
6500.07101.53634.73e-06
7000.07651.48845.09e-06
7500.08201.47125.46e-06
8000.08741.44525.82e-06
8500.09291.41636.19e-06
9000.09841.35786.55e-06
9500.10381.34386.91e-06
1,0000.10931.33347.28e-06
1,0500.11481.32417.64e-06
1,1000.12021.27518.01e-06
1,1500.12571.27488.37e-06
1,2000.13111.22248.74e-06
1,2500.13661.22149.10e-06
1,3000.14211.17839.46e-06
1,3500.14751.16929.83e-06
1,4000.15301.14781.02e-05
1,4500.15851.12161.06e-05
1,5000.16391.11421.09e-05
1,5500.16941.08021.13e-05
1,6000.17491.07431.17e-05
1,6500.18031.02951.20e-05
1,7000.18581.02741.24e-05
1,7500.19130.98751.27e-05
1,8000.19670.97911.31e-05
1,8500.20220.98151.35e-05
1,9000.20770.96561.38e-05
1,9500.21310.92831.42e-05
2,0000.21860.91171.46e-05
2,0500.22400.91231.49e-05
2,1000.22950.89861.53e-05
2,1500.23500.87321.57e-05
2,2000.24040.87181.60e-05
2,2500.24590.84691.64e-05
2,3000.25140.83741.68e-05
2,3500.25680.83611.71e-05
2,4000.26230.83161.75e-05
2,4500.26780.81881.78e-05
2,5000.27320.79771.82e-05
2,5500.27870.80701.86e-05
2,6000.28420.77971.89e-05
2,6500.28960.77191.93e-05
2,7000.29510.76711.97e-05
2,7500.30050.75762.00e-05
2,8000.30600.74942.00e-05
2,8500.31150.75561.99e-05
2,9000.31690.71571.99e-05
2,9500.32240.72201.98e-05
3,0000.32790.70311.98e-05
3,0500.33330.70551.98e-05
3,1000.33880.68661.97e-05
3,1500.34430.69021.97e-05
3,2000.34970.66291.96e-05
3,2500.35520.67321.96e-05
3,3000.36070.65211.96e-05
3,3500.36610.66101.95e-05
3,4000.37160.64491.95e-05
3,4500.37700.65131.94e-05
3,5000.38250.63691.94e-05
3,5500.38800.62171.36e-05
3,6000.39340.61071.35e-05
3,6500.39890.60071.34e-05
3,7000.40440.57621.32e-05
3,7500.40980.59631.31e-05
3,8000.41530.59101.30e-05
3,8500.42080.58241.29e-05
3,9000.42620.58631.28e-05
3,9500.43170.57471.26e-05
4,0000.43720.58401.25e-05
4,0500.44260.57481.24e-05
4,1000.44810.55871.23e-05
4,1500.45360.57171.21e-05
4,2000.45900.53751.20e-05
4,2500.46450.56351.19e-05
4,3000.46990.56291.18e-05
4,3500.47540.55321.17e-05
4,4000.48090.54801.15e-05
4,4500.48630.54861.14e-05
4,5000.49180.54681.13e-05
4,5500.49730.54311.12e-05
4,6000.50270.54551.11e-05
4,6500.50820.54251.09e-05
4,7000.51370.54931.08e-05
4,7500.51910.54831.07e-05
4,8000.52460.52371.06e-05
4,8500.53010.52951.04e-05
4,9000.53550.53711.03e-05
4,9500.54100.53081.02e-05
5,0000.54640.53921.01e-05
5,0500.55190.52929.96e-06
5,1000.55740.53009.84e-06
5,1500.56280.53039.72e-06
5,2000.56830.50969.60e-06
5,2500.57380.50869.47e-06
5,3000.57920.51509.35e-06
5,3500.58470.51869.23e-06
5,4000.59020.51299.11e-06
5,4500.59560.52518.99e-06
5,5000.60110.51678.87e-06
5,5500.60660.51188.75e-06
5,6000.61200.50368.62e-06
5,6500.61750.51678.50e-06
5,7000.62300.52128.38e-06
5,7500.62840.50638.26e-06
5,8000.63390.50898.14e-06
5,8500.63930.50568.02e-06
5,9000.64480.50527.90e-06
5,9500.65030.51637.77e-06
6,0000.65570.51547.65e-06
6,0500.66120.49917.53e-06
6,1000.66670.49727.41e-06
6,1500.67210.51477.29e-06
6,2000.67760.50227.17e-06
6,2500.68310.51737.05e-06
6,3000.68850.50766.92e-06
6,3500.69400.49846.80e-06
6,4000.69950.50186.68e-06
6,4500.70490.50766.56e-06
6,5000.71040.50926.44e-06
6,5500.71580.48676.32e-06
6,6000.72130.50196.20e-06
6,6500.72680.51796.07e-06
6,7000.73220.49795.95e-06
6,7500.73770.50185.83e-06
6,8000.74320.49075.71e-06
6,8500.74860.51045.59e-06
6,9000.75410.48845.47e-06
6,9500.75960.50705.35e-06
7,0000.76500.50145.22e-06
7,0500.77050.50115.10e-06
7,1000.77600.50274.98e-06
7,1500.78140.50644.86e-06
7,2000.78690.49004.74e-06
7,2500.79230.49014.62e-06
7,3000.79780.49834.50e-06
7,3500.80330.49014.37e-06
7,4000.80870.49654.25e-06
7,4500.81420.49344.13e-06
7,5000.81970.49704.01e-06
7,5500.82510.47793.89e-06
7,6000.83060.48893.77e-06
7,6500.83610.49543.65e-06
7,7000.84150.51733.52e-06
7,7500.84700.49863.40e-06
7,8000.85250.49473.28e-06
7,8500.85790.49313.16e-06
7,9000.86340.48343.04e-06
7,9500.86890.49642.92e-06
8,0000.87430.48902.80e-06
8,0500.87980.49322.67e-06
8,1000.88520.49272.55e-06
8,1500.89070.48252.43e-06
8,2000.89620.48972.31e-06
8,2500.90160.50132.19e-06
8,3000.90710.50262.07e-06
8,3500.91260.49721.95e-06
8,4000.91800.49931.82e-06
8,4500.92350.48191.70e-06
8,5000.92900.49481.58e-06
8,5500.93440.51161.46e-06
8,6000.93990.48631.34e-06
8,6500.94540.47971.22e-06
8,7000.95080.48831.10e-06
8,7500.95630.49649.74e-07
8,8000.96170.49558.52e-07
8,8500.96720.47967.31e-07
8,9000.97270.48756.10e-07
8,9500.97810.49284.88e-07
9,0000.98360.49073.67e-07

</details>

Usage

Loading the Model

python
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("aysinghal/ide-code-retrieval-qwen3-0.6b")

Computing Embeddings

python
queries = [
    "fix null pointer exception in user authentication",
    "add retry logic to API client",
]
code_docs = [
    "def authenticate(user):\n    if user is None:\n        raise ValueError...",
    "class APIClient:\n    def request(self, url, retries=3):\n        ...",
]

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

# Compute cosine similarities
from sentence_transformers.util import cos_sim
similarities = cos_sim(query_embeddings, code_embeddings)
print(similarities)

Intended Use

  • Primary use case: Retrieving relevant code files/functions given a natural-language query (commit message, bug description, feature request)
  • Search pipeline: Encode a corpus of code documents offline, then at query time encode the query and find nearest neighbors via cosine similarity

Limitations

  • This is an early checkpoint (98.4% through training). The loss curve is still decreasing, so later checkpoints will likely perform better.
  • Trained on a specific code retrieval dataset; may not generalize to all programming languages or query styles without further fine-tuning.
  • Max context is 1024 tokens -- very long files are truncated.

Citation

If you use this model, please cite the base model:

bibtex
@article{qwen3embedding,
  title={Qwen3-Embedding},
  author={Qwen Team},
  year={2025}
}