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

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

Инструменты

  • langdetect — старенький определитель языка.
  • lingua-py — тоже определитель языка, но явно активно поддерживаемый.
  • rusyll — инструмент для токенизации русских слов по слогам.
  • ThunderSVM — SVM на спидах GPU и multiCPU. Кто обучал SVM на scikit-learning, тот поймет.
  • Emoji — пакет для работы с эмоджи. Может переводить названия в эмоджи и наоборот (:thumbs_up: → 👍).
  • TextDescriptives — надстройка над spaCy, которая рассчитывает большое количество классических показателей для текста.
  • Titanis — тоже самое, что и предыдущее, но только для русского языка. Включает редкую штуку — дискурсивный анализ.  

Фреймворки

  • Human Learn — scikit-совместимый пакет, который позволяет создавать руловые классификаторы. Киллер фича — можно нарисовать границу принятия решений. А еще есть интерактивка для анализа. Конечно, пакет больше для табличного анализа данных, но, кмк, для поиска слабых правил для создания предразметки сойдет.
  • mlxtend — набор разных инструментов для анализа данных. Почти полностью перекрывается scikit-learn, кроме алгоритмов майнинга паттернов.
  • cleanlab — библиотека для читски датасетов. Ребята мощные, с кучей статей по этой теме. Руки пока так и не дошли самому попробовать.
  • Torch-Pruning — серьезная библиотека для прунинга сеток.
  • DataDreamer — фреймворк на случай, если нужно сделать синтетику через БЯМ, обучить БЯМ или просто с затравками поработать. Видимо для тех случаев, когда LangChain использовать через чур.
  • EasyInstruct — фреймворк для работы с инструктивными датасетами. Содержит несколько методов синтеза и отбора таких датасетов. Естественно, имеется возможность подключить известные БЯМ через API. Есть модуль для работы с затравками. Схож с DataDreemer.
  • LLaMA-Factory — фреймворк для обучения Ллам и не только. Поддерживает пару десятков модели, из коробки можно подтянуть известные датасеты для разных задач, реализованы разные варианты PEFT.

Платформы

  • Potato — инструмент для разметки. Делал на него обзор здесь (https://t.me/yet_another_nlp_notes/31).
  • DataLab — платформа для обработки, анализа и даже учета данных. Включает web-интерфейс для просмотра датасетов. Последнее обновление только было год назад.
  • SMART — платформа разметки. Включает колаборативную разметку, активное обучение и панель админа. Все это из коробки. Как я понял, разметка только для текста.
  • Eevee — небольшая платформа разметки под задачи классификации, NER и seq2seq. Написана на JS (Vue). Удивило, что платформу можно установить как отдельное приложение прямо из браузера. Если у вас нет сервера, чтобы посадить всех разметчиков, то эта платформа выглядит как вариант. Как оно устанавливается? При помощи технологии Progressive Web Application. У нее есть проблемы, из-за чего через Safari и Mozilla установить не получится, но через хромоподобные браузеры — запросто. А поскольку семейство хромовых самый популярный браузер, то вопрос отпадает сам собой.
  • INCEpTION — платформа разметки текстов на NER, NEL, связи и т.д. Позиционируется как интеллектуальная, с заточкой под knowladge managment.

Разное

  • minGPT — минимальная имплементация GPT от Андрея Карпатого. Для образовательных целей.
  • comparing-corpora — ресерчекий код с разными метриками для сравнения корпусов. Читать обзора статьи здесь (https://t.me/yet_another_nlp_notes/15).
  • ruformers — список популярных открытых базовых моделей на основе трансформеров для решения задач по автоматической обработке русского языка.
  • russian_paraphrasers — ресерческая репа с моделями перефраз и кодом для их запуска.