Обновить
1024K+

Python *

Высокоуровневый язык программирования

793,16
Рейтинг
Сначала показывать
Период
Уровень сложности

RAG-технология в действии: как создать интеллектуальную систему поиска по нормативным документам

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели27K

В этой статье рассмотрим пример практической реализации RAG (Retrieval-Augmented Generation) на Python для ответов на вопросы пользователей с опорой на нормативную базу технических стандартов. В моём случае это строительные документы: СНиПы, СП, ГОСТы и другие. Готовое решение можно протестировать в строительном Telegram-боте: https://t.me/Pdflyx_bot - данний бот генерирует ответ на основании базы знаний, приводит цитаты и указывает страницы документов, откуда была взята информация.

Данный подход может использоваться и для других сфер: анализа проектной документации, корпоративных регламентов и любых текстовых баз знаний.

Читать далее

Лучшие практики создания отказоустойчивых систем

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели28K

Разработка отказоустойчивых систем представляет собой важнейшую компетенцию для инженеров, занятых созданием распределённых и масштабируемых приложений. Под отказоустойчивостью понимается способность системы сохранять работоспособность в условиях сбоев отдельных компонентов или недоступности внешних сервисов. В данной статье рассматриваются практики обеспечения устойчивости на уровне программного кода, в частности в контексте серверных приложений, реализованных на языках Python и Java.

Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.

Читать далее

Все ли волки страшные: AUF или как приручить uplift?

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели3.5K

Всем привет! Меня зовут Мельников Виктор, я работаю Junior Data Scientist в хабе Розничного Бизнеса Департамента Продвинутой Аналитики в Альфа-Банке. В этой статье я расскажу про AUF – Open Source библиотеку Альфа-Банка. 

Её главная задача — автоматическое решение задач uplift-моделирования.

Позволяет ускорять разработку в десятки раз и убирает рутину, избавляя от привычного fit-predict. Приятным бонусом идёт полный отчёт по качеству модели, понятный как DS, так и бизнесу.

Дисклеймер: эта статья не про uplift-моделирование, а про библиотеку, которая решает задачу uplift-моделирования. Если хотите почитать про общую постановку задачи, посмотреть на математику, лежащую в основе uplift, в конце статьи оставил раздел с ссылками на полезные материалы.

Читать далее

Базовый минимум. Часть 3:  RAG-системы

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

Большая языковая модель это не источник актуальных сведений, а статистическая система, обученная на данных прошлого. Она не обращается к внешним базам знаний и не узнает о новых событиях. Все что она знает было усвоено на этапе обучения и зафиксировано в ее параметрах.

В современных прикладных системах это ограничение часто скрыто за инструментами, поиском и дополнительными модулями. Однако именно архитектурный подход Retrieval-Augmented Generation, RAG стал стандартным способом расширения возможностей модели без ее дообучения. Он позволяет подключать внешние базы знаний, работать с актуальными документами и заметно снижать количество галлюцинаций.

В третьей части серии Базовый минимум разбирается как устроен RAG и как реализовать его минимальную рабочую версию на практике.

Читать далее

Почему вопрос «Какой язык программирования выбрать в 2026» убивает вашу будущую карьеру

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9K

Привет, Хабр! (И тебе, питонист, который считает свой язык идеальным, и тебе, JS-ник, у которого уже вышел новый фреймворк, пока ты читал это предложение, и тебе, 1С-ник, который устал объяснять, что ты тоже программист всем во круг.)

Наткнувшись миллионный раз на статью «КАКОЙ ЯЗЫК ПРОГРАММИРОВАНИЯ ВЫБРАТЬ?» я задался вопросом, почему люди ещё не поняли ответа на этот вопрос, ведь он на поверхности.

Не рекомендуется для прочтения опытных разрабов считающих свей язык программирования самым лучшим.

Читать далее

Разработка Telegram-ботов на Python: системный подход вместо разрозненных гайдов

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели13K

Обычно всё начинается с очень простой задачи, которую нужно решить чем быстрее, там лучше. «А можно ли сделать так, чтобы пользователи сами записывались на консультацию через Telegram?» или «кто-то должен отвечать на типовые вопросы клиентов ночью, пока саппорт спит». Как правило, на этом этапе вспоминают о Telegram-ботах, но тут вопросов возникает еще больше. Сколько стоит разработка? Можно ли создать такого бота своими силами? Что для этого нужно? Насколько это сложно? Или вообще, — а что там внутри этих самых Telegram-ботов, кроме команды «/start»?

