Все потоки
Поиск
Написать публикацию
Обновить
410.45

Python *

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

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

Применение ML для оптимизации работы питательных электронасосов в ТЭЦ металлургического комбината

Время на прочтение9 мин
Количество просмотров2.9K

Привет, Хабр. Меня зовут Кирилл, и я работаю в центре машинного обучения «Инфосистемы Джет». Сегодня хочу рассказать, как мы совместно со специалистами ТЭЦ крупного металлургического предприятия сделали цифровой сервис для оптимизации работы питательных электронасосов (ПЭН). Годовой экономический эффект от реализации сервиса превзошел наши ожидания и составил 19,6 млн рублей. Это, на первый взгляд, не так много для большого завода, но учитывая, что там работает целый ряд подобных решений, в совокупности общая сумма экономии впечатляет.

Погрузиться в мир оптимизации

Менеджер данных: как новая роль изменила подход к работе с ML

Время на прочтение10 мин
Количество просмотров4.2K

Меня зовут Вера Романцова, я работаю в 2ГИС в команде компьютерного зрения. Мы создаём ML-модели и сервисы, которые автоматизируют работу с картами и данными. 

Но перед тем, как обучить модель и выкатить сервис, есть ещё много работы по сбору датасетов и разработке моделей. И обычно все эти задачи выполняли ML-инженеры. В один из моментов моя будущая команда пришла к выводу, что для эффективных процессов разметки, сбора и валидации данных нужна отдельная роль — менеджер данных. Этим первопроходцем в нашей компании стала я. 

В этой статье я расскажу:

🌚 Кто такой менеджер данных и чем он занимается.

🦾 Как эта роль помогла нашей команде ML-инженеров.

🔜 Когда такой специалист может понадобиться вам.

🔎 Как найти подходящего кандидата на эту позицию.

Читать далее

FastAPI vs Litestar: выбираем лучший фреймворк для микросервисов

Время на прочтение9 мин
Количество просмотров14K

Привет, жители Хабра! Это Леша Жиряков из МТС Диджитал. В прошлый раз я опубликовал пост Polars vs Pandas, а сегодня поговорим о FastAPI и Litestar — фреймворках для микросервисов. У каждого из них свои сильные стороны, так какой выбрать для своего проекта? Давайте разбираться. Ниже — о плюсах и минусах каждого, сравнение производительности и примеры валидации.

Читать далее

Возможно ли все еще отличить сгенерированный текст от написанного человеком?

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

Ровно год назад после Тренировок по ML в Вышке и курсу по Соревновательному Data Science я решил поучаствовать в соревновании на Kaggle "LLM - Detect AI Generated Text". Основная задача была определить сгенирирован ли текст или написан студентом(типичная бинарная классификация). Знаний тогда было не очень много, чтобы придумать свое решение, поэтому, по заветам курса, не стал придумывать велосипед, накинул побольше веса для CatBoost и попытался попасть в конечное распределение на private с помощью замены наивного баеса на SVM. В итоге, везение было на моей стороне, я получил серебро за это решение, заняв 152 место из 4500 :-)

Читать далее

Типы данных в Python для самых маленьких

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

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

Сегодня поговорим про типы данных в Python и их иерархию. В иерархии типов упорядочение отражается в том, что существуют общие операции для типов, принадлежащих к типу более высокого уровня.

Читать далее

Апгрейд Telegram-бота для управления внутренними процессами: наш опыт вам в копилку

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2K

Привет! На связи команда внутренней разработки. В этой статье расскажем, как мы обучили Telegram-бота для оповещения о задачах, согласовании бизнес-процессов и очистки каналов от уволившихся сотрудников. Раскроем детали, как мы боролись с препятствиями во время обучения и фейлах на первых попытках. В конце поделимся статистикой, показывающей, какой положительный эффект оказал бот на работу сотрудников.

Читать далее

Loss Landscape Analysis — новая библиотека для анализа точности обучения и оценки обобщающей способности нейросетей

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

Мой коллега Никита Габдуллин работает в Отделе перспективных исследований ИТ-компании «Криптонит». Он автор библиотеки Loss Landscape Analysis (LLA) и научной статьи о ней, препринт которой доступен на английском языке. Здесь мы публикуем адаптированную русскоязычную статью с некоторыми вольностями, которые не приняты в академической среде, но упрощают восприятие текста.

При работе с нейросетями-классификаторами у всех на слуху какие-то известные архитектуры, которые характеризуются числом параметров, скоростью вычислений (инференса), точностью выполнения той или иной известной задачи. Популярны соревнования, посвящённые тому, насколько точно можно решить задачу классификации на типовых датасетах, и часто борьба уже идёт за доли процента [PWC]. Однако в реальных задачах нейросети часто показывают себя куда хуже, чем в «лабораторных» условиях, что переводит акццнт внимания с тренировочных и тестовых (train-test) задач на проверку обобщающей способности (generalization) нейросетей.

