Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Происхождение материалов

Источник

Материал основан на томе III «Agentic Machine Learning Systems» репозитория harvard-edge/cs249r_book, сайт mlsysbook.ai. Лицензия оригинала — CC BY-NC-SA 4.0 (файл LICENSE в корне репозитория).

Перевод выполнил Сергей Монин.

Что переведено

Переведены все восемнадцать глав тома целиком: глава 1, «Основы агентных систем» (01_introduction), глава 2, «Базовая модель» (02_foundation_model), глава 3, «Вычисления на этапе тестирования» (03_test_time_compute), глава 4, «Инженерия контекста» (04_context_engineering), глава 5, «Управление KV-кешем» (05_kv_cache), глава 6, «Долговременная память» (06_long_term_memory) глава 7, «Вызов инструментов» (07_tool_calling) глава 8, «Песочницы агентов» (08_sandboxes), глава 9, «Обвязка агента» (09_agent_harness) и глава 10, «Долговечное выполнение» (10_durable_execution), глава 11, «Восстановление после сбоев» (11_failure_recovery), глава 12, «Оценка агентов» (12_evaluation), глава 13, «Курирование траекторий» (13_trajectory_curation), глава 14, «Дообучение на траекториях» (14_fine_tuning), глава 15, «Обучение с подкреплением по верифицируемым наградам» (15_rlvr), глава 16, «Координация нескольких агентов» (16_multi_agent), глава 17, «Экономика агентов» (17_agent_economics) и глава 18, «Заключение» (18_conclusion). Текст, подписи к рисункам, таблицы, блоки-пояснения, диаграммы, обложка главы и комментарии в примерах кода переведены полностью.

Предисловие, части и приложения пока на английском языке в исходном репозитории. Они будут добавлены по мере перевода. Ссылки на них оставлены текстом в «ёлочках» без ссылки.

