วิธีสร้าง 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 อื่น



Leave a Comment

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

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน