Лучшие библиотеки Python 2024 года

Добро пожаловать в новый выпуск нашего ежегодного списка лучших библиотек Python! Пока мы путешествуем по постоянно развивающемуся ландшафту разработки на Python, пришло время снова обратить внимание на крутые библиотеки и инструменты, которые привлекли наше внимание. Прошлый год был особенным, так как он знаменует собой БУМ генеративного искусственного интеллекта и больших языковых моделей (LLM), тенденций, которые существенно повлияли на наш выбор.

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

Но не бойтесь, разнообразие в нашем выборе по-прежнему играет ключевую роль! Хотя с каждым годом становится все сложнее, мы постарались, чтобы наш полный список предназначался не только для энтузиастов искусственного интеллекта, но и содержал драгоценные камни, которые могут быть полезны широкому кругу разработчиков Python, включая некоторые узкоспециализированные сферы.

Итак, давайте погрузимся в мир Python!

10 лучших библиотек

1. LiteLLM — использование любого LLM с использованием OpenAI и многое другое

Лучшие библиотеки Python 2024 года

Представьте мир, где вы не привязаны к определенному производителю моделей, где переключение между LLM так же просто, как изменение одной строки кода, в отличие от переписывания всего вашего код с помощью таких инструментов, как LangChain

LiteLLM делает это реальностью.

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

Но LiteLLM – это не только о гибкости. Это ещё и об эффективности и контроле работы LLM. Такие функции, как потоковая передача ответов и сопоставление исключений с форматом OpenAI, демонстрируют его надежность. Особого внимания заслуживает возможность отслеживать и управлять расходами в разных LLM, гарантируя, что ваши исследования в области искусственного интеллекта не приведут к неожиданным исходам. Этот уровень финансового контроля жизненно важен в области, где вызовы API могут быстро увеличивать затраты.

Кроме того, LiteLLM поставляется с прокси-сервером API, что повышает его универсальность при интеграции в кодовые базы без изменения ни единой строки кода ✨.

Еще одной отличительной особенностью являются встроенные функции балансировки нагрузки и ограничения скорости. Эти возможности обеспечивают оптимальную производительность и использование ресурсов, особенно при работе с большими объемами запросов по нескольким вызовам логического вывода. Балансировка нагрузки эффективно распределяет входящие вызовы API. Между тем, функция ограничения скорости играет решающую роль в поддержании стабильного и контролируемого доступа к моделям, защите от чрезмерного использования и потенциальных перегрузок (забудьте о HTTP 429).

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

Приветствуем и поздравляем авторов LiteLLM. Являетесь ли вы опытным разработчиком искусственного интеллекта или только начинаете играть с генеративным ИИ, LiteLLM – это библиотека, которая должна быть в вашем наборе инструментов!

2. PyApp — развертывание автономных приложений Python в любом месте

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

Но появляется библиотека PyApp: библиотека утилит, упрощающая распространение и установку приложений на Python. Это достигается за счет встраивания Python в самоустанавливающийся пакет, совместимый со всеми операционными системами. Но на этом дело не заканчивается! PyApp также поддерживает возможности самообновления и может быть настроен для различных вариантов использования.

С PyApp определение зависимостей для установки pip с помощью файлов requirements.txt является простым делом, а дополнительные артефакты могут быть легко встроены в пакет с помощью файлов .in. Библиотека управляет процессом установки, создавая специальный каталог для Python и необходимых зависимостей приложения. При последующих запусках PyApp проверяет наличие этого каталога установки, оптимизируя отзывчивость интерфейса командной строки.

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

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

3. Taipy — создание пользовательских интерфейсов для приложений, работающих с данными, даже в рабочей среде

Лучшие библиотеки Python 2024 года

Taipy – это библиотека Python, которая позволяет специалистам по обработке данных создавать увлекательные повествования на основе своих данных.

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

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

Но подождите, разве у нас не было для этого Streamlit? Что ж, вот где Taipy блистает. В отличие от Streamlit, который перезапускает код для всей страницы при обнаружении изменения входных данных, Taipy использует обратные вызовы для обновления только компонентов, затронутых изменением (так же, как это делает shiny для R), повышая оперативность реагирования и ускоряя разработку.

Но инновации на этом не заканчиваются. Taipy также предоставляет инструменты для визуального построения конвейеров машинного обучения, ускоряя разработку и предлагая простой способ объяснить на высоком уровне шаги, которые выполняет ваша модель. Важно отметить, что узлы данных, входные данные для этих визуальных конвейеров, могут динамически изменяться, обеспечивая интерактивное исследование и сценарии “что, если”.

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

4. MLX — машинное обучение на Apple silicon с API, подобным NumP

Лучшие библиотеки Python 2024 года

В 2021 году Apple представила свою архитектуру M1, которая уже доработана до версии M3, революционного аппаратного обеспечения, которое принесло с собой улучшения производительности, а также унифицированный буфер памяти, к которому могут обращаться центральный процессор, графический процессор и NPU (Neural Engine от Apple) без необходимости копировать информацию между процессорными блоками.

В 2023 году в центре внимания оказался Apple MLX, новаторский фреймворк, специально разработанный для машинного обучения на Apple silicon. Программа MLX, представленная собственной исследовательской группой Apple по машинному обучению, устанавливает новые стандарты для разработки и внедрения моделей машинного обучения на оборудовании Mac.

MLX разработан для сохранения привычности: его Python API является близким родственником NumPy, а также предлагает полнофункциональный C ++ API, который отражает его аналог в Python. Пакеты более высокого уровня похожи на mlx.nn PyTorch и mlx.optimizers, что упрощает построение сложных моделей.

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

Поддержка нескольких устройств в MLX позволяет выполнять операции на любом поддерживаемом процессоре, будь то CPU, GPU или NPU. И вот что меняет правила игры: унифицированная модель памяти MLX. В отличие от других фреймворков, массивы MLX существуют в общей памяти, позволяя выполнять операции на любом поддерживаемом устройстве без необходимости дорогостоящей передачи данных.

Этот удобный и эффективный фреймворк разработан исследователями машинного обучения для исследователей машинного обучения. Вдохновленный такими программами, как NumPy, PyTorch, Jax и ArrayFire, MLX стремится упростить для исследователей расширение и улучшение фреймворка, способствуя быстрому поиску новых идей.

По мере начала 2024 года MLX, безусловно, является инструментом, за которым стоит следить. Являетесь ли вы поклонником Apple, энтузиастом машинного обучения или и тем и другим вместе, MLX готов произвести революцию в вашем процессе машинного обучения и максимально использовать возможности Apple silicon.

5. Unstructured — идеальный инструментарий для предварительной обработки текста

Лучшие библиотеки Python 2024 года

В обширном ландшафте искусственного интеллекта модель настолько хороша, насколько хороши данные, на основе которых она работает. Но что происходит, когда ваши данные представляют собой хаотичное нагромождение необработанных документов, разбросанных по различным форматам? Enter Unstructured – комплексное решение для всех ваших потребностей в предварительной обработке текста.

Unstructured – это главный ключ к раскрытию потенциала ваших необработанных данных, способный переваривать все, что к нему добавляется — PDF-файлы, HTML-файлы, документы Word, даже изображения. Это как шеф-повар-гурман для обработки ваших данных, который нарезает их вкусными кусочками для ваших моделей искусственного интеллекта.

Unstructured предлагает “шведский стол” функций, аккуратно разделенных на шесть типов:

  1. Функции разделения, которые преобразуют необработанные документы в структурированные и стандартизированные форматы.
  2. Функции очистки, которые удаляют ненужный текст, оставляя только релевантные фрагменты.
  3. Промежуточные функции, которые форматируют ваши данные, подготавливая их для задач ML.
  4. Функции извлечения, которые извлекают ценную информацию из документов, такую как электронные письма, IP-адреса или тексты, подобранные по шаблону.
  5. Функции разбиения на фрагменты, которые разбивают документы на разделы небольшого размера, идеально подходящие для поиска сходства и обработки данных.
  6. Функции встраивания, которые преобразуют предварительно обработанный текст в векторы, предлагая простые в использовании интерфейсы.

Но и это еще не все. Unstructured также оснащен коннекторами, набором инструментов для бесшовной интеграции с различными платформами хранения. От GCS и S3 до Google Drive, One Drive, Notion и многих других. Эти соединители работают в обоих направлениях, позволяя вам считывать и записывать информацию во множество источников и из них.

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

Промежуточные функции библиотеки сохраняют предварительно обработанные документы в различных форматах, совместимых с различными инструментами, такими как Label Studio и Prodigy.

С Unstructured в вашем инструментарии ваше путешествие в мир больших языковых моделей обещает быть ещё более интересным. Приготовьтесь раскрыть весь потенциал ваших данных в 2024 году!

6. ZenML и AutoMLOps — переносимые, готовые к производству конвейеры MLOps

Лучшие библиотеки Python 2024 года

Хорошо, здесь мы немного нарушаем правила. Две библиотеки, одна запись. Но поверьте нам, оно того стоит.

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

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

Эта подборка призвана решить эти проблемы и поставить лучшие практики MLOps в центр вашей разработки.

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

С ZenML шаги вашего конвейера аннотируются и связываются вместе, формируя фактический конвейер. Затем вы настраиваете Zen Stack, указывая необходимый инструментарий и инфраструктуру. Этот стек состоит из двух основных компонентов: оркестратора и хранилища артефактов. Оркестратор, который может быть облачной службой выполнения или простым интерпретатором Python, запускает код вашего конвейера. Хранилище артефактов – это место, где будут храниться ваши данные. И что самое приятное? ZenML поддерживает множество интеграций, предлагая дополнительные функциональные возможности, такие как хранилища функций, проверка данных и трекеры экспериментов.

В другом углу у нас есть AutoMLOps от Google, который разделяет подход ZenML к аннотированию кода разработки модели в виде компонентов и конвейеров. Однако AutoMLOps делает еще один шаг вперед, автоматически генерируя необходимый код для контейнеризации ваших компонентов, предоставления их в облаке Google и развертывания этих контейнеров на выделенных ресурсах. Все это соответствует автоматизированному, воспроизводимому процессу CI / CD, который помогает ускорить ваш путь к уровню зрелости MLOps 2.

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

AutoMLOps, специально разработанная для использования облачных сервисов Google и искусственного интеллекта Vertex, станет вашим путешествием по облаку на ковре-самолете. Хотя этот инструмент беззастенчиво ориентирован на Google, это небольшая уступка огромным преимуществам, которые вы получите. Если вы готовы к навигации в облаке Google, приготовьтесь к тому, что значительная часть вашего путешествия будет оптимизирована, что сделает вашу работу в облаке более эффективной и приятной, чем когда-либо.

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

Попрощайтесь с днями борьбы с инфраструктурой и прикладным кодом и поприветствуйте эпоху оптимизированных и эффективных MLOps.

7. WhisperX — распознавание речи с временными метками на уровне слов и занесение в дневник

Вы сталкивались с Whisper, новаторской моделью распознавания речи от OpenAI? Это как многоязычный маэстро, мастерски справляющийся с целым рядом задач, таких как транскрипция речи, временные метки, перевод речи в текст и распознавание голоса – и все это на разных языках.

Теперь позвольте мне представить вам его кузена с турбонаддувом – WhisperX. Это как Whisper после двойной порции эспрессо, который может похвастаться более точной меткой временираспознаванием нескольких динамиков и уменьшением количества галлюцинаций (не психоделического типа, а того, когда он начинает сыпать словами, когда никто не говорит) за счет улучшения распознавания голосовой активности. Главный плюс? Он делает все это быстрее и требует меньше памяти.

У WhisperX есть секретное оружие под названием предварительная обработка обнаружения голосовой активности. Это как вышибала, который пропускает только аудиозаписи, содержащие голосовую активность, и это намного дешевле, чем впускать всех желающих на вечеринку с полностью автоматическим распознаванием речи. Такой подход также гарантирует, что звук разделен на аккуратные фрагменты, что позволяет избежать неудобных сокращений в середине речи и повышает надежность распознавания целых слов. Кроме того, временные метки приведены в соответствие с этими границами, что делает их еще более точными. Последний штрих? Модель классификатора phoneme, которая выравнивает границы слов на основе фиксированного словаря для каждого языка. Это все равно, что иметь в своей команде специалиста по грамматике.

Любопытно увидеть это в действии? Ознакомьтесь с английским образцом результатов в их репозитории GitHub.

Прелесть WhisperX в том, что фрагменты могут обрабатываться параллельно, подобно хорошо отлаженной сборочной линии, что позволяет делать пакетный вывод. А благодаря переходу на более быстрый сервер Whisper, использование оперативной памяти для модели whisper-large было сокращено до менее 8 ГБ. Это означает, что теперь он может работать с более широким спектром видеокарт, а также может похвастаться колоссальным ускорением в 70 раз для той же модели. Все равно что поставить распознавание речи на высокоскоростную беговую дорожку.

Для любознательных умов, которые любят погружаться в детали, авторы щедро поделились своими материалами.

8. AutoGen — библиотека, предоставляющая целую команду для работы с LLM

Лучшие библиотеки Python 2024 года

Вы когда-нибудь мечтали о персональной команде инженеров-программистов, готовых воплотить ваши идеи в жизнь? Познакомьтесь с AutoGen от Microsoft, вашей волшебной палочкой, которая заставляет диалоговых агентов работать в гармонии для достижения общей цели. Это как Мстители, но для разработки программного обеспечения.

В простейшей настройке AutoGen участвуют два ключевых игрока: AssistantAgent и UserProxyAgentAssistantAgent – это ваш помощник в области искусственного интеллекта, предназначенный для независимого выполнения задач. Между тем, UserProxyAgent – это ваш цифровой дублер, позволяющий вам вмешиваться, когда требуется вмешательство человека, но также имеющий возможность действовать от вашего имени.

AssistantAgent выполняет задачи, в то время как UserProxyAgent предоставляет обратную связь AssistantAgent о том, успешно ли выполнена задача. Как только задача поставлена, эти агенты приступают к действию, работая автономно до тех пор, пока им либо не потребуется человеческий надзор, либо они успешно не выполнят задачу.

Этот фреймворк великолепен в таких случаях использования, как генерация кодаAssistantAgent создает код, пока UserProxyAgent тестирует его. Если появляются ошибки, UserProxyAgent предоставляет обратную связь, и цикл повторяется. Это все равно что владеть личной фабрикой кода.

Красота AutoGen заключается в его масштабируемости. Вы можете ввести дополнительных агентов для выполнения различных ролей, сродни созданию вашей команды разработчиков программного обеспечения. Нужен тестировщик или менеджер по продуктам? AutoGen вас прикроет. Для вдохновения ознакомьтесь с ChatDev, проектом, в котором целая команда разработчиков программного обеспечения использовала аналогичную концепцию.

AutoGen также может похвастаться несколькими улучшенными функциями вывода, которые расширяют возможности вашего рабочего процесса. Это унифицирует API для нескольких моделей, позволяя вам связать несколько LLM с одним агентом: если одна модель выходит из строя, следующая на очереди берет на себя управление, обеспечивая надежность. Кроме того, он предоставляет кэш быстрых результатов для более быстрого и экономичного вывода, ведение журнала чата для отладки и быстрое создание шаблонов, так что общие инструкции (например, пошаговое объяснение ваших рассуждений) можно повторно использовать в нескольких задачах.

Но и это еще не все! Вы хотите улучшить свои агенты с помощью RAG? Просто добавьте Retrieve к их именам классов, укажите путь к документам и вуаля! Теперь ваши агенты могут подключаться к пользовательским базам данных, предоставляя информацию, зависящую от контекста. Хотите агента, который обучается на ходу? Попробуйте объяснить с помощью подсказок некоторые вещи TeachableAgent, и он сохранит предоставленную вами информацию в базе данных в стиле MemGPT, что позволит ему вспоминать и рассуждать об этом контексте в будущих взаимодействиях. Чрезвычайно эффективное применение для этого – заставить ваших агентов рассуждать о том, что сработало в их взаимодействиях, и составить краткий план шагов, которые действительно сработали, затем обучить этому плану обучаемый агент, чтобы он знал, как это сделать в следующий раз.

9. Guardrails — присматривает за LLM, чтобы они вели себя так, как задумано

Лучшие библиотеки Python 2024 года

У вас когда-нибудь был фантастический запрос, тщательно разработанный с помощью скрупулезного процесса разработки запросов только для того, чтобы обнаружить, что ваша большая языковая модель разрывает свои цепочки и выдает неструктурированный ответ?

Гибкость LLMs обеспечивает чрезвычайно широкий спектр приложений, но также затрудняет ее интеграцию в более масштабный конвейер. Guardrails: библиотека, предназначенная для определения структуры и типа, а также проверки и исправления выходных данных больших языковых моделей.

Guardrails работает, определяя спецификацию .rail, разновидность XML, которая предназначена для чтения человеком и позволяет определять структуру запрашиваемых выходных данных, валидаторы для обеспечения соответствия значений заданным критериям качества и корректирующие действия, такие как повторный запрос LLM или отфильтровывание недопустимых выходных данных, если проверки не выполнены.

Вот пример, который задает критерии качества (сгенерированная длина, доступность URL-адреса) в полях format спецификации RAIL, повторно запрашивает explanation и фильтрует follow_up_url, если они недопустимы.

<rail version="0.1">
<output>
    <object name="bank_run" format="length: 2">
        <string
            name="explanation"
            description="A paragraph about what a bank run is."
            format="length: 200 280"
            on-fail-length="reask"
        />
        <url
            name="follow_up_url"
            description="A web URL where I can read more about bank runs."
            format="valid-url"
            on-fail-valid-url="filter"
        />
    </object>
</output>

<prompt>
Explain what a bank run is in a tweet.

${gr.xml_prefix_prompt}

${output_schema}

${gr.json_suffix_prompt_v2_wo_none}
</prompt>
</rail>

Средства защиты, подобные этим, могут быть инициализированы из RailSpec, а также из определений типов PyDantic или даже из строк для менее сложных вариантов использования. Затем структуру можно использовать для определения полей, которые должна создавать LLM, а также их типов, включая вложенные объекты, определенные в вашей логике. Несколько валидаторов предоставляются “из коробки”, начиная от простых валидаций строки минимальной / максимальной длины или регулярных выражений до кода на Python или SQL без синтаксических ошибок, текста без ненормативной лексики и многих других.

С Guardrails в вашем стеке ваши приложения LLM обязательно станут более надежными, что упростит их интеграцию.

10. Temporian — “Pandas”, созданный для предварительной обработки временных данных

Лучшие библиотеки Python 2024 года

Время дорого. Время – деньги. Всему свое время.… Вы не раз слышали эти фразы, верно? Временные данные используются повсеместно в большинстве видов человеческой деятельности, вот почему многие популярные библиотеки позволяют обрабатывать данные временных рядов и манипулировать ими.

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

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

Лучшие библиотеки Python 2024 года

Вот почему Tryolabs сотрудничает с Google в разработке современной библиотеки для манипулирования временными данными. Temporian обеспечивает безопаснуюпростую и эффективную предварительную обработку и разработку функций для временных данных с помощью Python API, поддерживаемого реализацией на C ++ для невероятных скоростей. Temporian поддерживает многомерные временные ряды, многомерные временные последовательности, журналы событий и потоки событий из разных источников.

В основе Temporian лежит EventSet, который содержит записи с метками времени, называемые Event, которые содержат значения объектов. EventSet может содержать многомерные временные ряды с однородными или неоднородными временными метками, а также независимые ряды, принадлежащие разным объектам. Удобные операторы, такие как задержка, повторная выборка и оконные функции, помогают заполнять пробелы и выравнивать временные метки для арифметических операций.

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

import temporian as tp

sales = tp.from_csv("sales.csv")
sales_per_store = sales.add_index("store")

days = sales_per_store.tick_calendar(hour=22)
work_days = (days.calendar_day_of_week() <= 5).filter()

daily_revenue = sales_per_store["revenue"].moving_sum(tp.duration.days(1), sampling=work_days)

Temporian предлагает новую парадигму для работы с временными данными. Будучи специально разработанными для него, плюс его основные вычисления, выполняемые как высокооптимизированный код C ++, позволяют ему сделать обычные временные операции более безопасными, простыми в написании и намного, намного быстрее в выполнении – с бенчмарками, показывающими ускорение более чем в 100 раз по сравнению с эквивалентным кодом pandas.

Если вам интересно, ознакомьтесь с руководствами в документации, которые познакомят вас с реальными примерами использования библиотеки. И, конечно, любая обратная связь более чем приветствуется 🙂

Почти первые

Следующие библиотеки почти попали в наши списки лучших, и мы считаем, что они тоже заслуживают особого признания:

  • DataGradients — поздоровайтесь со своим личным помощником по анализу данных компьютерного зрения. DataGradients, детище Deci AI, представляет собой библиотеку Python с открытым исходным кодом, которая поставляется в комплекте с решениями для распространенных задач в управлении датасетами vision. Будь то выявление поврежденных изображений, неправильных меток, искажений, извлечение сводок для более глубокого понимания доступных данных или предоставление рекомендаций по выбору гиперпараметров, DataGradients поможет вам.
  • functime — всеобъемлющая библиотека для прогнозирования временных рядов и извлечения объектов из больших наборов данных. Предлагает уникальные варианты предварительной обработки и разделители для перекрестной проверки. Она отличается невероятной скоростью и эффективностью, способной обрабатывать 100 000 временных рядов за секунды, благодаря разумному использованию параллельного проектирования объектов. Но functime – это больше, чем просто скорость; это мощный союзник, оснащенный проверенными алгоритмами машинного обучения и поддерживающий внешние функции во всех программах прогнозирования. Эта библиотека также автоматизирована, управляя задержками и настройкой гиперпараметров с помощью FLAML. Благодаря более чем 100 средствам извлечения объектов временных рядов, доступным в пользовательском пространстве имен ts, functime предлагает эффективную и удобную для пользователя платформу, которая меняет наш подход к обработке данных временных рядов.
  • LoRaX — сервер логического вывода, который масштабируется до 1000 точно настроенных LLM с помощью Predibase. LoRaX (”LoRa eXchange”) предназначен для обслуживания множества отлаженных моделей на одном графическом процессоре, что значительно сокращает затраты, связанные с обслуживанием, при сохранении впечатляющей пропускной способности и задержек. Ключевые функции включают динамическую загрузку адаптера, позволяющую точно в срок загружать любой точно настроенный адаптер LoRa, не влияя на одновременные запросы, гетерогенную непрерывную пакетную обработку, которая объединяет различные запросы адаптера для поддержания стабильной задержки и пропускной способности и планирование обмена адаптерами, которое эффективно управляет предварительной выборкой адаптера и разгрузкой между графическим и центральным процессорами. Он поддерживает ряд больших языковых моделей, таких как Llama и Mistral, в качестве базовых моделей и совместим с адаптерами LoRa, обученными с использованием библиотек PEFT и Ludwig.
  • outlines — управляемая генерация текста с помощью LLMS, особое внимание уделяется генерации текста с ограниченными возможностями. Позволяет управлять моделями, такими как множественный выбор, ограничения типов и динамическая остановка, используя очень эффективную генерацию с использованием регулярных выражений, что приводит к более быстрому выводу по сравнению с другими руководящими подходами. Генерируйте корректный JSON в 100% случаев! Ознакомьтесь с их сообществом в блоге HN Launch, чтобы узнать больше.
  • Pearl — подарок от команды Meta’s Applied Reinforcement Learning (RL). Это готовая к производству библиотека агентов искусственного интеллекта, в которой приоритет отдается накопительному долгосрочному вознаграждению, а не немедленной обратной связи. Эти агенты могут адаптироваться к средам с ограниченной наблюдаемостью, скудной обратной связью и высокой стохастичностью, что делает их подходящим выбором для широкого спектра реальных задач. Модульная реализация передовых алгоритмов RL от Pearl является свидетельством ее универсальности и дальновидного подхода.
  • PEFT — доступные вам методы тонкой настройки Hugging Face, PEFT или Parameter-Efficient – это ваш билет к точной настройке предварительно подготовленных языковых моделей для широкого спектра приложений, работающих ниже по потоку, без необходимости изменять все параметры модели, экономя вычислительные ресурсы при сохранении хороших свойств более обобщенных моделей и повышении производительности при выполнении вашей конкретной задачи.
  • vLLM — высокопроизводительный и экономичный по объему памяти механизм вывода и обслуживания для LLM. Он повышает производительность обслуживания LLM в 3,5 раза по сравнению с предыдущей SOTA, без изменения архитектуры модели. Поскольку размер выходных данных заранее неизвестен, LLM обычно резервируют очень большие и расточительные длинные блоки непрерывной памяти размером с размер выходных данных модели. Секретный (на самом деле не секретный, у него открытый исходный код) соус – это алгоритм под названием PagedAttention, в котором они физически разделяют кэши ключ-значение, используемые LLM, на блоки фиксированной длины, короткие и динамически распределяемые. Динамическое назначение предотвращает ненужную трату памяти, позволяя большему количеству запросов помещаться в VRAM и, следовательно, повысить пропускную способность. На момент написания статьи, vLLM был принят в качестве обслуживающего решения многими крупными игроками, став стандартным обслуживающим решением.

Скрытые жемчужины: раскрываем длинный список библиотек Python 2023 года

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

