
MULTI_TACK_NLP adalah toolkit utilitas yang memungkinkan pengembang NLP untuk dengan mudah melatih dan menyimpulkan model tunggal untuk beberapa tugas. Kami mendukung berbagai format data untuk sebagian besar tugas NLU dan beberapa encoder berbasis transformator (mis. Bert, Distil-Bert, Albert, Roberta, XLNET dll.)
Untuk dokumentasi lengkap untuk perpustakaan ini, silakan merujuk ke dokumentasi
Sistem AI percakapan apa pun melibatkan membangun beberapa komponen untuk melakukan berbagai tugas dan pipa untuk menjahit semua komponen bersama -sama. Memberikan efektivitas baru-baru ini dari model berbasis transformator di NLP, sangat umum untuk membangun model berbasis transformator untuk menyelesaikan kasus penggunaan Anda. Tetapi memiliki beberapa model yang berjalan bersama untuk sistem AI percakapan dapat menyebabkan konsumsi sumber daya yang mahal, peningkatan latensi untuk prediksi dan membuat sistem sulit dikelola. Ini menimbulkan tantangan nyata bagi siapa saja yang ingin membangun sistem AI percakapan secara sederhana.
MULTI_TACK_NLP memberi Anda kemampuan untuk mendefinisikan beberapa tugas bersama -sama dan melatih model tunggal yang secara bersamaan mempelajari semua tugas yang ditentukan. Ini berarti seseorang dapat melakukan banyak tugas dengan latensi dan konsumsi sumber daya yang setara dengan satu tugas.
Untuk menggunakan multi-task-NLP, Anda dapat mengkloning repositori ke lokasi yang diinginkan pada sistem Anda dengan perintah terminal berikut.
$ cd /desired/location/
$ git clone https://github.com/hellohaptik/multi-task-NLP.git
$ cd multi-task-NLP
$ pip install -r requirements.txt Catatan:- Perpustakaan dibangun dan diuji menggunakan Python 3.7.3 . Disarankan untuk menginstal persyaratan di lingkungan virtual.
Panduan cepat untuk menunjukkan bagaimana model dapat dilatih untuk tugas NLU tunggal/ganda hanya dalam 3 langkah sederhana dan tanpa persyaratan untuk kode !!
Ikuti 3 langkah sederhana ini untuk melatih model multi-tugas Anda!
File Tugas adalah file format YAML di mana Anda dapat menambahkan semua tugas yang ingin Anda latih model multi-tugas.
TaskA :
model_type : BERT
config_name : bert-base-uncased
dropout_prob : 0.05
label_map_or_file :
- label1
- label2
- label3
metrics :
- accuracy
loss_type : CrossEntropyLoss
task_type : SingleSenClassification
file_names :
- taskA_train.tsv
- taskA_dev.tsv
- taskA_test.tsv
TaskB :
model_type : BERT
config_name : bert-base-uncased
dropout_prob : 0.3
label_map_or_file : data/taskB_train_label_map.joblib
metrics :
- seq_f1
- seq_precision
- seq_recall
loss_type : NERLoss
task_type : NER
file_names :
- taskB_train.tsv
- taskB_dev.tsv
- taskB_test.tsvUntuk mengetahui tentang parameter file tugas untuk membuat file tugas Anda, parameter file tugas.
Setelah mendefinisikan file tugas, jalankan perintah berikut untuk menyiapkan data.
$ python data_preparation.py
--task_file 'sample_task_file.yml'
--data_dir 'data'
--max_seq_len 50 Untuk mengetahui tentang skrip data_preparation.py dan argumennya, lihat menjalankan persiapan data.
Akhirnya Anda dapat memulai pelatihan menggunakan perintah berikut.
$ python train.py
--data_dir 'data/bert-base-uncased_prepared_data'
--task_file 'sample_task_file.yml'
--out_dir 'sample_out'
--epochs 5
--train_batch_size 4
--eval_batch_size 8
--grad_accumulation_steps 2
--log_per_updates 25
--save_per_updates 1000
--eval_while_train True
--test_while_train True
--max_seq_len 50
--silent True Untuk mengetahui tentang skrip train.py dan argumennya, rujuk kereta lari
Setelah Anda memiliki model multi-tugas yang dilatih pada tugas Anda, kami memberikan cara yang nyaman dan mudah untuk menggunakannya untuk mendapatkan prediksi pada sampel melalui pipa inferensi .
Untuk menjalankan inferensi pada sampel menggunakan model terlatih untuk mengatakan Taska, TaskB dan Taskc, Anda dapat mengimpor kelas InferPipeline dan memuat model multi-tugas yang sesuai dengan membuat objek kelas ini.
> >> from infer_pipeline import inferPipeline
> >> pipe = inferPipeline ( modelPath = 'sample_out_dir/multi_task_model.pt' , maxSeqLen = 50 ) Fungsi infer dapat dipanggil untuk mendapatkan prediksi untuk sampel input untuk tugas yang disebutkan.
> >> samples = [ [ 'sample_sentence_1' ], [ 'sample_sentence_2' ] ]
> >> tasks = [ 'TaskA' , 'TaskB' ]
> >> pipe . infer ( samples , tasks ) Untuk mengetahui tentang infer_pipeline , rujuk infer.
Di sini Anda dapat menemukan berbagai tugas AI percakapan sebagai contoh dan dapat melatih model multi-tugas dalam langkah-langkah sederhana yang disebutkan dalam buku catatan.
(Pengaturan: multi-tugas, jenis tugas: multipel)
Deteksi Inten (Jenis Tugas: Klasifikasi Kalimat Tunggal)
Query: I need a reservation for a bar in bangladesh on feb the 11th 2032
Intent: BookRestaurant
NER (Tipe Tugas: Pelabelan Urutan)
Query: ['book', 'a', 'spot', 'for', 'ten', 'at', 'a', 'top-rated', 'caucasian', 'restaurant', 'not', 'far', 'from', 'selmer']
NER tags: ['O', 'O', 'O', 'O', 'B-party_size_number', 'O', 'O', 'B-sort', 'B-cuisine', 'B-restaurant_type', 'B-spatial_relation', 'I-spatial_relation', 'O', 'B-city']
Deteksi Fragmen (Jenis Tugas: Klasifikasi Kalimat Tunggal)
Query: a reservation for
Label: fragment
Notebook :- intent_ner_fragment
Transform File :- Transform_file_snips
Tugas File :- Tasks_File_Snips
(Pengaturan: Single-Task, Jenis Tugas: Klasifikasi Pasangan Kalimat)
Query1: An old man with a package poses in front of an advertisement.
Query2: A man poses in front of an ad.
Label: entailment
Query1: An old man with a package poses in front of an advertisement.
Query2: A man poses in front of an ad for beer.
Label: non-entailment
Notebook :- Entailment_snli
Transform File :- Transform_file_snli
Tugas File :- Tasks_file_snli
(Pengaturan: Single-Task, Jenis Tugas: Klasifikasi Pasangan Kalimat)
Query: how much money did evander holyfield make
Context: Evander Holyfield Net Worth. How much is Evander Holyfield Worth? Evander Holyfield Net Worth: Evander Holyfield is a retired American professional boxer who has a net worth of $500 thousand. A professional boxer, Evander Holyfield has fought at the Heavyweight, Cruiserweight, and Light-Heavyweight Divisions, and won a Bronze medal a the 1984 Olympic Games.
Label: answerable
Notebook :- jawabanbility_detection_msmarco
Transform File :- transform_file_answerability
Tugas File :- Tasks_File_answerability
(Pengaturan: tugas tunggal, jenis tugas: klasifikasi kalimat tunggal)
Query: what's the distance between destin florida and birmingham alabama?
Label: NUMERIC
Query: who is suing scott wolter
Label: PERSON
Notebook :- query_type_detection
Transform File :- Transform_File_QueryType
Tugas File :- Tasks_File_QueryType
(Pengaturan: multi-tugas, tipe tugas: pelabelan urutan)
Query: ['Despite', 'winning', 'the', 'Asian', 'Games', 'title', 'two', 'years', 'ago', ',', 'Uzbekistan', 'are', 'in', 'the', 'finals', 'as', 'outsiders', '.']
NER tags: ['O', 'O', 'O', 'I-MISC', 'I-MISC', 'O', 'O', 'O', 'O', 'O', 'I-LOC', 'O', 'O', 'O', 'O', 'O', 'O', 'O']
POS tags: ['I-PP', 'I-VP', 'I-NP', 'I-NP', 'I-NP', 'I-NP', 'B-NP', 'I-NP', 'I-ADVP', 'O', 'I-NP', 'I-VP', 'I-PP', 'I-NP', 'I-NP', 'I-SBAR', 'I-NP', 'O']
Notebook :- ner_pos_tagging_conll
Transformasi File :- Transform_file_conll
Tugas File :- Tasks_File_Conll
(Pengaturan: tugas tunggal, jenis tugas: klasifikasi kalimat tunggal)
Query: What places have the oligarchy government ?
Label: well-formed
Query: What day of Diwali in 1980 ?
Label: not well-formed
Notebook :- Query_correctness
Transformasi File :- Transform_File_Query_Correctness
Tugas File :- Tasks_File_Query_Correctness
(Pengaturan: tugas tunggal, jenis tugas: klasifikasi kalimat tunggal)
Query1: What is the most used word in Malayalam?
Query2: What is meaning of the Malayalam word ""thumbatthu""?
Label: not similar
Query1: Which is the best compliment you have ever received?
Query2: What's the best compliment you've got?
Label: similar
Notebook :- Query_similarity
Transform File :- transform_file_qqp
Tugas File :- Tasks_File_QQP
(Pengaturan: tugas tunggal, jenis tugas: klasifikasi kalimat tunggal)
Review: What I enjoyed most in this film was the scenery of Corfu, being Greek I adore my country and I liked the flattering director's point of view. Based on a true story during the years when Greece was struggling to stand on her own two feet through war, Nazis and hardship. An Italian soldier and a Greek girl fall in love but the times are hard and they have a lot of sacrifices to make. Nicholas Cage looking great in a uniform gives a passionate account of this unfulfilled (in the beginning) love. I adored Christian Bale playing Mandras the heroine's husband-to-be, he looks very very good as a Greek, his personality matched the one of the Greek patriot! A true fighter in there, or what! One of the movies I would like to buy and keep it in my collection...for ever!
Label: positive
Notebook :- IMDB_SENTENTENT_ANALYSIS
Transform File :- Transform_file_imdb
Tugas File :- Tasks_File_IMDB