Найти в Дзене
Решение задач с разбиением чисел на цифры
Часто в задачах требуется не просто оперировать числом как целым, а разложить его на отдельные цифры — как разобрать механизм на детали. Рассмотрим простой, но эффективный подход. Для этого вспомним, что мы можем подсчитать целую и остаточную части при делении на 10 (или другое число, смотря в какой системе счисления работаем). Допустим, имеем задачу: "Дано 32-битное знаковое целое число x. Верните x с перевернутыми цифрами. Если переворачивание x приводит к выходу значения за пределы диапазона 32-битных...
2 недели назад
BM25Retriever под капотом
В современных rag системах центральным инструментом являются ретриверы - объекты, которые отвечают за поиск близкой к запросу информации (контекста). Одним из них является BM25Retriever, основанный на частоте встречаемости. В отличие от аналогов, использующих векторные представления, он полагается на точные совпадение единиц, на которые разбит текст (токенов). Для демонстрационных целей возмем набор текстов с описанием компьютерных угроз с сайта MITRE ATT&CK (тут и тут): Для корректной работы BM25Retriever...
1 месяц назад
Многоканальное логирование для python проекта
Логируй так, будто завтра сервер упадет, и только твои записи спасут мир. Рассмотрим, как создать логгер для проекта, который предусматривает вывод сообщений и в консоль, и в файл журнала. Реализовывать его будем в форме класса Python, но сначала рассмотрим типичные особенности в интерактивном режиме. Нашими строительными блоками будут составляющие модуля logging: Про уровни вывода сообщений и методы я рассказывал ранее. Создадим тестовый logger: Можно заметить 2 сообщения в консоли и одно - в журнале...
8 месяцев назад
Как настроить окружение с PyTorch и CUDA
"Путь к успеху начинается с первого шага". Даже для опытных пользователей процесс настройки окружения с PyTorch и CUDA может превратиться в настоящую головную боль, если нет четкого алгоритма. Поэтому описание порядка установки станет в центре внимания в данном материале. Первый этап - сбор информации о видеокарте, поддерживаемой версии CUDA и ее установка (все этапы тестировал на Windows). 1) Инфо о видеокарте можно получить через браузер Chrome: chrome://gpu/ 2) Далее гуглим, какая версия CUDA поддерживается вашей видеокартой, и скачиваем с официального сайта (в моем случае - CUDA 11...
10 месяцев назад
Модуль inspect и самый частый код разработчика, который можно упростить до пары строк
Превратите сложные задачи в простые: узнайте, как модуль inspect помогает разработчикам отлаживать и лучше понимать чужой код, а также сокращать время, затрачиваемое на рутинные действия. Начнем с описания самых простых и полезных функций модуля. getmodule и getfile позволяют получить имя модуля и файла, в которых определен импортированный объект: Для получения описания параметров и значений по умолчанию исследуемой функции обратитесь к signature: Пожалуй, самым полезным объектом модуля является фрейм/блок...
1 год назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала