🤺 Очередная атака на PyPI
|
PyPI приостановил регистрацию новых пользователей и проектов из-за атаки с использованием вредоносного кода в setup.py пакетов. Злоумышленники использовали опечатки в названиях для обмана разработчиков. Вредоносные скрипты автоматически запускаются при установке пакетов и могут восстанавливаться после перезагрузки компьютера. Цель атаки – получение доступа к криптовалютным кошелькам и кража всевозможных учетных записей. |
🤖 Дорожная карта для изучения ИИ-разработки в 2024
|
Автор Roadmap to Learn AI в 2024 составил подробнейший учебный план, каждый пункт которого сопровождается множеством ссылок на полезные ресурсы – бесплатные курсы, книги, подкасты, каналы, рассылки, туториалы и авторов, на которых стоит подписаться. В кратком виде стратегия изучения выглядит так. Фундаментальные основы: - Математика для машинного обучения – линейная алгебра, матанализ, теория вероятностей и статистика.
- Python – приведены ссылки на ресурсы для начинающих и опытных пользователей.
- Работа с PyTorch, популярной платформой для глубокого обучения.
Машинное обучение: - Прочитайте книгу «Машинное обучение на 100 страницах», практикуясь в написании алгоритмов с нуля.
- Изучите готовые алгоритмы в приведенных репозиториях.
- Попробуйте написать лайт-версию PyTorch с помощью этого курса.
- Принимайте участие в конкурсах по машинному обучению на Kaggle и bitgrit, изучайте решения победителей.
- Разрабатывайте и разворачивайте собственные модели машинного обучения, используя реальные наборы данных.
Глубокое обучение: - Пройдите базовый курс fast.ai, после которого можно переходить к более продвинутым курсам, перечисленным в статье.
- Если не хватает теоретических знаний, обратитесь к приведенным книгам.
Специализированные треки глубокого обучения: - Компьютерное зрение.
- Обучение с подкреплением.
- Обработка естественного языка (NLP).
Большие языковые модели (LLM): - Общее представление о LLM.
- Разработка и реализация LLM. Файнтюнинг и RAG.
- Создание приложений на основе LLM.
|
KeepYourMouthShut – инструмент для автоматической генерации подкастов. Приложение имеет браузерный интерфейс. Пользователь задает тему и описание подкаста, после чего приложение создает скрипт, озвучивает текст и выдает готовый аудиофайл. |
KeepYourMouthShut создает подкасты автоматически | Python Docstring Highlighter в действии |
Ipyvizzu – визуализирует данные в виде эффектных анимированных диаграмм. Работает в блокнотах (Jupyter Notebook, Google Colab, Kaggle и т.п.) |
Leaping – простой, быстрый и легкий ИИ-отладчик для работы с pytest. Leaping отслеживает выполнение кода и позволяет ретроспективно проверять состояние вашей программы. Поддерживает Ollama и GPT-4, отвечает на вопросы, например: - Почему не выполняется функция x?
- Почему переменной y было присвоено это значение?
- Каково было значение переменной x в этой точке?
- Какие изменения я могу внести в этот код, чтобы этот тест прошел?
OpenDevin – еще одна опенсорсная альтернатива проприетарному агенту Devin. Работа над проектом в самом разгаре, среди основные возможности инструмента будут: - Генерация кода для сложных проектов.
- Автоматизация тестирования, отладки и развертывания.
- Сотрудничество с разработчиком, помощь в решении проблем и выборе оптимальных решений.
Агент может работать на базе любой LLM из списка поддерживаемых. |
⚙️ Как работают фулстек-фреймворки
|
Фронтенд для веб-приложений на Python пишут, как правило, с помощью фреймворков и библиотек на JavaScript. Не всех питонистов такой подход приводит в восторг – отсюда множество новых фулстек-фреймворков, которые дают возможность писать и бэк, и фронт на Python. К таким фреймворкам относится и Reflex. Один из авторов Reflex рассказал о преимуществах использования фреймворка по сравнению с традиционным подходом «бэкенд + API + фронтенд»: - Обычно создание веб-приложений требует знания как минимум двух языков – Python для серверной части и JavaScript для фронтенда. Reflex упрощает этот процесс, позволяя писать обе части приложения на Python.
- В основе фронтенда Reflex-приложения – самые популярные веб-технологии (React и Next.js). Код автоматически преобразуется в одностраничное приложение Next.js.
- Внешний вид приложения можно настраивать с помощью готовых тем, или использовать CSS прямо в Python-коде.
- Серверная часть работает на Python с использованием FastAPI.
- Для обработки событий используются триггеры и очередь событий, диспетчер состояний и обновление состояния. Двусторонний обмен данными между сервером и фронтендом происходит в реальном времени, через вебсокеты.
|
Пример фулстек-приложения на Reflex |
📜 Почему не стоит использовать интерактивные блокноты в production-среде
|
Использовать блокноты типа Jupyter Notebook в продакшене можно, но не нужно – автор публикации объяснил, почему: - Лишние сложности с тестированием. Блокнотный код сложно пропускать через юнит-тесты – очень часто модульные тесты приходится писать в обычных Python-файлах, а сам блокнот при этом выступает только как обертка для запуска тестов. Это усложняет процесс тестирования, делает его непрозрачным и не позволяет протестировать отдельные части кода внутри блокнота.
- Сложность отладки. Отладка кода в блокнотах значительно сложнее, чем в обычных Python-скриптах с использованием IDE. Функции вроде установки точек останова, пошагового выполнения, просмотра переменных работают плохо или вовсе недоступны. Разработчикам приходится копировать код в отдельные файлы для отладки.
- Проблемы с версионированием. Файлы блокнотов имеют формат JSON и содержат исходный код, разметку markdown, изображения и вывод ячеек в одном файле. Это усложняет отслеживание изменений, разрешение конфликтов слияния и даже просмотр diff в Git. Приходится использовать дополнительные инструменты.
- Нарушение принципа модульности. Блокноты по своей природе линейны и поощряют написание длинных монолитных скриптов, а не разбиение кода на модули, классы и функции, что идет вразрез с принципами проектирования ПО. Повторное использование кода затруднено.
- Произвольный порядок выполнения ячеек. Возможность запускать ячейки в любом порядке может привести к непредсказуемому поведению кода и проблемам с воспроизводимостью результатов между различными сессиями выполнения.
- Перезапись ячеек во время выполнения тоже может привести к различиям между разными запусками блокнота.
- Двойная работа. ML-инженерам зачастую приходится серьезно перерабатывать блокнотный код, написанный дата-сайентистами. Это замедляет рабочий процесс и может привести к ненужной напряженности и недопониманию.
|
Как разобраться в Poetry за 8 минут |
Poetry – один из самых популярных инструментов для управления зависимостями, создания виртуальных окружений и публикации пакетов в PyPI. Автор этого видео: - Демонстрирует, как добавлять, удалять и обновлять зависимости с помощью команд Poetry.
- Объясняет, как контролировать версию зависимостей с помощью символов каретки и тильды.
- Показывает, как войти в виртуальное окружение с помощью команды poetry shell.
- Рассказывает, как Poetry может помочь с версионированием, сборкой и публикацией пакетов.
|
Разработка API для мобильных приложений |
Курс из 7 уроков покажет, как создавать API на основе Django и DRF, и как интегрировать бэкенд с фронтендом на Flutter. |
Защита ИИ-приложений с помощью LLM Guard |
Автор видео обсуждает различные уязвимости LLM-приложений и поясняет, как эти проблемы решает LLM Guard. К примеру, этот инструмент может: - Обнаруживать в промптах зловредные инструкции.
- Проверять вывод LLM на наличие конфиденциальных данных, прежде чем ответ отправляется пользователю..
|
На этом все, до следующей недели! |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|