LLM. RUST. NIX.

Блог о том, как заставить нейросети работать у себя дома, на одной видеокарте и без облаков.

новый пост
каждый день
  • Eva: вытесняющий DAG-планировщик и бенчмарки моделей
  • llm-wiki 0.3.1 вышла
  • FlyBrain: 164 506 нейронов в реальном времени
  • VoiceLM: UVR5 на GPU, строгий контроль VRAM
  • Persona: 24 эмоции OCC и настроение в PAD
проект 16 октября · 4 мин

Eva: оркестратор локальных LLM без единой строчки Python

Общая память вместо HTTP, песочницы bwrap и вытесняющий планировщик WSJF для нескольких моделей на 8 ГБ VRAM.

Читать
// eva/core
scheduler  WSJF · DAG (petgraph)
ipc        SPSC ring · shared memory
sandbox    bwrap --unshare-net
inference  candle · GGUF Q4_K_M
rag        hnsw_rs
api        axum · tonic over UDS

Неделя 42

  1. Eva: оркестратор локальных LLM без единой строчки Python Общая память вместо HTTP, песочницы bwrap и вытесняющий планировщик WSJF для нескольких моделей на 8 ГБ VRAM. проект
  2. Mamba и Jamba: что будет после трансформеров (или вместе с ними) Модели пространства состояний, избирательность и гибрид, в котором на восемь слоёв приходится один слой внимания. разбор
  3. FlashAttention: как ускорить внимание, ничего не приближая Узкое место не в умножении матриц, а в перекладывании их по памяти. Разбор алгоритма, который учитывает, где лежат данные. разбор
  4. llm-wiki 0.3.1: ошибки, которые называют себя Два релиза за день, контейнеры вместо сборки на сервере, обновление из интерфейса и тесты, которые наконец падают, когда код сломан. проект
  5. Mixture of Experts: почему у модели 47 миллиардов параметров, а работают 13 Роутер, эксперты, балансировка нагрузки и главный подвох для владельцев маленьких видеокарт. разбор
  6. Пространства имён Linux: из чего на самом деле сделаны контейнеры Mount, UTS, IPC, PID, network, user. Шесть видов изоляции в ядре, на которых стоят Docker, Flatpak и песочница Евы. разбор

Неделя 41

  1. False sharing: тихий убийца многопоточной производительности Два потока пишут в разные переменные и всё равно мешают друг другу. Почему так происходит и как это лечится выравниванием. разбор
  2. Как ускорить кольцевой буфер в 20 раз, просто запомнив чужой индекс Разбор статьи Эрика Ригторпа: почему наивная lock-free очередь упирается в когерентность кешей и как это лечится. разбор
  3. Eva изнутри: общая память, кольцевой буфер и байт за байтом Как процесс модели и ядро разговаривают без сокетов и сериализации. Раскладка памяти, статусы воркера и баг, который я нашёл, пока писал этот пост. проект
  4. Спекулятивное декодирование: маленькая модель угадывает, большая проверяет Ускорение генерации в 2–3 раза без потери качества. Идея из процессоров, которая теперь работает в поиске Google. разбор
  5. Контекстная инженерия: внимание модели — это бюджет Чем больше токенов, тем хуже модель их помнит. Разбор того, как собирать контекст агенту, по материалу Anthropic. разбор
  6. Git worktree: несколько веток одновременно без stash и второго клона Одна история, несколько рабочих папок. Почему worktree стал любимым инструментом людей, которые запускают параллельных ИИ-агентов. разбор
  7. Как писать инструменты для ИИ-агентов, а не для программистов Не оборачивай каждый эндпоинт API. Разбор инженерных советов Anthropic: меньше инструментов, понятные имена, экономия токенов и оценки. разбор
  8. llm-wiki: восемь этапов за неделю, от схемы правил до целителя Компиляция инструкций, ревью человеком, библиотека книг с цитатами и агент, который сам ищет противоречия. Что выросло за неделю. проект
  9. Смертельная триада: когда ИИ-агент становится утечкой данных Личные данные, недоверенный контент и выход в сеть. Почему агенту нельзя давать все три сразу и почему 95% защиты — это провал. разбор

