Retour au classement

deeppavlov/DeepPavlov

Pythondeeppavlov.ai

An open source library for deep learning end-to-end dialog systems and chatbots.

botnlpchatbotdialogue-systemsquestion-answeringchitchatslot-fillingintent-classificationentity-extractionnamed-entity-recognitiontensorflowdeep-learning
Croissance des étoiles
Étoiles
7k
Forks
1.2k
Croissance hebdomadaire
Issues
31
2k4k6k
déc. 2017oct. 2020sept. 2023juil. 2026
ArtefactsPyPIpip install deeppavlov
README

DeepPavlov 1.0

License Apache 2.0 Python 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 Downloads Static Badge Static Badge

DeepPavlov 1.0 is an open-source NLP framework built on PyTorch and transformers. DeepPavlov 1.0 is created for modular and configuration-driven development of state-of-the-art NLP models and supports a wide range of NLP model applications. DeepPavlov 1.0 is designed for practitioners with limited knowledge of NLP/ML.

name Description
⭐️ Demo Check out our NLP models in the online demo
📚 Documentation How to use DeepPavlov 1.0 and its features
🚀 Model List Find the NLP model you need in the list of available models
🪐 Contribution Guide Please read the contribution guidelines before making a contribution
🎛 Issues If you have an issue with DeepPavlov, please let us know
Forum Please let us know if you have a problem with DeepPavlov
📦 Blogs Read about our current development
🦙 Extended colab tutorials Check out the code tutorials for our models
🌌 Docker Hub Check out the Docker images for rapid deployment
👩‍🏫 Feedback Please leave us your feedback to make DeepPavlov better

Installation

  1. DeepPavlov supports Linux, Windows 10+ (through WSL/WSL2), MacOS (Big Sur+) platforms, Python 3.6, 3.7, 3.8, 3.9 and 3.10. Depending on the model used, you may need from 4 to 16 GB RAM.

  2. Create and activate a virtual environment:

    • Linux
    python -m venv env
    source ./env/bin/activate
    
  3. Install the package inside the environment:

    pip install deeppavlov
    

QuickStart

There is a bunch of great pre-trained NLP models in DeepPavlov. Each model is determined by its config file.

List of models is available on the doc page in the deeppavlov.configs (Python):

from deeppavlov import configs

When you're decided on the model (+ config file), there are two ways to train, evaluate and infer it:

GPU requirements

By default, DeepPavlov installs models requirements from PyPI. PyTorch from PyPI could not support your device CUDA capability. To run supported DeepPavlov models on GPU you should have CUDA compatible with used GPU and PyTorch version required by DeepPavlov models. See docs for details. GPU with Pascal or newer architecture and 4+ GB VRAM is recommended.

Command line interface (CLI)

To get predictions from a model interactively through CLI, run

python -m deeppavlov interact <config_path> [-d] [-i]
  • -d downloads required data - pretrained model files and embeddings (optional).
  • -i installs model requirements (optional).

You can train it in the same simple way:

python -m deeppavlov train <config_path> [-d] [-i]

Dataset will be downloaded regardless of whether there was -d flag or not.

To train on your own data you need to modify dataset reader path in the train config doc. The data format is specified in the corresponding model doc page.

There are even more actions you can perform with configs:

python -m deeppavlov <action> <config_path> [-d] [-i]
  • <action> can be
    • install to install model requirements (same as -i),
    • download to download model's data (same as -d),
    • train to train the model on the data specified in the config file,
    • evaluate to calculate metrics on the same dataset,
    • interact to interact via CLI,
    • riseapi to run a REST API server (see doc),
    • predict to get prediction for samples from stdin or from if -f <file_path> is specified.
  • <config_path> specifies path (or name) of model's config file
  • -d downloads required data
  • -i installs model requirements

Python

To get predictions from a model interactively through Python, run

from deeppavlov import build_model

model = build_model(<config_path>, install=True, download=True)

# get predictions for 'input_text1', 'input_text2'
model(['input_text1', 'input_text2'])

where

  • install=True installs model requirements (optional),
  • download=True downloads required data from web - pretrained model files and embeddings (optional),
  • <config_path> is model name (e.g. 'ner_ontonotes_bert_mult'), path to the chosen model's config file (e.g. "deeppavlov/configs/ner/ner_ontonotes_bert_mult.json"), or deeppavlov.configs attribute (e.g. deeppavlov.configs.ner.ner_ontonotes_bert_mult without quotation marks).

You can train it in the same simple way:

from deeppavlov import train_model 

model = train_model(<config_path>, install=True, download=True)

