Обновить
1024K+

Python *

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

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

Декораторы Python. Введение

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

Всем привет, меня зовут Аббакумов Валерий.

Я Python разработчик, в основном занимаюсь бэкэндом веб приложений. Хочу написать серию статей для начинающих разработчиков. Посты будут трех уровнях сложности (от меньшей к большей) на разные аспекты языка, с которыми сложно справиться обывателю.

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

Я прикреплю ссылки на смежные статьи (тоже хороший материал, но ИМХО в них либо странная подача либо некоторая неполнота), мне кажется, что мой материал в разрезе 3 статей на каждую тему будет лаконичней и полней, но тут уже решать только вам, дорогие читатели

Читать далее

Обучить модель RoBERTa расстановке запятых на балконе для продакшена

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

RoBERTa — улучшенная версия модели BERT, разработанная Facebook AI. Она показывает отличные результаты в задачах обработки естественного языка, таких как классификация текстов и генерация ответов.

Построим конкурентоспособный сайт расстановки пунктуации, обучив свою нейронную сеть. Для прогнозирования популярности в поисковой выдаче начнем с анализа запросов Вордстат: расставить запятые – 290 000 запросов/месяц; расставить точки – 15 000 запросов/месяц.

По статистике, 95% запросов посвящены запятым, уделим им особое внимание. Добавим мультиязычность, чтобы получать больше трафика.

Читать далее

Экосистема для разработки и применения Computer Vision (CV) в промышленности

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

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

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

Читать далее

Русские тексты. Работа с текстами. Предварительная обработка русских текстовых данных

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

Предварительная обработка текстовых данных: ключевые этапы и методы

Текстовые данные — один из самых сложных типов данных для анализа из-за их неструктурированной природы и высокой вариативности. Чтобы превратить "сырой" текст в информацию, пригодную для машинного обучения или лингвистического анализа, требуется предварительная обработка. Этот процесс включает стандартизацию, очистку и преобразование текста, что повышает качество моделей NLP (Natural Language Processing). Рассмотрим основные этапы и методы.

Читать далее

Нативный non-blocking I/O через Linux Epoll: создание C-расширений для Python

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

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

Если вам приходилось писать высоконагруженные сетевые приложения на Python, то вы, скорее всего, сталкивались с тем, что стандартные механизмы работы с вводом‑выводом — select(), poll() и даже asyncio — не справляются с большой нагрузкой. select() быстро превращается в бутылочное горлышко из‑за линейной сложности O(N), poll() всё ещё требует перебора всех файловых дескрипторов, а asyncio, хоть и удобен, но не всегда даёт ту производительность, которую можно получить, если работать напрямую с системными вызовами.

Здесь, на мой взгляд хорошо подойдет epoll — механизм в Linux, который позволяет асинхронно отслеживать события на файловых дескрипторах без постоянного опроса.

Читать далее

Давайте писать удобное локальное окружение…

Уровень сложностиСложный
Время на прочтение30 мин
Охват и читатели9.6K

Всем привет, меня зовут Аббакумов Валерий.

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

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

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

Читать далее

Msgspec vs DataClasses: битва инструментов в мире Python-сериализации

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

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

Читать далее

Алгоритм Краскала для генерации идеальных лабиринтов

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

Алгоритм Краскала — это жадный алгоритм, который используется для нахождения минимального остовного дерева (MST) в связном, взвешенном и неориентированном графе. В контексте генерации лабиринтов он применяется для создания структуры, где каждая ячейка соединена с другими без циклов и недостижимых областей. В результате получается так называемый "идеальный лабиринт", в котором из любой точки можно попасть в любую другую по единственному пути.

Читать далее

Автоматизация разведочного анализа данных (EDA) с помощью Python

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

Всем привет! Меня зовут Константин Некрасов, я работаю дата-сайентистом в Газпромбанке. Хочу рассказать про инструмент, который серьезно упростил мою повседневную работу с данными, и поделиться им.

Если вы когда-нибудь занимались машинным обучением, то знаете — перед тем как строить модель, нужно как следует изучить свои данные. Этот этап называется EDA (Exploratory Data Analysis), или разведочный анализ данных (РАД). Он критически важен — именно здесь мы находим скрытые закономерности, выдвигаем первые гипотезы и понимаем, как лучше обработать данные для будущей модели.

Но EDA отнимает у дата-сайентистов кучу времени, которое можно потратить на что-то другое и не менее важное: придумать новые признаки, поэкспериментировать с разными алгоритмами или настроить гиперпараметры для более высокой точности модели.

Чтобы облегчить задачу, я разработал класс EDAProcessor, который автоматизирует ключевые этапы EDA: от базовой статистики и визуализации распределений до углубленного анализа корреляций, выбросов и временных зависимостей. Результаты анализа сохраняются в виде наглядных графиков и подробной excel-таблицы, где на разных листах представлены все важные статистические показатели и закономерности в данных.

Сразу оговорюсь — я не изобретаю здесь новых статистических методов, не претендую на научную новизну в области математической статистики, а мое решение не универсально. Каждый набор данных уникален, и полностью автоматизировать его анализ невозможно — всегда нужен опытный взгляд аналитика. Но базовые, наиболее часто используемые методы EDA этот инструмент берет на себя, ускоряя начальный этап работы с данными. Я попытался собрать в скрипт наиболее общие концепции EDA, которые используются в подавляющем большинстве случаев на первоначальной стадии разработки ML-модели.

Сам скрипт вот тут, а под катом я расскажу, как он работает и что делает.

Читать дальше

Как LangChain и LangGraph упрощают жизнь разработчика ИИ-Агентов

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

При разработке приложений на основе больших языковых моделей (LLM, Large Language Model) встает вопрос: вызывать ли модель напрямую через API (например, OpenAI) или использовать специализированные фреймворки вроде LangChain или LangGraph. Ниже мы рассмотрим, с какими сложностями сталкивается разработчик при прямом использовании LLM, и как LangChain и LangGraph помогают упростить создание сложных диалоговых и агентных систем. Также приведем примеры кода, сравнивая прямые вызовы с использованием этих фреймворков, и обсудим, когда их применение оправдано.

Читать далее

Учебник — всё, что вам нужно

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

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

Читать далее

Твой ИИ тебя понимает? Разбираем тайны внутреннего мира языковых моделей

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

Современные крупные языковые модели, такие как ChatGPT, Claude или Gemini, поражают своими возможностями. Но главный вопрос остаётся открытым: как именно они думают?

С момента появления открытых LLM метод изучения их мышления был довольно прост: разобрать их архитектуру, ведь каждая такая модель состоит из нейронов. Анализ их работы означает исследование того, какие именно нейроны активируются при заданном вводе. Например, если пользователь спрашивает: «Что такое звук?» — можно выяснить, какие именно нейроны включаются при формировании ответа. Так мы получаем возможность буквально заглянуть в процесс мышления нейросети.

Читать далее

Запускаем ML-модели с помощью Docker и Nvidia Triton Server

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

Nvidia Triton Server — технология, которая значительно упрощает запуск моделей машинного обучения и их использование в веб-приложениях. Более того, Nvidia Triton Server предлагает средства для управления количеством инстансов одной модели, средства для распределения ресурсов и балансировки нагрузки между этими инстансами, также тритон сервер обладает поддержкой популярных ML-фреймворков, и это далеко не полный список предлагаемых возможностей. В общем, именно поэтому мне бы хотелось познакомить вас с данным инструментом и продемонстрировать возможности его использования в ваших приложениях. В этом гайде автор постарался собрать полезную информацию о запуске моделей машинного обучения с помощью Nvidia Triton Server в docker-контейнерах.

Читать далее

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

Как студенты СПО роботов на ROS пилили

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

Привет, Хабр! Меня зовут Алексей и этой зимой на меня напало желание наконец написать статью о том, как я и моя команда СПОшников участвовали в Eurobot Open 2022 и 2023.

