Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
Как расшифровывать протокол TLS в Wireshark | Компьютерные сети - 44
Практика по разбору пакетов TLS. Просматриваем и расшифровываем TLS в Wireshark.
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.…
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.…
В новом видео по компьютерным сетям на практике с помощью Wireshark анализируем протокол TLS.
Начинаем с просмотра зашифрованных пакетов TLS. В таком виде доступно всего три поля заголовка Record Layer: тип протокола TLS следующего уровня, версия TLS и длина данных. Все остальное зашифровано, посмотреть это нельзя.
Чтобы расшифровать данные, которые передаются по TLS, нужно получить ключи шифрования. Для этого можно установить переменную окружения SSLKEYLOGFILE, в которую прописать путь к файлу. В этот файл будут записываться ключи шифрования TLS. Так работают популярные библиотеки TLS: NSS, OpenSSL и boringssl. Именно эти библиотеки используют большинство браузеров. В видео я использую браузер Chrome. Полная инструкция по настройке расшифровки пакетов TLS есть на сайте Wireshark.
После настройки Wireshark начинает показывать расшифрованные пакеты TLS. Мы можем видеть не только заголовки Record Layer, но и данные, которые ранее были зашифрованы. В видео это запросы HTTP к сайту для практических занятий курса.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Начинаем с просмотра зашифрованных пакетов TLS. В таком виде доступно всего три поля заголовка Record Layer: тип протокола TLS следующего уровня, версия TLS и длина данных. Все остальное зашифровано, посмотреть это нельзя.
Чтобы расшифровать данные, которые передаются по TLS, нужно получить ключи шифрования. Для этого можно установить переменную окружения SSLKEYLOGFILE, в которую прописать путь к файлу. В этот файл будут записываться ключи шифрования TLS. Так работают популярные библиотеки TLS: NSS, OpenSSL и boringssl. Именно эти библиотеки используют большинство браузеров. В видео я использую браузер Chrome. Полная инструкция по настройке расшифровки пакетов TLS есть на сайте Wireshark.
После настройки Wireshark начинает показывать расшифрованные пакеты TLS. Мы можем видеть не только заголовки Record Layer, но и данные, которые ранее были зашифрованы. В видео это запросы HTTP к сайту для практических занятий курса.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
Введение в MCP | Протокол MCP - 01
Лекция по основам протокола Model Context Protocol.
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Протокол MCP - https://modelcontextprotocol.io/
Спецификация MCP…
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Протокол MCP - https://modelcontextprotocol.io/
Спецификация MCP…
https://youtu.be/kIjt0Jt94nI
Запускаю новый курс по протоколу Model Context Protocol (MCP). Этот протокол позволяет подключать к языковым моделям внешние источники данных и инструменты (tools).
MCP важен, т.к. является открытым стандартным протоколом, поэтому с его помощью можно подключить к вашему ИИ-приложению большое количество готовых сервисов. В этом MCP похож на семейство протоколов TCP/IP для интернета.
Протокол MCP разработала компания Anthropic, но в декабре 2025 года она передала его в Linux Foundation. Теперь это действительно открытый протокол, развиваемый большим сообществом без привязки к конкретному вендору.
В лекции рассмотрена архитектура MCP и возможности MCP-серверов. В следующем видео научимся использовать MCP Inspector для изучения работы существующих MCP-серверов.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Запускаю новый курс по протоколу Model Context Protocol (MCP). Этот протокол позволяет подключать к языковым моделям внешние источники данных и инструменты (tools).
MCP важен, т.к. является открытым стандартным протоколом, поэтому с его помощью можно подключить к вашему ИИ-приложению большое количество готовых сервисов. В этом MCP похож на семейство протоколов TCP/IP для интернета.
Протокол MCP разработала компания Anthropic, но в декабре 2025 года она передала его в Linux Foundation. Теперь это действительно открытый протокол, развиваемый большим сообществом без привязки к конкретному вендору.
В лекции рассмотрена архитектура MCP и возможности MCP-серверов. В следующем видео научимся использовать MCP Inspector для изучения работы существующих MCP-серверов.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
MCP Inspector | Протокол MCP - 02
Практика по использованию MCP Inspector для исследования возможностей MCP серверов.
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
MCP Inspector - https://modelco…
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
MCP Inspector - https://modelco…
https://youtu.be/LYzKRCBwJqk
Продолжаю записывать курс по MCP, в этот раз практика по MCP Inspector. Это бесплатная программа с открытыми исходными кодами для тестирования и отладки MCP серверов.
С помощью MCP Inspector подключаемся к удаленному MCP-серверу Context7. Этот сервер предоставляет языковой модели доступ к актуальной документации по библиотекам для различных языков программирования. Это важно, т.к. языковые модели обучаются на данных, которые были собраны достаточно давно, поэтому могут генерировать устаревший код.
В видео вызываем инструменты (tools) Context7 сначала из MCP Inspector, а потом из Cursor. Также смотрим, как данные передаются от клиента к серверу в формате JSON. Но подробно работу протокола MCP будем изучать далее в курсе.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Продолжаю записывать курс по MCP, в этот раз практика по MCP Inspector. Это бесплатная программа с открытыми исходными кодами для тестирования и отладки MCP серверов.
С помощью MCP Inspector подключаемся к удаленному MCP-серверу Context7. Этот сервер предоставляет языковой модели доступ к актуальной документации по библиотекам для различных языков программирования. Это важно, т.к. языковые модели обучаются на данных, которые были собраны достаточно давно, поэтому могут генерировать устаревший код.
В видео вызываем инструменты (tools) Context7 сначала из MCP Inspector, а потом из Cursor. Также смотрим, как данные передаются от клиента к серверу в формате JSON. Но подробно работу протокола MCP будем изучать далее в курсе.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
Установка соединения в TLS | Компьютерные сети - 45
Лекция по процессу установки и разрыва соединения TLS.
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.ru/courses/networks_online…
Как поддержать курс:
- Boosty - https://boosty.to/asozykin
- Cloudtips - https://pay.cloudtips.ru/p/45a4055b
Заранее спасибо за помощь!
Сайт курса - https://www.asozykin.ru/courses/networks_online…
В новой лекции по компьютерным сетям рассказываю, как выполняется установка соединения в протоколе TLS. Перед тем как передавать данные по TLS, клиент и сервер должны выполнить несколько предварительных действий:
- Договориться, какой набор шифров TLS будет использоваться для защиты данных.
- Проверить подлинность сервера, к которому подключается клиент (иногда сервер дополнительно проверяет подлинность клиента).
- Обменяться ключами симметричного шифрования и MAC.
Именно эти действия и выполняются в процессе соединения.
В лекции рассказываю, как устроена установка соединения в современной версии TLS 1.3. Для этого в TLS есть специальный Handshake Protocol, который работает поверх протокола записей (Record Protocol).
Также в TLS 1.3 есть сокращенный процесс установки соединения 0-RTT, который нужен для восстановления существующей сессии TLS. Если клиент и сервер ранее уже устанавливали соединения и обменивались ключами симметричного шифрования, то с помощью 0-RTT можно переиспользовать эти ключи и сразу в первом же сообщении отправлять зашифрованные данные. Однако это негативно влияет на безопасность.
Чтобы корректно закрыть соединение, клиент и сервер должны отправить друг другу сообщения close_notify протокола оповещений (Alert Protocol). В случае ошибки соединение разрывается в одностороннем порядке, при этом нужно отправить сообщение об ошибке Error Alert.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
- Договориться, какой набор шифров TLS будет использоваться для защиты данных.
- Проверить подлинность сервера, к которому подключается клиент (иногда сервер дополнительно проверяет подлинность клиента).
- Обменяться ключами симметричного шифрования и MAC.
Именно эти действия и выполняются в процессе соединения.
В лекции рассказываю, как устроена установка соединения в современной версии TLS 1.3. Для этого в TLS есть специальный Handshake Protocol, который работает поверх протокола записей (Record Protocol).
Также в TLS 1.3 есть сокращенный процесс установки соединения 0-RTT, который нужен для восстановления существующей сессии TLS. Если клиент и сервер ранее уже устанавливали соединения и обменивались ключами симметричного шифрования, то с помощью 0-RTT можно переиспользовать эти ключи и сразу в первом же сообщении отправлять зашифрованные данные. Однако это негативно влияет на безопасность.
Чтобы корректно закрыть соединение, клиент и сервер должны отправить друг другу сообщения close_notify протокола оповещений (Alert Protocol). В случае ошибки соединение разрывается в одностороннем порядке, при этом нужно отправить сообщение об ошибке Error Alert.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from Data Blog
Недавно слушала работу, одним из направлений которых был анализ моделей методами интерпретируемости для понимания поведения предметной области. И одним из моих тейков автору был такой — модель — она на то и модель — мы не можем утверждать, что нашли лучшую и максимально корректную, а потому методы интерпретируемости и инсайты из них надо аккуратно аблитировать.
И в эту сторону мне попалась работа “Quantifying LLM Attention-Head Stability: Implications for Circuit Universality” с вопросом: если мы обучаем одну и ту же GPT-архитектуру на одних и тех же данных, но с разными random seeds, получаем ли мы одни и те же attention-головы и одни и те же circuits?
Что сделали:
Натренировали 26 моделей (от 2 до 12 слоёв) с разными seeds и сравнили attention-головы между рефитами. Метрика — best-match по cosine similarity между post-softmax attention maps. То есть, для каждой головы h_i берётся max similarity к головам h_j в другой модели. На этой основе они показали три вещи.
Что нашли:
1. Ранние и последние слои оказываются относительно стабильными (от сида к сиду attentions похожи по метрике), а со средними слоями это не работает и провал усиливается с глубиной модели.
2. Стабильность отрицательно коррелирует с ℓ2-нормами query-матриц: где норма больше — там согласованность между seed’ами ниже .
3. В более глубоких слоях нестабильные головы оказываются более важными — важность для авторов — насколько меняется perplexity при удалении головы.
4. Residual stream стабильнее отдельных attention-голов . То есть локальные модули могут гулять, а магистральное представление — сходиться.
5. Оптимизатор может влиять на стабильность: AdamW даёт более стабильные головы, чем Adam, без заметной потери качества. (Но тут сразу возникает вопрос — а если притащить другие оптимизаторы, scheduler’ы? Насколько это эффект AdamW и именно его?)
Почему прикольно:
Меня зацепили дизайн работы и результаты для средних слоев. Потому что на моей практике, mid-layers богаты на "приколы" — представления, переломы и локализации признаков (и вроде у Antropic есть работа и тейк про богатство middle layers) — и если именно они нестабильны при refits, это грустно — стрельба пушкой по воробьям, если рассматривать одну модель (никогда так не делайте).
С другой стороны, claims звучат сильнее, чем позволяет эксперимент. Модели небольшие (до GPT-2 small, 124М). Неочевидно, что те же эффекты сохранятся при масштабировании на 1B+ или instruction-tuned модели. И, конечно, близость attention maps по cosine similarity не гарантирует функциональную эквивалентность голов.
В этом смысле, работа открывает много вопросов — так что если вы ищете тему для диплома или paper — можно записывать в идеи-для-рисерча 🙂
Кстати, надеюсь на неделе допишу ещё туториал с обзором на новую библиотеку, но как говорят мои коллеги "зарекаться не буду" ))
И в эту сторону мне попалась работа “Quantifying LLM Attention-Head Stability: Implications for Circuit Universality” с вопросом: если мы обучаем одну и ту же GPT-архитектуру на одних и тех же данных, но с разными random seeds, получаем ли мы одни и те же attention-головы и одни и те же circuits?
Что сделали:
Натренировали 26 моделей (от 2 до 12 слоёв) с разными seeds и сравнили attention-головы между рефитами. Метрика — best-match по cosine similarity между post-softmax attention maps. То есть, для каждой головы h_i берётся max similarity к головам h_j в другой модели. На этой основе они показали три вещи.
Что нашли:
1. Ранние и последние слои оказываются относительно стабильными (от сида к сиду attentions похожи по метрике), а со средними слоями это не работает и провал усиливается с глубиной модели.
2. Стабильность отрицательно коррелирует с ℓ2-нормами query-матриц: где норма больше — там согласованность между seed’ами ниже .
3. В более глубоких слоях нестабильные головы оказываются более важными — важность для авторов — насколько меняется perplexity при удалении головы.
4. Residual stream стабильнее отдельных attention-голов . То есть локальные модули могут гулять, а магистральное представление — сходиться.
5. Оптимизатор может влиять на стабильность: AdamW даёт более стабильные головы, чем Adam, без заметной потери качества. (Но тут сразу возникает вопрос — а если притащить другие оптимизаторы, scheduler’ы? Насколько это эффект AdamW и именно его?)
Почему прикольно:
Меня зацепили дизайн работы и результаты для средних слоев. Потому что на моей практике, mid-layers богаты на "приколы" — представления, переломы и локализации признаков (и вроде у Antropic есть работа и тейк про богатство middle layers) — и если именно они нестабильны при refits, это грустно — стрельба пушкой по воробьям, если рассматривать одну модель (никогда так не делайте).
С другой стороны, claims звучат сильнее, чем позволяет эксперимент. Модели небольшие (до GPT-2 small, 124М). Неочевидно, что те же эффекты сохранятся при масштабировании на 1B+ или instruction-tuned модели. И, конечно, близость attention maps по cosine similarity не гарантирует функциональную эквивалентность голов.
В этом смысле, работа открывает много вопросов — так что если вы ищете тему для диплома или paper — можно записывать в идеи-для-рисерча 🙂
arXiv.org
Quantifying LLM Attention-Head Stability: Implications for Circuit...
In mechanistic interpretability, recent work scrutinizes transformer "circuits" - sparse, mono or multi layer sub computations, that may reflect human understandable functions. Yet, these network...
Forwarded from Ebout Data Science | Дима Савелко
Андрюша Карпатый снова навалил базы: nanochat miniseries v1 Андрей Карпатый не перестаёт радовать нас годным контентом. Он выкатил жирный апдейт в своём репозитории nanochat - проекте, который учит создавать свой ChatLGBT с полного нуля.
Если раньше мы просто учились запускать пайплайн, чтобы оно работало, то теперь Андрюха погружает нас именно в сам процесс обучения. Главный вопрос апдейта: как тратить вычислительные ресурсы (бабосиксаны) максимально эффективно?
Разбираем, что там внутри:
Для многих новичков подбор параметров модели звучит как что-то непонятное, но Карпатый показывает, что это - строгая и понятная математика. Суть проста: хватит гадать на кофейной гуще, какую архитектуру выбрать и сколько данных скормить. Бро использует законы масштабирования.
Эксперимент: Карпатый запустил серию обучений (miniseries) с фиксированным бюджетом (~$100 на H100) и потратил его по-разному:
Результат: Все модели стоили одинаково, но одна конкретная конфигурация дала лучшее качество
Вы не играете в казик, когда запускаете обучение. Вы можете провести дешёвые эксперименты за сотку баксов, найти идеальную формулу, а затем просто увеличить масштаб (вложить $100k или $1M) и гарантированно получить ожидаемый прирост качества. Инженеры OpenAI/Anthropic не тыкают пальцем в небо, они так считает деньги и масштабы
В первой версии nanochat фишкой был «полный цикл» до веб-интерфейса. В miniseries v1 акцент сместился на Pretraining. Запомните: именно здесь закладывается фундамент интеллекта. Если вы обосрались на претрейне, то никакой файн-тюн (SFT/RLHF) это уже не исправит
Что с этим делать? Если хотите реально понимать, как работают LLM , а не просто импортировать либы:
• Залетайте в обсуждение: github.com/karpathy/nanochat/discussions/420
• Смотрите на графики Loss vs Compute
• Ковыряйте код скрипта miniseries.sh - это эталон того, как нужно организовывать эксперименты
Итог
Масштабирование - это сплошная инженерка. Андрюха дал вам песочницу, чтобы освоить её за копейки, прежде чем лезть в серьёзные бюджеты. Поэтому тыкаем это обсуждение с ЛЛМ-кой, чтобы понять его
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Vibecon / вайбкодим вместе (Andrei Muntanion)
Собрал для себя шаблон структуры вайбкод-проекта, с которого удобно стартануть на привычных мне стеках
У меня уже несколько раз просили поделиться подобным, наконец добрался и попросил Claude Code собрать во что-то более менее универсальное опыт моих production проектов
https://github.com/Muntello/vibe-project-template/
Можете пользоваться, форкать ну или предлагать какие-то улучшения через PR
У меня уже несколько раз просили поделиться подобным, наконец добрался и попросил Claude Code собрать во что-то более менее универсальное опыт моих production проектов
https://github.com/Muntello/vibe-project-template/
Можете пользоваться, форкать ну или предлагать какие-то улучшения через PR
GitHub
GitHub - Muntello/vibe-project-template
Contribute to Muntello/vibe-project-template development by creating an account on GitHub.
Forwarded from Душный NLP
Рекурсивные языковые модели
В последнее время всё чаще обсуждают проблему длинного контекста. Большое количество токенов просто физически не помещается в модели, а с увеличением контекста зачастую падает качество. Авторы сегодняшней статьи предлагают решение: дать моделям правильные инструменты.
Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это Python REPL. Модель может исполнить произвольный код, где в переменной
Второй тул — это вызов языковой модели на глубине 1 (
Суть метода, предложенного авторами статьи, в том, чтобы дать модели возможность запускать себя рекурсивно в той же программной среде (изображение 1). Среди бейзлайнов авторы рассматривают вариант без самовызовов (только модель с большим промптом и REPL), summary agent (суммаризация контекста, не поместившегося в модель) и CodeAct (код плюс ретривал через BM25).
Нюансы разницы RLM и типичных кодовых агентов до сих пор вызывают дискуссии с авторами в твиттере, и хайп вокруг статьи и идеи только растёт. Примеры тут, тут и тут.
Эксперименты проводили на Qwen3 и GPT-5 (изображение 2). На бенчмарке BrowseComp+ (контекст 6–11 миллиона токенов, нужно найти один релевантный документ из тысячи и ответить на вопрос) базовые модели невозможно запустить — контекст просто не влезает. RLM здесь работает.
Но поиск по длинному контексту — не единственная задача, которую решают RLM. Бенчмарк OOLONG требует семантической обработки фрагментов текста и их агрегации. Сложность линейная относительно длины входа. Здесь RLM без самовызовов уступает даже базовой модели, потому что задача требует «видеть» весь контекст. RLM с самовызовами заметно выигрывает у всех бейзлайнов.
Самый показательный результат на OOLONG-Pairs. Здесь нужно сравнивать пары фрагментов, то есть сложность задачи квадратичная. Базовая модель и summary agent выдают результат около нуля. RLM с самовызовами решает эту задачу, программно организуя квадратичное число вызовов через код в REPL. Это класс задач, недоступный другим подходам.
По стоимости RLM с самовызовами зачастую сопоставима с базовой моделью, хотя со сложностью задачи стоимость растёт (изображение 3).
Разбор подготовил❣ Иван Рубачёв
Душный NLP
В последнее время всё чаще обсуждают проблему длинного контекста. Большое количество токенов просто физически не помещается в модели, а с увеличением контекста зачастую падает качество. Авторы сегодняшней статьи предлагают решение: дать моделям правильные инструменты.
Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это Python REPL. Модель может исполнить произвольный код, где в переменной
prompt сохранён весь длинный промпт.Второй тул — это вызов языковой модели на глубине 1 (
depth=1) с поданным фрагментом длинного промпта. Это напоминает субагентов в агентах для написания кода (Claude Code, Codex), но есть важное отличие. Вызов llm_query живёт «внутри» REPL, а значит модель может встроить его в цикл, условие или любую другую программную конструкцию. В Claude Code или Codex субагент — это отдельный тул-колл, который модель вызывает из контекста напрямую, без программного контроля. Такая модель называется рекурсивной (RLM), и их может быть несколько в рамках одного цикла. RLM не обязательно должна быть идентична изначальной. Главное, что у неё пустой контекст.Суть метода, предложенного авторами статьи, в том, чтобы дать модели возможность запускать себя рекурсивно в той же программной среде (изображение 1). Среди бейзлайнов авторы рассматривают вариант без самовызовов (только модель с большим промптом и REPL), summary agent (суммаризация контекста, не поместившегося в модель) и CodeAct (код плюс ретривал через BM25).
Нюансы разницы RLM и типичных кодовых агентов до сих пор вызывают дискуссии с авторами в твиттере, и хайп вокруг статьи и идеи только растёт. Примеры тут, тут и тут.
Эксперименты проводили на Qwen3 и GPT-5 (изображение 2). На бенчмарке BrowseComp+ (контекст 6–11 миллиона токенов, нужно найти один релевантный документ из тысячи и ответить на вопрос) базовые модели невозможно запустить — контекст просто не влезает. RLM здесь работает.
Но поиск по длинному контексту — не единственная задача, которую решают RLM. Бенчмарк OOLONG требует семантической обработки фрагментов текста и их агрегации. Сложность линейная относительно длины входа. Здесь RLM без самовызовов уступает даже базовой модели, потому что задача требует «видеть» весь контекст. RLM с самовызовами заметно выигрывает у всех бейзлайнов.
Самый показательный результат на OOLONG-Pairs. Здесь нужно сравнивать пары фрагментов, то есть сложность задачи квадратичная. Базовая модель и summary agent выдают результат около нуля. RLM с самовызовами решает эту задачу, программно организуя квадратичное число вызовов через код в REPL. Это класс задач, недоступный другим подходам.
По стоимости RLM с самовызовами зачастую сопоставима с базовой моделью, хотя со сложностью задачи стоимость растёт (изображение 3).
Разбор подготовил
Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM