Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pendekatan tradisional terhadap pembangunan sukar dijaga apabila menggunakan model pembelajaran mesin kompleks dalam pengeluaran. Pembangunan pada komputer riba atau mesin tempatan boleh menjadi lambat untuk melatih model pembelajaran mesin untuk jurutera pembelajaran yang mendalam. Hasilnya, kami biasanya menggunakan mesin cloud dengan perkakasan yang lebih kuat untuk melatih dan menjalankan model pembelajaran mesin kami. Ini adalah amalan yang baik kerana kita mengira pengiraan yang kompleks dan sebaliknya membuat permintaan AJAX seperti yang diperlukan. Dalam tutorial ini, kami akan membuat model pembelajaran mendalam yang terdahulu yang dinamakan Word2Vec tersedia untuk perkhidmatan lain dengan membina API REST dari bawah ke atas.
sudo
penggunaPenyisipan kata adalah perkembangan baru-baru ini dalam pemrosesan bahasa semula jadi dan pembelajaran mendalam yang telah merevolusikan kedua bidang kerana kemajuan yang pesat. Penyisipan kata pada dasarnya adalah vektor yang masing-masing sesuai dengan satu kata sehingga vektor bermaksud perkataan. Ini dapat ditunjukkan oleh fenomena tertentu seperti vektor untuk king - queen = boy - girl
. Vektor kata digunakan untuk membina segalanya dari mesin cadangan hingga bot sembang yang benar-benar memahami bahasa Inggeris.
Perkahwinan perkataan tidak rawak; ia dijana dengan melatih rangkaian saraf. Pelaksanaan embedding perkataan berkuasa baru-baru ini datang dari Google bernama Word2Vec yang dilatih dengan meramalkan kata-kata yang muncul di sebelah kata-kata lain dalam bahasa. Sebagai contoh, untuk perkataan "cat"
, rangkaian saraf akan meramalkan perkataan "kitten"
dan "feline"
. Intuisi kata-kata yang muncul berhampiran satu sama lain membolehkan kita meletakkannya di ruang vektor.
Walau bagaimanapun, dalam praktiknya, kita cenderung menggunakan model pra-terlatih syarikat-syarikat besar lain seperti Google untuk mempercepatkan prototaip dan mempermudah proses penyebaran. Dalam tutorial ini, kami akan memuat turun dan menggunakan perkahwinan perkataan Word2Vec Google yang terlatih. Kita boleh melakukan ini dengan menjalankan arahan berikut dalam direktori kerja kami.
wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude
Model embedding perkataan yang dimuat turun kami dalam .magnitude
format. Format ini membolehkan kami untuk mengkaji model dengan cekap menggunakan SQL, dan oleh itu format penyemakan optimum untuk pelayan pengeluaran. Oleh kerana kita perlu membaca .magnitude
format, kita akan memasang pymagnitude
pakej tersebut. Kami juga akan memasang flask
untuk kemudian menyampaikan ramalan pembelajaran mendalam yang dibuat oleh model.
pip3 install pymagnitude flask
Kami juga akan menambahnya kepada pelacak pergantungan kami dengan arahan berikut. Ini mewujudkan fail bernama requirements.txt
dan menyelamatkan perpustakaan Python kami supaya kami boleh memasangnya semula pada masa akan datang.
pip3 freeze > requirements.txt
Untuk memulakan, kami akan membuat fail untuk mengendalikan pembukaan dan pertanyaan perkahwinan perkataan.
touch model.py
Seterusnya, kami akan menambah garisan berikut model.py
untuk mengimport magnitud.
from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')
Kita boleh bermain-main dengan pymagnitude
pakej dan model pembelajaran mendalam dengan menggunakan query
kaedah ini, memberikan hujah untuk satu perkataan.
cat_vector = vectors.query('cat')
print(cat_vector)
Untuk inti API kami, kami akan menentukan fungsi untuk mengembalikan perbezaan makna antara dua perkataan. Ini adalah tulang belakang bagi kebanyakan penyelesaian pembelajaran mendalam untuk perkara seperti mesin cadangan (iaitu menunjukkan kandungan dengan perkataan yang serupa).
Kita boleh bermain-main dengan fungsi ini dengan menggunakan similarity
dan most_similar
fungsi.
print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))
Kami melaksanakan kalkulator keserupaan seperti berikut. Kaedah ini akan dipanggil oleh Flask API di bahagian seterusnya. Perhatikan bahawa fungsi ini mengembalikan nilai sebenar antara 0 dan 1.
def similarity(word1, word2):
return vectors.similarity(word1, word2)
Kami akan membuat pelayan kami dalam fail bernama service.py
dengan kandungan berikut. Kami mengimport flask
dan request
mengendalikan keupayaan pelayan kami dan kami mengimport similarity
enjin dari modul yang kami tulis sebelum ini.
from flask import Flask, request
from model import similarity
app = Flask(__name__)
@app.route("/", methods=['GET'])
def welcome():
return "Welcome to our Machine Learning REST API!"
@app.route("/similarity", methods=['GET'])
def similarity_route():
word1 = request.args.get("word1")
word2 = request.args.get("word2")
return str(similarity(word1, word2))
if __name__ == "__main__":
app.run(port=8000, debug=True)
Pelayan kami agak tulang yang telanjang, tetapi dengan mudah boleh dilanjutkan dengan membuat lebih banyak laluan menggunakan @app.route
penghias.
Kami boleh menjalankan pelayan Flask kami dengan menjalankan arahan berikut untuk mengaktifkan persekitaran maya kami, memasang pakej kami, dan menjalankan fail Python yang berkaitan.
source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py
Pelayan kami akan tersedia di localhost:8000
. Kami boleh menanyakan pangkalan data kami localhost:8000/similarity?word1=cat&word2=dog
dan melihat respons sama ada dalam pelayar kami atau melalui klien AJAX yang lain.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut