รหัสบางอย่างสำหรับการสร้างแบบจำลองภาษากับ Keras โดยเฉพาะอย่างยิ่งสำหรับงานตอบคำถาม ฉันเขียนโพสต์บล็อกที่ยาวมากซึ่งอธิบายว่างานนี้มีจำนวนมากซึ่งสามารถพบได้ที่นี่
attention_lstm.py : LSTM ที่ได้รับความสนใจจากหนึ่งในเอกสารที่อ้างถึงในโพสต์บล็อกและอื่น ๆ แอปพลิเคชั่นหนึ่งใช้สำหรับคำบรรยายภาพ มันเริ่มต้นด้วยเวกเตอร์ความสนใจซึ่งให้ส่วนประกอบความสนใจสำหรับเครือข่ายประสาทinsurance_qa_eval.py : กรอบการประเมินผลสำหรับชุดข้อมูล InsuranceQa เพื่อให้ได้การทำงานนี้ให้โคลนที่เก็บข้อมูลและตั้งค่าตัวแปรสภาพแวดล้อม INSURANCE_QA เป็นที่เก็บโคลน การเปลี่ยน config จะปรับวิธีการฝึกอบรมแบบจำลองkeras-language-model.py : คลาส LanguageModel ใช้การตั้งค่า config เพื่อสร้างรูปแบบการฝึกอบรมและรูปแบบการทดสอบ โมเดลสามารถได้รับการฝึกฝนโดยการผ่านเวกเตอร์คำถามคำตอบความจริงพื้นดินเวกเตอร์และเวกเตอร์คำตอบที่ไม่ดีเพื่อให้ fit จากนั้น predict คำนวณความคล้ายคลึงกันระหว่างคำถามและคำตอบ แทนที่วิธี build ด้วยโมเดลภาษาใดก็ตามที่คุณต้องการได้รับแบบจำลองที่ฝึกได้ ตัวอย่างมีให้ที่ด้านล่างรวมถึง EmbeddingModel , ConvolutionModel และ RecurrentModel # Install Keras (may also need dependencies)
git clone https://github.com/fchollet/keras
cd keras
sudo python setup.py install
# Clone InsuranceQA dataset
git clone https://github.com/codekansas/insurance_qa_python
export INSURANCE_QA= $( pwd ) /insurance_qa_python
# Run insurance_qa_eval.py
git clone https://github.com/codekansas/keras-language-modeling
cd keras-language-modeling/
python insurance_qa_eval.pyหรือฉันเขียนสคริปต์เพื่อเริ่มต้นบนอินสแตนซ์ของ Google Cloud Platform (Ubuntu 16.04) ซึ่งสามารถเรียกใช้ได้ผ่าน
cd ~
git clone https://github.com/codekansas/keras-language-modeling
cd keras-language-modeling
source install.pyฉันได้ทำงานเพื่อทำให้โมเดลเหล่านี้มีอยู่นอกกรอบ คุณต้องติดตั้งสาขา git ของ keras (และอาจทำการแก้ไขบางอย่าง) เพื่อเรียกใช้บางรุ่นเหล่านี้ โครงการ Keras สามารถพบได้ที่นี่
โปรแกรม Runnable คือ insurance_qa_eval.py สิ่งนี้จะสร้าง models/ ไดเรกทอรีซึ่งจะเก็บประวัติของน้ำหนักของโมเดลตามที่สร้างขึ้น คุณต้องตั้งค่าตัวแปรสภาพแวดล้อมเพื่อบอกว่าชุดข้อมูล Insurance_Qa อยู่ที่ไหน
ในที่สุดการตั้งค่าของฉัน (ซึ่งฉันคิดว่าค่อนข้างธรรมดา) คือการมี SSD กับระบบปฏิบัติการของฉันและ HDD ที่มีไฟล์ข้อมูลขนาดใหญ่ ดังนั้นฉันขอแนะนำให้สร้าง models/ Symlink จากไดเรกทอรีโครงการไปยังที่ใดที่หนึ่งใน HDD ของคุณหากคุณมีการตั้งค่าที่คล้ายกัน
ฉันเพิ่มอาร์กิวเมนต์บรรทัดคำสั่งที่ใช้ Flask เพื่อให้บริการในพอร์ต เมื่อคุณติดตั้งขวดแล้วคุณสามารถเรียกใช้:
python insurance_qa_eval.py serveสิ่งนี้มีประโยชน์ร่วมกับ NGROK สำหรับการติดตามความคืบหน้าการฝึกอบรมจากเดสก์ท็อปของคุณ