Обновить
1024K+

Python *

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

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

await anywhere, взгляд на третью сторону медали: sync vs async vs …

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

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

Узнать? Да!

Как за один pet-проект получить два диплома

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

Все же знают серию компьютерных футбольных симуляторов FIFA? Раньше я много играл в эту игру. Кто-то скажет, что это бесполезная трата времени, но я с этим не согласен. Эта игра вдохновила меня на разработку pet-проекта, который стал моим бакалаврским дипломом.

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

Читать далее

Нарушаем ограничения файловых систем *NIX

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

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

Этот прецедент побудил поискать ответы на несколько вопросов. Можно ли обмануть операционную систему компьютера и нарушить запреты файловых систем? И если это получится, то как отреагирует ОС?

Под катом вас ждет небольшой экскурс в особенности работы файловых систем и набор экспериментов.
Читать дальше →

Модель глубокого обучения, использующая данные ЭКГ для прогнозирования риска внезапной сердечной смерти

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

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

Читать далее

Как мы делали корпоративный чемпионат по Python

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

Большинство сотрудников Mediascope используют Python для решения повседневных задач: разрабатывают модели машинного обучения, пишут код для веб-сервисов, анализируют данные, автоматизируют рутинные процессы. В прошлом году мы провели корпоративный чемпионат, который помог повысить мотивацию к изучению Python и оживить внутреннее комьюнити. А ещё чемпионат получил продолжение: модель из ML-трека стала прототипом во внутреннем конвейере обработки данных. Расскажем, как это было.

Читать далее

Open Source в финансах. Проект Okama

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

В среде финтех проектов наблюдается интересный парадокс. С одной стороны, вряд ли можно найти область, куда приходит больше инвестиций. Поэтому именно в финтехе сосредоточены самые продвинутые технологии: блокчейн, искусственный интеллект, биг дата, ML и др. С другой стороны, именно в финансовой области наблюдается наименьшее количество хорошо развитых open-source проектов.

Читать далее

Как расширить возможности стандартного Enum

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

А может всё-таки есть способ сделать такой Enum, используя стандартную библиотеку Python?!

Под катом будем разбираться в существующих вариантах решения. 

Читать далее

Мульти-тенант в Django

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

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

Мульти-тенант (multi-tenancy) — это подход, который позволяет одному экземпляру приложения обслуживать множество клиентов или арендаторов (тенатов). Каждый арендатор изолирован от других, имея возможность кастомизации под свои нужды, при этом основной кодовой базой и инфраструктурой делится между всеми.

Когда применять эту замечательную концепцию? Если говорить простыми словами, то мульти-тенант подход наиболее ценен для SaaS-продуктов, когда одно и то же приложение предоставляется разным клиентам, и каждый клиент работает со своим набором данных. Все это серьезно экономит ресурсы на обслуживание инфраструктуры, тк все изменения вносятся централизованно и мгновенно становятся доступны всем клиентам.

В Django мульти-тенант реализовывается довольно часто и для этого есть библиотека django-multitenant.

Читать далее

Как развернуть виртуальную среду модели машинного обучения на любой машине?

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

Иногда возникают проблемы с развертыванием среды разработки в облаке, ведь бесплатных сервисов с большими облачными вычислительными мощностями почти нет. Тот же Google Collab имеет свои лимиты по использованию GPU, после израсходования всей памяти необходимо ждать сутки. А цена платной версии порой не совсем оправдана... Если у вас есть своя неплохая видеокарта, всегда можно отказаться от облачной разработки и перейти к домашнему варианту.  

Напоминаем, что GPU выполняет вычислительную работу быстрее из-за возможности параллельного выполнения процессов. Если вы хотите использовать много видеокарт? то следует подключить ее к одной системе, сформировав своеобразную ферму. 

Итак, как же контейнизировать собственную виртуальную среду и развернуть ее с использованием своего GPU? 

Читать далее

Сравнение различных схем квантования для LLM

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

Как запустить локально LLM 70B параметров на 1 видеокарте с 24gb? Нужно квантование!

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

Читать далее

«Физика для программистов» — как физтехи применяют её в приложениях. Маятники

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

Данная статья входит в цикл, освещающий задачи на моделирование физических процессов на факультете МФТИ ВШПИ. В этой части речь пойдёт про задачу моделирования поведения маятника: коротко разберём теорию, которая лежит в основе модели, немного подумаем над архитектурой и напишем небольшое приложение на связке Python + Tkinter. Реализация будет поддерживать исследование различных маятников с помощью самописных динамических графиков, в которые пользователь может ввести собственные формулы.

Читать далее

Книга «Объектно-ориентированный Python, 4-е изд.»

Время на прочтение19 мин
Охват и читатели22K
image Привет, Хаброжители!

Глубоко погрузитесь в различные аспекты объектно-ориентированного программирования на Python, паттерны проектирования, приемы манипулирования данными и вопросы тестирования сложных объектно-ориентированных систем. Обсуждение всех понятий подкрепляется примерами, написанными специально для этого издания, и практическими упражнениями в конце каждой главы. Код всех примеров совместим с синтаксисом Python 3.9+ и дополнен аннотациями типов для упрощения изучения.

