/ Модель

Характеристики

Контекст
7 999 токенов
Параметры
16,8 млн
Лицензия
Своя лицензия
Архитектура
modernbert · dense
Базовая модель
LateOn-Code-edge
Библиотека
sentence-transformers
Опубликована
24 авг 2026

LateOn-Code-edge-EVMScout-17M

ЭмбеддингиТекст → embedding3 профессии

Компактный ретривер для ранжирования функций Solidity по релевантности заданному механизму уязвимости и приоритизации ручного аудита.

104скачиваний за 30 дней0лайковвеса обновлены2 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

LateOn-Code-edge EVMScout 17M — компактный ретривер с архитектурой ModernBERT и поздним взаимодействием, разработанный на базе LateOn-Code-edge и дообученный для локализации уязвимых функций в репозиториях Solidity. Модель получает код и описание механизма риска, например реентерабельности или повторного использования подписи, и ранжирует функции, которые стоит проверить в первую очередь. Число параметров — около 16,95 млн, длина контекста — 7 999 токенов.

Модель предназначена для приоритизации кода при авторизованном аудите Solidity и подготовки короткого списка функций для проверки человеком или отдельной reasoning-моделью. В тесте на ранее не встречавшихся семействах протоколов среднее число известных уязвимых функций в топ-10 выросло с 7 из 63 у базовой модели до 11–12 из 63 у обученных запусков. Это исследовательский чекпойнт с низким абсолютным recall: оценка модели указывает лишь на повод для проверки, а не подтверждает уязвимость или безопасность контракта. Модель не является автономным аудитором или сертификатом безопасности. Лицензия указана как other; README отмечает, что права на распространение исходного корпуса ещё проверяются.

Сценарии применения

  • поиск функций Solidity для проверки на реентерабельность
  • ранжирование функций смарт-контракта по риску повторного использования подписи
  • подготовка списка подозрительных функций для аудитора
  • поиск уязвимых участков кода в репозитории EVM
  • сравнение ретриверов кода для локализации уязвимостей

Ограничения

В тесте 82% известных уязвимых функций не попали в первые десять результатов, поэтому модель подходит только для приоритизации проверки и не подтверждает наличие или отсутствие уязвимости. Статические срезы кода не охватывают всю семантику сборки, динамическую диспетчеризацию и глубокие межконтрактные взаимодействия.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

[!CAUTION] This is a research checkpoint, not an autonomous auditor or a safety certificate. On the locked unseen-family test, each trained run placed 11 or 12 of 63 known affected functions in the top 10. The frozen base placed 7. The improvement is repeatable, but absolute recall remains low.

The downloadable checkpoint is a 16.95M-parameter LateOn-Code-edge retriever. It contains no Gemma weights. Historical system experiments used a frozen Gemma reviewer only after retrieval. Ignore Hugging Face's generic SentenceTransformer(...) example; use MultiVectorEncoder(...) and MeanMaxSim below.

Abstract

This work studies whether an ultra-small late-interaction model can learn repository-scale vulnerability localization under a 4 GB GPU constraint. The retriever receives a general security mechanism and ranks every implemented function in a Solidity repository. A separate reasoning model can review the retrieved shortlist, while executable tools remain responsible for confirmation.

The released 16.95M-parameter checkpoint was fully fine-tuned from lightonai/LateOn-Code-edge with repository-listwise supervision and same-repository distractors. Evaluation was frozen across three seeds and conducted on unseen protocol families. Mean Recall@10 increased from 11.1% for the frozen base to 18.0%, and median affected-function rank improved from 98 to 43.7. These results support the narrow hypothesis that small specialized retrievers can improve review prioritization; they do not establish practical autonomous auditing capability.

Model description

TaskRepository-scale Solidity vulnerability localization
InputSolidity source plus a risk such as reentrancy, broken accounting, or signature replay
OutputA ranking of functions and bounded structural context
Released checkpoint16,953,600 parameters, fully fine-tuned from lightonai/LateOn-Code-edge
Second-stage modelOptional and external; historical experiments used frozen google/gemma-4-E4B-it, whose weights are not included
Training hardwareRTX 3050 Laptop GPU with 4 GB VRAM; selected run peaked at 0.437 GiB
Research statusPublic preview; not a vulnerability detector, auditor, or safety certificate

Research question

Auditors do not choose one vulnerable function from four easy options. They decide where to start in a repository with hundreds of functions.

We test one hypothesis: can an ultra-small model trained on whole-repository rankings prioritize known affected functions better than its frozen code-retrieval base on previously unseen protocol families?

The locked experiment produced three consistent observations:

  • The median affected-function rank moved from 98 to 42–45 in repositories with a median of 443 candidate functions.
  • The number of affected functions in the top 10 moved from 7 of 63 to 11, 11, and 12 of 63 across three runs.
  • Every run improved on both held-out sets.

The checkpoint met the predeclared improvement criterion but remained far below the stronger competitiveness thresholds. It is released to make the positive and negative results reproducible and to support follow-up work on data quality, repository context, and executable verification.

Try the localizer

pip install "sentence-transformers>=6.0.0" torch
import torch
from sentence_transformers import MultiVectorEncoder

model = MultiVectorEncoder("starknet-ai/LateOn-Code-edge-EVMScout-17M")

query = "Find reentrancy or callback paths where an external call happens before critical state is updated."
functions = [
    """function withdraw(uint256 amount) external {
        require(balance[msg.sender] >= amount);
        (bool ok,) = msg.sender.call{value: amount}("");
        require(ok);
        balance[msg.sender] -= amount;
    }""",
    """function balanceOf(address user) external view returns (uint256) {
        return balance[user];
    }""",
]

query_tokens = model.encode_query([query], convert_to_numpy=False)[0]
document_tokens = model.encode_document(functions, convert_to_numpy=False)

# EVMScout 17M was trained with mean MaxSim.
scores = torch.stack([
    (query_tokens @ document.T).max(dim=1).values.mean()
    for document in document_tokens
])

print(scores.argsort(descending=True).tolist())
# The state-after-call withdraw path should rank first.

Scan a repository

The repository includes the scanner and the 12 security queries used in the demo:

python scan_multivector_repo.py /path/to/authorized/solidity/repo \
  --checkpoint starknet-ai/LateOn-Code-edge-EVMScout-17M \
  --output scan.json \
  --top-k 10

The scanner extracts each function and its nearby calls, modifiers, inheritance, and shared state. It scores each risk separately, then merges the rankings. Compare scores only within the same query.

System architecture

Solidity repository
      │
      ├── deterministic security slices
      │     ├─ modifiers and inheritance
      │     ├─ callers and callees
      │     ├─ state reads and writes
      │     └─ shared-state neighbors
      │
      ├── LateOn-Code-edge EVMScout 17M (released checkpoint)
      │     └─ top functions for 12 general mechanisms
      │
      ├── optional external hypothesis reviewer
      │
      └── Foundry / Slither / Echidna / Halmos
            └─ CONFIRMED / SUPPORTED / LEAD / REJECTED / UNRESOLVED

Every raw retrieval result begins as LEAD. A model score alone is not evidence that a vulnerability exists.

Training procedure

Data construction

  • 36,618 implemented Solidity functions from 99 projects.
  • 208 training findings.
  • 57 repository-disjoint validation findings.
  • 63 unseen-protocol-family test findings.
  • 27 separately sealed regression findings.
  • Conservative grouping keeps versions, forks, upgrades, and related audits in the same protocol family.
  • Unreported functions are treated as distractors, never certified-safe negatives.
  • The corpus is not included in this repository.

The initial source index was reconstructed from a pinned FORGE-Curated snapshot. Source-level provenance and redistribution rights remain under review; see License and provenance.

Objective and optimization

SettingValue
ObjectiveExact multi-positive repository-listwise loss
Candidate curriculum7 → 15 → 31 same-repository distractors
PrecisionBF16
Query length96 tokens
Document length512 tokens
OptimizerAdamW
Learning rate2e-5
Weight decay0.01
Schedule5% warmup, linear decay
Gradient clipping1.0
Final seeds20260823, 20260824, 20260825
Selected checkpointseed 20260825, validation-selected step 150

A 149M-parameter LateOn-Code checkpoint also fit on the 4 GB GPU at 3.364 GiB, but lost the frozen validation bakeoff. The smaller 17M model was selected on evidence, not size or novelty.

Evaluation protocol

Three seeds were frozen before the unseen-family test was opened.

The primary evaluation ranks all implemented functions in each held-out repository rather than selecting among a small set of sampled candidates. Repository versions, forks, upgrades, and related audits are grouped into protocol families to reduce leakage. The reported test contains 63 findings from nine unseen families; a separate sealed regression set contains 27 findings.

Results

Unseen protocol families · 63 findingsMRRRecall@5Recall@10Recall@20Median rank
Frozen LateOn-Code-edge0.0513.2%11.1%20.6%98
Trained mean · 3 seeds0.093 ± 0.00513.2%18.0%28.0%43.7
3-seed score ensemble0.10212.7%17.5%30.2%42
Sealed regression · 27 findingsMRRRecall@5Recall@10Recall@20Median rank
Frozen LateOn-Code-edge0.06011.1%14.8%22.2%73
Trained mean · 3 seeds0.119 ± 0.02814.8%29.6%40.7%30.3
  • Protocol-family-clustered 95% bootstrap interval for test ΔMRR: [0.0002, 0.2282].
  • Exact family sign-flip test: p=0.230 because the test contains only nine independent families.
  • All three seeds improved Recall@10 on both held-out sets.
  • The predeclared +5 percentage-point improvement gate passed.
  • The stronger 60% Recall@10 / 80% Recall@20 competitiveness gates failed.