А что там внутри?

Пишем свой voice-to-text на Python: 4 бэкенда и батч-обработка голосовых

Время на прочтение6 мин
Охват и читатели11K

От голосовых на 5 минут к тексту за 30 секунд: инструмент для батч-расшифровки голосовых: от локального Whisper до бесплатного Groq API, с автоопределением форматов и CLI

Читать далее

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели8.9K

Генетический алгоритм как инструмент инженера: практический кейс раскроя полотен

Генетический алгоритм — это «умный» инструмент для автоматизации раскроя материалов (металл, ткань, пластик). Вместо ручного подбора или полного перебора он по принципам естественного отбора ищет компактное размещение деталей, минимизируя отходы. В статье показан практический кейс на Python: как без сложной математики создать алгоритм, который экономит материал, время. Этот подход можно адаптировать под ваши производственные задачи.

Читать далее

Трёхстрочный Deep Learning: 20 примеров нейросетевой магии

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели11K

В 2012 году AlexNet потряс мир — тысячи строк кода, две видеокарты, недели обучения. Сегодня вы превзойдёте его одной строкой, а модель загрузится за секунды.

В статье — 20 полностью рабочих примеров глубокого обучения, каждый ровно в три строки Python. Анализ тональности, резюмирование текста, вопросно-ответные системы, генерация текста, перевод, NER. Детекция объектов, сегментация, оценка глубины, поиск изображений по описанию. Мультимодальные модели, которые отвечают на вопросы о картинках.
Это не упрощение и не обман. За тремя строками скрываются модели с миллиардами параметров: BERT прочитал всю Википедию, GPT-2 обработал 40 ГБ текста, CLIP просмотрел 400 миллионов пар «картинка-описание». Всё это знание теперь доступно через один вызов функции.

Никакой дополнительной подготовки данных, никаких конфигурационных файлов, GPU не требуется. Скопируйте код — и получите результат, на который ещё пять лет назад ушли бы недели. Те же модели прямо сейчас работают в production у Netflix, Google и тысяч стартапов.
К концу статьи вы освоите 20 техник, покрывающих большинство задач NLP и компьютерного зрения — и каждая уместится в твит.

Читать далее

Rust в действии: допечатка

Время на прочтение14 мин
Охват и читатели11K

Всем привет!

Мы гордимся тем, с каким успехом и рвением выпускаем на русском языке крутую литературу по языку Rust. Мы занялись этим, когда Rust ещё далеко не был мейнкуном мейнстримом - и нашим первым (и сразу же очень успешным) заходом в тему была ныне легендарная книга Тима Макнамары "Rust in Action". Она вышла в издательстве "Manning" в 2021 году, а на русском языке мы выпустили первый тираж "Rust в действии" в ноябре 2022 года. Очередная допечатка закончилась к новому 2026 году, и мы решили разместить здесь переводную статью о книге для привлечения внимания к свежей допечатке (тираж ограничен!)

С тех пор эта книга стала базовым введением в Rust и пропуском в отрасль, но мы на ней, конечно, не остановились. Далее мы выпустили:

Читать далее

Джентльменский набор LLM-инженера: гайд по экосистеме языковых моделей

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели18K

Каждый, кто хоть раз вводил pip install transformers, наблюдал, как терминал начинает безостановочно выводить простыню зависимостей: pytorch, accelerate, bitsandbytes, peft и многие, многие другие. Но если PyTorch является фундаментом, настоящим Атлантом, на плечах которого держатся тензорные вычисления, то какую роль играют его помощники?

В этой статье мы проведём ревизию джентльменского набора LLM инженера. Для этого мы изучим функционал, методы работы и даже заглянем в исходный код таких библиотек, как PyTorch, Transformers, Accelerate, Bitsandbytes, PEFT и Unsloth. Эти знания позволят вам видеть за списком импортов не просто названия, а четкую структуру, на которой держится ваше приложение.

Читать далее

Сервисы — место, где живет бизнес-логика

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

Сервисы — место, где живет бизнес-логика

