Как стать автором
Обновить
433.72

Python *

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

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

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

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

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

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

Под катом вас ждет небольшой экскурс в особенности работы файловых систем и набор экспериментов.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 4

Новости

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

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 2

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

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

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

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 6

Истории

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

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

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

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

Читать далее
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 6

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

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

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

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

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 0

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

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

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

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 11

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

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

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

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

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Комментарии 5

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

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

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

Время на прочтение 19 мин
Количество просмотров 5.1K
image Привет, Хаброжители!

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

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

Получите полное представление о том, как применять принципы объектно-ориентированного программирования с использованием синтаксиса Python, и научитесь создавать надежные и устойчивые программы.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 3

Шпаргалка для алгособеса 2 — графовые и строковые алгоритмы

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

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

В наше неспокойное время, когда сфера AI стремительно движется вперёд, хочется немного стабильности и уверенности в завтрашнем дне. Как это связано с темой статьи?

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

В этой статье мы разберём графовые алгоритмы типо DFS, Флойда–Уоршелла и строковые наподобие Ахо-Корасик.

Читать далее
Всего голосов 39: ↑37 и ↓2 +35
Комментарии 21

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

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

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

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

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

Читать далее
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 0

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

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

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

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

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

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 2

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

Moscow QA #3 — митап по тестированию ПО
Дата 14 марта
Время 18:30 – 21:30
Место
Москва Онлайн
Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

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

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

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

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

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

Читать далее
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 13

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

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

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

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

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 15

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

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

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

Читать далее
Всего голосов 30: ↑22 и ↓8 +14
Комментарии 11

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

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

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

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

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

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

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

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 8

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

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

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

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

Читать далее
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 3

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

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

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

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

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

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

Читать далее
Всего голосов 19: ↑5 и ↓14 -9
Комментарии 5

Одномерный лес и все прочее

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

Объяснение «на пальцах» и реализация решающего дерева, случайного леса и бустинга.

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

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

Работа

Data Scientist
71 вакансия
Python разработчик
130 вакансий