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.
sudopenggunaPenyisipan 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 .magnitudeformat. 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 .magnitudeformat, kita akan memasang pymagnitudepakej tersebut. Kami juga akan memasang flaskuntuk 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.txtdan 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.pyuntuk mengimport magnitud.
from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')
Kita boleh bermain-main dengan pymagnitudepakej dan model pembelajaran mendalam dengan menggunakan querykaedah 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 similaritydan 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.pydengan kandungan berikut. Kami mengimport flaskdan requestmengendalikan keupayaan pelayan kami dan kami mengimport similarityenjin 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.routepenghias.
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=dogdan melihat respons sama ada dalam pelayar kami atau melalui klien AJAX yang lain.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
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 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.
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.
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?
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