Чтобы помочь вам сориентироваться в этой сокровищнице, мы аккуратно классифицировали эти библиотеки и свели их ключевые функции в сжатое однострочное описание.

Причинно-следственный вывод

  • CausalTune – библиотека для автоматической настройки и выбора для каузальных оценок.
  • CausalPy — библиотека Python для причинно-следственного вывода в квазиэкспериментальных условиях.
  • PyWhy-LLM — экспериментальная библиотека, интегрирующая возможности LLM для поддержки причинно-следственного анализа.

CLI LLM Tools

  • Chatblade — ChatGPT в командной строке, предоставляющий служебные методы для извлечения JSON или Markdown из ответов ChatGPT.
  • Elia – терминальный клиент ChatGPT, созданный с использованием Textual.
  • Gorilla CLI — позволяет взаимодействовать с командной строкой с помощью инструмента, ориентированного на пользователя. Просто укажите свою цель, и Gorilla CLI сгенерирует возможные команды для выполнения.
  • LLM — утилита CLI и библиотека Python для взаимодействия с большими языковыми моделями, как через удаленные API, так и модели, которые можно установить и запустить на вашем собственном компьютере.

Инструменты для программирования

  • Chainlit — “Потоковый интерфейс для ChatGPT”, позволяющий создавать пользовательские интерфейсы, подобные ChatGPT, поверх любого кода Python за считанные минуты!
  • pydistcheck — линтер, который обнаруживает проблемы с переносимостью в дистрибутивах пакетов Python (wheels и sdists).
  • pyxet – облегченный интерфейс для платформы XetHub, blob-хранилище с интерфейсом, подобным файловой системе, и возможностями git.

Компьютерное зрение

  • deepdoctection — управляет задачами извлечения документов и анализа макета документа с использованием моделей глубокого обучения.
  • FaceFusion — средство замены и улучшения интерфейса следующего поколения.
  • MetaSeg — упакованная версия модели Segment Anything (SAM).
  • VTracer — программное обеспечение с открытым исходным кодом для преобразования растровых изображений (таких как jpg и png) в векторную графику (svg).

Данные и возможности

  • Autolabel— помечайте, очищайте и обогащайте текстовые наборы данных с помощью LLM.
  • balance— простой рабочий процесс и методы для работы с предвзятыми выборками данных, когда требуется сделать из них вывод о некоторой целевой аудитории, представляющей интерес. Автор – META.
  • Bytewax – фреймворк Python, упрощающий обработку событий и потоков. Поскольку Bytewax объединяет возможности потоков и обработки событий Flink, Spark и Kafka Streams с дружественным и привычным интерфейсом Python, вы можете повторно использовать библиотеки Python, которые вы уже знаете и любите.
  • Featureform — хранилище функций. Превратите существующую инфраструктуру данных в хранилище функций.
  • Galactic инструменты очистки и редактирования массивов неструктурированных текстовых наборов данных.
  • Great Expectations — помогает группам обработки данных достичь общего понимания своих данных с помощью качественного тестирования, документации и профилирования.

Визуализация данных

  • PyGWalker — превратите фрейм данных pandas в пользовательский интерфейс в стиле Tableau для визуального анализа.
  • Vizro — инструментарий для создания модульных приложений визуализации данных. От McKinsey.

Встраивания и векторные базы данных

  • Epsilla – высокопроизводительная система управления векторными базами данных, ориентированная на масштабируемость, высокую производительность и экономичность векторного поиска.
  • LanceDB – база данных с открытым исходным кодом для векторного поиска, построенная с использованием постоянного хранилища, что значительно упрощает поиск, фильтрацию и управление вложениями.
  • SeaGOAT – инструмент локального поиска, который использует векторные встраивания для семантического поиска в вашей кодовой базе.
  • Text Embeddings Inference – невероятно быстрое решение для логического вывода моделей встраивания текста.

Федеративное обучение

  • Flower — дружественный федеративный фреймворк для обучения.
  • MetisFL – платформа федеративного обучения, которая позволяет разработчикам легко объединять свои рабочие процессы машинного обучения и обучать свои модели в распределенных хранилищах данных, даже не собирая данные в централизованном месте.

Генеративный искусственный интеллект

  • AudioCraft – библиотека для обработки и генерации звука с глубоким обучением. От Meta.
  • Image Eval – инструментарий для оценки ваших любимых моделей генерации изображений.
  • imaginAIry — генерация стабильных диффузионных изображений на Pythonic.
  • Modular Diffusion — библиотека Python для разработки и обучения ваших собственных моделей распространения с помощью PyTorch.
  • SapientML — генеративный AutoML для табличных данных.