Что изменено при переносе в mdBook

  • Перекрестные ссылки. Ссылки Quarto на рисунки, таблицы, разделы и блоки внутри главы заменены ссылками mdBook на якоря. Ссылки на разделы других глав, которые еще не переведены, оставлены текстом в кавычках «ёлочки» без ссылки.

  • Библиография. Ссылки на источники оставлены текстом в скобках, например (Jimenez et al., 2024), с именами авторов на латинице. Список литературы не переведен, поэтому ссылок на него нет.

  • Блоки. Блоки Quarto (цели обучения, определения, примеры, контрольные точки, истории из практики, расчеты) преобразованы в цитаты с жирным заголовком. Поля (column-margin) вынесены в основной текст.

  • Флажки и размер рисунков-полей. Пункты - [ ] в блоках «Проверка…» записаны обычными маркерами: mdBook рисовал рядом с маркером неактивный флажок. Рисункам-полям (*_margin_*.svg) в оригинале задан размер около дюйма для боковой колонки; в книге каждой единице viewBox соответствует 4 пикселя (scripts/scale_small_svgs.py), чтобы подписи читались. Содержимое рисунков не менялось.

  • Скрытые вычисления. Ячейки Python с echo: false (расчеты для блоков «Расчет», которые рендерятся через mlsysim) в книгу не включены. Значения, которые они вычисляют, вставлены в текст по результату запуска исходного кода.

  • Программный вывод. Строки вывода программ и трассировки (PASSED, SIGKILL, Exit code, статусы COMPLETED, REFUSED и т. п.) оставлены на английском, как в оригинале.

  • Формулы. В главе 2 команда \tilde заменена на \widetilde (над одной буквой надстрочный знак выглядит так же). Запись \tilde с подстрочными индексами в абзаце о спекулятивном декодировании вызывала предупреждение сборщика mdBook.

  • Перекрестные ссылки в главе 2. Ссылки на главы, которые еще не переведены (например, «Вычисления на этапе тестирования», «Инженерия контекста», «Экономика агентов»), оставлены текстом в «ёлочках» без ссылки. Ссылки на приложения и части, которых еще нет в книге, тоже оставлены текстом.

  • Комментарии в коде. Комментарии внутри видимых блоков кода переведены. Идентификаторы, литералы и синтаксис не изменены.

  • Глава 3: ссылки на непереведенные части. Ссылки на принципы части I и на главы 4, 5, 8, 9, 10, 12 и 15 оставлены текстом в «ёлочках» без ссылки, так же как в главе 2.

  • Глава 3: двойные обратные слэши. В подписях к рисункам формулы записаны в исходнике с двойным обратным слэшем (\\mathcal, \\{, \\widehat). В переводе они исправлены на одинарный слэш, как в главе 2. Математика в тексте совпадает с исходником побайтно.

  • Глава 4: ссылки на непереведенные части. Ссылки на принципы части II (part2_memory) и на главу 5 оставлены текстом в «ёлочках» без ссылки. Ссылки на принципы первой главы переведены как ссылки на русские якоря.

  • Глава 5: значения, вычисленные из кода. Четыре выражения {python} … в абзаце о страничном выделении записаны в исходнике без обратных кавычек, поэтому препроцессор их не вычислил. Они подставлены как значения, вычисленные по коду главы (блоки по 16 и 64 токена дают потери 0.4 % и 1.5 %, а 48 резервирований по худшему случаю заменяются 780 траекториями). Формулы и остальные вычисленные значения совпадают с исходником побайтно.

  • Глава 5: рисунок «Стена памяти KV-кеша». В исходнике этот рисунок строится кодом ячейки, поэтому конвертер не вставил изображение. Рисунок перерисован в matplotlib по данным и подписям из того же кода, подписи переведены, контуры текста сохранены.

  • Глава 5: якоря и ссылки. Ссылки #Sec-…, #Tbl-…, #Fig-… приведены к строчным якорям, ссылки @eq-… и @tbl-… восстановлены как ссылки на якоря. Текст ссылок на разделы, рисунки и таблицы взят из заголовков и подписей целевых мест.

  • Глава 5: формулы в подписях. В подписи к рисунку «Стена вытеснения и прерываний» двойные обратные слэши (\\text) исправлены на одинарные, как в главе 2.

  • Глава 5: ссылки на непереведенные части. Ссылки на главу 6, приложения, части I–II и на библиографию оставлены текстом: в «ёлочках» для разделов и в скобках с фамилиями авторов для источников, например (Kwon et al., 2023).

  • Глава 6: ссылки и якоря. Ссылки на разделы, рисунки и таблицы глав 1–5 и самой главы 6 ведут на русские якоря. Ссылки на главы 7–18, части, приложения и принципы частей I–II оставлены текстом в «ёлочках» без ссылки. Источники оставлены в скобках с фамилиями авторов, как в главах 1–5. Якоря []{#…} заменены на <a id>, а ссылки #Tbl-… и #Sec-… приведены к строчным якорям.

  • Глава 6: конверсия. Маркер части в конце исходника (\part{key:vol3_tools}) удален: в mdBook он не отображается. Двойные обратные слэши в подписях к рисункам (\mathcal, \text, \cdot, \in) исправлены на одинарные. Программный вывод и трассировки (например, журнал [TURN 12] … и вывод pytest) оставлены на английском.

  • Глава 6: термины. «Извлечение» (retrieval), «эмбеддинг», «фрагмент» (chunk), «инвертированный индекс», «инвалидация», «надгробие» (tombstone), «эпоха поколения» (generation epoch), «карантин на входе», «кортеж запроса», «конверт результата», «ловушка семантической точности», «дилемма отвлекающих фрагментов», «ловушка самопротиворечия». «Уплотнение» (compaction в LSM-деревьях и тирах хранилища) отделено от «сжатия» контекста из глав 4 и 5. Термин hubness передан как «hubness (концентрация «хабов»)».

  • Глава 7: формула вызова. Строка send_input(job_id, data='yes\n') записана в исходнике формулой с \backslash, которая не проходит сборку mdBook (предупреждение о незакрытом HTML-теге). В переводе она оформлена как блок кода с тем же вызовом; остальные формулы главы не менялись.

  • Глава 7: ссылки и якоря. Ссылки на разделы, рисунки и таблицы глав 1–7 ведут на русские якоря. Ссылки на главы 8–18, части, приложения и принципы оставлены текстом в кавычках-«ёлочках» без ссылки, как в главах 1–6. Источники оставлены в скобках с фамилиями авторов. Ссылки #Sec-…, #Tbl-…, #Lst-… приведены к строчным якорям.

  • Глава 7: термины. Инструмент, вызов инструмента, схема инструмента, эскроу, аренда, надгробие, зонд сверки состояния, неподатливая конечная точка, усечение «сэндвичем», нонс, урегулирование до повтора, дедупликация, постусловие, полное посредничество. Слово «приём» написано без буквы «ё» («прием»), как в остальном тексте.

  • Терминология. В главах 1–5 используется «KV-кеш» (в главе 1 написание приведено к нему). Остальные термины следуют главам 2–4: траектория, обвязка, предзаполнение и декодирование, рабочий набор.

Схемы

  • SVG-диаграммы (17 файлов): текст внутри диаграмм заменен русским, структура и геометрия сохранены. Формулы, имена переменных, коды статусов и моделей оставлены как в оригинале. Подписи, которые не помещались в исходные блоки, сокращены.
  • Глава 3. Тринадцать SVG-диаграмм с текстом переведены в тех же файлах с сохранением структуры. Подписи сокращены там, где русский текст длиннее английского; проверка выхода текста за границы блоков проведена отрисовкой в headless Chrome. Файл hsa_locator_h содержит только буквы оси H, S, A и оставлен без изменений. Обложка главы cover_deliberation_blueprint_labeled.webp перерисована: английские подписи заменены русскими в тех же плашках, иллюстрация не менялась. Поля-иллюстрации vol3_deliberation_margin_001, 002 и 004 перерисованы в matplotlib с русскими подписями (шрифт DejaVu Sans, текст переведен в контуры). Поле 003 (две расходящиеся кривые) не содержит текста и оставлено без изменений.
  • Глава 4. Девять SVG-диаграмм с текстом переведены в тех же файлах с сохранением структуры (ch04-invalidation-graph, compaction_fidelity_pareto, context_compaction_pipeline_v2, context_staging_layout, context_working_set_dynamics, lost_in_the_middle_rope_decay, multi_head_latent_attention_mla, working_set_frontier_phases; hsa_locator_s содержит только буквы оси H, S, A и оставлен без изменений). Формулы, имена переменных, коды статусов, URI, команды и строки программного вывода оставлены как в оригинале. Проверка выхода текста за границы блоков проведена отрисовкой в headless Chrome: переведенные подписи сокращены там, где русский текст длиннее английского. Поля-иллюстрации vol3_working_sets_margin_001–004 перерисованы в matplotlib с русскими подписями (шрифт DejaVu Sans, текст переведен в контуры); подпись «log scale» в поле 004 переведена. Обложка главы cover_working_sets_blueprint_labeled.webp перерисована: английские подписи заменены русскими в тех же плашках, иллюстрация не менялась.
  • Поля-иллюстрации (vol3_introduction_margin_001–004): в исходных файлах текст превращен в контуры и не редактируется, поэтому эти рисунки перерисованы с той же палитрой и компоновкой. Рисунок 003 (бюджет памяти 120 ГБ и 480 ГБ) перерисован по данным из подписи и описания к нему. Рисунок 004 (450 долларов рекомендательных циклов против нуля при механическом шлюзе) перерисован с русскими подписями. В исходном репозитории файл vol3_introduction_margin_004.svg содержит линейный график Амдала (1,28×), а не столбчатую диаграмму, которую описывают подпись и альтернативный текст; перерисован столбчатый вариант по подписи и тексту главы.
  • Графики matplotlib (fig-vol3-agent-execution-timeline, fig-vol3-agent-systems-tax): перерисованы по исходному коду из ячеек с echo: false, подписи переведены. Значения и цвета совпадают с оригиналом.
  • Обложка главы (cover_introduction_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках и с теми же выносными линиями.
  • Глава 2. Восемь SVG-диаграмм с текстом переведены с сохранением структуры (ch02-three-tier-architecture, invocation_lifecycle, token_ast_mismatch, speculative_decoding_pipeline, streaming_token_cancellation, grammar_constrained_decoding_fsm, prefill_vs_decode_v2, hsa_locator_origin). Четыре поля-иллюстрации vol3_processor_margin_001–004 перерисованы по исходным рисункам с русскими подписями: в исходных файлах текст превращен в контуры. Обложка главы cover_processor_blueprint_labeled.webp перерисована: подписи заменены русскими в тех же плашках, иллюстрация не менялась.
  • Глава 6. Девятнадцать SVG-файлов главы: четырнадцать диаграмм с текстом переведены в тех же файлах с сохранением структуры. Формулы, имена переменных, идентификаторы, команды SQL и строки трассировок оставлены как в оригинале. Подписи, которые не помещались, сокращены; проверка выхода текста за границы блоков проведена отрисовкой в headless Chrome. hsa_locator_s содержит только буквы H, S, A и оставлен без изменений. vol3_episodic_memory_margin_002 содержит только кривую без текста и оставлен без изменений. Поля-иллюстрации vol3_episodic_memory_margin_001, 003 и 004 перерисованы в matplotlib с русскими подписями (DejaVu Sans, текст переведен в контуры). Обложка cover_episodic_memory_blueprint_labeled.webp перерисована: подписи заменены русскими в тех же плашках, иллюстрация не менялась.
  • Глава 6: несоответствия рисунков. Поля в исходнике не соответствуют своим подписям. vol3_episodic_memory_margin_001 (альтернативный текст «кривая точности», подпись о «94 % → 42 %») показывает столбчатую диаграмму задержки на логарифмической шкале (точный GEMV 226 мс, IVF-PQ 8,5 мс, HNSW 2,5 мс, AST 0,6 мс) с линией «предел шины». vol3_episodic_memory_margin_003 (альтернативный текст «дерево экспоненциального расширения») показывает цикл из четырех шагов с возвратом. vol3_episodic_memory_margin_004 (альтернативный текст «временная шкала устаревших попаданий в кеш») показывает столбцы объема токенов на шкале с пределом 8,2k. Содержимое файлов перерисовано как в исходнике, подписи и альтернативный текст оставлены по исходнику.
  • Глава 5. Восемнадцать SVG-файлов главы: двенадцать диаграмм с текстом переведены в тех же файлах с сохранением структуры; hsa_locator_s содержит только буквы H, A, S и оставлен без изменений. Проверка выхода текста за границы блоков проведена отрисовкой в headless Chrome: переполнений после сокращения подписей не осталось. Поля vol3_virtual_memory_margin_001, 002 и 004 перерисованы в matplotlib с русскими подписями (DejaVu Sans, текст переведен в контуры); поле 003 без текста оставлено без изменений. Рисунок kv_cache_memory_wall перерисован по коду главы. Обложка cover_virtual_memory_blueprint_labeled.webp перерисована: подписи заменены русскими в тех же плашках, иллюстрация не менялась.

Схемы: глава 7

  • SVG-диаграммы (одиннадцать файлов с текстом): текст внутри диаграмм заменен русским, структура и геометрия сохранены. Формулы, имена инструментов, идентификаторы, коды статусов, JSON-полезные нагрузки, команды и строки программного вывода оставлены как в оригинале. Подписи, которые не помещались в блоки, сокращены. Файл hsa_locator_a содержит только буквы H, S, A и оставлен без изменений.
  • Поля-иллюстрации vol3_actuation_margin_001, 003 и 004 в исходнике состоят из контуров без текста. Они перерисованы в matplotlib с русскими подписями (DejaVu Sans, текст переведен в контуры). Значения и порядок столбцов совпадают с исходным содержимым файлов.
  • Обложка главы (cover_actuation_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках.
  • Файл grammar_constrained_decoding_fsm.svg в главе 7 не используется и не копируется; та же диаграмма переведена в главе 2.

Схемы: глава 8

  • SVG-диаграммы (семь файлов с текстом): текст внутри диаграмм заменен русским, структура и геометрия сохранены. Идентификаторы, имена переменных, коды, команды и строки программного вывода оставлены как в оригинале. Файл hsa_locator_a содержит только буквы H, S, A и оставлен без изменений.
  • Поле-иллюстрация vol3_virtualization_margin_003 в исходнике состоит из контуров без текста. Оно перерисовано в matplotlib с русскими подписями (DejaVu Sans, текст переведен в контуры). Значения на рисунке совпадают с подписью: 234 КБ/с, 0,28 с, 30 Б/с и 36,4 мин. Поля 001, 002 и 004 в главе не используются и не копируются.
  • Обложка главы (cover_virtualization_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках. Базовый файл cover_virtualization_blueprint.webp скопирован без изменений.
  • Листинги: два листинга на Python переведены вместе с комментариями, код не менялся. Строки журналов и программного вывода оставлены на английском.
  • Заключительный блок \part{...} только для LaTeX в исходнике не переносился: это служебная вставка для печатной версии.
  • Ссылки на главы 9–13, 15, 16, части и приложения, которые еще не переведены, оставлены текстом в «ёлочках»; ссылки на библиографию переведены как «(Автор, год)».
  • Известные проблемы исходника главы 8 (переведены как есть, в исходнике не исправлялись): ссылки #Sec-, #Tbl-, #Fig-, #Lst- написаны с заглавной буквы; в переводе они приведены к строчным якорям, как у самих разделов, таблиц, рисунков и листингов.

Схемы: глава 9

  • SVG-диаграммы: восемь диаграмм с текстом и поле vol3_checkpointing_margin_004 переведены внутри файла (текст в самом SVG); структура и геометрия сохранены. Идентификаторы состояний (READY, CALLING_MODEL, WAITING_TOOL, AWAITING_APPROVAL, FINALIZING и др.), имена сигналов и полей, код, JSON-пример и строки программного вывода оставлены как в оригинале. Файл hsa_locator_h содержит только буквы H, S, A и оставлен без изменений.
  • Поле-график harness_sensitivity_frontier.svg: в исходнике он построен кодом ячейки и сохранен как контуры без текста. Перерисован в matplotlib с русскими подписями по тому же коду (DejaVu Sans, текст переведен в контуры). Значения 35,18; 54,82; 62,71; 98,44; 98,55; 99,95 процента совпадают с исходным кодом.
  • Обложка главы (cover_checkpointing_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках.
  • Листинги: семь листингов на Python восстановлены вручную, потому что конвертер пропускал блоки кода внутри lst- блоков. Код не менялся; переведены комментарии и строки документации. JSON-пример ответа REFUSED оставлен как в оригинале.
  • Файлы fault_models_fail_plausible.svg и verification_pipeline_gates.svg в главе 9 не используются: они относятся к главам 1 и 3, которые уже переведены. Поля vol3_checkpointing_margin_001–003 в главе не используются и не копируются.
  • Ссылки на главы 10–18, части и принципы частей оставлены текстом в «ёлочках», ссылки на библиографию переведены как «(Автор, год)». Заглавные якоря #Lst-, #Fig-, #Tbl-, #Sec- из исходника приведены к строчным.
  • Термины главы 9: harness → обвязка агента; trajectory record → запись траектории; escrow → эскроу; approval gate → шлюз одобрения; turn boundary → граница хода; observation crossing → пересечение наблюдений; cooperative yielding → кооперативная отдача управления; deficit round-robin → дефицитный круговой обход (WDRR → взвешенный дефицитный круговой обход); streaming cancellation → отмена потоковой передачи; budget ladder steer/restrict/halt → корректировка, ограничение, остановка; quorum → кворум; cleanup barrier → барьер очистки; runaway loop → неконтролируемый цикл. Состояния и идентификаторы кода остаются английскими, как в тексте.

Известные проблемы исходника главы 9 (переведены как есть, в исходнике не исправлялись)

  • Подпись и диаграмма fig-vol3-node-scheduler называют классы Interactive (w=4), Standard (w=2) и Batch (w=1), а сама диаграмма показывает Interactive (w=4), Batch (w=1) и Background (w=0.5) без класса Standard.
  • В подписи fig-vol3-signal-handling объем KV-кеша указан как «2.50 GB», а на диаграмме как «2.50 GiB».
  • Листинги signal-eval и acb-transition переводят траекторию в State.PREEMPTED при паузе, тогда как текст и диаграмма ch09-acb-lifecycle используют состояние PAUSED.

Схемы: глава 10

  • SVG-диаграммы: восемь диаграмм переведены внутри файла (текст в самом SVG), структура и геометрия сохранены. Идентификаторы и имена полей (MAGIC, TOTAL_LEN, CRC32, LSN, PREV_LSN, TURN_ID, TYPE, PAYLOAD_LEN, ToolIntent, ModelReplied, ToolResult, ContextBuilt, Checkpoint), вызовы и команды (write(fd, buf), fdatasync(fd), rm -rf ./build), значения CRC, LSN и строки журнала оставлены как в оригинале. Подписи, которые не помещались в блоки, сокращены: «Вызов» вместо «Системный вызов», «Диск» вместо «Аппаратура», «Отправка» вместо «Отправка инструмента».
  • Значения, вычисленные из кода: 21 выражение, которое в исходнике вычисляется ячейками {python}, подставлено в текст по результату запуска кода главы (например, 0,83 %, 4,2 %, 120 с, 10 ходов, 0,12 доллара). Ячейка расчета с echo: false в книгу не включена.
  • Пример о частоте контрольных точек: значения условия записаны в тексте («4 часа», «12 с», «0,5 с», «40 000 токенов»). Знак доллара заменен словом «доллара», потому что в книге знак $ открывает формулу.
  • Обложка главы (cover_interrupts_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках. Базовый файл не копируется.
  • Поля и рисунки, которые в главе не используются: vol3_interrupts_margin_001–004, verification_pipeline_gates.svg и fig-vol3-aries-recovery.svg не ссылаются из текста главы и не копируются. Файл hsa_locator_hs.svg содержит только буквы H, S, A и оставлен без изменений.
  • Блоки «Контрольная точка»: вводная строка «Прежде чем двигаться дальше…» не переносилась, как и в главе 9; вопросы сохранены.
  • Термины главы 10: durable execution → долговечное выполнение; trajectory log → журнал траектории; trajectory record → запись траектории; write-ahead logging (WAL) → журнал упреждающей записи (WAL); intent before effect → намерение до действия; phantom effect → фантомный эффект; in-doubt action → действие под вопросом; group commit → групповая фиксация; checkpoint → контрольная точка; delta encoding → дельта-кодирование; write amplification → усиление записи; cadence → частота; resume → возобновление; lease → аренда; fencing token → токен ограждения; drift → дрейф; replay → повтор; rerun → повторный запуск; counterfactual branch → контрфактическая ветвь; divergence → расхождение; syscall shim → прослойка системных вызовов; idempotency key → ключ идемпотентности; reconciliation probe → зонд сверки; hot / warm / cold tier → горячий / теплый / холодный уровень; columnar lakehouse → колоночное озеро данных; content-addressed storage → адресуемое по содержимому хранилище. Состояния журнала (ToolIntent, ModelReplied и др.) и идентификаторы кода остаются английскими.
  • Ссылки: на главы 11–18, части, приложения и библиографию оставлены текстом: разделы в «ёлочках» без ссылки, источники как «(Автор, год)».

Известные проблемы исходника главы 10 (переведены как есть, в исходнике не исправлялись)

  • Раздел «Хранение журнала» (sec-vol3-persistence-compaction) в исходнике пуст: заголовок есть, текста под ним нет. В переводе раздел оставлен пустым.
  • Подзаголовок «Перенос траектории» в исходнике пуст и сразу за ним идет подзаголовок «Перенос траектории и токены ограждения». В переводе оба заголовка сохранены.
  • Пороги уровней хранения расходятся: в тексте холодный уровень получает траектории старше 7 дней, а на рисунке fig-vol3-storage-pyramid холодный уровень начинается с 30 дней, теплый длится от 1 до 30 дней. Задержка горячего уровня в тексте и таблице «не более 0,5 мс», на рисунке «меньше 1 мс»; на рисунке у теплого уровня указаны PostgreSQL и ClickHouse, а в тексте только PostgreSQL. Все значения переведены как в исходнике.
  • Диаграмма checkpoint-cadence.svg задает сценарий с локальным NVMe (delta_snap = 20 мс, T_opt = 24 с), а пример в тексте — сценарий с δ = 0,5 с (T_opt = 120 с). Сценарии разные, поэтому числа не сводятся.
  • Ссылки @sec-vol3-tool-calling-idempotency и @eq-… в исходнике не превращены в ссылки Quarto; в переводе они восстановлены как ссылки на якоря. Ссылки #Sec-, #Tbl-, #Fig- написаны с заглавной буквы; в переводе приведены к строчным якорям.
  • В библиографии ключ kleppmann2017designing соответствует записи с годом 2016; в тексте стоит год из записи (2016).

Схемы: глава 11

  • SVG-диаграммы: семь диаграмм переведены внутри файла (текст в самом SVG), структура и геометрия сохранены: vol3-saga-flow, circuit_breaker_state_machine, recovery-decision-tree, fig-vol3-fault-tolerant-synthesis, semantic-watchdog-oscillation. Подписи сокращены там, где русский текст не помещался в рамки; проверка переполнения в headless Chrome проходит без замечаний. Идентификаторы и команды (git worktree add, payments.authorize($50), cloud.delete_instance(id), ERR_CIRCUIT_OPEN, ABORT_CONSISTENT, ESCALATED_FREEZE, STATE_OSCILLATION_TRAPPED), значения хешей и SQL-сообщения оставлены на английском. hsa_locator_ha содержит только буквы H, S, A и оставлен без изменений.
  • Поля: vol3_scheduling_margin_001–004 выведены в тексте главы и перерисованы в matplotlib (svg.fonttype='path', DejaVu Sans) с русскими подписями; контуры и цвета сохранены по мере возможности. Файл cache_aware_prefix_routing.svg в главе не используется и не копируется.
  • Обложка главы (cover_scheduling_blueprint_labeled.webp): иллюстрация оставлена без изменений, английские подписи заменены русскими в тех же плашках. Базовый файл не копируется.
  • Листинги Python: конвертер не вставил шесть видимых листингов python, которые стоят сразу после абзаца (алгоритм отката саги, детектор циклов, заморозка ACB, повтор с сверкой, полный джиттер и сбросы); они восстановлены из исходного файла. Код не менялся, переведены только комментарии. Ячейки {python} с echo: false (расчеты для блоков «Расчет») в книгу не включены, их значения подставлены в текст.
  • Программный вывод: трассы и журналы (блок bash с трассой цикла починки, журналы повторов шторма, выводы ERROR, Exit 0, ABORT_CONSISTENT) оставлены на английском, как в оригинале.
  • Текст для модели в примере: тело синтетического предупреждения семантического сторожевого таймера ([SYSTEM ALERT: SEMANTIC_WATCHDOG_INTERRUPT]) переведено на русский, потому что это пример текста, который модель читает; идентификаторы (SEMANTIC_WATCHDOG_INTERRUPT, STATE_OSCILLATION_DETECTED, STATE_OSCILLATION_TRAPPED) оставлены английскими.
  • Блоки «Контрольная точка»: вводные строки «Прежде чем…» переведены и сохранены вместе с вопросами, как в главах 9 и 10.
  • Термины главы 11: saga → сага; trajectory saga → сага траектории; pivot action → поворотное действие; compensating action → компенсирующее действие; compensation → компенсация; rollback → откат; forward repair / self-healing → прямое исправление / прямое самовосстановление; watchdog → сторожевой таймер; semantic watchdog → семантический сторожевой таймер; circuit breaker → автоматический выключатель (состояния «Замкнут», «Разомкнут», «Полуоткрыт»); bulkhead → переборка; quarantine → карантин; taint → метка недоверенности; blast radius → радиус поражения; thundering herd → стадо (thundering herd); jitter → джиттер; tombstone → надгробие; lease → аренда; probe → зонд сверки; idempotency → идемпотентность; write-ahead log (WAL) → журнал упреждающей записи (WAL); envelope → конверт; retry storm → шторм повторов; spin loop → зацикливание починки (spin loop); liveness → живость; fail-safe → безопасные значения по умолчанию. Имена «Bohrbug» и «Heisenbug» оставлены в кавычках.
  • Ссылки на непереведенные части: ссылки на главы 12–13, части I–IV (part3_tools, part4_runtime), приложения и на nbk-01-trajectory-goodput (в главе 1 перевода такого якоря нет) оставлены текстом в «ёлочках» без ссылки. Источники (Avizienis et al., 2004, Saltzer and Schroeder, 1975) оставлены в скобках с фамилиями авторов.

Известные проблемы исходника главы 11 (переведены как есть, в исходнике не исправлялись)

  • Пример «Накладные расходы на откат журнала саги» назван шестишаговым, а в списке пять подтранзакций T_1–T_5, и отказ происходит на шаге 5. В переводе сохранено как в исходнике.
  • Поля vol3_scheduling_margin_002, 003 и 004 не совпадают с подписями и альтернативным текстом: на 002 нарисована диаграмма инвариантов против зацикливания («ANTI-SPIN INVARIANT»), а подпись и альтернативный текст описывают фазовый портрет точки невозврата; на 003 нарисовано демпфирование джиттером («FULL JITTER DAMPING»), а альтернативный текст описывает автоматический выключатель; на 004 нарисована лестница задержек сдерживания («CONTAINMENT LADDER»), а альтернативный текст описывает концентрические круги радиуса поражения. В переводе содержимое полей сохранено, подписи и альтернативный текст переведены как в исходнике.
  • В исходнике ссылка @sec-vol3-controlplane-accounting не превращена в ссылку Quarto; в переводе восстановлена как ссылка на раздел «Бюджеты и потолки» главы 9.
  • В подписи к диаграмме трассы отказоустойчивой траектории в шаге «18.» стоит номер шага перед текстом «Детерминированный шлюз пройден»; в переводе номер сохранен.
  • Ссылка на якорь nbk-01-trajectory-goodput из главы 1 в переводе не существует (в переведенной главе 1 нет такого блока), поэтому ссылка оставлена текстом.

Схемы: глава 12

  • SVG-диаграммы: шесть диаграмм переведены внутри файла (ch16-eval-gym-architecture, fig-vol3-opentelemetry-trace-waterfall, observability-synthesis-architecture, sample_size_confidence_intervals, tail-sampling-pipeline, vol3-canary-deployment-pipeline), структура и геометрия сохранены. hsa_locator_hsa оставлен без изменений: в нем только буквы H·S·A.
  • Поля: vol3_observability_margin_001–003 перерисованы в matplotlib (svg.fonttype='path', DejaVu Sans) с русскими подписями. Геометрия восстановлена по контурам исходных полей приближенно. vol3_observability_margin_004 без текста, оставлен без изменений.
  • Обложка главы (cover_observability_blueprint_labeled.webp): иллюстрация не менялась, шесть английских плашек заменены русскими.
  • Инлайн-значения: в исходнике часть выражений {python} написана без обратных кавычек, и конвертер их не вычислял. Значения (13 штук) подставлены при сборке главы.
  • Листинги Python: конвертер не перенес восемь блоков кода Python. Они восстановлены из исходника; переведены только комментарии и строки документации, код остался прежним. Вывод программы (трасса агента в bash) оставлен на английском.
  • Служебные блоки: два блока {=latex} (только для PDF) удалены.
  • Перекрестные ссылки: ссылки на нерезолвленные таблицы @tbl-… в исходнике заменены ссылками на заголовки таблиц. Ссылки на непереведенные главы и части оставлены текстом в «ёлочках».

Известные проблемы исходника главы 12 (переведены как есть, в исходнике не исправлялись)

  • В разборе шлюза по оценке Уилсона (пример с архитектурами A и B) фраза о правдоподобных долях успеха (61 % и 52 %) не согласуется с интервалами, приведенными в том же примере. Переведено без изменений.
  • Подписи внутри формул (FAIL, PASS, tasks, steps, tokens, Cost) оставлены на английском, как и идентификаторы в \text{...}.
  • Цитаты Jimenez et al. (2024), Mialon et al. (2023) и Zhou et al. (2024) в таблице полигонов оставлены текстом в скобках, без ссылок на список литературы.

Схемы: глава 13

  • SVG-диаграммы: восемь диаграмм переведены внутри файла (fig-vol3-failure-diagnostic-tree, fig-vol3-verifier-cascade, vol3-collection-pipeline, vol3-data-composition-ablation, vol3-harvesting-synthesis, vol3-provenance-envelope, vol3-trajectory-typology); структура и геометрия сохранены. Часть подписей сокращена, чтобы уложиться в блоки; проверено рендером в headless Chrome. hsa_locator_origin оставлен без изменений: в нем только буквы H·S·A.
  • Поля: vol3_data_flywheel_margin_001–004 перерисованы в matplotlib (svg.fonttype='path', DejaVu Sans) с русскими подписями. Значения взяты из подписей и из исходного рисунка.
  • Обложка главы (cover_data_flywheel_blueprint_labeled.webp): пока не переведена, плашки остаются на английском.
  • Листинги Python: конвертер не перенес три блока кода (проверка двойного оракула, освобождение сетевого интерфейса, детектор подмены диффа). Они восстановлены из исходника; переведены только комментарии. Строки вывода и сообщения логгера оставлены на английском.
  • Перекрестные ссылки: @tbl-…, @fig-…, @eq-…, @sec-… из исходника заменены ссылками на заголовки и подписи. @sculley2015hidden приведен текстом как Sculley et al. (2015). Ссылки в исходнике с заглавной буквы (Tbl-, Sec-) приведены к строчным якорям. Пандоковский якорь []{#sec-vol3-flywheel-summary} заменен на <a id>.
  • Непереведенные цели: главы 14–18 и части, а также списки литературы оставлены текстом в «ёлочках» или в скобках (Author et al., year).

Известные проблемы исходника главы 13 (переведены как есть, в исходнике не исправлялись)

  • Альтернативный текст vol3_data_flywheel_margin_004 говорит о «2,6-кратном» расширении траекторий восстановления, а подпись на рисунке — «+1,8×». Цифра 1,8 — отношение долей токенов (45 %) к долям траекторий (25 %), 2,6 — отношение средних длин (18 500 / 7 200). Переведено как в исходнике.

Схемы: глава 14

  • SVG-диаграммы: девять диаграмм переведены внутри файла (ch13-block-diagonal-mask, ch13-sft-evaluation-radar, dagger_fault_injection, fig-vol3-loss-masking, fig-vol3-schema-memorization-attention, fig-vol3-sft-synthesis-flow, lora_adapter_swapping, trajectory_serialization_pipeline); структура и геометрия сохранены. hsa_locator_origin оставлен без изменений: в нем только буквы H·S·A. Подписи сокращены там, где рендер в headless Chrome показал наезд текста на соседние элементы; каждая диаграмма проверена отдельным рендером.
  • Поля: в главе нет полей с текстом (vol3_sft_margin_001–004 не упоминаются в исходнике, в перевод не скопированы).
  • Обложка главы (cover_sft_blueprint_labeled.webp): шесть плашек перерисованы по-русски (DejaVu Sans Bold), иллюстрация не менялась.
  • Блоки кода: {python}-блоков в главе нет, число блоков совпадает с исходником. В текстовых примерах переведены пояснительные метки (ЗАДАЧА, ХОД МОДЕЛИ, МЫСЛЬ, ДЕЙСТВИЕ, НАБЛЮДЕНИЕ) и комментарии; вывод git, pytest и валидатора оставлен на английском.
  • Перекрестные ссылки: @fig-…, @tbl-…, @eq-…, @sec-… заменены ссылками на заголовки и подписи; Fig-, Tbl-, Sec- приведены к строчным якорям. Ссылки на главу 15 и на части и приложения, которых нет в src/, оставлены текстом в «ёлочках». Цитаты записаны как (Author et al., year).
  • Буква «ё» не используется: её → ее, всё → все, своё → свое.

Известные проблемы исходника главы 14 (переведены как есть, в исходнике не исправлялись)

  • Подпись к ch13-sft-evaluation-radar: контрольная точка A описана как «99,2 % синтаксической валидности», «28 % эффективности траектории» и «58 % базовых рассуждений». На диаграмме у A: синтаксическая валидность 96 %, эффективность траектории 40 %, сохранение способностей 45 %, выполнение задач 52 %; значение 28 % на диаграмме — у базовой модели. Переведено по подписи, диаграмма оставлена как в исходнике.
  • Рисунок dagger_fault_injection: надпись «E[Errors] ≈ ε H² / 2 = 9.3» не совпадает с числом: при ε = 0,02 и H = 30 величина ε H² / 2 равна 9,0, а 9,3 получается из ε H(H + 1) / 2, как в тексте. Переведено как в исходнике.

Схемы: глава 15

  • SVG-диаграммы: девять диаграмм переведены внутри файла (asynchronous-freshness-pipeline, credit-assignment-topologies, entropy_verbosity_dynamics, fig-vol3-disaggregated-rollout, fig-vol3-rlvr-progression, fig-vol3-verification-enclave, rlvr_emergent_backtracking, vol3-ppo-vs-grpo); структура и геометрия сохранены. hsa_locator_origin оставлен без изменений: в нем только буквы H·S·A. Подписи сокращены там, где проверка в headless Chrome показала выход текста за блок. Числа в подписях и в диаграммах не менялись.
  • Поля: vol3_rlvr_margin_002 переведен в файле; в подзаголовке «Масштабирование исследования (p1=18%)» исходная фраза не вмещалась в холст, поэтому написано «Рост исследования (p1=18%)». vol3_rlvr_margin_003 и vol3_rlvr_margin_004 в тексте не упоминаются и в перевод не скопированы.
  • Обложка главы (cover_rlvr_blueprint_labeled.webp): шесть плашек перерисованы по-русски (DejaVu Sans Bold), иллюстрация не менялась. Две плашки расширены в сторону, противоположную выносной линии, чтобы не закрыть место крепления.
  • Альтернативный текст: в исходнике у трех рисунков (vol3-ppo-vs-grpo, entropy_verbosity_dynamics и fig-vol3-verification-enclave и другие) пустой альтернативный текст ![](); в переводе он написан по содержимому рисунка.
  • Блоки кода: число блоков совпадает с исходником. Переведены комментарии в листингах pytest_sessionfinish, в примере с git apply и в иллюстративной трассировке (метки и текст рассуждений). Строки вывода команд, pytest и имена состояний оставлены на английском.
  • Перекрестные ссылки: @sec-vol3-controlplane-accounting и @sec-vol3-sandboxes-threat-model, которые конвертер не разрешил, заменены ссылками на разделы главы 9 и главы 8. Ссылки на части, приложения и главу 16, которых нет в src/, оставлены текстом в «ёлочках». Цитаты записаны как (Author et al., year). Ссылки с заглавной буквы (Fig-, Tbl-, Sec-) приведены к строчным якорям.
  • Математика в примерах: в исходнике результаты {python} попадали в обратные кавычки (`$...$`); в переводе они записаны как формулы ($...$, $$...$$). В тексте используется десятичная запятая, в формулах оставлен десятичный разделитель исходника.
  • Конец главы: блок \part{key:vol3_scale} (только для PDF) не перенесен.
  • Буква «ё» не используется.

Известные проблемы исходника главы 15 (переведены как есть, в исходнике не исправлялись)

  • Рисунок vol3-ppo-vs-grpo не совпадает с подписью. Подпись: PPO занимает 74,4 ГБ статической памяти на GPU, GRPO резервирует 39,4 ГБ и освобождает 40,6 ГБ. На рисунке: PPO 73,4 ГБ из 80 ГБ, GRPO 36,7 ГБ, свободно 43,3 ГБ, освобождено 50,0 %. Переведено по подписи и по рисунку, как в исходнике.

Схемы: глава 16

  • SVG-диаграммы: семь диаграмм переведены внутри файла (capability-attenuation-tree, coordination_topologies, fig-vol3-amdahl-multiagent-scaling, fig-vol3-correlated-ensemble-failure, fig-vol3-occ-worktrees, supervisor_tree_isolation; hsa_locator_hsa оставлен как H·S·A). Проверка наложения подписей в headless Chrome: после сокращения семи подписей, которые пересекались с соседними, у переведенных диаграмм нет наложений текста (у английских оригиналов тоже нет).
  • Поля: vol3_multi_agent_margin_001, _002 и _003 содержали английские подписи, нарисованные контурами (текстовые группы matplotlib). Подписи заменены по-русски контурами DejaVu Sans на тех же местах, данные и шрифт сноски не менялись. vol3_multi_agent_margin_004 без подписей, оставлен как в исходнике.
  • Обложка главы (cover_multi_agent_blueprint_labeled.webp): шесть плашек перерисованы по-русски (DejaVu Sans Bold), иллюстрация не менялась. Плашка «оптическая кольцевая шина» расширена вправо, чтобы текст имел тот же размер, что и у остальных.
  • Альтернативный текст: в исходнике у coordination_topologies и fig-vol3-occ-worktrees пустой альтернативный текст ![](); в переводе он написан по содержимому рисунка.
  • Блоки кода: в исходнике конвертер потерял девять блоков Python (листинги lst-vol3-task-envelope-соседей, lst-vol3-verify-receipt, lst-vol3-occ-commit, lst-vol3-mocked-test, трассу регрессии с ложным консенсусом, проверку аренды, проверку macaroon, эвристику Гюнтера). Они восстановлены из преобразованного исходника; переведены комментарии и строка документации, код и строки исключений оставлены как в исходнике. Программный вывод (returned 0 (1 passed, 0 failed)) и трасса pytest оставлены на английском.
  • Таблица «Каскад отмены»: в исходнике строка «5. Acknowledgment» склеилась с заголовком следующего раздела («### Straggler Mitigation»). Строка возвращена в свою таблицу, заголовок отделен.
  • Перекрестные ссылки: @tbl-vol3-cancellation-layers, @tbl-vol3-subagent-spawn-lifecycle и подобные, которые конвертер не разрешил, заменены ссылками на заголовки таблиц. Ссылки на части (part1_model–part6_scale), приложения, references.md и главу 17, которых нет в src/, оставлены текстом в «ёлочках» или переведенным именем цитирования.
  • Макрос \textsc: в исходнике названия состояний записаны как \textsc{Active} и т. п.; KaTeX их не знает, поэтому в переводе записано \text{Active} (состояния остаются английскими).
  • Формулы в примерах: текст внутри \text{...} в единицах измерения переведен (с, токенов), идентификаторы индексов оставлены английскими (как в главах 12–15).
  • Буква «ё» не используется.

Известные проблемы исходника главы 16 (переведены как есть, в исходнике не исправлялись)

  • Рисунок fig-vol3-amdahl-multiagent-scaling показывает оптимум M* ≈ 2,4 и безубыточность при M = 5, а текст и разобранный пример дают M* ≈ 5,74 (5 или 6 рабочих) при f = 0,70, σ = 0,04, κ = 0,02. Числа на рисунке оставлены как в исходнике.
  • В подписи vol3_multi_agent_margin_002 указан порог 80 % при более чем пяти рабочих, а на рисунке отмечены N = 4: 48 % и N = 8: 95 %; значения на рисунке оставлены как в исходнике.
  • В подписи рисунка fig-vol3-amdahl-multiagent-scaling сослано на «пример 15.2» и «разделы 15.2 и 15.4» (других глав); в переводе эти ссылки оставлены как в исходнике.
  • Единицы измерения: в формулах переведены слова единиц (с, токенов), а аббревиатуры GB, MB, KB оставлены как в исходнике; в прозе использованы ГБ, МБ, КБ.

Схемы: глава 18

  • SVG-диаграммы: 12 диаграмм с текстом переведены внутри файла (five_part_agent_runtime_architecture_v2, capstone_trajectory_owners, agentic_systems_hourglass, fig-vol3-operating-envelope-escalation, fig-vol3-synthesized-execution-pipeline, fig-vol3-intervention-ladder-flowchart, fig-vol3-embodied-safety-shield, fig-vol3-safety-case-pyramid, vol3-memory-hierarchy-synthesis, vol3-digital-vs-physical-boundary, ch18/brooks_essential_complexity, hsa_locator_hsa, где H·S·A оставлен). Всего 578 надписей, идентификаторы состояний и имена полей (budget_t b, wal_sequence_num, COMPLETED, SIGKILL) оставлены английскими. Все файлы разбираются как XML. Проверка наложения подписей в headless Chrome по этой главе не проводилась.
  • Поля: vol3_conclusion_margin_002 (ступени эксплуатационной оболочки) и _003 (пирамида верификации) перерисованы matplotlib с DejaVu Sans, как контуры. Содержимое полей взято из самих файлов: на поле 002 — эскроу человека, срабатывание выключателя, диагностика, номинальный режим с порогами K и T; на поле 003 — три яруса канарейки, полигонов и верификаторов. Подписи и альтернативный текст оставлены по исходнику, см. ниже. vol3_conclusion_margin_004 без надписей, оставлен как в исходнике.
  • Обложка главы (cover_conclusion_blueprint_labeled.webp): шесть плашек перерисованы по-русски (DejaVu Sans Bold), иллюстрация не менялась. Надписи сокращены, где плашка не вмещала текст: «суверенный агент-разведчик», «монументальный портал», «мегаполис на рубеже», «парящий постамент систем», «шлюз замыкания инвариантов», «оптические волноводы».
  • Неиспользуемые файлы: в книгу не копировались vol3_conclusion_margin_001.svg, mlsys_curriculum_arc.svg, autonomous_improvement_ladder_v2.svg, PNG-версии обложки и data/trajectory_decay.csv, потому что на них нет ссылок в главе.
  • Блоки кода: конвертер потерял три листинга Python (on_artifact_mutation, регистрация компенсирующей транзакции саги, evaluate_intervention_level). Они восстановлены из исходника: переведены комментарии и строки документации, код и текст исключения оставлены. Программный вывод (трасса [WATCHDOG: …]) и JSON-пример оставлены на английском, в JSON переведены только комментарии.
  • Ссылки: на главу 17 и на части (part1_model–part7_synthesis) ссылки оставлены текстом в «ёлочках»; ссылки на references.md превращены в «(Author, year)» без ссылки, как в главах 13–16. Внутренние ссылки на эту же главу приведены к строчным якорям (#fig-…, #tbl-…).
  • Формулы: единицы внутри \text{...} переведены (ч, токенов, байт, дня, с); аббревиатуры GB, KB, ms оставлены как в исходнике. В прозе десятичная запятая и ГБ, КБ, мс.
  • Термины главы: существенная сложность и случайная сложность (Brooks), журнал предзаписи (Write-Ahead Log, WAL), сага, эскроу, канареечный, сторожевой таймер, автоматический выключатель, лестница вмешательства, обоснование безопасности, полигон (gym), межзадачная инфраструктура, Стохастический компьютер, физическая «растяжка-датчик» (tripwire).
  • Буква «ё» не используется.

Известные проблемы исходника главы 18 (переведены как есть, в исходнике не исправлялись)

  • Два расчета окупаемости дообучения с одними и теми же исходными величинами дают разные результаты. В блоке «Когда дообучение окупается» безубыточность около 57 000 задач и срок около 2,8 месяца при 20 000 задач в месяц. В блоке «Анализ безубыточности адаптации весов» запросов на слияние и срок около 3,65 месяца, при другой стоимости данных, вычислений и проверки. Оба блока оставлены как в исходнике.
  • Лимит ходов записан по-разному: 20 ходов в расчете эксплуатационной оболочки, 25 ходов в схеме fig-vol3-operating-envelope-escalation и в строке «Герметичный синтез патча» матрицы, 10 ходов в строке «Устранение инцидента». Значения оставлены как в исходнике.
  • Поле vol3_conclusion_margin_002: подпись описывает пороги бюджета 60/80/100 %, а содержимое файла показывает уровни «эскроу человека / выключатель / диагностика / номинальный режим» с порогами K и T. Содержимое перерисовано по файлу, подпись оставлена по исходнику.
  • В разделе о трассе семантического сторожевого таймера символ используется для метрики расхождения траектории, а в разделе «Этап 3» тем же символом обозначен кортеж записи WAL. Переведено как в исходнике.
  • В исходнике два блока с одним идентификатором nbk-18-break-even-weight-adaptation. В переводе второму блоку присвоен nbk-18-break-even-analysis; ссылок на него в главе нет.
  • Внутри схемы fig-vol3-operating-envelope-escalation и в тексте главы разные единицы времени: 600s в схеме и 600 с в тексте. Переведено как в исходнике.

Схемы: глава 17

  • SVG-диаграммы: восемь файлов с текстом переведены внутри файлов (fig-vol3-architectural-radar-chart, fig-vol3-critical-path-waterfall, fig-vol3-fleet-economics-architecture, fig-vol3-task-cost-treemap, hierarchical-budget-ledger, multi_agent_token_cascade_routing_v2, vol3-mlfq-serving-architecture). hsa_locator_hsa оставлен как H·S·A. Подписи сокращены там, где русский текст не помещался в блок. Проверка выхода текста за границы блоков проведена отрисовкой в headless Chrome; после сокращения наложений в диаграммах каскада и MLFQ не осталось. Формулы, имена состояний, идентификаторы (probe_01, blk_0) и числа оставлены как в оригинале.
  • Поля-иллюстрации vol3_tokenomics_margin_001–003 в исходнике состоят из контуров без текста. Они перерисованы в matplotlib с русскими подписями (DejaVu Sans, текст переведен в контуры); данные и геометрия соответствуют исходным файлам. Поле vol3_tokenomics_margin_004 на главу не ссылается и в книгу не копировалось.
  • Обложка главы (cover_tokenomics_blueprint_labeled.webp): шесть плашек перерисованы по-русски (DejaVu Sans Bold), иллюстрация не менялась.
  • Блоки кода: конвертер потерял один листинг Python (dispatch_with_escalation в разделе о штрафе за ложное принятие). Он восстановлен из исходника: переведены комментарии, код и строки статусов оставлены как в исходнике.
  • Ссылки: ссылки на разделы, рисунки и таблицы самой главы ведут на якоря этой же страницы. Ссылки на главы 1–16 и 18 ведут на русские якоря; ссылки на части, приложения и принципы оставлены текстом в «ёлочках». Источники оставлены в скобках с фамилиями авторов, как в главах 1–16. В главах 16 и 18 упоминание «Экономика агентов» теперь ведет на главу 17.
  • Термины главы: стоимость на принятую задачу, полезный выход траекторий, полезный выход на доллар, спекулятивное декодирование, спан, каскад, эскроу, реестр бюджета, автоматический выключатель, многоуровневая очередь с обратной связью (MLFQ), закон Литтла, закон Амдала, приближение Кингмана, защищенный верификатор, ложное принятие, ловушка цены токена.
  • Буква «ё» не используется.

Известные проблемы исходника главы 17 (переведены как есть, в исходнике не исправлялись)

  • В примере «Траектория из тридцати ходов» отношение 5.6× совпадает с неокругленными значениями, а при округленных \$2.77 и \$0.50 выходит 5.5×. Оставлено как в исходнике.
  • В примере «Реестр бюджета через неуспешного подагента» в тексте сказано, что 100 из 180 задач решаются повторной эскалацией, а в расчете принято N_acceptable = 820 + 75 = 895. Расчет оставлен как в исходнике.
  • В примере оценки полезного выхода флота ускорение декодирования по реальному времени равно 2.1×, а в синтезе той же главы — 2.5×. Оставлено как в исходнике.
  • В разделе о совокупном автоматическом выключателе условие записано как C(t) + R(t) ≥ B_task, тогда как инвариант расходов в начале раздела задан как ≤ B_task. Оставлено как в исходнике.
  • В примере о хвостовой задержке вероятность 0.26 для 30 вызовов не зависит от загрузки ρ = 0.85, хотя загрузка в тексте упомянута как условие. Оставлено как в исходнике.
  • Поле vol3_tokenomics_margin_002: на рисунке контейнер занимает 11.9 процента, а в тексте сказано «около 12 процентов». Значения оставлены как в исходнике.

Вычитка и унификация (финальная проверка перед публикацией)

Все восемнадцать глав прочитаны целиком и сверены с оригиналом (books/vol3/<глава>/<глава>.qmd). Правки внесены в переводе; текст оригинала не менялся.

  • Числа и единицы. Десятичная запятая в прозе и в формулах (в математике {,}, чтобы запятая не отделялась пробелом), неразрывный тонкий пробел \, как разделитель тысяч в формулах, «ГБ/МБ/КБ/ТБ» вместо GB/MB/KB/TB в тексте и в \text{}, «в N раз» вместо N× в прозе, суммы в долларах \$0{,}50 в формулах.
  • Подписи в формулах. Английские служебные слова и фразы в \text{...} переведены («если», «иначе», «где», «до», «и», «или», «такое, что», около 150 подписей вида «Трафик памяти (байт)»). Идентификаторы и аббревиатуры в индексах (FLOPs, TTFT, SHA-256, in, out) оставлены латиницей.
  • Рисунки и листинги. Восстановлены 23 листинга, которые конвертер пропускал; в главе 12 исправлен \widetilde; поля-иллюстрации главы 5 перерисованы; в главе 3 удалены два служебных блока {=latex} \part{...}, которые отображались как код.
  • Структура. SUMMARY.md ведется вручную, заголовок «Главы»; в главе 1 исправлены названия частей и разделов, в главах 4, 9, 11 и 12 в списки целей обучения добавлены завершающие точки.
  • Ссылки. Названия глав, разделов, рисунков, таблиц, листингов и уравнений, которые стояли простым текстом в «ёлочках», превращены в ссылки (около 100), при этом перед ссылкой добавлено уточняющее слово («раздел», «рисунок», «таблица», «листинг», «уравнение»), а при предлоге согласован падеж. Названия принципов оставлены в виде «принцип «…»» без ссылки, как в оригинале.
  • Терминология. Единые варианты: «кеш» (не «кэш»), «без состояния», «вывод» (inference), «обвязка» (harness; «каркас» — для scaffold), «прогон», «упреждающая запись», «KV-кеш», «неявные полномочия», «награда», «таймаут», «пакетирование» (batching при обслуживании), «выдача» (grant), «средство запуска», «цикл обдумывания», «блокировка головы очереди», «радиксное дерево», «microVM», «поворотное действие» (pivot), «дообучение с учителем» (SFT), «посттренировка на верифицированных траекториях». Подписи блоков определений: «Значение», «Отличие», «Типичная ошибка». Названия принципов приведены к одному написанию во всех главах. Фамилии авторов в прозе даны по-русски («Солтцер и Каашук», «Хьюитт, Бишоп и Стайгер», «Кунг и Робинсон»), в скобках — оригинальное написание и год.
  • Проверки. scripts/check_books.py, scripts/check_links.py (1 485 ссылок, битых нет), mdbook build (без ошибок KaTeX; единственное предупреждение — несовпадение версий mdbook-katex и mdbook).

Известные проблемы исходника: повторы и устаревшие ссылки (переведены как есть, в исходнике не исправлялись)

  • Глава 1. Раздел «Учет длительности траектории» повторен дважды с одним и тем же идентификатором sec-vol3-intro-duration-accounting, а примеры в двух копиях противоречат друг другу (в исходнике строки 1776 и 1927). Названия частей в таблице и в тексте о «семи частях» («Часть V: компилятор политик» и т. п.) не совпадают с фактическими названиями частей тома (I The Model, II Agent Memory, III Tool Use, IV The Agent Runtime, V Learning from Trajectories, VI Agents at Scale, VII Synthesis).
  • Глава 3. В конце главы повторены «Итоги» и «Ключевые выводы» (две близкие версии), а также повторен блок-ловушка; в исходнике это остаток двух редакций.
  • Глава 6. Устаревший подзаголовок «(Persistent Storage)» у одного из разделов опущен.
  • Глава 7. Два блока «Полное посредничество» с одним идентификатором dfn-complete-mediation; ссылка ведет на первый.
  • Глава 11. В примере назван «шестишаговый» протокол, а перечислены пять шагов.
  • Глава 13. Два блока контрольной точки с одним идентификатором chk-12-harvesting-cascade.
  • Глава 14. Идентификаторы рисунков (например, ch13-sft-evaluation-radar) сохранили прежнюю нумерацию глав; в переводе оставлены как в исходнике.
  • Глава 16. Формула оптимума M* = √((f − σ)/κ) не соответствует модели h(M) = σ(M − 1) + κM(M − 1), которую задает сама глава: по ней при f = 0,70, σ = 0,04, κ = 0,02 время одного прогона T(M) = T₁·[0,30 + 0,70/M + 0,04(M − 1) + 0,02M(M − 1)] дает T(4) = 501 с, T(6) ≈ 730 с (ускорение 0,82×, а не 1,24×, как в тексте), T(8) = 1 073 с, максимум ускорения около 1,37× приходится на M = 2 или 3, что согласуется с резюме главы («лучший парк — два или три рабочих»). В примере о пределах Амдала суммарный расход токенов одного агента указан как 53 900, а описанные слагаемые дают 43 900 (2 300 + 8 × 5 200). В разделе «Передача ссылок вместо содержимого» «32 КиБ токенов» в исходнике — опечатка (речь о 32 000 токенов); оценка памяти KV-кеша для десяти агентов в исходнике занижена («сотни мегабайт» вместо десятков гигабайт); в переводе исправлены единицы и порядок величины.
  • Глава 17. См. выше; дополнительно: в примере о подагентах 180 нерешенных задач, из них 100 решаются повторной эскалацией, а итог принят как 820 + 75 = 895.
  • Ссылка на другую книгу. «Machine Learning Systems at Scale» (главы 14 и 15) оставлено на английском: том II еще не переведен.

Что осталось

  • Предисловие, части и приложения.
  • Обложка главы 13 (cover_data_flywheel_blueprint_labeled.webp): плашки на английском.
  • Известные проблемы исходника главы 7 (переведены как есть, в исходнике не исправлялись): подписи и альтернативный текст полей vol3_actuation_margin_003 (20 мс против 1,200 мс сборки и «до пяти порядков величины») и vol3_actuation_margin_004 (резкий рост ошибки выбора после 30 функций) не совпадают с содержимым файлов: на рисунке 003 сборка занимает 400 с (разрыв 20 000×), а колено на рисунке 004 приходится на N≈14 и 10 % ошибки. Поле vol3_actuation_margin_001 в альтернативном тексте названо «лестницей», хотя показывает горизонтальные столбцы в логарифмической шкале. В переводе содержимое файлов перерисовано, а подписи и альтернативный текст оставлены по исходнику. Ссылки в исходнике, написанные с заглавной буквы (Sec-, Tbl-, Lst-), в переводе приведены к строчным якорям.
  • Известные проблемы исходника главы 6 (переведены как есть, в исходнике не исправлялись): поля vol3_episodic_memory_margin_001, 003 и 004 не соответствуют подписям (см. выше); ссылки #Tbl-vol3-retrieval-comparison и #Sec-vol3-kv-cache-fallacies написаны с заглавной буквы (в переводе ведут на строчные якоря); в исходнике ячейка []{#sec-vol3-ch6-summary} вместо якоря (заменена на <a id>).
  • Известные проблемы исходника главы 5 (переведены как есть, в исходнике не исправлялись): в разделе о подкачке уровень GPU назван то TIER_HBM, то TIER_GPU; скорость предзаполнения принята разная в разных примерах (3 560 TFLOP/s в примере о стоимости 45-секундного ожидания, 480 TFLOPS в примере о помехах при порционном предзаполнении, 400 TFLOPS в примере о простое агента), поэтому числа примеров не сводятся друг к другу.
  • Известные проблемы исходника главы 4 (переведены как есть, в исходнике не исправлялись): в схеме multi_head_latent_attention_mla объем KV-кеша подписан в KiB на токен (2,560 KiB, 320 KiB, 67.5 KiB), а в тексте и подписи к рисунку — в байтах (2 560 байт, 320 байт, 67,5 байта); в переводе единицы схемы оставлены как в исходнике. Ссылка на «Working Memory Evaluation» в исходнике указывала #Tbl-vol3-checkpoint-schema и #Tbl-compaction-spectrum с заглавной буквы; в переводе якоря приведены к строчным, как у таблиц. Ссылка в исходнике на раздел «Self-reports carry no evidential weight» ведет на якорь раздела «Эпистемическая граница» главы 1, поэтому в переводе ссылка названа по этому разделу. Ссылка на «KV Cache Management» (глава 5) стала ссылкой после перевода главы 5.
  • Известные проблемы исходника главы 3 (переведены как есть, в исходнике не исправлялись): поле vol3_deliberation_margin_002 показывает столбчатую диаграмму памяти (70B: 140 ГБ, 8B: 16 ГБ, снижение VRAM в 8.75×), а подпись и альтернативный текст описывают кривые Парето. Поле vol3_deliberation_margin_004 показывает U-кривую задержки по периодичности проверок (m* = 9 мин), а подпись и альтернативный текст описывают отсечение ветвей лучевого поиска с 70-процентной экономией. В переводе перерисовано содержимое файлов, а подписи оставлены по исходнику. Ссылки @tbl-… в исходнике не превращены в ссылки Quarto (две таблицы), в переводе они восстановлены как ссылки.
  • Известные проблемы исходника главы 2 (переведены как есть, в исходнике не исправлялись): идентификатор nbk-02-quantitative-interface-evaluation-under-an использован для двух разных блоков (в переводе оба сохранены, ссылка ведет на первый); в одной ссылке в исходнике написано Sec-vol3-foundation-model-contract с заглавной буквы (в переводе якорь приведен к строчным, как у раздела); в подписях к рисункам формулы записаны с двойным обратным слэшем, в переводе исправлены на одинарный.
  • Ссылки на предисловие, части и приложения станут активными по мере их перевода (сейчас они оставлены текстом в «ёлочках»).