Стивен и Дасти предлагают вашему вниманию понятный и всесторонний обзор важных концепций ООП, таких как наследование, композиция и полиморфизм, и объясняют их работу на примерах классов и структур данных Python, что заметно облегчает проектирование. В тексте широко используются UML-диаграммы классов, чтобы было проще понять взаимоотношения между классами. Помимо ООП, в книге подробно рассматривается обработка исключений в Python, а также приемы функционального программирования, пересекающиеся с приемами ООП. В издании представлены не одна, а две очень мощные системы автоматического тестирования: unittest и pytest, а в последней главе детально обсуждается экосистема параллельного программирования в Python.

Получите полное представление о том, как применять принципы объектно-ориентированного программирования с использованием синтаксиса Python, и научитесь создавать надежные и устойчивые программы.
Читать дальше →

Азы больших языковых моделей и трансформеров: декодер

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

В этом материале мы поговорим об устройстве компонента‑декодера в системах машинного обучения, построенных по архитектуре «трансформер», уделив особое внимание отличию декодера от энкодера. Уникальной особенностью декодеров является то, что они похожи на циклы. Они, по своей природе, итеративны, что контрастирует с линейными принципами обработки данных, на которых основаны энкодеры. В центре декодера находятся две модифицированные формы механизма внимания: механизм множественного внимания с маскировкой (masked multi‑head attention) и механизм множественного внимания энкодера‑декодера (encoder‑decoder multi‑head attention).

Слой множественного внимания с маскировкой в декодере обеспечивает последовательную обработку токенов. Благодаря такому подходу предотвращается воздействие последующих токенов на сгенерированные токены. Маскировка важна для поддержки порядка следования и согласованности сгенерированных данных. Взаимодействие между выходом декодера (из слоя множественного внимания с маскировкой) и выходом энкодера организовано с помощью механизма множественного внимания энкодера‑декодера. Этот последний шаг даёт декодеру доступ к входным данным.

Мы, кроме того, продемонстрируем реализацию этих концепций с использованием Python и NumPy. Мы создали простой пример перевода предложения с английского языка на португальский. Практическая демонстрация обсуждаемых здесь идей поможет проиллюстрировать работу внутренних механизмов декодера в трансформерах и позволит лучше понять роль декодеров в больших языковых моделях (Large Language Model, LLM).

Читать далее

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

Методы очистки данных в Pandas

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

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

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

Очищать грязные данные можно c Pandas. Рассмотрим основные методы.

Читать далее

Celery для новичков

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

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

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

Используя Celery можно легко организовать выполнение фоновых задач.

Читать далее

SQL и python для анализа цен на новостройки в СПб или ценнейший навык для маркетолога в 2024

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

«Зачем мне SQL и python?» — задают резонный вопрос маркетологи или менеджеры по продукту, особенно в сфере недвижимости, оптовой торговли, услуг для бизнеса: «У нас нет миллионов строк данных, нет логов, мы успешно работаем с несколькими таблицами в excel».

Да действительно, у вас может не быть корпоративного хранилища данных в компании, и основой автоматизации работы с данными является Power query (что сейчас в РФ делать все труднее и труднее). Но у вас точно есть данные, которые вы получаете от смежных отделов, из CRM/CDP, MES, АСУ ТП. Эти данные приходят регулярно в виде файлов, и вы сопоставляете эти данные друг с другом с помощью ВПР, фильтруете воронкой, чистите с помощью «Найти или заменить», делайте сводники с помощью функции Pivot table.

Читать далее

Как я рабочую задачу автоматизировал, не написав ни строчки кода, с помощью AI-ассистента

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

AI-сервис Phind - ассистент по программированию для не программистов. Или как я автоматизировал свою рабочую задачу, не написав самостоятельно ни строчки кода.

Читать далее

Cross-Encoder для улучшения RAG на русском

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

Одно из самых прикладных применений языковых моделей (LLM) - это ответы на вопросы по документу/тексту/договорам. Языковая модель имеет сильную общую логику, а релевантные знания получаются из word, pdf, txt и других источников.

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

Еще В. Маяковский писал: "Изводишь единого слова ради, тысячи тонн словесной руды." Примерно это же самое делают би-энкодеры и кросс-энкодеры в рамках RAG, ищут самые важные и полезные слова в бесконечных тоннах текста.

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

Главное - мы натренируем свой кросс-энкодер на русском языке, что служит важным шагом на пути улучшения качества Retrieval Augmented Generation (RAG). Тренировка будет проходит новейшим передовым способом. Схематично он изображен на меме справа)

Читать далее

Telegram-бот как системный администратор сервера

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

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

Одним из вариантов решения является Telegram-бот, который является прослойкой между пользователем и софтом. С таким решением я встречался на реальном опыте уже как минимум два раза, и на основе одного из них я постараюсь объяснить, как это можно сделать.

Читать далее

Изучение недооцененной силы Биткоин утилит: подробное руководство в Google Colab

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

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

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

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

Еще одна важная утилита Биткоин — это обмен биткоинов. Биржа — это платформа, которая позволяет пользователям покупать и продавать биткоины за другие валюты, такие как доллары США или евро. Доступно множество различных бирж, каждая со своим набором комиссий, функциями безопасности и пользовательскими интерфейсами. Важно выбрать биржу с хорошей репутацией, имеющую хорошую репутацию в области безопасности и надежности.

Читать далее