Обновить
1024K+

Python *

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

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

Обучение модели токсификации текстов с помощью TorchTune, подробное руководство

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

Приветствую, хабровчане!

Сегодня пятница, поэтому предлагаю немного пошалить и поговорить о слегка необычном, но весьма забавном проекте обучения нейросетевой модели на базе LLaMA2 7B, которая умеет превращать невинные предложения на русском языке в чуть более "токсичные" их версии.

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

Так что пристегнитесь, будет весело и слегка токсично!

Читать далее

Распознавание, хранение и поиск лиц в базе данных

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

В этой статье я максимально коротко и просто объясню принцип распознавания, хранения и поиска лиц в базе данных. В качестве примера будет использована библиотека Insightface и база данных PostgreSQL.

Читать далее

Как решить типичные проблемы Django нестандартным подходом: Fake Injection

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

Давайте признаем, что развитие проектов в мире Django не всегда проходит гладко. Мы часто сталкиваемся с толстыми моделями и сериалайзерами, размытой бизнес-логикой и тестированием, которое больше напоминает головную боль, чем удовольствие. Меня зовут Павел Губарев, я backend-разработчик продукта 10D в компании Самолет. Последние пять лет я занимаюсь backend-ом и большую часть времени я использую именно Django. С ростом проекта увеличивается и его сложность, в случае с Django есть набор часто встречающихся проблем. В этой статье я расскажу о методах нашей команды, которые помогли нам справиться с этими проблемами и привести код к новому уровню надежности и эффективности.
Читать дальше →

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

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

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее

Обратный инжиниринг дешевой мини видеокамеры из семейства А9

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

В данной статье речь пойдет о Wi-Fi мини видеокамере из семейства А9 от китайских производителей. Цель исследования этих камер – расширить возможность их применения, которая ограничена использованием только стандартных приложений для мобильных устройств на базе Android или iOS.

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

Читать далее

Использование Markdown в Django

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

Привет, Habr!

В этой статье мы научимся использовать Markdown вместе с Django на примере блога. Она написана для новичков, для базового ознакомления. Её в формате .md можно скачать в моём развивающемся Telegram канале.

Markdown — это простой язык разметки, используемый для создания форматированного текста (например, HTML) с помощью текстового редактора. Кстати, эту статью я писал, использую синтаксис Markdown)

Продолжить чтение...

Моделирование курса валют методом Монте-Карло

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

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

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

Ключевой аспект использования Монте-Карло в финансах — это его способность учитывать и анализировать волатильность и дрейф курсов валют. Для повышения точности моделирования и реалистичности получаемых данных часто применяется ГАРЧ модель (Generalized Autoregressive Conditional Heteroskedasticity). ГАРЧ помогает адекватно оценить и моделировать изменчивость волатильности, что является критичным при анализе финансовых временных рядов.

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

Проект использует следующие библиотеки и инструменты:

Читать далее

Пишем программу на Python для доступа к YandexGPT с помощью ChatGPT

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

В данной программе можно будет самостоятельно составлять собственные system massage (в программе это называется «Специализация»), а это по сути своей программирование GPT модели естественным языком, так же можно будет изменять temperature (в программе это названо «Креативность») это изменяет вариативность ответов, при значении 0.0 на один и тот же вопрос будет получен всё время одинаковый ответ при 1.0 могут быть разные ответы с похожим смыслом но разные по словесному выражению, так же можно использовать две модели YandexGPT  и  YandexGPT Lite, вторая быстрее и чуть попроще но и дешевле в четыре раза. Описание программы в разделе меню «Информация».

Читать далее

Async iterator timeout в Python

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

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

В числе прочих задач, решаемых при реализации возможности стриминга, существует задача определения ситуации, в которой сервис, исполняющий запрос, упал с ошибкой, и больше не может продолжать стриминг ответов. В таком случае мы даже не можем понять что именно произошло - обработка и отдача очередной порции ответа будет, но задерживается, либо же передача прервалась, и нужно сообщить об ошибке “наверх”. В протоколе HTTP, например, для детерминирования корректной вычитки ответа может быть использован заголовок Content-Length. Достаточно посчитать количество вычитанных из сокета байт тела запроса\ответа, и сравнить со значением заголовка. Сходится - мы все получили, не сошлось и сокет закрыт - ошибка. Однако вариант решения с заранее заданным количеством данных в первой порции ответов не является универсальным, поскольку не во всех случаях можно точно понимать, сколько именно данных будет передано. Да и архитектура с использованием брокеров сообщений предполагает постоянное поддержание соединения, поэтому мы можем только знать, что из такой-то очереди поступают ответы на ранее сделанный запрос, и в каком-то из ответов будет метка окончания, как маркер того, что запрос обработан и ответ выслан и получен полностью, а если такого маркера еще не получено - остается продолжать ждать. Но ждать можно бесконечно.

Читать далее

Как мы проанализировали 250,000 статей на VC, и поняли что делает посты успешными (возможно)

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

Привет, habr! ?

Вы когда-нибудь задумывались, почему некоторые посты набирают тысячи просмотров, а другие остаются незамеченными? Ясно, что Content is King, но есть ли дополнительные факторы, которые влияют на успешность поста?

Мы решили не гадать, а действовать. ?

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

Читать далее

Python-праздник на Positive Hack Days Fest 2

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

