⌘K
  • Главная
  • Новости
  • Блог
  • Релизы
  • История LLM
  • Сравнение LLM
  • Библиотека
  • Обо мне
Вход

Блог и заметки о разработке. Для связи удобнее всего использовать соцсети ниже.

Контакты
talalaev.misha@gmail.com

© Все права защищены.

Локальный ИИ на Mac M2: как дёшево тегировать тысячи транзакций

Sh0ny
Sh0ny
11 июля 2026
  1. Главная
  2. Блог
  3. Локальный ИИ на Mac M2: как дёшево тегировать тысячи транзакций
2 мин чтения

Коротко

Автор проекта millfolio рассказал, как организовать пакетную обработку финансовых записей с помощью on-device модели. Ключевая идея — вычислять суждения модели один раз и хранить результат, а не вызывать ИИ при каждом запросе пользователя.

Проект millfolio использует двухуровневую архитектуру: фронтальная модель генерирует небольшую программу поверх схемы, а локальная модель читает реальные файлы пользователя прямо на устройстве. Главная проблема — локальная модель не масштабируется вместе с объёмом данных. Тысячи транзакций за пару лет невозможно прогонять через ИИ при каждом вопросе: даже доля секунды на запись превращается в минуты инференса, а следующий запрос повторяет всё заново.

Правило проектирования

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

Три типа тегов

Теги описываются в обычном текстовом файле categories.txt — по одному правилу на строку, файл является единственным источником истины. Типы упорядочены по стоимости:

  • Строковые теги — дешёвый и самый частый случай. Сопоставление подстрок без учёта регистра, с возможными исключениями. Фактически бесплатно и покрывает большую часть реальной истории трат, поскольку строки merchants повторяются.
  • Ссылочные теги — строятся из других тегов через @tag. Правило срабатывает, если на строке уже есть указанный тег. Циклы безопасны: теги только добавляются, поэтому вычисление сходится.
  • AI-теги — нечёткий хвост, который не ловит ни один список ключевых слов. Правило задаётся как вопрос «да/нет», а локальная модель выступает судьёй. Это единственный тип, требующий инференса.

В момент запроса все три типа выглядят одинаково: сгенерированная программа фильтрует по .tags, и ответ по тысячам записей сводится к сравнению строк, а не к вызову модели.

Приватность

Фронтальной модели сообщаются имена тегов и заметки об области действия, но не ключевые слова. Реальные строки merchants остаются на устройстве.

Пакетная обработка и приоритеты

AI-теги нужно вычислить хотя бы один раз — это бэкфилл по всем существующим записям плюс новые поступления. Работой управляет on-device оркестратор: дисковая очередь, переживающая перезапуски, обрабатывающая одну задачу за раз. Индексация и бэкфилл AI-тегов не конкурируют друг с другом, а оба уступают интерактивному запросу.

Внутри задачи классификация батчится и дедуплицируется:

  • множество описаний отправляется модели в одном промпте, ответ приходит в формате 1: yes, 2: no, … — один вызов классифицирует целый срез;
  • точные дубликаты схлопываются до попадания в модель: ежемесячный платёж, повторяющийся 24 раза, классифицируется однажды, а вердикт распространяется на все копии.

Небольшой журнал фиксирует, насколько каждое правило уже материализовано, с привязкой к монотонному поколению вставки. Готовый тег никогда не пересчитывает старые записи — новые подхватываются инкрементально. Между срезами бэкфиллер «дремлет», и длина паузы выступает настройкой приоритета.

Источник: Hacker News - Newest: ""AI" "LLM""

новостиaillmразработка
Понравился разбор? Получайте такие раз в неделю на почту
​
Больше разборов AI-инструментов — в Telegram-канале, коротко и по делу
Подписаться в Telegram

Комментарии

(0)
​