В наших работах мы столкнулись с тем, что нейросети одного типа могут иметь практически идентичные показатели train-test, но демонстрировать кардинально отличающиеся результаты на датасетах, отличных от тренировочного. Без углублённого анализа непонятно, за счёт чего возникают такие эффекты. Поэтому для таких нейросетей очень сложно выполнить оценку их реальной обобщающей способности. Это вдохновило нас на поиски методов, которые позволили бы проанализировать обобщающую способность нейросети с теми или иными весами, среди которых метод построения ландшафта функции потерь (loss landscape) показался интересным кандидатом.

В интернете несложно найти чрезвычайно красивые визуализации результатов анализа ландшафта функции потерь [LLcom], некоторые из которых даже пытаются продавать как произведения искусства. Однако, любуясь такими картинами, легко забыть, что это — в первую очередь инструмент анализа каких-то свойств нейросетей. Получение красивых картинок — средство, а не цель. Найти хорошую библиотеку по данной тематике для применения в исследовательской работе оказалось куда сложнее, чем найти сайты с красивыми картинками.

Читать далее

Уйти от ORM

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров2.4K

По результатам статьи про Spring Data JPA хабровчане критиковали нас за то, что мы наступали на трудовые мозоли, но не сказали что надо делать. В этой статье мы, наконец, предложим концептуальное решение проблемы ORM.

Читать далее

Как ускорить процесс сделок в Envybox с помощью SMS API

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров366

Привет, Хабр! Сегодня разберёмся, как ускорить работу с клиентами в популярной CRM-системе Envybox в связке с API-платформой для отправки SMS. Envybox позволяет отправлять сторонним сервисам сообщения и предоставлять информацию по запросу.

Например, клиент оставляет заявку — менеджер быстро получает сообщение и принимает её в работу — клиент об этом будет тут же извещён.

В этой статье рассмотрим, как использовать интеграцию Envybox и МТС Exolve.

Читать далее

Concurrency testing — отлавливаем состояния гонки

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

В статье разберём некоторые техники обнаружения плавающих багов, вызванных конкурентностью. Сделаем подход к автоматическому тестированию устойчивости веб-сервисов к различным race condition. Примеры будут на python + asyncio + sqlalchemy, но эти подходы применимы к любым моделям конкурентности, которые подвержены состояниям гонки.

Читать далее

Как правильно делать тестовые задания на Python (flask, fastapi)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров15K

В этой статье я делюсь опытом, накопленным за годы помощи начинающим программистам. Мы в основном будем говорить про Python, но советы будут полезны для ТЗ на любом языке программирования, особенно на позицию Backend Developer.

Вы узнаете, как грамотно организовать структуру проекта, избежать типичных ошибок (например, Query N+1), подготовить своё решение так, чтобы оно выглядело профессионально. Дам советы, как не только выполнить задание, но и превзойти ожидания работодателя.

Эта статья будет полезна не только начинающим разработчикам, но и всем, кто хочет выделиться на фоне конкурентов и повысить свои шансы на успех. Применяйте советы, готовьтесь заранее, и пусть ваше тестовое задание станет тем самым пропуском к работе мечты!

Читать далее

Чистый код в Python

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров23K

Всем привет!

Это перевод статьи Clean Code in Python. В данной статье Nik Tomazic рассказывает о чистом коде, его преимуществах, различных стандартах и принципах, но что самое главное– он дает общие рекомендации по написанию чистого кода. Прочитав данную статью в оригинале, я понял, что это именно то, что я хотел бы прочитать в самом начале своего пути разработки на Python. Именно это и вдохновило меня на создание первого перевода, а вместе с этим, и первой публикации на Хабре.

Читать далее

Как создать планировщик путешествий с ИИ-агентом на CopilotKit, LangGraph и Google Maps API

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров3.7K

Кто сказал, что разработка ИИ‑агента — это сложно, долго и только для корпораций с миллионами в бюджете? Сегодня мы убедимся, что добавить в своё приложение умного ассистента может каждый. Встречайте: ИИ‑агент, который помогает пользователю принимать решения и обновляет данные в реальном времени.

Используя CopilotKit, LangGraph и Google Maps API, мы создадим приложение, которое не только действует по сценариям, но и предлагает решения. Мы изучим, как реализовать human‑in‑the‑loop, чтобы пользователь мог одобрять или отклонять действия агента.

