วิธีการฝึกอบรม chatbot


10

ฉันต้องการที่จะเริ่มการทดลองกับเครือข่ายประสาทและเป็นปัญหาของเล่นฉันต้องการฝึกอบรมหนึ่งเพื่อแชทเช่นใช้บอทแชทเช่น cleverbot ไม่ฉลาดเท่าไร

ฉันมองไปรอบ ๆ เพื่อดูเอกสารบางอย่างและฉันพบว่าบทช่วยสอนทั่วไปเกี่ยวกับงานทั่วไป สิ่งที่ฉันค้นพบเพียงแค่เปิดเผยผลลัพธ์โดยไม่ให้ข้อมูลเชิงลึกเกี่ยวกับการใช้งาน สิ่งที่ทำทำมันค่อนข้างตื้น (หน้าเอกสารคู่มือเทนเซอร์ไหลใน seq2seq ขาด imho)

ตอนนี้ฉันรู้สึกว่าฉันอาจเข้าใจหลักการมากกว่าหรือน้อยกว่า แต่ฉันไม่แน่ใจและฉันก็ไม่แน่ใจด้วยว่าจะเริ่มอย่างไร ดังนั้นฉันจะอธิบายว่าฉันจะจัดการกับปัญหาได้อย่างไรและฉันต้องการคำติชมเกี่ยวกับวิธีการแก้ปัญหานี้โดยบอกฉันว่าฉันเข้าใจผิดตรงไหนและอาจมีลิงค์ไปยังคำอธิบายโดยละเอียดและความรู้เชิงปฏิบัติเกี่ยวกับกระบวนการ

  1. ชุดข้อมูลที่ฉันจะใช้สำหรับงานนี้คือการถ่ายโอนข้อมูลประวัติการใช้งาน Facebook และ Whatsapp ทั้งหมดของฉัน ฉันไม่รู้ว่ามันจะใหญ่แค่ไหน แต่อาจจะยังไม่ใหญ่พอ ภาษาเป้าหมายไม่ใช่ภาษาอังกฤษดังนั้นฉันจึงไม่รู้จะรวบรวมตัวอย่างการสนทนาที่มีความหมายได้อย่างรวดเร็ว

  2. ฉันจะสร้างเวกเตอร์ที่คิดจากแต่ละประโยค ยังไม่รู้ความจริง ฉันพบตัวอย่างที่ดีสำหรับ word2vec บนเว็บไซต์ deeplearning4j แต่ไม่มีสำหรับประโยค ฉันเข้าใจว่าคำว่าเวกเตอร์ถูกสร้างขึ้นอย่างไรและทำไม แต่ฉันไม่สามารถหาคำอธิบายที่ครบถ้วนสมบูรณ์สำหรับเวกเตอร์ประโยคได้

  3. การใช้เวกเตอร์ความคิดเป็นอินพุตและเอาต์พุตฉันจะฝึกโครงข่ายประสาท ฉันไม่รู้ว่ามันควรมีกี่เลเยอร์และอันไหนต้องเป็นเลเยอร์ lstm

  4. จากนั้นควรมีโครงข่ายใยประสาทเทียมอื่นที่สามารถแปลงเวกเตอร์คิดเป็นลำดับของอักขระที่เขียนประโยค ฉันอ่านว่าฉันควรใช้การขยายเพื่อชดเชยความยาวประโยคที่แตกต่างกัน แต่ฉันพลาดวิธีเข้ารหัสอักขระ (codepoints เพียงพอหรือไม่)

คำตอบ:


7

ฉันอยากจะแนะนำให้เริ่มต้นด้วยการอ่านบล็อกนี้ คุณสามารถเปลี่ยนรหัสเพื่อสร้าง RNN ที่ใช้ในหนึ่งคำสั่งของการสนทนาและจากนั้นดำเนินการส่งออกคำตอบไปที่คำสั่งนั้น

นั่นจะเป็นเวอร์ชั่นที่ง่ายของโครงการของคุณโดยไม่มีคำว่าเวกเตอร์และเวกเตอร์ที่คิด คุณเป็นเพียงการป้อนตัวอักษรดังนั้นการพิมพ์ผิดไม่ต้องกังวลกับคุณ

ขั้นตอนที่ซับซ้อนกว่าถัดไปคือป้อนคำเวกเตอร์แทนที่จะเป็นตัวอักษร ซึ่งจะช่วยให้คุณสามารถพูดคุยกับคำที่ไม่ได้เป็นส่วนหนึ่งของข้อมูลการฝึกอบรมของคุณ และอาจเป็นเพียงการแก้ไขโค้ดเล็กน้อย

หากคุณยืนยันในการใช้ความคิดเวกเตอร์คุณควรเริ่มต้นการอ่านบนNN แปล และอาจลองใช้เครือข่ายเครื่องเข้ารหัสที่ผ่านการฝึกอบรมมาก่อน หรือฝึกฝนตัวเองด้วยคลังข้อมูลการแปลขนาดใหญ่สำหรับภาษาของคุณ

ด้วยชุดฝึกอบรมขนาดเล็กของคุณสิ่งที่ดีที่สุดที่คุณสามารถทำได้น่าจะเหมาะสมอย่างมากจนกว่าระบบของคุณจะสร้างคำต่อคำข้อมูลการฝึกอบรมของคุณใหม่ การใช้คำว่าเวคเตอร์จะช่วยให้ระบบของคุณให้คำตอบเดียวกับ "ฉันชนะแมววันนี้" ตามที่คุณให้ในข้อมูลการฝึกอบรมกับ "ฉันเตะสุนัขเมื่อวานนี้"

ฉันไม่แน่ใจว่าเวกเตอร์จะสร้างความแตกต่างขนาดใหญ่ หากคุณได้รับตัวถอดรหัสเพื่อเรียนรู้เลย


ฉันได้อ่านบทความแรกเมื่อไม่นานมานี้และฉันรู้สึกว่าตัวละครไม่ใช่ระดับที่เหมาะสมของนามธรรม ฉันไม่ได้คิดจะไปกับคำว่าเวกเตอร์ทีละตัว แต่ฉันคิดว่ามันเป็นวิธีที่น่าสนใจและซับซ้อนน้อยกว่าเช่นกัน ฉันจะอ่านกระดาษซึ่งน่าจะเป็นสิ่งที่ฉันหลังจาก ...
Totem

ฉันพบแกนบอทที่จะใช้ ... แต่ฉันติดอยู่กับการสร้างข้อความ ai.stackexchange.com/questions/5963/…สิ่งที่ฉันสงสัยคือแม้จะเป็นเวกเตอร์และอัตราการเรียนรู้มันก็ยังไม่ทำงานตามที่ควร ... ฉันกังวลว่านี่อาจเป็นข้อบกพร่องของห้องสมุดที่ฉันเป็น ใช้ แต่ฉันไม่คิดว่าเป็นไปได้สำหรับขนาดเลเยอร์ 300 ... หรือจำนวนของการฝึกอบรมที่จำเป็นต้องใช้เกี่ยวข้องกับขนาดของเลเยอร์หรือไม่ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม โปรดทราบว่าห้องสมุดที่ใช้อยู่
FreezePhoenix

0

ตามแนวคิดโครงการของคุณสำหรับผู้เริ่มฉันจะขอให้คุณใช้เทคนิคการพัฒนาทดสอบขับเคลื่อน ขั้นแรกให้ลองสร้างฐานข้อมูลที่มีขนาดเล็กลงซึ่งคุณสามารถใช้เพื่อจัดการชุดข้อมูลจำนวนเล็กน้อยซึ่งสามารถให้การปรับปรุงที่ต้องการได้

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

หมายเหตุ : สำหรับผู้เริ่มอย่าใช้ประวัติการแชทขนาดใหญ่โดยรวมเพราะนี่เป็นงานง่าย ๆ ..ie.too อินพุตมาก == การ overfitting

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.