Deepqa dibangun di atas Keras. Kami telah memutuskan bahwa Pytorch adalah platform yang lebih baik untuk penelitian NLP. Kami menulis ulang Deepqa ke dalam perpustakaan Pytorch bernama Allennlp. Tidak akan ada lagi pengembangan Deepqa. Tapi, kami sangat bersemangat tentang Allennlp - jika Anda melakukan pembelajaran mendalam untuk pemrosesan bahasa alami, Anda harus memeriksanya!
Deepqa adalah perpustakaan untuk melakukan tugas NLP tingkat tinggi dengan pembelajaran mendalam, khususnya berfokus pada berbagai jenis pertanyaan pertanyaan. Deepqa dibangun di atas keras dan tensorflow, dan dapat dianggap sebagai antarmuka sistem ini yang membuat NLP lebih mudah.
Secara khusus, perpustakaan ini memberikan manfaat berikut daripada keras biasa / tensorflow:
Deepqa dibangun menggunakan Python 3. Cara termudah untuk mengatur lingkungan yang kompatibel adalah dengan menggunakan conda. Ini akan mengatur lingkungan virtual dengan versi tepat Python yang digunakan untuk pengembangan bersama dengan semua dependensi yang diperlukan untuk menjalankan DeepQA.
Unduh dan instal Conda.
Buat lingkungan Conda dengan Python 3.
conda create -n deep_qa python=3.5
Sekarang aktifkan lingkungan Conda.
source activate deep_qa
Pasang dependensi yang diperlukan.
./scripts/install_requirements.sh
Atur PYTHONHASHSEED untuk percobaan yang berulang.
export PYTHONHASHSEED=2157
Anda sekarang harus dapat menguji instalasi Anda dengan pytest -v . Selamat! Anda sekarang memiliki lingkungan pengembangan untuk Deep_QA yang menggunakan TensorFlow dengan dukungan CPU. (Untuk dukungan GPU, lihat persyaratan.txt untuk informasi tentang cara menginstal tensorflow-gpu ).
Untuk melatih atau mengevaluasi model menggunakan klon repositori DeepQA, titik masuk yang disarankan adalah menggunakan skrip run_model.py . Argumen pertama untuk skrip itu adalah file parameter, yang dijelaskan lebih lanjut di bawah ini. Argumen kedua menentukan perilaku, baik melatih model atau mengevaluasi model terlatih terhadap dataset uji. Opsi yang valid saat ini untuk argumen kedua adalah train dan test (menghilangkan argumen sama dengan train lewat).
File Parameter Menentukan kelas model yang Anda gunakan, model hyperparameters, detail pelatihan, file data, detail generator data, dan banyak hal lainnya. Anda dapat melihat contoh file parameter di direktori contoh. Anda bisa mendapatkan gagasan tentang parameter apa yang tersedia dengan melihat dokumentasi.
Sebenarnya melatih model akan memerlukan file input, yang perlu Anda berikan. Kami memiliki perpustakaan pendamping, Eksperimen DeepQA, yang awalnya dirancang untuk menghasilkan file input dan menjalankan percobaan, dan dapat digunakan untuk menghasilkan file data yang diperlukan untuk sebagian besar tugas yang kami miliki untuk model. Kami bergerak ke arah menempatkan kode pemrosesan data langsung ke DeepQA, sehingga eksperimen DeepQA tidak diperlukan, tetapi untuk saat ini, mendapatkan file data pelatihan dalam format yang tepat paling mudah dilakukan dengan eksperimen DeepQA.
Jika Anda menggunakan DeepQa sebagai perpustakaan dalam kode Anda sendiri, masih mudah untuk menjalankan model Anda. Alih -alih menggunakan skrip run_model.py untuk melakukan pelatihan/evaluasi, Anda dapat melakukannya sendiri sebagai berikut:
from deep_qa import run_model, evaluate_model, load_model, score_dataset
# Train a model given a json specification
run_model("/path/to/json/parameter/file")
# Load a model given a json specification
loaded_model = load_model("/path/to/json/parameter/file")
# Do some more exciting things with your model here!
# Get predictions from a pre-trained model on some test data specified in the json parameters.
predictions = score_dataset("/path/to/json/parameter/file")
# Compute your own metrics, or do beam search, or whatever you want with the predictions here.
# Compute Keras' metrics on a test dataset, using a pre-trained model.
evaluate_model("/path/to/json/parameter/file", ["/path/to/data/file"])
Sisa pedoman penggunaan, contoh, dll., Sama seperti saat bekerja di klon repositori.
Untuk mengimplementasikan model baru di DeepQA, Anda perlu subkelas TextTrainer . Ada dokumentasi tentang apa yang diperlukan untuk ini; Lihat secara khusus bagian metode abstrak. Untuk contoh sederhana dari model yang berfungsi penuh, lihat tagger urutan sederhana, yang memiliki sekitar 20 baris kode implementasi aktual.
Untuk melatih, memuat, dan mengevaluasi model yang telah Anda tulis sendiri, cukup berikan argumen tambahan ke fungsi di atas dan hapus parameter model_class dari spesifikasi JSON Anda. Misalnya:
from deep_qa import run_model
from .local_project import MyGreatModel
# Train a model given a json specification (without a "model_class" attribute).
run_model("/path/to/json/parameter/file", model_class=MyGreatModel)
Jika Anda melakukan tugas baru, atau varian baru dari tugas dengan spesifikasi input/output yang berbeda, Anda mungkin juga perlu menerapkan jenis Instance . Instance menangani data membaca dari file dan mengubahnya menjadi array yang tidak bisa digunakan untuk pelatihan dan evaluasi. Ini hanya perlu terjadi sekali untuk setiap spesifikasi input/output.
Deepqa memiliki implementasi metode canggih untuk berbagai tugas. Berikut beberapa dari mereka:
Kode ini memungkinkan eksperimen yang mudah dengan dataset berikut:
Perhatikan bahwa kode pemrosesan data untuk sebagian besar ini hidup dalam eksperimen DeepQA.
Jika Anda menggunakan kode ini dan berpikir sesuatu dapat ditingkatkan, permintaan tarik sangat disambut. Membuka masalah juga baik -baik saja, tetapi kami dapat merespons lebih cepat untuk menarik permintaan.
Kode ini dirilis berdasarkan ketentuan lisensi Apache 2.