To train on your own data you need to modify dataset reader path in the train config doc. The data format is specified in the corresponding model doc page.

You can also calculate metrics on the dataset specified in your config file:

from deeppavlov import evaluate_model 

model = evaluate_model(<config_path>, install=True, download=True)

DeepPavlov also allows to build a model from components for inference using Python.

License

DeepPavlov is Apache 2.0 - licensed.

Citation

@inproceedings{savkin-etal-2024-deeppavlov,
    title = "DeepPavlov 1.0: Your Gateway to Advanced NLP Models Backed by Transformers and Transfer Learning",
    author = "Savkin Maksim and Voznyuk Anastasia and Ignatov Fedor and Korzanova Anna and Karpov Dmitry and Popov Alexander and Konovalov Vasily"
    editor = "Hernandez Farias and Delia Irazu and Hope Tom and Li Manling",
    booktitle = "Proceedings of the 2024 Conference on Empirical Methods in Natural Language Processing: System Demonstrations",
    month = nov,
    year = "2024",
    address = "Miami, Florida, USA",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.emnlp-demo.47",
    pages = "465--474",
    abstract = "We present DeepPavlov 1.0, an open-source framework for using Natural Language Processing (NLP) models by leveraging transfer learning techniques. DeepPavlov 1.0 is created for modular and configuration-driven development of state-of-the-art NLP models and supports a wide range of NLP model applications. DeepPavlov 1.0 is designed for practitioners with limited knowledge of NLP/ML. DeepPavlov is based on PyTorch and supports HuggingFace transformers. DeepPavlov is publicly released under the Apache 2.0 license and provides access to an online demo.",
}
Dépôts similaires
ccxt/ccxt

A unified trading API with more than 100 crypto exchanges and prediction markets in JavaScript / TypeScript / Python / C# / PHP / Go / Java

PythonPyPIMIT Licensealtcoinapi
docs.ccxt.com
43.4k8.8k
feder-cr/Jobs_Applier_AI_Agent_AIHawk

AIHawk aims to easy job hunt process by automating the job application process. Utilizing artificial intelligence, it enables users to apply for multiple jobs in a tailored way.

PythonPyPIGNU Affero General Public License v3.0automationbot
30k4.6k
python-telegram-bot/python-telegram-bot

We have made you a wrapper you can't refuse

PythonPyPIGNU General Public License v3.0pythontelegram
python-telegram-bot.org
29.3k6.1k
discordjs/discord.js

A powerful JavaScript library for interacting with the Discord API

TypeScriptnpmApache License 2.0discord-apidiscord
discord.js.org
26.8k4.1k
feder-cr/Jobs_Applier_AI_Agent

Auto_Jobs_Applier_AI_Agent aims to easy job hunt process by automating the job application process. Utilizing artificial intelligence, it enables users to apply for multiple jobs in an automated and personalized way.

PythonPyPIautomationbot
24.5k3.6k
wechaty/wechaty

Conversational RPA SDK for Chatbot Makers. Join our Discord: https://discord.gg/7q8NBZbQzt

TypeScriptnpmApache License 2.0wechatychatbot
wechaty.js.org
22.9k2.8k
wwebjs/whatsapp-web.js

A WhatsApp client library for NodeJS that connects through the WhatsApp Web browser app

JavaScriptnpmApache License 2.0whatsappwhatsapp-web
wwebjs.dev
22.2k5.1k
RasaHQ/rasa

💬 Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants

PythonPyPIApache License 2.0nlpmachine-learning
rasa.com/docs/rasa/
21.3k4.9k
hummingbot/hummingbot

Open source software that helps you create and deploy high-frequency crypto trading bots

PythonPyPIApache License 2.0cryptocurrencyarbitrage
hummingbot.org
19.2k4.8k
lss233/kirara-ai

🤖 可 DIY 的 多模态 AI 聊天机器人 | 🚀 快速接入 微信、 QQ、Telegram、等聊天平台 | 🦈支持DeepSeek、Grok、Claude、Ollama、Gemini、OpenAI | 工作流系统、网页搜索、AI画图、人设调教、虚拟女仆、语音对话 |

PythonPyPIGNU Affero General Public License v3.0chatgptopenai
kirara-docs.app.lss233.com
18.9k1.8k
InstaPy/InstaPy

📷 Instagram Bot - Tool for automated Instagram interactions

PythonPyPIGNU General Public License v3.0instagramclarifai
18k3.9k
leon-ai/leon

🧠 Leon is your open-source personal assistant.

TypeScriptnpmMIT Licenseleonpersonal-assistant
getleon.ai
17.4k1.5k