DeepPavlov untuk pengembang: # 2 pengaturan dan penyebaran

Semua artikel siklus:

1. DeepPavlov untuk pengembang: Alat NLP # 1 dan membuat bot obrolan
2. DeepPavlov untuk pengembang: # 2 pengaturan dan penyebaran

Halo semuanya! Pada artikel pertama dalam seri kami, kami mempelajari apa itu DeepPavlov, model perpustakaan apa yang siap digunakan tanpa pelatihan sebelumnya, dan bagaimana menjalankan server REST bersama mereka. Sebelum memulai pelatihan model, kita akan berbicara tentang berbagai opsi untuk menggunakan model DeepPavlov dan beberapa fitur pengaturan perpustakaan.

Kami setuju bahwa semua skrip untuk menjalankan pustaka dieksekusi di lingkungan Python dengan pustaka DeepPavlov terinstal (untuk instalasi, lihat artikel pertama , untuk virtualenv , baca di sini ). Contoh dalam artikel ini tidak memerlukan pengetahuan tentang sintaksis Python.



Mode interaksi dengan model NLP DeepPavlov


DeepPavlov saat ini mendukung 4 cara untuk berinteraksi dengan model NLP (baik pra-terlatih dan buatan pengguna):

  • Server REST (mode risapi ) adalah alat utama untuk mengintegrasikan model, itu dijelaskan secara rinci dalam artikel sebelumnya (dokumentasi) .
  • Server soket TCP atau UNIX (mode risesocket ) - jika diperlukan integrasi tingkat rendah (dokumentasi) .
  • Bot dalam Telegram (mode telegram ) - mode demo, memungkinkan Anda berinteraksi dengan model melalui Telegram (dokumentasi) .
  • Baris perintah (mode interaksi ) - mode demo dan debug, memungkinkan Anda untuk berinteraksi dengan model melalui baris perintah. Model dalam mode interaksi melalui baris perintah diinisialisasi dengan perintah berikut:
    python -m deeppavlov interact 


Parameter <config_path> (diperlukan dalam keempat mode) dapat mengambil path lengkap ke file konfigurasi model atau nama file konfigurasi tanpa ekstensi. Dalam kasus terakhir, konfigurasi model harus didaftarkan di perpustakaan.

Konfigurasi semua model yang disertakan dengan DeepPavlov terdaftar di perpustakaan. Daftar model yang disediakan dapat ditemukan di bagian MODEL dari dokumentasi DeepPavlov, konfigurasi mereka dapat ditemukan di sini .

Penggunaan GPU


Dalam salah satu mode di atas, model NLP diinisialisasi, yang didasarkan pada jaringan saraf. Ini membuat mereka sangat menuntut sumber daya komputasi. Anda dapat meningkatkan kinerja model dengan menggunakan GPU. Untuk melakukan ini, Anda akan memerlukan kartu grafis nVidia dengan memori video yang cukup (tergantung pada model yang Anda jalankan) dan versi kerangka kerja CUDA yang didukung. Anda dapat menemukan semua informasi yang diperlukan tentang peluncuran model DeepPavlov pada GPU di sini .

File pengaturan perpustakaan


Semua pengaturan perpustakaan terkandung dalam tiga file:

  • server_config.json - pengaturan untuk REST dan server soket, serta konektor Telegram
  • dialog_logger_config.json - pengaturan untuk mencatat permintaan ke model
  • log_config.json - pengaturan pencatatan pustaka

Secara default, file konfigurasi terletak di <deep_pavlov_root> / utils / settings , di mana <deep_pavlov_root> adalah direktori instalasi DeepPavlov (biasanya ini adalah lib / python <XX> / situs-paket / deeppavlov di lingkungan virtual). Menggunakan perintah

 python -m deeppavlov.settings 

Anda dapat menemukan jalur yang tepat ke direktori dengan file pengaturan. Anda juga dapat mengatur jalur ke direktori yang nyaman bagi Anda dengan menetapkannya dalam variabel lingkungan DP_SETTINGS_PATH . Setelah menjalankan perintah di atas (server dengan model DeepPavlov yang terlatih), file dari direktori default akan disalin ke direktori dari DP_SETTINGS_PATH . Tim

 python -m deeppavlov.settings -d 

mengatur ulang pengaturan dengan menyalin file pengaturan dari direktori default di atas file ke DP_SETTINGS_PATH .

Dari pengaturan DeepPavlov Anda harus memperhatikan:

  • server_config.json , parameter model_args_names:
    Dari artikel terakhir yang kita ingat:
    - argumen ke API REST DeepPavlov bernama;
    - model apa pun di DeepPavlov diidentifikasi dengan nama konfigurasinya.
    Jadi, nama argumen default untuk setiap model diambil dari konfigurasinya.

    Kami akan menganalisis struktur model konfigurasi secara rinci dalam artikel berikut, sekarang kami hanya mencatat bahwa nama argumen di API REST dapat didefinisikan ulang sebagai berikut:

     model_args_names: [โ€œarg_1_nameโ€, ..., โ€œarg_n_nameโ€] 

    Urutan nama argumen sesuai dengan urutan di mana argumen didefinisikan dalam konfigurasi model, string kosong sebagai nilai parameter model_args_names sesuai dengan nama default.
  • log_config.json:
    Harap dicatat bahwa untuk mencatat uvicorn, logger digunakan, yang dikonfigurasi secara terpisah. Anda dapat membaca tentang struktur konfigurasi modul Python logging di sini .

Menjalankan model pra-terlatih di Docker


Setiap model DeepPavlov yang telah dilatih sebelumnya dapat diluncurkan dalam wadah Docker dalam mode layanan REST. Instruksi lengkap ada di repositori kami di DockerHub: di sini untuk CPU, di sini untuk GPU. Model API dalam wadah sepenuhnya konsisten dengan deskripsi dari artikel sebelumnya.

Awan Deeppavlov


Untuk membuatnya lebih mudah untuk bekerja dengan model NLP yang sudah terlatih dari DeepPavlov, kami mulai menyediakannya dalam mode SaaS. Untuk menggunakan model, Anda harus mendaftar di layanan kami dan mendapatkan token di bagian Token di akun pribadi Anda. Dokumentasi API ada di bagian Info. Di bawah satu token, Anda dapat mengirim hingga 1000 permintaan ke model.

Saat ini, layanan ini diluncurkan dalam versi Alpha dan penggunaannya gratis. Selanjutnya, set dan format untuk penyediaan model akan diperluas sesuai dengan permintaan pengguna. Formulir permintaan dapat ditemukan di bagian bawah halaman Demo .

Model-model berikut sekarang tersedia di DeepPavlov Cloud:

  • Named Entity Recognition (multibahasa) - pengakuan entitas yang disebutkan;
  • Sentiment (RU) - klasifikasi nada suara dari teks;
  • SQuAD (multibahasa) - jawaban atas pertanyaan pada teks sebagai bagian dari teks ini.

Kesimpulan


Pada artikel ini, kami berkenalan dengan fitur konfigurasi dan penyebaran model DeepPavlov, belajar tentang gambar Docker DP dan kemungkinan akses gratis ke model DP sebagai SaaS.

Pada artikel selanjutnya, kami akan melatih model DeepPavlov sederhana pada dataset kami. Dan jangan lupa bahwa DeepPavlov memiliki forum - ajukan pertanyaan Anda tentang perpustakaan dan model. Terima kasih atas perhatian anda!

Source: https://habr.com/ru/post/id476772/


All Articles