Papers and ongoing investigations

Peer-reviewed work, work-in-progress papers, and research-grade builds.

ICTAI 2026 Accepted

Continuous Retrieval-Grounded Reward Design for Secure Code Generation on Small Language Models (CARGO)

Small code models trained on security-scanner verdicts stall because nearly every early attempt scores the same zero, so this also scores each attempt against a retrieved secure fix to give training something to climb.

Functional-Secure@1 for four RL algorithms with and without the retrieval reward. GRPO rises from 8.6 to 35.1, PPO from 10.5 to 36.2, RLOO from 8.6 to 33.7, and RAFT from 7.9 to 30.4.Functional-Secure@1 for four RL algorithms with and without the retrieval reward. GRPO rises from 8.6 to 35.1, PPO from 10.5 to 36.2, RLOO from 8.6 to 33.7, and RAFT from 7.9 to 30.4.
Functional-Secure@1 on the 156-prompt test-equipped subset (Qwen2.5-Coder-1.5B). All four gains fall within 4 pp of each other, so the reward, not the estimator, carries the effect.
  • SAST-only GRPO on Qwen2.5-Coder-1.5B updates the policy on fewer than 9% of steps: rollouts that fail to parse all score zero and the group-relative advantage collapses. A copy-guarded cosine reward against a CWE-retrieved secure fix lifts that to 94.8%.
  • Over SAST-only GRPO on 1,582 prompts across 19 CWEs in Python, C, and C++: +19.9 pp Compile@1, +16.6 pp Secure@1|Compile, +26.5 pp Functional-Secure@1.
  • Not tied to one optimizer: the retrieval reward lifts GRPO, PPO, RLOO, and RAFT by 22.5 to 26.5 pp, and reproduces on Qwen2.5-Coder-3B (+20.9) and StarCoder2-3B (+19.2).
  • Python
  • PyTorch
  • PEFT (LoRA)
  • GRPO / PPO / RLOO / RAFT
  • CodeQL
  • Semgrep
  • Bandit
  • Cppcheck
  • BM25 + bge-base
  • Qwen2.5-Coder
Working paper

Match Your Loss to Your Cost: Asymmetric Losses and Conformal Capacity Bands for Backbone Traffic Forecasting

A network operator pays far more for a capacity shortfall than for spare headroom, so this trains the traffic forecaster on that real cost instead of on RMSE.

Mean overload rate against mean over-provisioning cost on Abilene as the training ratio is swept from 1:1 to 100:1. Overload falls by more than two orders of magnitude as cost rises, and the 1:1 point coincides with the MSE baseline.Mean overload rate against mean over-provisioning cost on Abilene as the training ratio is swept from 1:1 to 100:1. Overload falls by more than two orders of magnitude as cost rises, and the 1:1 point coincides with the MSE baseline.
Sweeping the training ratio on Abilene (DLinear, 20 seeds). The 1:1 point lands on the MSE baseline exactly, since α = β = 1 recovers MSE.
  • Cusp-linear loss matched to operator ratio: +76% Abilene, +75% GÉANT, +54% CESNET vs MSE at top operator asymmetry. L1 is the canonical consistent scoring rule for the τ-quantile (Gneiting 2011); squared asymmetric collapses on heavy-tailed GÉANT.
  • Cross-architecture: the matched 5:1 win reproduces on DLinear (+30 to +97%) and iTransformer (+28 to +79%) across Abilene/GÉANT/CESNET.
  • ACI vs split CQR: overload rate 155× lower on Abilene, 9.1× lower on GÉANT, 3.8× lower on CESNET. ACI's across-seed coverage variance is 30 to 200× smaller.
  • Python
  • PyTorch
  • statsmodels
  • NumPy
  • Pandas
  • scikit-learn
LCTES 2026 Published

Scheduled Partial-Credit RL for Reliable Code Generation with Small Language Models (WIP)

Handing a small model from binary rewards to partial credit partway through training lifts its syntax-valid output from 18% to 63%.

  • On DeepSeek-Coder-1.3B over 100 APPS+ prompts: SFT 44% syntax / 3% ≥1-pass. Binary-reward PPO degrades to 18% / 0%. Partial-credit from scratch reaches 27% / 2%.
  • The binary-to-partial-credit schedule (PPO-continue) wins: 63% syntax, 9% ≥1-pass, 2% all-pass on a single attempt. Curriculum on the reward matters more than the reward shape alone.
  • LoRA r=16 (6.3M trainable params, 0.47%), single V100 16GB, Bandit-graded R_sec. Security null on APPS+ (algorithmic); CWE-mapped partial credit is the next step.
  • Python
  • PyTorch
  • TRL (PPO)
  • PEFT (LoRA)
  • Bandit
  • DeepSeek-Coder-1.3B
  • APPS+
IEEE AITest 2025 Published

Fixing Performance Bugs Through LLM Explanations

Training a model on written explanations of Java performance bugs, rather than on labels alone, raises detection accuracy from 67% to 84%.

  • Curated dataset of 490 performance bugs across 17 Defects4J projects, with a 5-category taxonomy (algorithmic, memory, CPU, redundant, I/O).
  • Fine-tuned GPT-4o-mini to produce explanations alongside predictions. Detection accuracy 67.3% → 83.7%, F1 64.6% → 82.3%.
  • Full reproduction stack public: extraction, categorization, fine-tuning, evaluation harness.
  • Python
  • GPT-4o-mini fine-tuning
  • Defects4J
  • Java
  • OpenAI API