Приятного прочтения (‑:

Читать далее

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

Используем языковые модели в AI-агентах. Часть 2. Retrievers, TextSplitters

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.6K

LanhChain - фреймворк, предоставляющий обширный и удобный функционал по использованию LLM, он служит для разработки приложений на основе больших языковых моделей, создания AI-агентов, взаимодействия с векторными хранилищами и т.д.

В этой части я разберу способы разделения текста и его хранения.

Читать далее

Озеро для дата-склада: как мы нырнули в новые методы хранения данных и что из этого вышло

Время на прочтение12 мин
Количество просмотров7.5K

Привет, Хабр! Меня зовут Михаил Килинский, я — Senior Developer в проекте Data Warehouse «Лаборатории Касперского». Наша команда строит хранилища данных и разрабатывает ETL- и ELT-процессы, мы пишем на Python, SQL и C# (.NET), а весь код находится в монорепозитории.

Гибкие методологии построения хранилищ данных — очень популярный тренд. Причина — возрастающая сложность корпоративных моделей данных и необходимость интеграции большого числа разнородных источников, которые включают в себя не только традиционные СУБД и плоские файлы, но и различные real-time-брокеры сообщений, внешние API и базы данных NoSQL.

В этой статье хочу рассказать, как мы изначально хранили данные, почему решили внедрить методологии Data Lake и Data Vault и к чему это привело. Кроме того, покажу, как мы изобрели свой велосипед разработали свой фреймворк по автоматизации работы с помощью модели Data Vault.

Читать далее

Как автоматизировать свою переписку с девушкой в Telegram при помощи Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров36K

Вкратце о проблеме: девушкам важно внимание, но порой вы можете забывать об этом. Автоматизация общения станет отличным решением.

Что мы НЕ будем делать: разрабатывать чат-бота, который «любит» за вас. Эту задачу лучше оставить вам.

Цель - организовать начало диалога.

Начинаем 🧡

Гайд по подготовке к собеседованию для Backend-разработчиков

Время на прочтение7 мин
Количество просмотров17K

Недавно я провёл своё 40-е собеседование в Booking.com, где оцениваю кандидатов по кодингу, системному дизайну и код‑ревью. Я хорошо понимаю ожидания от кандидатов на разные уровни: core developer, senior developer и engineering manager. Эти знания могут быть полезны для тех, кто готовится к собеседованию в Booking.com или других крупных компаниях с аналогичной структурой.

Читать далее

Что такое pytest и как его использовать? Или как новичку начать автоматизировать тестирование?

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

Привет, друзья!

Сегодня я хочу рассказать о pytest и о том, как с ним начать работать. Сам когда-то начинал и столкнулся со множеством сложностей, но теперь я готов поделиться своим опытом.

Читать далее

Кредит, график платежей, аннуитет, досрочное погашение. Тех реализация. Велосипед, который будет переизобретаться вечно

Уровень сложностиПростой
Время на прочтение41 мин
Количество просмотров4.9K

Если столкнулись с кредитом и задавали вопросы как считается график платежей по нему (не в общем и целом, а почему конкретно тут такая циферка, а не другая), то, надеюсь, большую их часть сможете закрыть, после ознакомления.

Плюс в статье делюсь своей технической реализацией в ознакомительных целях.

Нырнуть в дебри

Оцениваем скорость операций с путями в FastAPI

Время на прочтение7 мин
Количество просмотров1.7K
Если вы сейчас разрабатываете новое приложение на Python, высока вероятность, что при этом вы используете FastAPI. В FastAPI заложено множество отличных возможностей, благодаря которым с ним легко начинать работу. Но в FastAPI есть и немало нюансов, на понимание которых требуется время. Мне пришлось особенно попотеть с одним аспектом, а именно — как FastAPI управляет вызовами к маршрутам API через декорированные параметры пути. Давайте подробно об этом поговорим.

Что происходит на веб-сервере


Одним из важнейших компонентов любого веб-приложения (которое мы создаём) является веб-сервер, программа, слушающая входящие запросы, поступающие из сети. Затем она транслирует эти запросы в методы, которые, в свою очередь, вызываются на бэкенде.

Чтобы лучше понимать, что здесь происходит под капотом, давайте сначала реализуем простой веб-сервер. Для этого воспользуемся модулем http.server, который входит в стандартную библиотеку Python.

Нам требуется написать программу, которая слушает порт и принимает HTTP-запросы. А именно: принимает запрос, разбирает маршрут пути, а также разбирает любые данные, прикреплённые к HTTP-вызову. См. также “All I want is to cURL and parse a JSON object”.
Читать дальше →

Вклад авторов