Двадцать шестого мая в рамках Positive Hack Days Fest 2 состоится Python Day, который мы проведем совместно с сообществом MoscowPython. Программный комитет конференции отобрал восемь докладов, анонсами которых мы хотели бы поделиться с читателями нашего блога. В этой статье мы расскажем о четырех докладах из запланированных восьми — продолжение последует позднее. Каждый анонс сопровождается комментарием участника программного комитета.

Итак, начнем

Временное хранилище данных на Apache Druid: почему это эффективно сработало для загрузки табличных файлов

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

Всем привет! Меня зовут Амир, я Data Engineer в компании «ДЮК Технологии». Расскажу, как мы спроектировали и реализовали на Apache Druid хранилище разрозненных табличных данных.

В статье опишу, почему для реализации проекта мы выбрали именно Apache Druid, с какими особенностями реализации столкнулись, как сравнивали методы реализации датасорсов.

Читать далее

Разбираемся в ROC и AUC

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

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

В машинном обучение очень важны метрики оценки эффективности моделей. Среди таких метрик есть: кривые ROC и показатель AUC. Они позволяют оценивать бинарные классификаторы.

В этой статье мы как раз и разберем их.

Читать далее

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

Автоматизация скачивания документов из контрактов с площадки ЕИС при помощи Python

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

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

Читать далее

Мега-Учебник Flask Глава 5: Логины пользователей (издание 2024)

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

Это пятая часть серии мега-учебника Flask, в которой я собираюсь рассказать вам, как создать подсистему входа пользователей.

Начать изучение

KPConv на русском: Свертки для point cloud

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

Приветствую всех!

В этой публикации я попробую максимально просто и наглядно рассказать о сверточном слое для point cloud. Перед вами статья, объясняющая KPConv — метода работы с облаками точек без их преобразования в промежуточные форматы, такие как воксели. Моя недавняя задача, связанная с совмещением облаков точек, заставила обратиться к нейронным сетям из за разной плотности точек в местах пересечений. И вот, исследуя возможные подходы, я обнаружил решение в котором использовали KPConv, который позволил извлекать признаки из точек по аналогии извлечений признаков из пикселей.

Информации на русском языке о данной структуре очень мало, поэтому я постарался сделать материал доступным и содержательным.

Читать далее

ГАЙД по python стеку для Data Science инженеров

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

Data science - это область, которая занимается изучением и анализом больших объемов данных, чтобы находить в них полезные закономерности, делать прогнозы или принимать решения на основе фактов. Самым популярным языком программирования для data science является Python. Библиотеки pyhton, о которых пойдет речь: NumPy, SciPy, Pandas, Matplotlib. Статья написана для новичков, которые хотят узнать о python стеке для data science.

Подробнее

Создаем свой диалект змеиного, или DSL на Python

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

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

Как один из вариантов решения предлагаю посмотреть создание своего диалекта Python-скриптов, предназначенного для конкретной предметной области. Этакий DSL «для бедных», с синтаксисом Python, но со средой выполнения, заточенной под выполняемые задачи.

Читать далее

NumPy для самых маленьких

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

Математика везде в нашей жизни, но в программировании, а особенно ML ее два раза больше. Обычно Питон берут в пример самого "научного" языка программирования из-за математических фреймворков. Как не Питон может помочь оперировать математическими абстракциями, некоторые из сферы ресерча пользуются исключительно питоном для всяких научных изысканий — сегодня мы поговорим про библиотеку NumPy и работу с массивами. 

Самая новичковая "библиотека" с примочками в виде SciPy и Matplotlib предназначена для работы с многомерными массивами. NumPy – основа для многих других библиотек для машинного обучения, таких как SciPy, Pandas, Scikit-learn и TensorFlow. 

Pandas, например, строится поверх NumPy и позволяет работать со структурами данных высокого уровня по типу DataFrame и Series. При помощи NumPy можно проводить преобразование категориальных данных в числовой формат, например, с использованием кодирования one-hot.

Читать далее

Разработка программного средства по обработке данных фонокардиограммы

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

Медицинские исследования играют важную роль в понимании различных заболеваний и разработке эффективных методов лечения. Одним из инструментов, используемых в кардиологии, является фонокардиограмма (ФКГ).

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

ФКГ может использоваться для оценки эффективности лечения сердечных заболеваний и для наблюдения за состоянием сердца в течение времени. Если у вас есть симптомы, такие как боль в груди, одышка, учащенный пульс, упадок сил, обратитесь к кардиологу, который посоветует, нужна ли вам ФКГ [1].

Объектом исследования выпускной квалификационной работы является список файлов формата .csv, содержащих разделенные знаком ";" смещенные целочисленные значения амплитуды шумов сердца, записанные в течение нескольких секунд, частота дискретизации – 1000 гц (числа в записи обозначают амплитуду сигнала, временной промежуток между соседними значениями - 1 миллисекунда).

Цель работы состоит в создании алгоритма автоматической интерпретации снятых данных, который пытается по форме кривых делать выводы, аналогичные тем, которые по этим же кривым умеет делать эксперт и создание собственного алгоритма. Необходимо определить и выделить точку максимальной амплитуды, начало и окончание тона 1 для каждого из сердечных циклов. Ответ необходимо вывести в виде списка списков [t1, t2, t3], где t1 – начало тона 1, t2 – точка максимальной амплитуды, t3 – окончание тона 1. Также, для проверки результата, необходимо визуализировать полученный результат на графике. Данную процедуру необходимо произвести для каждого файла.

Ссылка на github: medical_date/script.py at main · ReshetnikovDmitrii4918/medical_date (github.com)

Читать далее