Здравствуйте! Идея написать эту статью пришла мне в голову абсолютно спонтанно. Я работаю в компании и, так сложилось, что нас имеет мы имеем DRF монолит на писят два миллиона строк кода. И вот однажды, чью-то светлую голову посетила мысль — «а давайте писать код одинаково». Идея прозвучала чертвоски просто и соблазнительно. С этого момента мы завели себе ишака по имени «Django Service Layer», и все дружно начали на него наваливать. Теперь навалю и вам. Би-бу-бип.

Читать далее

Российский ИИ: критика, которая нужна сейчас, и путь, который работает

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели12K

Сейчас, наверное, только ленивый не ругает наши российские LLM: редкие и слабые релизы, спорная практическая эффективность, особенно в кодинге и математике, ограниченный контекст и забывчивость, плохое следование инструкциям и поверхностные ответы.

Да и в целом, несмотря на заявления об использовании современных архитектур и решений складывается впечатление, что «наши» модели словно отстают на 1, а то и 2 поколения от зарубежных аналогов.

Но так ли все плохо и есть ли белый свет в конце тоннеля для российских LLM?

Читать далее

Ближайшие события

Как я тв-шоу переводил с помощью ML-моделей без подписок и СМС

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели11K

Привет, Хабр!

Сейчас мы переживаем бум ИИ-сервисов, которые за небольшую плату могут реализовать любые ваши творческие фантазии без необходимости глубокого понимания технических принципов их работы. Но я из тех, кто любит «ковыряться под капотом», поэтому в качестве проекта «выходного дня» я решил реализовать сервис машинного закадрового перевода видео с помощью общедоступных моделей с локальным запуском. А что из этого вышло – читайте далее.

Читать далее

Домашняя векторная БД + RAG

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

Часто приходится искать в огромной куче документов какую нибудь частную, специфичную вещь. На данный момент, только лично у меня более 2Gb различных pdf файлов. Зачастую разбросанных не системно. И хотя обычно представляешь где искать, но это отнимает время. Захотелось иметь инструмент ускоряющий поиск.

Читать далее

Оживляем ESP8266 и ESP32 за 15 минут без программистских заморочек с помощью MicroPython

Время на прочтение20 мин
Охват и читатели26K

Что, если я скажу, что для прошивки ESP8266/ESP32 не нужна Arduino IDE? Покажу, как с помощью портативных программ за 15 минут вдохнуть жизнь в ваш модуль: прошить MicroPython, помигать светодиодом и даже подключиться к Wi-Fi. Без установки гигабайтных программ и лишних телодвижений.

Прошить и оживить

Что такое дескрипторы в Python и почему вам следует о них знать

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели20K

Когда я только начинал изучать Python, я впервые столкнулся с дескрипторами. Глядя на примеры с кодом, я никак не мог понять, зачем это вообще нужно, и как я могу использовать это для решения моих задач. В общем, при первом знакомстве дескрипторы показались мне странной вещью, без знания которой вполне можно обойтись. Несколько месяцев назад, я вернулся к теме дескрипторов и полностью изменил свое мнение. И вот почему.

Читать далее

Бэктестер для торговых стратегий на GPU со скоростью просчёта 150 тыс стратегий за 1 секунду

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели11K

Хочется, чтобы фреймворк для тестирования торговых стратегий был пакетным, гибким, подбирал сразу 10 параметров и просчитывал очень быстро. И вот он ...

Читать далее

Градиентный спуск для новичков: когда ты падаешь, но становишься лучше

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели18K

Задавались ли вы когда-нибудь вопросом, что происходит под капотом обучения, например, линейной регрессии? Если вы до сих пор не нашли ответ на этот вопрос, то эта статья для вас. Сегодня простым языком разберём, что такое градиентный спуск — от интуиции до полноценного обучения линейной регрессии с нуля.

Читать далее

Мониторинг Celery. Pull-модель

Уровень сложностиСредний
Время на прочтение40 мин
Охват и читатели6.8K

В этой статье рассмотрим возможность получать метрики Celery непосредственно от самих воркеров, хитрости, на которые придётся пойти, чтобы решить эту задачу, и, самое главное, какие преимущества от этого можно получить по сравнению с классическим подходом к мониторингу Celery. Также продемонстрирую небольшой Django-проект и пример его конфигурации. Особое внимание будет уделено режиму мультипроцессинга и тому, как та или иная конфигурация запуска Celery будет влиять на сложность решения.

Читать далее