The model passed the predeclared improvement gate. It failed the stronger competitiveness thresholds. The direction of improvement is repeatable across the three runs; the absolute recall remains insufficient for independent security review.

Structural-context ablation

Validation representationMRRRecall@5Recall@10Recall@20
Raw Solidity function0.14317.5%33.3%56.1%
Bounded security slice0.15826.3%38.6%54.4%

The slice improved early ranking, especially Recall@5. It is a deterministic no-build approximation—not Slither and not a complete inter-contract graph.

Post-freeze external pilot

The fixed generic mechanism scan was also run on nine findings from four official ReEVMBench task repositories after the main result was frozen.

Nine-finding pilotMRRRecall@10Recall@20Median rank
Frozen base0.47266.7%88.9%3
LateOn-Code-edge EVMScout 17M0.50588.9%100.0%2

Five findings improved, two tied, and two worsened. No scored positive exactly matched training code. This is not an official ReEVMBench Detect score: the sample is tiny, gold was used only for post-hoc localization scoring, and the task repositories lacked the base_commit objects declared by their benchmark configs. Full predictions are preserved in reevm_external_summary.json.

Negative result: hard-negative collapse

One model-mined hard-negative continuation collapsed validation Recall@10 from 59.6% at the starting checkpoint to 47.4% after 25 steps, 26.3% after 50, and 19.3% after 100. The selector retained step 1.

This result suggests that automatically treating highly ranked, unlabeled functions as negatives can suppress useful evidence. Unreported code is therefore represented as a distractor rather than certified-safe supervision.

Intended use

Supported research uses:

  • Prioritize functions and connected code neighborhoods for an authorized Solidity review.
  • Supply a shortlist to a human auditor or a second-stage reasoning model.
  • Compare retrieval behavior across general vulnerability mechanisms.
  • Study repository-aware, token-level code retrieval under small-GPU constraints.

Out-of-scope uses:

  • Certifying a contract as safe.
  • Autonomous vulnerability discovery.
  • Severity classification.
  • Calibrated exploit probability.
  • Running tests against systems, contracts, networks, or funds without authorization.

Limitations

  • On the locked test, 82% of known positives remained outside the first ten results.
  • Generic mechanisms can converge on the same suspicious function.
  • Static slices omit build-resolved semantics, dynamic dispatch, and deeper cross-contract behavior.
  • Upstream file/function mappings remain subject to manual verification.
  • Second-stage hypothesis text can be plausible but wrong; executable evidence remains authoritative.
  • The external pilot is too small for a benchmark or SOTA claim.

Future work

Future checkpoints will be considered competitive only if a new locked evaluation reaches:

  • at least 60% Recall@10;
  • at least 80% Recall@20;
  • the same direction across three runs and unseen protocol families;
  • reproducible Foundry tests for a meaningful share of the shortlisted leads.

Failure cases are particularly useful. Open a Community discussion with the repository commit, risk query, expected function, and returned rank so that future experiments can target a concrete retrieval failure.

License and provenance

The base checkpoint is Apache-2.0. The EVM-Scout training examples were reconstructed from public security reports and source snapshots whose per-source terms are still being reviewed. The corpus is not distributed here.

This is a public research preview while the derived-weight and per-source provenance review remains open. Public availability is not a representation that the fine-tuning corpus is redistributable, and the corpus is not included. No public or commercial redistribution license is granted for the fine-tuned weights by this preview. See LICENSE.md.

Reproducibility and evidence

  • locked_summary.json — complete locked predictions and statistics.
  • reevm_external_summary.json — post-freeze external pilot, task HEADs, hashes, and overlap checks.
  • smoke-results.json — pinned Foundry, Slither, Echidna, and Halmos smoke evidence.
  • security_mechanisms.json — fixed 12-query mechanism bank.
  • scan_multivector_repo.py — repository scanner.
  • solidity_graph.py — deterministic function and security-slice extractor.
  • solidity_parser.py — dependency-free conservative Solidity function parser.

Acknowledgements

Built on lightonai/LateOn-Code-edge, Sentence Transformers MultiVectorEncoder, and the broader ColBERT/late-interaction ecosystem. Historical system experiments used google/gemma-4-E4B-it as a separate frozen reviewer; it is not part of this checkpoint.

Citation

@misc{espejel2026lateonevmscout,
  title        = {LateOn-Code-edge EVMScout 17M: Repository-Wide Solidity Security Retrieval on a 4GB GPU},
  author       = {Omar Espejel},
  year         = {2026},
  howpublished = {Hugging Face model repository},
  url          = {https://huggingface.co/starknet-ai/LateOn-Code-edge-EVMScout-17M}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Можно запустить

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
95fb579

0 моделей