CiteNet
рукописные веса против фантомных юридических ссылок
CiteNet от FluidInference — небольшая сеть на 397 250 параметров (13 871 ненулевой), которая в Core ML помечает юридические цитаты, которые не могут существовать. Веса не обучали: Claude (Anthropic) написал спецификацию и компилятор, превращающий её в именованные веса; градиентных шагов не было.
⚙ Ключевые особенности
- ⚙ Без обучения: Claude написал
spec.pyиnet.py; каждый ненулевой вес имеет имя, градиентных шагов не было. - 🔎 Ловит структурно невозможные ссылки: выдуманные серии (
F.5th,S.W.4th), суд, который не печатает репортёр, штат вне регионального покрытия, год не подходит к тому. - ⚡ Быстрый инференс на Core ML: до ~1,82 млн цитат/с на Neural Engine + GPU; 3,30 ГБ судебных мнений за 2,3 с.
- 🧭 В комплекте:
.mlpackageдля батчей 1/32/512/8192, Swift-порт токенизатора, демо и бенчмарки. - ℹ Ограничение: строковая сеть проверяет, могла ли ссылка существовать, а не существовала ли она; реальные фейки LLM с валидным форматом проходят.
🔎 Пример
import numpy as np, coremltools as ct
from citenet import text
m = ct.models.MLModel('models/CiteNet_b32.mlpackage')
cites = [c for _, _, c in text.extract('See 412 F.5th 1187 (2d Cir. 2023).')]
x = np.zeros((32, 1, 1, 64), np.float16)
x[:len(cites)] = text.encode(cites)
p = m.predict({'codes': x})['p_fake'][:len(cites), 0]
print(list(zip(cites, p.round(3))))
Подробнее
На LePhantomCite (held-out eval): в v1.5 поймано 31/31 фантомных цитат, ложных срабатываний 1/983.Скорость: ~50 мкс на 1 цитату (CPU), 170 мкс на 32 (Neural Engine); ANE + GPU — ~1,82 млн цитат/с.
Другие типы галлюцинаций (несовпадение названия дела, неверный пинсайт, искажённая цитата) вне области: нужен текст дела.
На 3,30 ГБ реальных судебных мнений (291 339 решений) флаги у 0,134% цитат; часть может быть ошибками самой модели.








Комментарии