Forwarded from Тоже Паша Техник
у меня в маге идет предмет Applied AI in Blockchain and DeFi
так что вкушайте лонгрид про
- хэш-функции, ШАА и ШААА
- причем тут эллиптические кривые и че это вообще такое
- как это все применяется в шифровании
- верхнеуровневое устройство блокчейн
- как договорится, когда у всех свое мнение
- биток
- эфир
это будет честно не скам… я надеюсь…
[1/8]
так что вкушайте лонгрид про
- хэш-функции, ШАА и ШААА
- причем тут эллиптические кривые и че это вообще такое
- как это все применяется в шифровании
- верхнеуровневое устройство блокчейн
- как договорится, когда у всех свое мнение
- биток
- эфир
это будет честно не скам… я надеюсь…
[1/8]
Forwarded from Тоже Паша Техник
Есть какой то черный ящик, который превращает любое сообщение в уникальный набор ноликов и единичек — это хэш-функция.
Хэш-функция принимает на вход данные произвольного размера, а выдаёт «отпечаток» фиксированной длины. Именно эта особенность гарантирует целостность информации: если хоть один бит поменяется, результат сильно изменится.
То есть мы хотим, чтобы для любого сообщения генерировался его уникальный “отпечаток”.
Коллизией же называется ситуация, когда алгоритм для двух разных сообщений генерирует одинаковый хэш. Ты ему “а что это у вас”, он тебе “я думала сова”, а потом ты ему “что это у вас здесь происходит”, а он — снова “я думала сова”.
Среди множества алгоритмов, использующихся в криптографии, выделяются SHA-2 и SHA-3. (раньше часто использовали md5, но он генерирует короткие 128-битные хеши и легко подвержен коллизиям)
ШАА опирается на классическую схему Merkle–Damgård (от сюда кстати название MD5), где входное сообщение разбивается на блоки фиксированного размера, а каждый блок последовательно «сжимается» с помощью специальной компресс-функции. Такой подход хоть и надёжен, но допускает определённые уязвимости, например, атаки с удлинением сообщения.
Еще он очень похож идейно на свертки из нейронок.
Если посмотрите на картинку 1, то поймете, что хэш как бы “накапливает” знания о сообщении при этом в конце выдает в качестве итога само это состояние. И тут можно догадаться, как используется удленение сообщения.
Если коротко и верхнеуровнево: ты знаешь сообщение, ты знаешь его итоговый хэш, ты можешь просто попробовать докинуть инфы в сообщение и продолжить считать хэш. (очень грубо говоря)
ШААА (на второй картинке) лишен этого недуга так как юзеру отдается не скрытое состояние, а выжимка из него.
Алгоритм использует принцип sponge construction (губка короче).
Здесь данные сначала «впитываются» в состояние алгоритма, а затем «выжимаются» в нужном количестве бит. Считается дольше, но более безопасный алгоритм.
Переходя от преобразования данных к их защите, следующий шаг — как зашифровать и защитить сам ключ, с помощью которого можно работать с информацией.
[2/8]
Хэш-функция принимает на вход данные произвольного размера, а выдаёт «отпечаток» фиксированной длины. Именно эта особенность гарантирует целостность информации: если хоть один бит поменяется, результат сильно изменится.
То есть мы хотим, чтобы для любого сообщения генерировался его уникальный “отпечаток”.
Коллизией же называется ситуация, когда алгоритм для двух разных сообщений генерирует одинаковый хэш. Ты ему “а что это у вас”, он тебе “я думала сова”, а потом ты ему “что это у вас здесь происходит”, а он — снова “я думала сова”.
Среди множества алгоритмов, использующихся в криптографии, выделяются SHA-2 и SHA-3. (раньше часто использовали md5, но он генерирует короткие 128-битные хеши и легко подвержен коллизиям)
ШАА опирается на классическую схему Merkle–Damgård (от сюда кстати название MD5), где входное сообщение разбивается на блоки фиксированного размера, а каждый блок последовательно «сжимается» с помощью специальной компресс-функции. Такой подход хоть и надёжен, но допускает определённые уязвимости, например, атаки с удлинением сообщения.
Еще он очень похож идейно на свертки из нейронок.
Если посмотрите на картинку 1, то поймете, что хэш как бы “накапливает” знания о сообщении при этом в конце выдает в качестве итога само это состояние. И тут можно догадаться, как используется удленение сообщения.
Если коротко и верхнеуровнево: ты знаешь сообщение, ты знаешь его итоговый хэш, ты можешь просто попробовать докинуть инфы в сообщение и продолжить считать хэш. (очень грубо говоря)
ШААА (на второй картинке) лишен этого недуга так как юзеру отдается не скрытое состояние, а выжимка из него.
Алгоритм использует принцип sponge construction (губка короче).
Здесь данные сначала «впитываются» в состояние алгоритма, а затем «выжимаются» в нужном количестве бит. Считается дольше, но более безопасный алгоритм.
Переходя от преобразования данных к их защите, следующий шаг — как зашифровать и защитить сам ключ, с помощью которого можно работать с информацией.
[2/8]
Forwarded from Тоже Паша Техник
Если хэш-функции — это способ зафиксировать данные, то шифрование помогает сохранить их секретность.
Симметричное шифрование использует один и тот же секретный ключ для шифрования и дешифрования. Это как иметь один замок, ключ от которого знают только отправитель и получатель.
Звучит просто и безопасно, пока не задумываешься над тем “а как все таки передать этот ключ”.
Шифр Цезаря на этом и был основан. Есть ключ — количество сдвигов в алфавите. Ключ знают оба участника общения. И если бы партизаны, узнавшие ключ, знали, что Цезарь использует шифр Цезаря (могли бы так то догадаться лол), то спокойно бы расшифровали сообщение.
Асимметричное шифрование решает эту проблему, используя пару ключей: публичный и приватный.
Публичный ключ можно свободно распространять, а приватный хранить в секрете. Именно благодаря такому разделению можно не только шифровать сообщения, но и создавать цифровые подписи.
Одним из классических примеров асимметричной криптографии является RSA. Основная идея RSA заключается в том, что вычислить произведение двух больших простых чисел легко, а разложить (факторизовать) его обратно на множители — практически невозможно при современных вычислительных мощностях.
Генерация ключей в RSA начинается с выбора двух больших простых чисел, после чего вычисляются их произведение и функция Эйлера. В итоге получается пара ключей, где публичный используется для шифрования, а приватный — для дешифрования.
А есть еще круче? Конечно есть блин)
Самая интересная тема по-моему дальше
[3/8]
Симметричное шифрование использует один и тот же секретный ключ для шифрования и дешифрования. Это как иметь один замок, ключ от которого знают только отправитель и получатель.
Звучит просто и безопасно, пока не задумываешься над тем “а как все таки передать этот ключ”.
Шифр Цезаря на этом и был основан. Есть ключ — количество сдвигов в алфавите. Ключ знают оба участника общения. И если бы партизаны, узнавшие ключ, знали, что Цезарь использует шифр Цезаря (могли бы так то догадаться лол), то спокойно бы расшифровали сообщение.
Асимметричное шифрование решает эту проблему, используя пару ключей: публичный и приватный.
Публичный ключ можно свободно распространять, а приватный хранить в секрете. Именно благодаря такому разделению можно не только шифровать сообщения, но и создавать цифровые подписи.
Одним из классических примеров асимметричной криптографии является RSA. Основная идея RSA заключается в том, что вычислить произведение двух больших простых чисел легко, а разложить (факторизовать) его обратно на множители — практически невозможно при современных вычислительных мощностях.
Генерация ключей в RSA начинается с выбора двух больших простых чисел, после чего вычисляются их произведение и функция Эйлера. В итоге получается пара ключей, где публичный используется для шифрования, а приватный — для дешифрования.
А есть еще круче? Конечно есть блин)
Самая интересная тема по-моему дальше
[3/8]
Forwarded from Тоже Паша Техник
В основе современных криптографических систем лежит не только арифметика, но и элегантная геометрия эллиптических кривых.
Эллиптическая кривая задаётся уравнением вида:
y^2 = x^3 + ax + b.
при этом важно, чтобы дискриминант не обращался в ноль — это гарантирует гладкость кривой.
сама кривая есть на первой картинке
Здесь операция сложения точек на кривой определяется весьма своеобразно: для сложения двух разных точек P и Q проводится прямая через них, а затем найденная третья точка отражается относительно оси x.
На картинке показано как получается результат P+Q=R’
При удвоении точки применяется касательная, которая пересекается с кривой, и аналогично выполняется отражение.
На картинке 2*P=S’
Для криптографических применений, таких как формирование ключей, вычисления ведутся не над вещественными числами, а в конечных полях (например, GF(p)).
Если кратко, то конечное поле, это штука, где все операции выполняются по модулю p. То есть уравнение будет вида:
y^2 mod p = (x^3 + ax + b) mod p.
Точек в кадрате p*p будет p-1 или около того (я забыл если честно).
На второй картинке показан пример такого поля. И тут тоже есть геометрическая интерпретация для сложения.
Нахера нам эти поля и кривые?
В криптографии важно, чтобы все вычисления были дискретными (то есть, с целыми числами) и имели ограниченное число вариантов. Это позволяет избежать проблем с точностью и сделать вычисления эффективными.
Конечные поля позволяют нам выполнять операции по модулю, которые позволяют нам производить вычисления достаточно легко в одну сторону и почти не обратимо в обратную.
Вот пример:
3^3 mod 17 = 27 mod 17 = 10
При этом, если мы не знаем степень, то получить x можно только перебрав кучу не верных кандидатов:
3^x mod 17 = 12 — найдите x…
Если что, ответ 29 🙂
Аналогично, в эллиптических кривых используется операция, которая записывается как
Q = d * G,
где G — базовая точка, а d — приватный ключ (по сути тот самый x, который нереально найти при наших вычислительных ресурсах).
Эта операция представляет собой повторное сложение точки G с собой d раз и является аддитивным аналогом возведения в степень.
То есть у нас есть операция, которую легко выполнить в одну сторону, но почти не реально в другую сторону (при больших d и p (прям оооочень больших))
Эти операции лежат в основе ECDSA — алгоритма цифровой подписи на эллиптических кривых. При генерации ключей выбирается базовая точка G с большим простым порядком p. Приватный ключ d — случайное число, а публичный вычисляется как Q = d * G
пример на картинке 3.
Задача восстановления d по Q сводится к поиску дискретного логарифма — математической проблеме, которую решить практически невозможно без перебора (то что описано выше).
От криптографических примитивов мы переходим к тому, как всё это используется для создания целостных систем хранения данных.
А вот здесь тыц можно поиграть с элиптическими кривыми и посмотреть как появляются точки P, Q и R.
[4/8]
Эллиптическая кривая задаётся уравнением вида:
y^2 = x^3 + ax + b.
при этом важно, чтобы дискриминант не обращался в ноль — это гарантирует гладкость кривой.
сама кривая есть на первой картинке
Здесь операция сложения точек на кривой определяется весьма своеобразно: для сложения двух разных точек P и Q проводится прямая через них, а затем найденная третья точка отражается относительно оси x.
На картинке показано как получается результат P+Q=R’
При удвоении точки применяется касательная, которая пересекается с кривой, и аналогично выполняется отражение.
На картинке 2*P=S’
Для криптографических применений, таких как формирование ключей, вычисления ведутся не над вещественными числами, а в конечных полях (например, GF(p)).
Если кратко, то конечное поле, это штука, где все операции выполняются по модулю p. То есть уравнение будет вида:
y^2 mod p = (x^3 + ax + b) mod p.
Точек в кадрате p*p будет p-1 или около того (я забыл если честно).
На второй картинке показан пример такого поля. И тут тоже есть геометрическая интерпретация для сложения.
Нахера нам эти поля и кривые?
В криптографии важно, чтобы все вычисления были дискретными (то есть, с целыми числами) и имели ограниченное число вариантов. Это позволяет избежать проблем с точностью и сделать вычисления эффективными.
Конечные поля позволяют нам выполнять операции по модулю, которые позволяют нам производить вычисления достаточно легко в одну сторону и почти не обратимо в обратную.
Вот пример:
3^3 mod 17 = 27 mod 17 = 10
При этом, если мы не знаем степень, то получить x можно только перебрав кучу не верных кандидатов:
3^x mod 17 = 12 — найдите x…
Если что, ответ 29 🙂
Аналогично, в эллиптических кривых используется операция, которая записывается как
Q = d * G,
где G — базовая точка, а d — приватный ключ (по сути тот самый x, который нереально найти при наших вычислительных ресурсах).
Эта операция представляет собой повторное сложение точки G с собой d раз и является аддитивным аналогом возведения в степень.
То есть у нас есть операция, которую легко выполнить в одну сторону, но почти не реально в другую сторону (при больших d и p (прям оооочень больших))
Эти операции лежат в основе ECDSA — алгоритма цифровой подписи на эллиптических кривых. При генерации ключей выбирается базовая точка G с большим простым порядком p. Приватный ключ d — случайное число, а публичный вычисляется как Q = d * G
пример на картинке 3.
Задача восстановления d по Q сводится к поиску дискретного логарифма — математической проблеме, которую решить практически невозможно без перебора (то что описано выше).
От криптографических примитивов мы переходим к тому, как всё это используется для создания целостных систем хранения данных.
А вот здесь тыц можно поиграть с элиптическими кривыми и посмотреть как появляются точки P, Q и R.
[4/8]
Forwarded from Тоже Паша Техник
Каждый блок состоит из:
1. Заголовка: здесь записаны метаданные, такие как хэш предыдущего блока, временная метка, nonce (значение, используемое для достижения консенсуса, об этом будет ниже) и корень Merkle — сводный хэш всех транзакций в блоке.
2. Списка транзакций: каждая транзакция подписывается с использованием асимметричного шифрования, что гарантирует её подлинность. (например, ECDSA)
Эта структура позволяет обеспечить неизменяемость данных и защищает систему от несанкционированных изменений. Но чтобы все участники сети смогли договориться о том, какие блоки добавляются в цепочку, нужны специальные механизмы — алгоритмы консенсуса.
А вот здесь бам можете потыкаться в игрушечный блокчейн.
[5/8]
Forwarded from Тоже Паша Техник
В децентрализованной сети нет центрального управляющего органа, поэтому все узлы должны прийти к единому решению о состоянии блокчейна. Для этого используются алгоритмы консенсуса. Два наиболее популярных подхода — Proof-of-Work (PoW) и Proof-of-Stake (PoS).
Proof-of-Work (PoW) на картинке 1.
Узлы, называемые майнерами, соревнуются в решении сложной математической задачи (например, нахождение подходящего nonce, чтобы хэш блока начинался с определённого количества нулей). Эта задача требует огромных вычислительных мощностей, что обеспечивает безопасность сети, но в то же время требует больших энергетических затрат. Представьте, что тысячи участников одновременно ищут иголку в стоге сена — тот, кто первым её найдёт, получает вознаграждение.
Proof-of-Stake (PoS) на картинке 2.
Здесь право на создание нового блока распределяется среди участников пропорционально количеству замороженных монет (stake). Шансы, как в лотерее, зависят от «ставки». Этот метод значительно снижает энергопотребление, но требует сложных механизмов защиты от некоторых специфических атак.
В обоих алгоритмах участники, которые создают валидные блоки и остальная часть сети их принимаем, получают «чаевые» за проделанную работу.
Алгоритмы консенсуса — это важный звено, связывающее криптографические методы с реальным функционированием блокчейна, и далее мы рассмотрим, как это применяется в известных криптовалютах.
Можете еще в комменты написать какой из этих алгоритмов консенсуса применяется в блокчейн демо из предыдущей части лонгрида.
[6/8]
Proof-of-Work (PoW) на картинке 1.
Узлы, называемые майнерами, соревнуются в решении сложной математической задачи (например, нахождение подходящего nonce, чтобы хэш блока начинался с определённого количества нулей). Эта задача требует огромных вычислительных мощностей, что обеспечивает безопасность сети, но в то же время требует больших энергетических затрат. Представьте, что тысячи участников одновременно ищут иголку в стоге сена — тот, кто первым её найдёт, получает вознаграждение.
Proof-of-Stake (PoS) на картинке 2.
Здесь право на создание нового блока распределяется среди участников пропорционально количеству замороженных монет (stake). Шансы, как в лотерее, зависят от «ставки». Этот метод значительно снижает энергопотребление, но требует сложных механизмов защиты от некоторых специфических атак.
В обоих алгоритмах участники, которые создают валидные блоки и остальная часть сети их принимаем, получают «чаевые» за проделанную работу.
Алгоритмы консенсуса — это важный звено, связывающее криптографические методы с реальным функционированием блокчейна, и далее мы рассмотрим, как это применяется в известных криптовалютах.
Можете еще в комменты написать какой из этих алгоритмов консенсуса применяется в блокчейн демо из предыдущей части лонгрида.
[6/8]
Forwarded from Тоже Паша Техник
Bitcoin стал первой криптовалютой, построенной на технологии блокчейн. Его суть проста, но гениальна:
Транзакции — это записи переводов средств между пользователями, напоминающие строки в банковской книге.
Блоки и цепочка блоков — каждая группа транзакций объединяется в блок, который связывается с предыдущим посредством хэша, создавая надёжную цепь.
Майнинг на основе PoW — майнеры решают криптографическую задачу, чтобы добавить новый блок, а победитель получает вознаграждение в виде новых битков.
Децентрализация — информация хранится одновременно на тысячах компьютеров по всему миру, что делает систему практически неуязвимой для централизованных атак.
Bitcoin продемонстрировал, как сочетание математических принципов, криптографических алгоритмов и распределённых вычислений может создать новую форму цифровых денег.
Но дальше еще круче…
[7/8]
Транзакции — это записи переводов средств между пользователями, напоминающие строки в банковской книге.
Блоки и цепочка блоков — каждая группа транзакций объединяется в блок, который связывается с предыдущим посредством хэша, создавая надёжную цепь.
Майнинг на основе PoW — майнеры решают криптографическую задачу, чтобы добавить новый блок, а победитель получает вознаграждение в виде новых битков.
Децентрализация — информация хранится одновременно на тысячах компьютеров по всему миру, что делает систему практически неуязвимой для централизованных атак.
Bitcoin продемонстрировал, как сочетание математических принципов, криптографических алгоритмов и распределённых вычислений может создать новую форму цифровых денег.
Но дальше еще круче…
[7/8]
Forwarded from Тоже Паша Техник
Если Bitcoin — это цифровое золото, то Ethereum стал площадкой для создания целой вселенной децентрализованных приложений.
Помимо функции криптовалюты, Ethereum предлагает возможность запуска смарт-контрактов — программ, которые автоматически исполняются при соблюдении заданных условий.
Основные компоненты Ethereum:
Смарт-контракты: Автоматизированные соглашения, которые работают без посредников. Это как автоматический терминал, выдающий товар при внесении нужной суммы. Этот терминал не нужно контролировать, так как сеть сама обеспечит выполнение договоренностей.
Ethereum Virtual Machine (EVM): Виртуальная машина, которая обеспечивает единообразное выполнение кода на всех узлах сети.
Газ (Gas): Оплата за вычислительные ресурсы, необходимая для выполнения транзакций и смарт-контрактов. Чем сложнее операция, тем больше газа требуется. (тупо топливо для машинок)
Блоки и консенсус: Ethereum изначально использовал PoW, а затем перешёл на PoS, что позволило значительно снизить энергопотребление и повысить масштабируемость.
Таким образом, Ethereum расширил концепцию блокчейна, превратив его из простой системы учета транзакций в платформу для приложений, от финансовых сервисов до децентрализованных организацийи скама.
Теперь по сути можно делать много чего интересного после появления смарт-контрактов: платформа для автоматизированного страхования, система децентрализованного голосования, платформа для аренды недвижимости и так далее. Платформы и сервисы, где сама система будет обеспечивать честность транзакций/сделок.
Прикрепил еще файл с имплементацией игрушечной блокчейн системы. Можете потыкаться на досуге бам🥰
[8/8]
EOS наконец-то
Помимо функции криптовалюты, Ethereum предлагает возможность запуска смарт-контрактов — программ, которые автоматически исполняются при соблюдении заданных условий.
Основные компоненты Ethereum:
Смарт-контракты: Автоматизированные соглашения, которые работают без посредников. Это как автоматический терминал, выдающий товар при внесении нужной суммы. Этот терминал не нужно контролировать, так как сеть сама обеспечит выполнение договоренностей.
Ethereum Virtual Machine (EVM): Виртуальная машина, которая обеспечивает единообразное выполнение кода на всех узлах сети.
Газ (Gas): Оплата за вычислительные ресурсы, необходимая для выполнения транзакций и смарт-контрактов. Чем сложнее операция, тем больше газа требуется. (тупо топливо для машинок)
Блоки и консенсус: Ethereum изначально использовал PoW, а затем перешёл на PoS, что позволило значительно снизить энергопотребление и повысить масштабируемость.
Таким образом, Ethereum расширил концепцию блокчейна, превратив его из простой системы учета транзакций в платформу для приложений, от финансовых сервисов до децентрализованных организаций
Теперь по сути можно делать много чего интересного после появления смарт-контрактов: платформа для автоматизированного страхования, система децентрализованного голосования, платформа для аренды недвижимости и так далее. Платформы и сервисы, где сама система будет обеспечивать честность транзакций/сделок.
Прикрепил еще файл с имплементацией игрушечной блокчейн системы. Можете потыкаться на досуге бам
[8/8]
EOS наконец-то
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Тоже Паша Техник
tl;dr: на днях своего general AI мультиагента дропнули manus.im, который может и билеты вам заказать в казахстан, и исследование провести о том, куда все пиратские сайты делись, а на первых строчках в браузере почему-то рутюб.
пример на видео к посту: ресерч опен-сурса от deepseek ) не будем забывать первый китайский бум.
также говорят что они SOTA на бенчмарке GAIA (оценивает то, насколько модель способна справляться с различными задачами, требующими комплексного мышления и междисциплинарного подхода). Странно что показали только один бенч, как то и сомнительно вроде. Стоит еще учитывать, что почти половина вопросов в этом бенче направлена на браузинг и поиск ответов в инете.
на странице мануса уже много разных юзес кейсов и примеров использования от реальных пользователей. Обязательно гляньте, выглядит не плохо.
/opt/.manus/ через интерфейс. Под коробкой оказался claude sonnet и 29 инструментов и типа никаких мультиагентов. Вот тут можно прям глянуть че там напромптили в манусе… тык Ну и понятно, что сразу там безопасность под вопросом, deepseek moment и все такое
- sandbox доступна каждому юзеру, каждый может глянуть что находится внутри песочницы, каждая сессия изолирована
- код внутри песочницы служит лишь “приемником” команд от агентов уровнем выше.
- мультиагентность важная составляющая: есть агент Executor, который получает команды от юзера и потом взаимодействует с агентами типа Planner + Knowledge и тд. Эти агенты в свою очередь дают команды на агента в песочнице ??? Здесь я немного запутался, если кто то яснее поймет архитектуру — велком в комменты. Просто не совсем понятно, что за агент тогда описан в песочнице. Если это executor, то не понятно, каким образом он может быть “лишь приемником”.
- какие-то из их post-trained моделей будут литься в опен-сурс, но это и так сказали в демке.
Я еще не так много примеров глянул, но выглядит интересно. Если вдруг найдете прикольные демки, то давайте в комменты их накидаем
Попросился в збт, надеюсь окнут
P.S. ну и давайте вопрос закроем один. Если у кого-то возникли вопросы к названию, то оно произошло от “Mens et Manus” — с латыни “mind and hand”
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Архитектура ИТ-решений
Записи выступлений ArchDays’24 появились и в VK Видео: https://vkvideo.ru/@archdaysconference/all
(ссылка для мобильного браузера)
(ссылка для мобильного браузера)
Forwarded from LLM is all you need
#RAG #retriever
Глобально RAG-система состоит из двух больших частей: ретривер и LLM. И из них самая "дорогая" - генерация ответов LLM. Причем дороже она с большим перевесом. Но если ваша RAG-система натравлена на достаточно статичную документацию, то, скорее всего, многие вопросы по ней будут регулярно повторяться. И тогда, для экономии ресурсов, можно запилить кэш, в котором хранить наиболее частые вопросы/ответы.
Алгоритм такой:
- Получаем вопросов пользователя.
- Переводим его в вектор (с помощью bi-энкодера).
- Ищем в БД с кэшем (всех вопросов) похожий вопрос. Похожесть оцениваем по косинусному расстоянию.
- Если нашли достаточно похожий вопрос - возвращаем ранее данный на него ответ (берем его из той же БД с кэшем).
- Иначе идем по стандартному пути RAG'а. Только в конце еще сохраняем вопрос и ответ LLM в БД кэша.
Вся эта операция будет работать намного быстрее, чем генерация ответа LLM. Векторная БД вернет кэш все буквально за секунду. А например, какой-нибудь Deepseek R1 будет печатать ответ пару минут.
На хабре есть неплохая статья реализующая данный данный подход: Русский LLM-помощник (saiga) с кэшем, используя RAG (Retrieval-Augmented Generation)
Глобально RAG-система состоит из двух больших частей: ретривер и LLM. И из них самая "дорогая" - генерация ответов LLM. Причем дороже она с большим перевесом. Но если ваша RAG-система натравлена на достаточно статичную документацию, то, скорее всего, многие вопросы по ней будут регулярно повторяться. И тогда, для экономии ресурсов, можно запилить кэш, в котором хранить наиболее частые вопросы/ответы.
Алгоритм такой:
- Получаем вопросов пользователя.
- Переводим его в вектор (с помощью bi-энкодера).
- Ищем в БД с кэшем (всех вопросов) похожий вопрос. Похожесть оцениваем по косинусному расстоянию.
- Если нашли достаточно похожий вопрос - возвращаем ранее данный на него ответ (берем его из той же БД с кэшем).
- Иначе идем по стандартному пути RAG'а. Только в конце еще сохраняем вопрос и ответ LLM в БД кэша.
Вся эта операция будет работать намного быстрее, чем генерация ответа LLM. Векторная БД вернет кэш все буквально за секунду. А например, какой-нибудь Deepseek R1 будет печатать ответ пару минут.
На хабре есть неплохая статья реализующая данный данный подход: Русский LLM-помощник (saiga) с кэшем, используя RAG (Retrieval-Augmented Generation)
Forwarded from Katser
Следим и слушаем "топов": Head of DS'ов, CDS'ов, CDO, директоров инноваций, директоров цифровых дочек холдингов и вендоров решений в промышленности.
Что мне интересно в таких материалах:
Примеры полезных выступлений/презентаций/интервью/подкастов:
Стоит обращать внимание на дату материалов, потому что хоть и медленное, но развитие есть.
Еще мои мысли:
Please open Telegram to view this post
VIEW IN TELEGRAM