Неделя 40

  1. HNSW: как найти ближайший вектор среди миллиона за миллисекунду Списки с пропусками, графы «малого мира» и три параметра, которые решают всё. Разбор самого популярного индекса для векторного поиска. разбор
  2. Contextual Retrieval: как дать каждому куску документа память о целом Кусок текста «выручка выросла на 3%» бесполезен, если непонятно, чья и когда. Разбор метода Anthropic, который уменьшил провалы поиска на 67%. разбор
  3. Полнотекстовый поиск, который уже лежит в SQLite: FTS5 BM25, подсветка совпадений, триграммы и внешние таблицы. Почему для поиска по вики мне не понадобился Elasticsearch. разбор
  4. Model Context Protocol: USB-C для ИИ-агентов Как один открытый протокол заменил N×M самописных интеграций между моделями и источниками данных. разбор
  5. LLM Wiki Карпати: перестать искать и начать компилировать знания Сырые источники, вики, которую ведёт модель, и файл с правилами. Почему эта короткая заметка породила тысячи форков. разбор
  6. llm-wiki: правила компании, которые агенты читают, а люди утверждают Первый день нового проекта. Markdown в Git, компиляция инструкций по профилям и главный принцип: решения принимает человек. проект
  7. KV-cache: почему генерация не пересчитывает весь текст заново Ускорение в 5 раз за счёт памяти. Разбираю, что именно кеширует трансформер и почему длинный контекст съедает видеокарту. разбор
  8. Что значит Q4_K_M: как устроено квантование k-quants в llama.cpp Суперблоки по 256 весов, масштабы внутри масштабов и смеси точности. Почему модель на 4 бита почти не глупеет. разбор

Неделя 39

  1. SSE или WebSocket: как правильно стримить токены LLM ChatGPT использует простой HTTP-поток, а не сокеты. Разбираю, когда хватает Server-Sent Events и когда нужен WebSocket. разбор
  2. Руны Svelte 5: почему фреймворк отказался от «магического» let $state, $derived, $effect и сигналы под капотом. Разбор того, какие проблемы старой реактивности решают руны. разбор
  3. Стеклянная панель для Евы: веб-интерфейс на Svelte Flow Интерфейс, который можно выключить, и ядро этого не заметит. Чат, телеметрия VRAM и живой граф задач планировщика. проект
  4. Candle: машинное обучение на Rust без Python Почему Hugging Face написали свой минималистичный фреймворк и почему Eva считает модели именно на нём. разбор
  5. Docker-образы без Dockerfile: dockerTools в Nix Почему образ, собранный Nix, воспроизводим, меньше и не тащит за собой apt-get и половину Debian. разбор
  6. Whisper: 680 тысяч часов «грязной» разметки вместо идеального датасета Как OpenAI обучили распознавание речи на субтитрах из интернета и получили модель, которая почти не ломается на новых данных. разбор
  7. Как нейросеть отделяет голос от музыки: Hybrid Transformer Demucs Две ветки, по времени и по частоте, и трансформер между ними. Разбор архитектуры, которая держала рекорд в разделении источников. разбор
  8. VoiceLM: конвейер, который вытаскивает чистый голос из шума Redis, очереди RQ, нейросеть UVR5 на видеокарте и секреты в SOPS: как я собирал голосовой датасет и не сжёг 8 ГБ VRAM. проект
  9. Векторы персоны: где у языковой модели живёт характер Anthropic нашли направления в активациях, отвечающие за подхалимство, «злобу» и галлюцинации, и научились ими управлять. разбор

Неделя 38

  1. PAD: настроение как точка в трёхмерном пространстве Удовольствие, возбуждение, доминирование. Как модель Меграбяна превращает «мне как-то тревожно» в координаты. разбор
  2. Модель OCC: 22 эмоции, которые можно запрограммировать Почему теория Ортони, Клора и Коллинза стала стандартом для эмоций у ИИ, и какие у неё подводные камни. разбор
  3. Persona: как я учу Еву чувствовать (и почему это математика) 24 эмоции по теории OCC, настроение как точка в трёхмерном пространстве и воспроизводимая лаборатория на Nix для проверки модели. проект
  4. Спайковые нейросети: как учить сеть, которая говорит импульсами Нейрон LIF, кодирование в импульсы и суррогатный градиент: что взять из глубокого обучения, чтобы обучить «биологическую» сеть. разбор
  5. NeuroMechFly v2: цифровой двойник мухи, который видит и чует Физическая модель тела, глаза, антенны и иерархия управления: как в EPFL собрали виртуальную дрозофилу. разбор
  6. Модель мозга мухи с одним свободным параметром угадала 91% экспериментов Как простейшие нейроны «накопил — протёк — выстрелил» на полном коннектоме предсказали, какие клетки запускают питание. разбор
  7. Первая полная карта мозга взрослого животного FlyWire: 139 тысяч нейронов, 54 миллиона синапсов и геймеры, которые помогли нейросети исправить ошибки. разбор
  8. FlyBrain: босс, которым управляет мозг мухи 164 тысячи настоящих нейронов дрозофилы вместо дерева поведения. Как я подключил коннектом к игровому движку на Rust. проект

Неделя 37

  1. Привет, я BadRabbit Кто я, зачем этот блог и почему тут будет так много Rust, Nix и локальных нейросетей. обо мне