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
- Eva: оркестратор локальных LLM без единой строчки Python Общая память вместо HTTP, песочницы bwrap и вытесняющий планировщик WSJF для нескольких моделей на 8 ГБ VRAM. проект
- Mamba и Jamba: что будет после трансформеров (или вместе с ними) Модели пространства состояний, избирательность и гибрид, в котором на восемь слоёв приходится один слой внимания. разбор
- FlashAttention: как ускорить внимание, ничего не приближая Узкое место не в умножении матриц, а в перекладывании их по памяти. Разбор алгоритма, который учитывает, где лежат данные. разбор
- llm-wiki 0.3.1: ошибки, которые называют себя Два релиза за день, контейнеры вместо сборки на сервере, обновление из интерфейса и тесты, которые наконец падают, когда код сломан. проект
- Mixture of Experts: почему у модели 47 миллиардов параметров, а работают 13 Роутер, эксперты, балансировка нагрузки и главный подвох для владельцев маленьких видеокарт. разбор
- Пространства имён Linux: из чего на самом деле сделаны контейнеры Mount, UTS, IPC, PID, network, user. Шесть видов изоляции в ядре, на которых стоят Docker, Flatpak и песочница Евы. разбор
Неделя 41
- False sharing: тихий убийца многопоточной производительности Два потока пишут в разные переменные и всё равно мешают друг другу. Почему так происходит и как это лечится выравниванием. разбор
- Как ускорить кольцевой буфер в 20 раз, просто запомнив чужой индекс Разбор статьи Эрика Ригторпа: почему наивная lock-free очередь упирается в когерентность кешей и как это лечится. разбор
- Eva изнутри: общая память, кольцевой буфер и байт за байтом Как процесс модели и ядро разговаривают без сокетов и сериализации. Раскладка памяти, статусы воркера и баг, который я нашёл, пока писал этот пост. проект
- Спекулятивное декодирование: маленькая модель угадывает, большая проверяет Ускорение генерации в 2–3 раза без потери качества. Идея из процессоров, которая теперь работает в поиске Google. разбор
- Контекстная инженерия: внимание модели — это бюджет Чем больше токенов, тем хуже модель их помнит. Разбор того, как собирать контекст агенту, по материалу Anthropic. разбор
- Git worktree: несколько веток одновременно без stash и второго клона Одна история, несколько рабочих папок. Почему worktree стал любимым инструментом людей, которые запускают параллельных ИИ-агентов. разбор
- Как писать инструменты для ИИ-агентов, а не для программистов Не оборачивай каждый эндпоинт API. Разбор инженерных советов Anthropic: меньше инструментов, понятные имена, экономия токенов и оценки. разбор
- llm-wiki: восемь этапов за неделю, от схемы правил до целителя Компиляция инструкций, ревью человеком, библиотека книг с цитатами и агент, который сам ищет противоречия. Что выросло за неделю. проект
- Смертельная триада: когда ИИ-агент становится утечкой данных Личные данные, недоверенный контент и выход в сеть. Почему агенту нельзя давать все три сразу и почему 95% защиты — это провал. разбор
Неделя 40
- HNSW: как найти ближайший вектор среди миллиона за миллисекунду Списки с пропусками, графы «малого мира» и три параметра, которые решают всё. Разбор самого популярного индекса для векторного поиска. разбор
- Contextual Retrieval: как дать каждому куску документа память о целом Кусок текста «выручка выросла на 3%» бесполезен, если непонятно, чья и когда. Разбор метода Anthropic, который уменьшил провалы поиска на 67%. разбор
- Полнотекстовый поиск, который уже лежит в SQLite: FTS5 BM25, подсветка совпадений, триграммы и внешние таблицы. Почему для поиска по вики мне не понадобился Elasticsearch. разбор
- Model Context Protocol: USB-C для ИИ-агентов Как один открытый протокол заменил N×M самописных интеграций между моделями и источниками данных. разбор
- LLM Wiki Карпати: перестать искать и начать компилировать знания Сырые источники, вики, которую ведёт модель, и файл с правилами. Почему эта короткая заметка породила тысячи форков. разбор
- llm-wiki: правила компании, которые агенты читают, а люди утверждают Первый день нового проекта. Markdown в Git, компиляция инструкций по профилям и главный принцип: решения принимает человек. проект
- KV-cache: почему генерация не пересчитывает весь текст заново Ускорение в 5 раз за счёт памяти. Разбираю, что именно кеширует трансформер и почему длинный контекст съедает видеокарту. разбор
- Что значит Q4_K_M: как устроено квантование k-quants в llama.cpp Суперблоки по 256 весов, масштабы внутри масштабов и смеси точности. Почему модель на 4 бита почти не глупеет. разбор
Неделя 39
- SSE или WebSocket: как правильно стримить токены LLM ChatGPT использует простой HTTP-поток, а не сокеты. Разбираю, когда хватает Server-Sent Events и когда нужен WebSocket. разбор
- Руны Svelte 5: почему фреймворк отказался от «магического» let $state, $derived, $effect и сигналы под капотом. Разбор того, какие проблемы старой реактивности решают руны. разбор
- Стеклянная панель для Евы: веб-интерфейс на Svelte Flow Интерфейс, который можно выключить, и ядро этого не заметит. Чат, телеметрия VRAM и живой граф задач планировщика. проект
- Candle: машинное обучение на Rust без Python Почему Hugging Face написали свой минималистичный фреймворк и почему Eva считает модели именно на нём. разбор
- Docker-образы без Dockerfile: dockerTools в Nix Почему образ, собранный Nix, воспроизводим, меньше и не тащит за собой apt-get и половину Debian. разбор
- Whisper: 680 тысяч часов «грязной» разметки вместо идеального датасета Как OpenAI обучили распознавание речи на субтитрах из интернета и получили модель, которая почти не ломается на новых данных. разбор
- Как нейросеть отделяет голос от музыки: Hybrid Transformer Demucs Две ветки, по времени и по частоте, и трансформер между ними. Разбор архитектуры, которая держала рекорд в разделении источников. разбор
- VoiceLM: конвейер, который вытаскивает чистый голос из шума Redis, очереди RQ, нейросеть UVR5 на видеокарте и секреты в SOPS: как я собирал голосовой датасет и не сжёг 8 ГБ VRAM. проект
- Векторы персоны: где у языковой модели живёт характер Anthropic нашли направления в активациях, отвечающие за подхалимство, «злобу» и галлюцинации, и научились ими управлять. разбор
Неделя 38
- PAD: настроение как точка в трёхмерном пространстве Удовольствие, возбуждение, доминирование. Как модель Меграбяна превращает «мне как-то тревожно» в координаты. разбор
- Модель OCC: 22 эмоции, которые можно запрограммировать Почему теория Ортони, Клора и Коллинза стала стандартом для эмоций у ИИ, и какие у неё подводные камни. разбор
- Persona: как я учу Еву чувствовать (и почему это математика) 24 эмоции по теории OCC, настроение как точка в трёхмерном пространстве и воспроизводимая лаборатория на Nix для проверки модели. проект
- Спайковые нейросети: как учить сеть, которая говорит импульсами Нейрон LIF, кодирование в импульсы и суррогатный градиент: что взять из глубокого обучения, чтобы обучить «биологическую» сеть. разбор
- NeuroMechFly v2: цифровой двойник мухи, который видит и чует Физическая модель тела, глаза, антенны и иерархия управления: как в EPFL собрали виртуальную дрозофилу. разбор
- Модель мозга мухи с одним свободным параметром угадала 91% экспериментов Как простейшие нейроны «накопил — протёк — выстрелил» на полном коннектоме предсказали, какие клетки запускают питание. разбор
- Первая полная карта мозга взрослого животного FlyWire: 139 тысяч нейронов, 54 миллиона синапсов и геймеры, которые помогли нейросети исправить ошибки. разбор
- FlyBrain: босс, которым управляет мозг мухи 164 тысячи настоящих нейронов дрозофилы вместо дерева поведения. Как я подключил коннектом к игровому движку на Rust. проект
Неделя 37
Здесь пусто.