В этой статье вы найдете некоторые скрытые жемчужины мира с открытым исходным кодом, с помощью которых вы могли бы начать свой новый проект или оживить уже существующие. Вы найдете библиотеки машинного обучения и не машинного обучения.
1. HTTPX
Как фанат Python, который обычно взаимодействует с API, вы, вероятно, знакомы с библиотекой запросов. Однако запросы не принесут вам пользы, если вы используете асинхронную парадигму, которая все чаще встречается в современных высокопроизводительных приложениях.
Чтобы решить эту проблему, замечательный Том Кристи и его коллеги предлагают нам HTTPX, асинхронный HTTP-клиент нового поколения для нового десятилетия.
Созданный в соответствии с тем же удобством использования запросов, HTTPX предоставляет вам стандартные функции, а также поддержку HTTP/2 и HTTP/1. Другие функции включают вызов непосредственно в веб-приложение Python с использованием протокола ASGI и полное аннотирование типа.
Вам нужно сделать большое количество запросов одновременно? Тогда HTTPX – это новый ответ.
Примечание: HTTPX все еще рассматривается в альфа-версии и в настоящее время разрабатывается только как асинхронный клиент. В будущем клиент синхронизации будет вновь введен.
2. Starlette
Starlette – это облегченный фреймворк/инструментарий ASGI с множеством функций, включая поддержку WebSocket и GraphQL, фоновые задачи внутри процесса и действительно высокую производительность. Все они имеют аннотированную кодовую базу на 100% и ноль жестких зависимостей. Думайте об этом как об очень легкой, современной и асинхронной версии Flask.
Он также дает вам гибкость выбора, использовать ли его как полноценную веб-среду или просто как набор инструментов ASGI.
Он работает поверх сервера ASGI, такого как uvicorn, который попал в этот же список в прошлом году.
Если вы думаете о разработке нового веб-приложения, вам непременно следует дать Starlette шанс проявить себя.
3. FastAPI
Starlette потрясающая, но очень минималистичная и неубежденная. Это дает вам большую свободу, но иногда вам просто нужна структура, чтобы все было сделано правильно и быстро.
FastAPI от Себастьяна Рамиреса – только это. Это быстро во всех смыслах этого слова.
Новая структура для создания API с помощью Python обеспечивает очень высокую производительность и автоматическую интерактивную документацию на основе стандартов OpenAPI. Он имеет поддержку по умолчанию для Swagger UI и ReDoc, что позволяет вам вызывать и тестировать свой API напрямую из браузера, ускоряя время разработки. Создание API с помощью этого фреймворка происходит быстро и просто.
Эта библиотека также использует один из современных лучших приемов Python: подсказки типов. FastAPI использует подсказки типов для многих вещей, но одна из самых классных функций – это автоматическая проверка и преобразование данных на основе Pydantic.
Опираясь на Starlette, производительность FastAPI не уступает NodeJS и Go, а также имеет встроенную поддержку WebSocket и GraphQL.
И последнее, но не менее важное: в нем содержится лучшая техническая документация, когда-либо написанная для библиотеки с открытым исходным кодом. Серьезно, проверьте это!
4. Immutables
Люди в MagicStack вернулись, с простым, но элегантным неизменяемым типом отображения («замороженный дикт»).
Кто может извлечь из этого пользу? Что ж, базовой структурой данных является Tree (HAMT) с отображением хеш-массива, используемая в функциональных языках программирования, таких как Haskell. Самое интересное, что они дают производительность O(log N) для операций set() и get(), что по существу равно O(1) для сравнительно небольших отображений.
Если ваше приложение использует более крупные словари и может повысить производительность, возможно, стоит проверить эту классную новую библиотеку.
5. Pyodide
Pyodide – один из таких проектов, который может поразить вас. Он переносит научный стек Python в браузер с помощью WebAssembly, выводя научные вычисления на совершенно новый уровень.
Хотите сократить некоторые цифры с помощью NumPy ? Обрабатывать несколько больших DataFrames с Pandas? График ваши результаты с помощью Matplotlib? Благодаря Pyodide все это и даже больше стало возможным благодаря вашему браузеру.
Что еще лучше: каталог в настоящее время содержит более 35 доступных пакетов. Поистине, небо – это единственный предел.
6. Modin
Девиз Modin – масштабировать рабочий процесс Pandas, изменяя одну строку кода, и это действительно так просто. Просто установите Modin, измените операторы импорта и получите в 4 раза больше преимуществ на современных ноутбуках с многоядерными процессорами.
Как это сделать? Мы откроем вам секрет. Modin реализует свой собственный объект modin.pandas.DataFrame, который представляет собой легкий параллельный DataFrame. Использование этого объекта прозрачно, поскольку оно совместимо с API с Pandas, а в фоновом режиме он будет распространять данные и вычисления с использованием вычислительного механизма, такого как Ray или Dask.
Иногда получение больших ускорений требует лишь незначительных изменений в вашем коде, и Modin является доказательством этого.
7. Streamlit
В каждом нетривиальном проекте машинного обучения наступает момент, когда вам придется вручную взаимодействовать с моделью и вашими данными.
Вместо того, чтобы тратить часы усилий и тысячи строк кода на разработку приложения, Streamlit позволяет быстро создавать приложения для обмена вашей моделью и анализами. Создание пользовательского интерфейса для взаимодействия и визуализации ваших данных и результатов вашей модели теперь так же просто, как пирог.
Streamlit предоставляет быстрый способ перейти от ваших скриптов Python к приложению производственного уровня, просто добавив несколько строк в ваш код. TensorFlow, Keras, PyTorch, Pandas: Streamlit работает с каждым инструментом связанного научными данными.
8. Transformers
Если вы выполняете какую-либо работу, связанную с машинным обучением, вы, вероятно, слышали о важных достижениях в области обработки естественного языка (NLP), произошедших в прошлом году.
Было разработано много новых и высокопроизводительных моделей, таких как BERT, XLNet или roBERTa, которые значительно продвинули современное состояние в широком спектре задач НЛП (таких как классификация текста, машинный перевод, распознавание именованных объектов и многие другие).
Для практиков важно иметь инструменты, которые могут приводить в действие производственные приложения, использующие эти модели, которые не слишком сложны в использовании. Для исследователей важно иметь библиотеки, в которых можно настроить внутреннее оборудование, где можно разрабатывать и экспериментировать с новыми моделями, не тратя слишком много времени на написание стандартного кода.
Удивительные люди из Hugging Face приносят нам библиотеку Transformer, которая включает в себя упакованные, предварительно обученные и готовые к использованию реализации самых современных моделей НЛП. Функциональная совместимость между TensorFlow 2.0 и PyTorch помогла катапультировать эту библиотеку к отраслевому стандарту, поддерживающему как исследовательские, так и производственные приложения. Они также двигаются очень быстро, часто вводя новые модели в библиотеку по мере их разработки исследователями.
Вишня на торте: команда Hugging Face разработала дистиллят DistilBERT, версию очищенную BERT, которая меньше, быстрее, дешевле и легче.
Вы все еще на пороге перехода на современный НЛП с использованием Hugging Face/Transformer? Сегодня ваш счастливый день, вы можете проверить их отличную онлайн-демонстрацию и поразиться ее мощям.
9. Detectron2
Исследовательская группа по искусственному интеллекту Facebook (FAIR) расширяет границы компьютерного зрения (CV), разрабатывая новые модели для таких задач, как обнаружение объектов, оценка позы, семантическая/инстанционная сегментация и в последнее время, паноптическая сегментация.
Возможность решения многих из этих проблем казалась научной фантастикой всего пару лет назад. Мы ожидаем от FAIR только самого лучшего, и на этот раз им удается снова потрясти сцену.
Detectron2 – это долгожданное продолжение Detectron, созданное с нуля с помощью PyTorch и оснащенное самыми современными алгоритмами компьютерного зрения.
Библиотеки, подобные этим, особенно сложно спроектировать из-за разнообразных типов использования, которые они должны поддерживать. Как и в случае с трансформаторами Hugging Face, команда FAIR проделала большую работу, разработав Detectron2 очень гибким и модульным способом, что делает его очень привлекательным для приложений для исследования CV. В то же время, он чрезвычайно прост в использовании, что делает его идеальным для людей, которые просто хотят получить быстрые результаты. Да, вы можете использовать Detectron2, и ваша программа сможет «понимать» изображения с помощью всего лишь нескольких строк кода Python.
Время покажет, преуспеет ли Detectron2 в создании яркого сообщества, но пока все выглядит довольно многообещающе. Это вполне может стать «готовым» решением для CV-приложений, где новые – более быстрые и качественные – модели вносятся по мере их создания исследователями. Если вы делаете какую-либо работу с резюме, держите это под своим радаром!
10. Metaflow
Это буквально новый ребенок в блоке, так что он едва попал в этот список 2019 года! Но не обманывайте себя: хотя он был выпущен менее 2 недель назад, он уже был внутренне испытан Netflix, пока они не решили открыть исходный код после 2 лет доработки.
Metaflow – это библиотека Python, которая помогает ученым и инженерам по данным создавать реальные проекты для использования в реальном мире. Основной упор делается на облегчение технической нагрузки для нетехнических исследователей данных, таких как вычислительные ресурсы, параллельное выполнение, проектирование архитектуры и управление версиями и многие другие. Netflix сотрудничает с AWS, что позволяет вам легко определять сложные потоки данных с готовой поддержкой распределенных вычислений.
Вывод
Мы хотели бы взять несколько строк, чтобы поблагодарить всех в сообществе за их ценный вклад и вас, читателей.
Да, и кстати, если мы упустили вашу любимую библиотеку Python, пожалуйста, не стесняйтесь комментировать ниже. Мы хотели бы услышать, чем вы пользуетесь.