วิธีสร้าง Deep REST API ด้วย Word2Vec และ Flask

แนวทางการพัฒนาแบบดั้งเดิมนั้นยากที่จะรักษาเมื่อใช้โมเดลการเรียนรู้ของเครื่องที่ซับซ้อนในการผลิต การพัฒนาบนแล็ปท็อปหรือเครื่องในท้องถิ่นอาจช้าในการฝึกอบรมรูปแบบการเรียนรู้ของเครื่องสำหรับวิศวกรการเรียนรู้ลึก เป็นผลให้เรามักจะใช้ประโยชน์จากเครื่องคลาวด์ที่มีฮาร์ดแวร์ที่มีประสิทธิภาพมากขึ้นในการฝึกอบรมและใช้รูปแบบการเรียนรู้ของเครื่องของเรา นี่เป็นแนวปฏิบัติที่ดีเนื่องจากเราสรุปการคำนวณที่ซับซ้อนและทำการร้องขอ AJAX ตามความจำเป็น ในบทช่วยสอนนี้เราจะทำให้รูปแบบการเรียนรู้ลึกที่ได้รับการฝึกฝนมาก่อนชื่อ Word2Vec พร้อมใช้งานสำหรับบริการอื่น ๆ โดยการสร้าง REST API ขึ้นมาใหม่

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์เซิร์ฟเวอร์ Ubuntu 16.04 ที่มี RAM อย่างน้อย 4GB สำหรับการทดสอบและการพัฒนาคุณสามารถเลือกอินสแตนซ์ที่มี 4GB RAM
  • การทำความเข้าใจเกี่ยวกับวิธีใช้ระบบปฏิบัติการ Linux เพื่อสร้าง / นำทาง / แก้ไขโฟลเดอร์และไฟล์
  • sudoผู้ใช้

Word Embeddings คืออะไร?

Word embeddings เป็นการพัฒนาล่าสุดในการประมวลผลภาษาธรรมชาติและการเรียนรู้เชิงลึกที่ปฏิวัติทั้งสองสาขาเนื่องจากความก้าวหน้าอย่างรวดเร็ว คำว่า embeddings เป็นหลักเวกเตอร์ที่แต่ละคนตรงกับคำเดียวที่เวกเตอร์หมายถึงคำ king - queen = boy - girlนี้สามารถแสดงให้เห็นถึงปรากฏการณ์บางอย่างเช่นเวกเตอร์สำหรับ เวกเตอร์คำใช้เพื่อสร้างทุกสิ่งจากเอนจิ้นการแนะนำไปจนถึงบอทแชทที่เข้าใจภาษาอังกฤษได้จริง

การใส่คำใน Word ไม่ใช่การสุ่ม พวกมันถูกสร้างขึ้นโดยการฝึกอบรมโครงข่ายประสาทเทียม การฝังคำที่มีประสิทธิภาพเมื่อเร็ว ๆ นี้มาจาก Google ชื่อ Word2Vec ซึ่งได้รับการฝึกฝนโดยการคาดการณ์คำที่ปรากฏถัดจากคำอื่น ๆ ในภาษา ยกตัวอย่างเช่นคำว่า"cat"เครือข่ายประสาทจะคาดการณ์คำและ"kitten" "feline"สัญชาตญาณของคำที่ปรากฎอยู่ใกล้กันทำให้เราสามารถวางคำเหล่านั้นในปริภูมิเวกเตอร์

อย่างไรก็ตามในทางปฏิบัติเรามักจะใช้โมเดลที่ผ่านการฝึกอบรมมาก่อนของ บริษัท ขนาดใหญ่อื่น ๆ เช่น Google เพื่อสร้างต้นแบบอย่างรวดเร็วและทำให้กระบวนการปรับใช้ง่ายขึ้น ในบทช่วยสอนนี้เราจะดาวน์โหลดและใช้งาน Word2Vec ของคำศัพท์ก่อนแต่งงาน เราสามารถทำได้โดยใช้คำสั่งต่อไปนี้ในไดเรกทอรีการทำงานของเรา

wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude

การติดตั้งแพคเกจขวดและขนาด

