เรามีความยินดีที่จะนำเสนอการพัฒนาของเรา - แชทบอทภาษารัสเซียสำหรับ Discord ที่ใช้สถาปัตยกรรม Transformer
โครงข่ายประสาทเทียมได้รับการฝึกฝนเกี่ยวกับข้อความที่เปิดเผยต่อสาธารณะ มากกว่า 36 ล้าน ข้อความจากเซิร์ฟเวอร์ Discord ภาษารัสเซียที่ได้รับความนิยมมากที่สุดในช่วงยุคหนึ่ง (5 วันบน GTX 1080 ) การฝึกอบรมเป็นไปตามหลักการ: ข้อความใดที่น่าจะถูกส่งมากที่สุดหลังจาก 10 ก่อนหน้านี้ ที่ระดับ การฝังไตรแกรมอักขระ
บอทนี้ ไม่ได้ใช้ ฐานข้อมูลข้อความสำเร็จรูป แต่สร้างข้อความใหม่ที่ไม่ซ้ำใคร โดยใช้ แนวคิด seq2seq บนสถาปัตยกรรม Transformer พื้นฐานของเครือข่ายนำมาจากบทช่วยสอน TensorFlow 2 นี้
โมเดลนี้มีความเกี่ยวข้องในปี 2019 แต่ล้าสมัยไปอย่างรวดเร็ว คุณสามารถค้นหาสิ่งที่ดีกว่าและทันสมัยกว่านี้ได้โดยติดตามที่นี่
ไปกันเลย!
ทดสอบบน CPU 2 x 2.6 GHz + RAM 4 GB
Install launcher for all users (recommended)
และต้องตรวจสอบ Add Python 3.8 to PATH
scipy
Git Bash Here
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip install -r requirements.txt
ในหน้าต่างที่ปรากฏขึ้นconfig.py
โดยใส่โทเค็น bot ลงใน token = "..."
python bot.py
บอทจะทำงานบน Windows และ Python 64 บิต เท่านั้น
ทดสอบบน CPU 2 x 2.6 GHz + RAM 2 GB
git clone https://github.com/sergree/DolboNet
cd DolboNet
pip3
ให้ติดตั้ง: sudo apt install python3-pip
pip3 install -r requirements.txt
nano config.py
โดยใส่โทเค็น bot ลงใน token = "..."
python3 bot.py
หากเครื่องมีการ์ดแสดงผล NVIDIA คุณสามารถเรียกใช้บอทโดยใช้ CUDA ซึ่งจะเพิ่มความเร็ว
tensorflow
หากคุณได้ติดตั้งการอ้างอิงแล้ว: pip uninstall tensorflow
pip install tensorflow-gpu>=2.3.1
หรือ pip install -r requirements_gpu.txt
ในไฟล์ config.py
คุณสามารถแก้ไขพารามิเตอร์บางตัวเพื่อเปลี่ยนลักษณะและพฤติกรรมของบอทได้:
temperature
- อุณหภูมิการสุ่มตัวอย่าง - ควบคุมลักษณะและความหลากหลายของข้อความที่สร้างขึ้นความหมาย | คำอธิบาย |
---|---|
0.01 | ฉันรู้จักแต่คำว่า สวัสดี |
0.3 | ทำซ้ำนกแก้ว |
0.65 | ค่าเริ่มต้น |
1.3 | กวีขี้เมา |
3 | เผลอหลับไปบนคีย์บอร์ด |
เพื่อความสะดวกในการทดลอง มีคำสั่ง !temp значение
ที่สามารถส่งไปที่ Discord เพื่อแก้ไขค่านี้ ได้ทันที คำสั่งนี้ใช้ได้กับผู้ใช้ที่มีสิทธิ์ ของผู้ดูแลระบบ เท่านั้น
mention_prob
- ความน่าจะเป็นที่บอทจะตอบสนองต่อข้อความที่มีการกล่าวถึง สามารถรับค่าได้ตั้งแต่ 0
ถึง 1
ค่าเริ่มต้น: 1
เช่น 100%no_mention_prob
- ความน่าจะเป็นที่บอทจะตอบสนองต่อข้อความที่ไม่ได้กล่าวถึง สามารถรับค่าได้ตั้งแต่ 0
ถึง 1
ค่าเริ่มต้น: 0.2
เช่น 20%command_temperature_change
- คำสั่งให้เปลี่ยนอุณหภูมิหากคุณไม่ชอบ !temp значение
?use_delay
- การจำลองความเร็วในการพิมพ์ของมนุษย์บนแป้นพิมพ์ False
ตามค่าเริ่มต้น เพราะ บน CPU กระบวนการสร้างไม่เร็วพอdiscord_game_name
- สถานะบอทใน Discordเป็นการดีกว่าที่จะไม่แก้ไขพารามิเตอร์ที่เหลือ
☕สนใจพัฒนาโครงการสามารถซื้อกาแฟให้ฉันได้นะค่ะ
ขอบคุณ!
ฉันมีเซิร์ฟเวอร์ของคนงี่เง่าแบบนี้อยู่ครึ่งเซิร์ฟเวอร์ แล้วทำไมฉันต้องมีอีกเซิร์ฟเวอร์ด้วย?
แต่เอาจริงๆ มีเหตุผลเดียวเท่านั้น
คุณโฮสต์บอทนี้หรือไม่? ฉันสามารถใช้เวอร์ชันสาธารณะได้หรือไม่ ให้ฉันลิงค์!
ลิงค์. บอทไม่พร้อมใช้งานเสมอไปและบางครั้งก็ตอบสนองช้า เราไม่ได้โฮสต์บอทเวอร์ชันสาธารณะ เพื่อให้ปรากฏบนเซิร์ฟเวอร์ Discord ของคุณ จะต้องติดตั้งก่อน
เซิร์ฟเวอร์ใดที่มีบอทนี้อยู่แล้ว?
เรารู้ว่าบอทโฮสต์อยู่ที่นี่แล้ว:
เขียนถึงเราเพื่อให้อยู่ในรายการนี้
โดยพื้นฐานแล้วเขากำลังส่งเรื่องไร้สาระที่ไม่ต่อเนื่องกันออกไป -
ใช่มีเรื่องเช่นนี้ แต่บางครั้งมันก็กลายเป็นเรื่องตลก
นี่เป็นเรื่องไร้สาระที่ไร้ประโยชน์คุณเข้าใจไหม?
แน่นอน. เช่นเดียวกับสิ่งอื่น ๆ อีกมากมายในโลกสมัยใหม่ของเรา
บอทส่งคำดูถูกหรือคุกคามมาให้ฉัน! ประทุษร้าย! -
โครงข่ายประสาทเทียมของบอทสะท้อนเฉพาะข้อมูลสาธารณะที่มีการฝึกอบรมเกิดขึ้นเท่านั้น บางทีนี่อาจเป็นการปลุกให้ตื่นเกี่ยวกับสิ่งที่เกิดขึ้นในสังคมของเรา เราไม่ต้องการที่จะอยู่แล้ว
แล้วภาษาอังกฤษล่ะ?
ในขั้นตอนนี้ เราตัดสินใจว่าจะไม่สิ้นเปลืองความจุของเครือข่ายไปกับไตรแกรมภาษาละติน ภาษาละตินจะถูกทับศัพท์เป็นภาษาซีริลลิกโดยอัตโนมัติโดยใช้ opendatakosovo/cyrillic-transliteration เราได้ทดสอบไลบรารีที่คล้ายกันหลายแห่งแล้ว ไลบรารีนี้เร็วที่สุด
ทำไมต้องไตรแกรม?
เพราะเขายิ่งใหญ่และทรงพลัง แน่นอนว่าแนวคิดนี้ไม่ใช่ของเรา แต่นำมาจากหนังสือเล่มนี้
บางทีมันอาจจะดีกว่าถ้าใช้การสกัดกั้น?
ไม่ใช่ในกรณีนี้ เนื่องจากคนในแชทพูดผิดและบางครั้งก็มีขี้เถ้า บางครั้งมีคำแปลสั้นๆ เช่น ile fse vmesti -
การจัดเรียงวิกิพีเดียหรือฟีดข่าวเป็นอีกเรื่องหนึ่ง
เขาส่งอิโมจิด้วยได้ไหม?
ใช่. สุ่มเลยตอนนี้ อีโมจิแบบกำหนดเองทั้งหมดได้รับการกำหนดโทเค็นเดียวในพจนานุกรม ในอนาคต มีแผนที่จะเชื่อมโยง CNN กับตัวแยกประเภท
คุณเพิ่งคัดลอกคำแนะนำสำหรับ TensorFlow 2 คุณทำอะไรด้วยตัวเอง?
แล้ว LSTM ล่ะ?
เราจะทิ้งมันไว้ที่นี่
อะไรต่อไป?
-