Forwarded from Андрей Созыкин (Andrey Sozykin)
YouTube
Шифрование в протоколе TLS | Компьютерные сети 2025 - 40
Лекция по шифрованию в протоколе Transport Layer Security.
Как поддержать курс:
- 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 (Transport Level Security) и его применение для защиты данных в компьютерных сетях.
TLS устроен достаточно сложно, по нему будет несколько лекций. В первом видео подробно рассмотрим, как в TLS применяется шифрование для обеспечения приватности данных.
TLS использует гибридное шифрование:
- Симметричное шифрование для шифрования передаваемых данных, потому что оно работает быстро.
- Асимметричное шифрование для обмена ключами симметричного шифрования, которые нельзя передавать по сети в открытом виде.
Рассмотрим, как устроены алгоритмы асимметричного шифрования для обмена ключами RSA и Диффи-Хеллмана. В последней версии TLS 1.3 допускается использование только алгоритма Диффи-Хеллмана, а RSA считается небезопасным.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
TLS устроен достаточно сложно, по нему будет несколько лекций. В первом видео подробно рассмотрим, как в TLS применяется шифрование для обеспечения приватности данных.
TLS использует гибридное шифрование:
- Симметричное шифрование для шифрования передаваемых данных, потому что оно работает быстро.
- Асимметричное шифрование для обмена ключами симметричного шифрования, которые нельзя передавать по сети в открытом виде.
Рассмотрим, как устроены алгоритмы асимметричного шифрования для обмена ключами RSA и Диффи-Хеллмана. В последней версии TLS 1.3 допускается использование только алгоритма Диффи-Хеллмана, а RSA считается небезопасным.
Если плохо работает YouTube, то можно смотреть в Дзен или VK.
Поддержать создание курса можно на Boosty или CloudTips.
Forwarded from LLM is all you need
Automatic Prefix Caching (APC) - это техника инференс-движков, которая позволяет ускорить этот самый инференс и сэкономить немного на вычислениях.
Предположим, у нас есть финансовый отчет. Один большой отчет. И мы хотим позадавать по нему вопросы. Отчет один, а вопросов много.
Чтобы задавать вопросы по отчету нужно каждый раз вставлять в промт и сам отчет и вопрос.
В самом простом случаи LLM будет при каждом вызове прогонять этот большой отчет через модель и производить все необходимые вычисления.
А т.к. отчет "статичен", то большинство вычислений были бы каждый раз одинаковыми. Вот тут то нам и нужен APC - он кэширует статичную часть и позволяет экономить на вычислениях.
Как это работает на практике (на примере vLLM)...
Все что нужно - включить параметр
Дальше определяем неизменяемый префикс:
А дальше подставляем этот префикс во все запросы:
Первый такой запрос обработает достаточно "долго", потому что через модель будет пропущена вся последовательность. Но vLLM запомнит его.
Когда в следующий раз на вход придет запрос с таким же префиксом vLLM обнаружит его и возьмет вычисленные значения и из кэша. И скорость ответа в этот раз будет намного выше.
Потестировал запросы и с
Чуть более подробно: https://docs.vllm.ai/en/stable/design/prefix_caching.html
З.Ы. Порядок менять нельзя: сначала должна идти статичная часть, а потом различные "динамические" вопросы.
Предположим, у нас есть финансовый отчет. Один большой отчет. И мы хотим позадавать по нему вопросы. Отчет один, а вопросов много.
Чтобы задавать вопросы по отчету нужно каждый раз вставлять в промт и сам отчет и вопрос.
В самом простом случаи LLM будет при каждом вызове прогонять этот большой отчет через модель и производить все необходимые вычисления.
А т.к. отчет "статичен", то большинство вычислений были бы каждый раз одинаковыми. Вот тут то нам и нужен APC - он кэширует статичную часть и позволяет экономить на вычислениях.
Как это работает на практике (на примере vLLM)...
Все что нужно - включить параметр
enable_prefix_caching при запуске vLLM (он может быть по умолчанию уже включен).from vllm import LLM, SamplingParams
llm = LLM(
model = '/models/qwen/Qwen3-8B',
enable_prefix_caching = True
)
Дальше определяем неизменяемый префикс:
LONG_PREFIX = '''
Длинный, длинный, длинный... отчет.
'''
А дальше подставляем этот префикс во все запросы:
query = LONG_PREFIX + "Использую данные из таблице выше, ответь на вопрос: сколько компания заработала в прошлом году?"
Первый такой запрос обработает достаточно "долго", потому что через модель будет пропущена вся последовательность. Но vLLM запомнит его.
Когда в следующий раз на вход придет запрос с таким же префиксом vLLM обнаружит его и возьмет вычисленные значения и из кэша. И скорость ответа в этот раз будет намного выше.
query = LONG_PREFIX + "Использую данные из таблице выше, ответь на вопрос: какой юридический адрес у нашей компании?"
Потестировал запросы и с
enable_prefix_caching и без него. Прирост в скорости получается примерно в 3-7 раз.Чуть более подробно: https://docs.vllm.ai/en/stable/design/prefix_caching.html
З.Ы. Порядок менять нельзя: сначала должна идти статичная часть, а потом различные "динамические" вопросы.
Forwarded from LLM is all you need
Решил тут разобраться в великом множестве локальных UI-клиентов для LLM.
Поставил себе 10 штук и опробовал их.
Результатом проб стала статься на Хабре: Краткий обзор 10 локальных UI для LLM
Поставил себе 10 штук и опробовал их.
Результатом проб стала статься на Хабре: Краткий обзор 10 локальных UI для LLM
Forwarded from LLM is all you need
logit_bias это параметр генерации, который позволяет контролировать какие токены и с какой вероятностью должна печатать модель.Как он работает...
Рассмотрим такой запрос:
Столица Франции? Одним словом.. Скорее всего мы получим ответ: Париж.Но мы хотим "услышать" от модели что-то другое.
Сначала выясним из каких токенов состоит слово
Париж.from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('/models/qwen/Qwen3-14B')
token_ids = tokenizer.encode('Париж')
token_text = [tokenizer.decode([token_id]) for token_id in token_ids]
print("ID токенов:", token_ids) # [16854, 125947, 16964]
print("Текст токенов:", token_text) # ['П', 'ари', 'ж']
Итак, за букву
П отвечает токен 16854. Занулим его:from openai import OpenAI
client = OpenAI(
base_url='http://192.168.0.108:8000/v1',
api_key='any'
)
prompt = 'Столица Франции? Одним словом.'
response = client.chat.completions.create(
model = '/Qwen3-14B',
messages = [
{'role': 'user', 'content': prompt}
],
temperature = 0.9,
max_tokens = 500,
logit_bias = {16854:-100}, # Выкручиваем вероятность появления токена в 0
extra_body = {'chat_template_kwargs': {'enable_thinking': False}}
)
content = response.choices[0].message.reasoning_content
print(content)
После этого модель не сможеть начать текст с буквы "П" (да и вообще ее напечатать) и мы сможем увидеть в ответе что-то вроде "Ницца", "Версаль" и много чего еще :)
Измеряется
logit_bias от -100 до 100. При -100 вероятность появления токена около нулевая, а при 100 модель только его и будет печатать :)В
logit_bias можно передать сразу несколько токенов: {16854:-100, 125947:-100, 16964:-100}Forwarded from AI и грабли
Хотя я и в водовороте ИИ хайпа, но у меня почти нет ИИ продуктов, которыми я пользуюсь каждый день
Прям на постоянке только Cursor/Claude Code, Wispr Flow, chatgpt/ai.studio, пару самописных ботов и Granola
Почему так? Если честно, кажется, что большинство продуктов просто не дают достаточно интерфейсной ценности в сравнении с обычным ChatGPT.
Granola – крутой пример обратного. Вот вроде обычный транскрибатор, но на самом деле все сильно глубже. Никаким chatgpt такой флоу заменить не получится. Подробнее показывал на воркшопе пару недель назад. Постарался не столько дать инструмент, сколько сформулировать универсальные подходы и реальные кейсы
Выложил эту часть в бесплатный доступ на ютуб – смотреть можно тут
Прям на постоянке только Cursor/Claude Code, Wispr Flow, chatgpt/ai.studio, пару самописных ботов и Granola
Почему так? Если честно, кажется, что большинство продуктов просто не дают достаточно интерфейсной ценности в сравнении с обычным ChatGPT.
Granola – крутой пример обратного. Вот вроде обычный транскрибатор, но на самом деле все сильно глубже. Никаким chatgpt такой флоу заменить не получится. Подробнее показывал на воркшопе пару недель назад. Постарался не столько дать инструмент, сколько сформулировать универсальные подходы и реальные кейсы
Выложил эту часть в бесплатный доступ на ютуб – смотреть можно тут
YouTube
ИИ инструмент для коммуникации, который сохранил мне несколько тысяч долларов
Granola – granola.ai
Enterprise-grade security – fireflies.ai
Тоже обещают GDPR и давно на рынке (раньше делали шумодав) – krisp.ai
(Канал новый, так что ссылки не кликабельные)
UPD: granola тоже обещает SOC2 и GDPR - granola.ai/security
Мой канал в тг:…
Enterprise-grade security – fireflies.ai
Тоже обещают GDPR и давно на рынке (раньше делали шумодав) – krisp.ai
(Канал новый, так что ссылки не кликабельные)
UPD: granola тоже обещает SOC2 и GDPR - granola.ai/security
Мой канал в тг:…
Forwarded from Евгений Козлов пишет про IT (Eugene Kozlov)
Пока я отчаянно пытаюсь найти время на продолжение цикла постов про Concurrency & Consistency хочу поделиться классной методичкой по потоковой обработке данных от признанного специалиста в этой области. Считаю что она незаслуженно обделена вниманием, поэтому исправляю это.
Making Sense of Stream Processing. The Philosophy Behind Apache Kafka and Scalable Stream Data Platforms
В далеком 2016м, Мартин Клепманн (да, это автор того самого кабанчика) написал методичку на 180 страниц в которой очень понятно и доступно рассказывает про:
- События, потоки данных.
- DDD, CQRS.
- Change Data Capture паттерн и при чем тут Kafka.
- Как тюнить базы данных под разные сценарии, особенно аналитические.
Чем хороша книга - в ней много понятных примеров и иллюстраций. Именно её я советую сейчас и советовал ранее своим менти, когда получал запрос на материалы про потоки данных "понятным языком".
Скачать книгу можно бесплатно с сайта автора: https://martin.kleppmann.com/papers/stream-processing.pdf
Делитесь в комментариях отзывами если читали, буду рад если посоветуете материалы которые помогли вам быстро вникнуть в тему Stream Processing.
P.S. Материал для постов по Concurrency почти готов, скоро будут посты. Будем велосипедить примитивы синхронизации с нуля и сравнивать с эталонными реализациями заодно щупая на практике все проблемы конкурентного программирования.
Making Sense of Stream Processing. The Philosophy Behind Apache Kafka and Scalable Stream Data Platforms
В далеком 2016м, Мартин Клепманн (да, это автор того самого кабанчика) написал методичку на 180 страниц в которой очень понятно и доступно рассказывает про:
- События, потоки данных.
- DDD, CQRS.
- Change Data Capture паттерн и при чем тут Kafka.
- Как тюнить базы данных под разные сценарии, особенно аналитические.
Чем хороша книга - в ней много понятных примеров и иллюстраций. Именно её я советую сейчас и советовал ранее своим менти, когда получал запрос на материалы про потоки данных "понятным языком".
Скачать книгу можно бесплатно с сайта автора: https://martin.kleppmann.com/papers/stream-processing.pdf
Делитесь в комментариях отзывами если читали, буду рад если посоветуете материалы которые помогли вам быстро вникнуть в тему Stream Processing.
P.S. Материал для постов по Concurrency почти готов, скоро будут посты. Будем велосипедить примитивы синхронизации с нуля и сравнивать с эталонными реализациями заодно щупая на практике все проблемы конкурентного программирования.