รูปแบบการฝังคำที่เราดาวน์โหลดนั้นอยู่ใน.magnitudeรูปแบบ รูปแบบนี้ช่วยให้เราสามารถสืบค้นรูปแบบได้อย่างมีประสิทธิภาพโดยใช้ SQL และเป็นรูปแบบการฝังที่เหมาะสมที่สุดสำหรับเซิร์ฟเวอร์ที่ใช้งานจริง เนื่องจากเราจำเป็นต้องอ่าน.magnitudeรูปแบบเราจะติดตั้งpymagnitudeแพคเกจ นอกจากนี้เราจะติดตั้งflaskเพื่อให้บริการการคาดการณ์การเรียนรู้เชิงลึกที่ทำโดยโมเดลในภายหลัง

pip3 install pymagnitude flask

เราจะเพิ่มลงในตัวติดตามการพึ่งพาของเราด้วยคำสั่งดังต่อไปนี้ สิ่งนี้จะสร้างชื่อไฟล์requirements.txtและบันทึกไลบรารี Python ของเราเพื่อให้เราสามารถติดตั้งใหม่ได้ในภายหลัง

pip3 freeze > requirements.txt

การสอบถามรุ่น Word2Vec

ในการเริ่มต้นเราจะสร้างไฟล์เพื่อจัดการการเปิดและการสืบค้นคำว่า embeddings

touch model.py

ต่อไปเราจะเพิ่มบรรทัดต่อไปนี้model.pyเพื่อนำเข้าขนาด

from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')

เราสามารถเล่นกับpymagnitudeแพ็คเกจและโมเดลการเรียนรู้แบบลึกโดยใช้queryวิธีนี้เป็นอาร์กิวเมนต์สำหรับคำศัพท์

cat_vector = vectors.query('cat')
print(cat_vector)

สำหรับแกนกลางของ API ของเราเราจะกำหนดฟังก์ชั่นเพื่อคืนความแตกต่างในความหมายระหว่างสองคำ นี่คือกระดูกสันหลังสำหรับโซลูชั่นการเรียนรู้ที่ลึกซึ้งที่สุดสำหรับสิ่งต่าง ๆ เช่นเครื่องมือแนะนำ (เช่นการแสดงเนื้อหาที่มีคำคล้ายกัน)

เราสามารถเล่นกับฟังก์ชั่นนี้โดยใช้similarityและmost_similar ฟังก์ชั่น

print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))

เราใช้เครื่องคำนวณความเหมือนกันดังนี้ วิธีการนี้จะถูกเรียกใช้โดย Flask API ในส่วนถัดไป โปรดทราบว่าฟังก์ชั่นนี้จะคืนค่าจริงระหว่าง 0 ถึง 1

def similarity(word1, word2):
    return vectors.similarity(word1, word2)

การสร้าง REST API

เราจะสร้างเซิร์ฟเวอร์ของเราในไฟล์ชื่อที่service.pyมีเนื้อหาดังต่อไปนี้ เรานำเข้าflaskและrequestจัดการกับความสามารถของเซิร์ฟเวอร์ของเราและเรานำเข้าsimilarityโปรแกรมจากโมดูลที่เราเขียนไว้ก่อนหน้านี้

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)

เซิร์ฟเวอร์ของเราค่อนข้างกระดูก แต่สามารถขยายได้อย่างง่ายดายโดยการสร้างเส้นทางมากขึ้นโดยใช้@app.routeมัณฑนากร

ทำการโทร API

เราสามารถเรียกใช้เซิร์ฟเวอร์ Flask ของเราได้โดยการเรียกใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งานสภาพแวดล้อมเสมือนจริงของเราติดตั้งแพ็คเกจและเรียกใช้ไฟล์ Python ที่เกี่ยวข้อง

source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py

localhost:8000เซิร์ฟเวอร์ของเราจะสามารถใช้ได้ที่ เราสามารถสืบค้นฐานข้อมูลของเราที่localhost:8000/similarity?word1=cat&word2=dogและดูการตอบสนองทั้งในเบราว์เซอร์ของเราหรือผ่านไคลเอนต์ AJAX อื่น

ฝากความเห็น

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true