Di bawah ini adalah contoh pencarian kerja:
BERT-Base, Tanpa Casing | 12-lapisan, 768-tersembunyi, 12-kepala, parameter 110M |
BERT-Besar, Tanpa Casing | 24 lapisan, 1024 tersembunyi, 16 kepala, 340 juta parameter |
BERT-Base, Berkotak | 12-lapisan, 768-tersembunyi, 12-kepala, parameter 110M |
BERT-Besar, Berselubung | 24 lapisan, 1024 tersembunyi, 16 kepala, 340 juta parameter |
BERT-Base, Casing Multibahasa (Baru) | 104 bahasa, 12 lapisan, 768 tersembunyi, 12 kepala, 110 juta parameter |
BERT-Base, Casing Multibahasa (Lama) | 102 bahasa, 12 lapisan, 768 tersembunyi, 12 kepala, 110 juta parameter |
BERT-Base, Cina | Cina Sederhana dan Tradisional, 12-lapisan, 768-tersembunyi, 12-kepala, parameter 110M |
$ wget https://storage.googleapis.com/bert_models/2018_10_18/cased_L-12_H-768_A-12.zip
$ unzip cased_L-12_H-768_A-12.zip
Anda perlu menetapkan model BERT yang telah dilatih sebelumnya dan nama indeks Elasticsearch sebagai variabel lingkungan:
$ export PATH_MODEL=./cased_L-12_H-768_A-12
$ export INDEX_NAME=jobsearch
$ docker-compose up
PERHATIAN : Jika memungkinkan, tetapkan memori tinggi (lebih dari 8GB
) ke konfigurasi memori Docker karena container BERT memerlukan memori tinggi.
Anda dapat menggunakan API pembuatan indeks untuk menambahkan indeks baru ke klaster Elasticsearch. Saat membuat indeks, Anda dapat menentukan hal berikut:
Misalnya, jika Anda ingin membuat indeks jobsearch
dengan kolom title
, text
dan text_vector
, Anda dapat membuat indeks dengan perintah berikut:
$ python example/create_index.py --index_file=example/index.json --index_name=jobsearch
# index.json
{
" settings " : {
" number_of_shards " : 2,
" number_of_replicas " : 1
},
" mappings " : {
" dynamic " : " true " ,
" _source " : {
" enabled " : " true "
},
" properties " : {
" title " : {
" type " : " text "
},
" text " : {
" type " : " text "
},
" text_vector " : {
" type " : " dense_vector " ,
" dims " : 768
}
}
}
}
PERHATIAN : Nilai dims
dari text_vector
harus cocok dengan dims model BERT yang telah dilatih sebelumnya.
Setelah Anda membuat indeks, Anda siap mengindeks beberapa dokumen. Intinya di sini adalah mengubah dokumen Anda menjadi vektor menggunakan BERT. Vektor yang dihasilkan disimpan di kolom text_vector
. Mari ubah data Anda menjadi dokumen JSON:
$ python example/create_documents.py --data=example/example.csv --index_name=jobsearch
# example/example.csv
" Title " , " Description "
" Saleswoman " , " lorem ipsum "
" Software Developer " , " lorem ipsum "
" Chief Financial Officer " , " lorem ipsum "
" General Manager " , " lorem ipsum "
" Network Administrator " , " lorem ipsum "
Setelah skrip selesai, Anda bisa mendapatkan dokumen JSON seperti berikut:
# documents.jsonl
{ "_op_type" : "index" , "_index" : "jobsearch" , "text" : "lorem ipsum" , "title" : "Saleswoman" , "text_vector" : [...]}
{ "_op_type" : "index" , "_index" : "jobsearch" , "text" : "lorem ipsum" , "title" : "Software Developer" , "text_vector" : [...]}
{ "_op_type" : "index" , "_index" : "jobsearch" , "text" : "lorem ipsum" , "title" : "Chief Financial Officer" , "text_vector" : [...]}
...
Setelah mengonversi data menjadi JSON, Anda dapat menambahkan dokumen JSON ke indeks yang ditentukan dan membuatnya dapat dicari.
$ python example/index_documents.py
Kunjungi http://127.0.0.1:5000.