Повышение точности LLM

  • AutoChain — создание легких, расширяемых и тестируемых агентов LLM
  • Auto-GPT — экспериментальная попытка с открытым исходным кодом сделать GPT-4 полностью автономным.
  • Autotrain-Advanced — более быстрое и простое обучение и развертывание самых современных моделей машинного обучения.
  • DSPy – фреймворк для решения сложных задач с использованием языковых моделей (LMs) и моделей поиска (RMS). DSPy объединяет методы запроса и точной настройки LMS, а также подходы к рассуждениям и расширению инструментов / поиска. Разработано Stanford NLP.
  • GPTCache — библиотека для создания семантического кэша для хранения ответов на запросы LLM.
  • Neural-Cherche — точная настройка нейронных моделей поиска, таких как Splade, ColBERT и SparseEmbed, для определенного набора данных и выполнение эффективного вывода на точно настроенном ретривере или ранкере.
  • MemGPT — Обучение управлению памятью LLMS для неограниченного контекста 📚🦙.
  • nanoGPT – самый простой и быстрый репозиторий для обучения / точной настройки GPT среднего размера.
  • Promptify — обычные подсказки, которые хорошо подходят для использования LLM в различных сценариях.
  • SymbolicAI — библиотека композиционного дифференцируемого программирования.
  • zep – хранилище долговременной памяти для приложений LLM / чат-ботов. Легко добавляйте соответствующие документы, память истории чатов и подробные пользовательские данные в подсказки вашего приложения LLM.

Создание приложения LLM

  • autollm — Отправка веб-приложений LLM на основе RAG за считанные секунды.
  • Chidoriv — реактивная среда выполнения для создания агентов искусственного интеллекта. Это обеспечивает основу для создания агентов искусственного интеллекта, которые являются реактивными, наблюдаемыми и надежными. Он поддерживает создание агентов с помощью Node.js, Python и Rust.
  • FastChat – открытая платформа для обучения, обслуживания и оценки чат-ботов на основе больших языковых моделей.
  • GPTRouter — плавное управление несколькими LLM и моделями изображений, ускорение ответов и обеспечение непрерывной надежности.
  • guidance — язык руководства для управления большими языковыми моделями.
  • haystack – комплексный NLP-фреймворк, позволяющий создавать NLP-приложения на базе LLM, трансформаторных моделей, векторного поиска и многого другого.
  • Instructor — взаимодействуйте с API вызова функций OpenAI из кода Python, со структурами / объектами Python.
  • Jsonformer — надежный способ генерации структурированного JSON из языковых моделей
  • Langroid — простое создание приложений на базе LLM. Настройте агенты, оснастите их дополнительными компонентами (LLM, векторным хранилищем и методами), назначьте им задачи и попросите их совместно решать проблему путем обмена сообщениями.
  • LLM App — создавайте инновационные приложения искусственного интеллекта, предоставляя ответы, подобные человеческим, на запросы пользователей в режиме реального времени на основе самых современных знаний, доступных в ваших источниках данных.
  • maccarone – блоки кода на Python, управляемые искусственным интеллектом, позволяют делегировать разделы вашей программы на Python во владение искусственного интеллекта.
  • magentic — подсказки LLM в виде простых функций Python с использованием декораторов.
  • Semantic Kernel — быстро и легко интегрируйте передовые технологии LLM в свои приложения.

Инструменты для программирования на LLM

  • aider – инструмент командной строки, который позволяет вам выполнять сопряжение программы с GPT-3.5 / GPT-4 для редактирования кода, хранящегося в вашем локальном репозитории git.
  • ChatGDB — Используйте возможности ChatGPT в отладчике GDB!
  • Dataherald — движок преобразования естественного языка в SQL, созданный для ответов на вопросы корпоративного уровня по структурированным данным.
  • FauxPilot — сервер второго пилота GitHub с открытым исходным кодом.
  • GPT Engineer — Укажите, что вы хотите, чтобы он создал, искусственный интеллект запросит разъяснения, а затем создаст это.
  • gpt-repository-loader – инструмент командной строки, преобразующий содержимое репозитория Git в текстовый формат, который может быть интерпретирован LLM.
  • ipython-gpt – расширение, позволяющее использовать ChatGPT непосредственно из Jupyter или оболочки IPython.
  • Jupyter AI — генеративное расширение AI для JupyterLab.
  • PlotAI — используйте ChatGPT для создания графиков на Python и Matplotlib непосредственно в вашем скрипте на Python или записной книжке.
  • sketch – помощник по написанию кода с искусственным интеллектом для пользователей pandas, который понимает контекст ваших данных, значительно повышая актуальность предложений.

Разработка LLM

  • distilabel — платформа обратной связи с искусственным интеллектом для масштабируемого выравнивания LLM.
  • language-model-arithmetic – управляемая генерация текста с помощью арифметики языковой модели.
  • Lit-GPT — доступная для взлома реализация современных LLM с открытым исходным кодом на основе nanoGPT. Поддерживает flash attention, 4-битное и 8-битное квантование, тонкую настройку LoRa и LLaMA-адаптеров, предварительную подготовку.
  • Lit-LLaMA — Реализация языковой модели LLaMA на основе nanoGPT. Поддерживает flash attention, 4-битное квантование Int8 и GPTQ, тонкую настройку LoRa и LLaMA-адаптеров, предварительную подготовку.
  • LMQL – язык запросов для программирования (больших) языковых моделей.

Эксперименты с LLM

  • ChainForge – среда визуального программирования с открытым исходным кодом для тестирования запросов к LLM.
  • Langflow — пользовательский интерфейс для LangChain, разработанный с использованием react-flow для обеспечения простого способа экспериментировать и создавать прототипы потоков.
  • PromptTools – набор автономных инструментов с открытым исходным кодом для экспериментов, тестирования и оценки LLM, векторных баз данных и подсказок.

Метрики LLM

  • DeepEval – простой в использовании фреймворк оценки с открытым исходным кодом для приложений LLM.
  • Fiddler Auditor – инструмент для оценки надежности языковых моделей.
  • ragas — платформа оценки для ваших конвейеров расширенной генерации данных (RAG).
  • tvalmetrics — метрики для оценки качества ответов ваших приложений расширенного поколения поиска (RAG).

Инструменты LLM

  • IncarnaMind — Подключайтесь и общайтесь с несколькими вашими документами (pdf и txt) через GPT и Claude LLMs за минуту.
  • Puncia — используя искусственный интеллект и другие инструменты, он расскажет вам все о веб-домене или поддомене.
  • scrapeghost — экспериментальная библиотека для очистки веб-сайтов с использованием GPT API OpenAI.

MLOps, LLMOps, DevOps

  • phoenix — ML Observability в записной книжке – выявляйте идеи, выявляйте проблемы, отслеживайте и точно настраивайте генеративные LLM, CV и табличные модели.

Мультимодальные инструменты искусственного интеллекта

  • LLaVAv — Настройка визуальных инструкций – Большой помощник по языку и зрению, созданный с учетом возможностей мультимодального уровня GPT-4.
  • Multimodal-Maestro — эффективное управление для больших мультимодальных моделей, таких как GPT-4 Vision, LLaVA или CogVLM.
  • Nougat — анализатор академических документов в формате PDF, который понимает математику LaTeX и таблицы.
  • UForm — Карманный мультимодальный искусственный интеллект для систем семантического поиска и рекомендаций.

Машинное обучение на Python

  • difflogic — Библиотека для сетей с дифференцируемыми логическими элементами от Феликса Петерсена.
  • TensorDict — класс, подобный словарю, который наследует свойства тензоров, такие как индексация, операции с формой, приведение к устройству и т.д. Основная цель TensorDict – сделать кодовые базы более удобочитаемыми и модульными за счет абстрагирования от специализированных операций.

Производительность и масштабируемость

  • AITemplate — фреймворк Python, который преобразует нейронную сеть в высокопроизводительный код CUDA / HIP C ++. Специализирован для вывода FP16 TensorCore (графический процессор NVIDIA) и MatrixCore (графический процессор AMD).
  • AutoGPTQ — простой в использовании пакет квантования LLMs с удобными API, основанный на алгоритме GPTQ.
  • composer — библиотека PyTorch, которая позволяет обучать нейронные сети быстрее, с меньшими затратами и более высокой точностью. Реализует более двух десятков методов ускорения, которые могут быть применены к вашему циклу обучения всего за несколько строк кода.
  • fastLLaMa — оболочка Python для выполнения логического вывода моделей LLaMA с использованием C ++.
  • hidet – компилятор глубокого обучения с открытым исходным кодом, написанный на Python. Поддерживает сквозную компиляцию DNN-моделей из PyTorch и ONNX в эффективные ядра cuda.
  • LPython – компилятор, который агрессивно оптимизирует код Python с аннотациями типов. У него есть несколько бэкэндов, включая LLVM, C, C ++ и WASM. Основной принцип LPython – скорость.
  • Petals — Запускайте языковые модели объемом более 100 B дома в стиле BitTorrent. Точная настройка и вывод до 10 раз быстрее, чем выгрузка.
  • TokenMonster — Определите токены, которые оптимально представляют набор данных при любом определенном размере словаря

Программирование на Python

  • Django Ninja CRUD — декларативные конечные точки CRUD и тесты с Django Ninja.
  • DotDict — простая библиотека Python, позволяющая создавать связанные атрибуты.
  • grai-core — упрощенная линейка данных. Grai упрощает понимание и тестирование взаимосвязи ваших данных в базах данных, хранилищах, API и информационных панелях. 
  • pypipe — инструмент командной строки Python pipe.
  • ReactPy — библиотека для создания пользовательских интерфейсов на Python без Javascript, созданная из компонентов, которые выглядят и ведут себя аналогично тем, что есть в ReactJS.
  • Reflex – фреймворк с открытым исходным кодом для создания веб-приложений на чистом Python.
  • scrat — кэширование результатов дорогостоящей функции, как lru_cache но с сохранением на диске.
  • svcs — контейнер зависимостей для Python SVCS
  • view.py — молниеносный современный веб-фреймворк. В настоящее время находится на очень высокой альфа-стадии разработки.

Оптимизация / Математика

  • Lineax – библиотека JAX для линейных решений и метода наименьших квадратов.
  • pyribs — простая библиотека Python для оптимизации качественного разнообразия.

Обучение с подкреплением

  • cheese— адаптивная человека в цикл эволюции языка и моделей встраивания.
  • imitation— Чистые реализации PyTorch алгоритмов имитации.
  • RL4LMs — модульная библиотека RL для точной настройки языковых моделей в соответствии с предпочтениями человека. От AI2.
  • trlX – распределенное обучение языковым моделям с обучением с подкреплением посредством обратной связи с человеком (RLHF).

Временные ряды

  • aeon – унифицированный фреймворк для машинного обучения с временными рядами.

Обработка видео

  • VapourSynth — фреймворк для обработки видео с учетом простоты.

+1
0
+1
5
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *