116 вредоносных пакетов было обнаружено в репозитории PyPI. Злоумышленники внедряли вредоносный код в файлы test.py, setup.py и __init__.py. Главная цель бэкдоров – кража криптовалют. Полный список инфицированных пакетов можно посмотреть здесь. С марта 2023 они были скачаны более 10000 раз. |
Обфускация вредоносного кода в __init__.py |
🆕 Новый веб-фреймворк µHTTP |
µHTTP – неплохая альтернатива популярному микрофреймворку Flask. В сравнении с Flask, µHTTP можно назвать нанофреймворком: он написан буквально на 15 строках кода и не имеет никаких внешних зависимостей. Фреймворк работает в связке с асинхронным веб-сервером Uvicorn, отлично подходит для создания API, простых одностраничных приложений и микросервисов. |
Синтаксис µHTTP похож на Flask |
🛠️ Инструменты для конвейерной обработки данных |
Конвейеры данных (data pipelines) играют важную роль в современных системах анализа данных и машинного обучения: - Они автоматизируют большинство операций по сбору, обработке, анализу и визуализации данных.
- Предоставляют удобные интерфейсы для мониторинга и отладки.
- Позволяют масштабировать и распределять обработку данных на кластерах серверов.
В статье рассмотрены самые популярные открытые библиотеки и фреймворки для создания конвейеров: - Taipy – предлагает удобный визуальный редактор конвейеров. Поддерживает версионирование, кэширование, автоматизирует создание фронтенда.
- Kedro – предоставляет инструментарий для создания готовых к продакшну конвейеров, хорошо интегрируется с библиотеками машинного обучения.
- Airflow – многофункциональная платформа от Airbnb с крутым веб-интерфейсом и обширными возможностями по автоматической обработке данных. Отличается высоким порогом входа.
- Prefect – главный конкурент Airflow, делает ставку на простоту использования и гибкость. Имеет удобную панель управления, поддерживает кэширование, динамическую параметризацию и гибридный формат работы (локально и в облаке).
- Dagster – платформа, объединяющая интеграцию данных, оркестрацию рабочих процессов и мониторинг. Dagster отслеживает метаданные, интегрирован с Hadoop. По сравнению с другими инструментами, в Dagster наиболее полно реализованы все аспекты DataOps.
- Luigi – фреймворк от Spotify для управления потоками данных и конвейерами. Имеет встроенную поддержку Hadoop и предназначен для простого управления многочисленными потоками пакетных заданий. Визуализирует зависимости между задачами, что облегчает понимание структуры рабочих процессов и выявление проблем.
|
🤝 Ассистенты разработчика |
Aider – работает в терминале, используя GPT-3.5(4). Особенности Aider: - Предоставляет чат-боту доступ к нужным репозиториям, что дает возможность работать с большой кодовой базой.
- Самостоятельно вносит в репозиторий все одобренные коммиты.
- Примеры проектов, сделанных с помощью Aider – на сайте проекта.
|
Aider умеет пушить коммиты |
ShellGPT – ИИ-помощник для выполнения всех рутинных задач: - Генерирует скрипты для выполнения в командной оболочке любой ОС.
- Пишет код, комментарии и документацию.
- Пишет скрипты для создания Docker-контейнеров, баз данных и т.п.
- Избавляет начинающих разработчиков от необходимости постоянно заглядывать в шпаргалки и заметки.
| ShellGPT сам пишет нужные скрипты |
💬 Интересный проект – чат-бот без трансформера
|
Большинство современных чат-ботов использует архитектуру трансформера. Трансформеры не слишком эффективны при обработке объемного контекста, и для решения этой проблемы было предложено несколько вариантов – линейное внимание, стробированная свертка, рекуррентные и структурированные модели пространства состояний. Исследователи Альберт Гу и Три Дао интегрировали механизм выбора в модель пространства состояний, что позволило им обойтись без модуля трансформера и даже без блоков многослойных перцептронов. На основе созданной ими модели Mamba, которая работает в 5 раз быстрее трансформера, сделан чат-бот Mamba-Chat. |
Суммаризация текста с помощью BART |
Есть два основных подхода к суммаризации текста – извлечение и абстракция: - Суммаризация на основе извлечения заключается в выборе и комбинировании существующих предложений из исходного текста.
- Абстрактная суммаризация генерирует краткое содержание текста своими словами, создавая более связные и контекстно-релевантные результаты.
Туториал покажет, как написать простейший суммаризатор, использующий абстрактный подход. Суммаризатор генерирует краткое содержание англоязычного текста с помощью BART из библиотеки transformers. |
Классификация текста с помощью spaCy |
Статья детально разбирает весь процесс классификации текстов с использованием spaCy – от сбора и подготовки данных до обучения и тестирования моделей: Извлечение и обработка данных. Для получения данных из Википедии используется библиотека wikipedia-api. Эта библиотека позволяет извлечь название и текст статьи, а также категории, к которым она относится (например, «Искусственный интеллект», «Кибернетика» и т.д.) Поскольку стандартные методы не извлекают категории на 100% корректно, автор пишет функцию на основе регулярных выражений, которая парсит HTML-код страницы и находит нужные категории. Создание датасетов. Обработанные данные разделяются на обучающую и тестовую выборки, после чего данные преобразуются в специальный формат DocBin, который нужен для обучения модели в библиотеке spaCy. Каждая статья становится отдельным объектом Doc, в котором в поле cats записаны категории этой статьи. Обучение моделей. Автор обучил 3 разные модели классификации текстов: - Модель 1 – с одиночными метками классов (т.е. одна статья относится только к одной категории).
- Модель 2 – с мультиметками (статья может относиться сразу к нескольким категориям).
- Модель 3 – такая же мультиметочная, но на вход подается с одиночными метками.
Тестирование. Для тестирования были взяты 2 статьи: об искусственном интеллекте и о космических аппаратах. Модели должны были определить, к каким категориям относятся эти статьи. Лучшие результаты показала Модель 1 с одиночными метками классов. И напоследок – впечатляющий лонгрид с иллюстрациями на тему того, сколько внушающих трепет вещей происходит на уровне CPython, когда вы всего-навсего складываете a + b на Python. На этом все, до встречи через неделю! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|