Это моя первая статья здесь.

Сразу дисклеймер: в данной статье будет мало рассуждений и историй о механике роботов и процессе разработки приводов и корпуса. Будет обзор именно того, как я разрабатывал программную часть, и того, как быстро на самом деле происходит обучение на реальном проекте. Материалы сошкрябывались с переписок в ВК и телеге, потому что нам не пришло в голову подробно документировать наши разработки

Костяк команды состоял из 5 человек: Я (программист), Дима (главный механик), Павел (электрика), Александр (механик), Михаба (человек на все руки).

Статья от нашего механика Димы

Eurobot это некогда международное соревнование по робототехнике, которое имеет две категории: Junior и Open. В обеих категориях основные правила схожи: 1-2 робота от команды выполняют различные игровые задания, вытаясь набрать как можно больше очков за 100 секунд. Делают это они вместе с роботами команды соперников, при этом активно мешать другой команде можно, но столкновения и откровенная агрессия запрещена. Этот формат, как и размер поля слабо менялись из года в год, начиная аж 1998 года, когда проходил первый Eurobot еще только во Франции.

Некогда международное - потому что начиная с 2020/21 года принимать участников-призеров с всероссийского этапа на международный организаторы отказались. Но это не остановило русскую сторону организаторов от проведения региональных и всероссийского этапов (что они все еще успешно делают https://vk.com/eurobotrussia). Не такой уж и Open.

Читать далее

Поднимаем потоковый сервис Kafka на Python

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

Всем привет, меня зовут Евгений Мунин. Я Senior ML Engineer в Ad Tech в платформе ставок для рекламы. В этой статье мы познакомимся с Apache Kafka. Мы напишем демо пример Kafka Consumer'а на Python и запустим его в облачном сервисе Confluent Cloud.

Читать далее

Пишем бота «второго мнения» от нейросетей GPT 4o, Gemini 1,5 flash и Claude 3.5 Sonnet

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

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

Читать далее

Немножко о реализации set в Python

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

Хотя, казалось бы, сет должен печатать каждый раз вразнобой, ибо является неупорядоченной коллекцией. Но, на самом деле, set никому ничего не должен :-) Я порылась в нескольких статьях и документации и на своем уровне (червяка) вот что поняла.

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

Хэш-таблица представляет собой два столбца из не менее 8 строк:

Читать далее

Boxplot, он же ящик с усами

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

Представьте, что вам нужно быстро сравнить распределения зарплат сотрудников разных отделов или оценить разброс результатов эксперимента. В таких ситуациях отличным выбором будет boxplot, он же “ящик с усами” – эффективный инструмент для выявления ключевых характеристик распределения, позволяющий быстро оценить медиану, разброс данных и обнаружить выбросы.

В этой статье мы подробно разберем, что такое boxplot и почему его называют “ящиком с усами”.

Читать далее

Алгоритмы из теории графов: решаем сложную задачу из курса Яндекс Практикума

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

Привет! Меня зовут Евгений, и сегодня я представляю курс «Алгоритмы и структуры данных» Яндекс Практикума. В этой статье хочу вам рассказать про задачу, которая долгое время была проблемой для многих наших студентов. В том числе расскажу про несколько вариантов решения и о том, как их можно доработать.

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

Читать далее

Телеграм-бот с подключением к базе данных MS SQL в контейнере docker

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

Предназначено для тех, кто задумывается о цифровизации предприятий. Телеграм-бот - это отличный способ сделать интерфейс между базой данных и сотрудником, у которого нет в данный момент доступа в корпоративную сеть (к своему компьютеру). Безусловно, мобильное приложение решает этот вопрос лучше, но затраты на создание/поддержание мобильного приложения несопоставимы с затратами на простого ТГ-бота (или даже средней сложности), то же относится и ко времени разработки/внедрения. Надеюсь, данная статья будет полезной для энтузиастов широкого внедрения ТГ-ботов как технологии цифровизации промышленных (и не только) предприятий.

Читать далее