อังกฤษ |. จีน
การใช้ประโยชน์จากการสืบค้นข้อความด้วยโมเดลเชิงสร้างสรรค์สำหรับการตอบคำถามแบบเปิดโดเมน
การเรียกค้นข้อความแบบดึงข้อมูลDense สำหรับการตอบคำถามแบบเปิดโดเมน
APScheduler
ระบบการสนทนาแบบเต็มกระบวนการที่สามารถปรับใช้และดำเนินการได้
โมเดลเทนเซอร์โฟลว์
หม้อแปลงไฟฟ้า
Seq2Seq
รูปแบบการดึงข้อมูล SMN
หม้อแปลงตัวอย่างตามกำหนดเวลา
GPT2
บทสนทนางาน
โมเดลไพทอร์ช
หม้อแปลงไฟฟ้า
Seq2Seq
โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อสร้างระบบการสนทนาที่สามารถใช้งานออนไลน์ได้ รวมถึงระบบการสนทนาแบบเปิดและแบบเน้นงาน โดยจะสร้างแบบจำลองที่เกี่ยวข้องกันในโปรเจ็กต์อื่น: TensorFlow และ Pytorch มาใช้ในโครงการ.
ไดเร็กทอรีข้อมูลในคลังสินค้าประกอบด้วยข้อมูลของเล่นสำหรับแต่ละคลังข้อมูล ซึ่งสามารถใช้เพื่อตรวจสอบการทำงานของระบบ สามารถดูคลังข้อมูลและกระดาษทั้งหมดได้ที่นี่
แอลซีซีซี
ครอส WOZ
ไก่สีเหลืองตัวน้อย
โดบัน
อูบุนตู
เว่ยป๋อ
ชิงหยุน
ติบา
Linux ดำเนินการ run.sh และการตรวจสอบไดเรกทอรีโครงการดำเนินการ check.sh (หรือ check.py)
actuator.py ในไดเร็กทอรีรากคือทางเข้าการดำเนินการทั่วไป ซึ่งดำเนินการโดยการเรียกรูปแบบคำสั่งต่อไปนี้ (โปรดทราบว่ามีการติดตั้งข้อกำหนด txt ก่อนดำเนินการ):
python actuator.py --version [Options] --model [Options] ...
เมื่อดำเนินการผ่าน actuator.py ในไดเร็กทอรีราก --version
, --model
และ --act
เป็นพารามิเตอร์ที่จำเป็น โดยที่ --version
เป็นรหัสเวอร์ชัน tf/torch
--model
เป็นโมเดลที่สอดคล้องกัน transformer/smn...
สำหรับการดำเนินการ transformer/smn...
และ act คือโหมดการดำเนินการ (โหมด pre_treat
ตามค่าเริ่มต้น) สำหรับพารามิเตอร์คำสั่งโดยละเอียดเพิ่มเติม โปรดดูที่ actuator.py
ใต้แต่ละรุ่นหรือไฟล์การกำหนดค่า json ที่เกี่ยวข้องในไดเร็กทอรี config
--act
โหมดการดำเนินการอธิบายไว้ดังนี้:
โหมด pre_treat คือโหมดการประมวลผลข้อความล่วงหน้า หากไม่มีชุดผลลัพธ์การแบ่งส่วนคำและพจนานุกรม คุณต้องเรียกใช้โหมด pre_treat ก่อน
โหมดรถไฟคือโหมดการฝึก
โหมดประเมินคือโหมดการประเมินตัวบ่งชี้
โหมดแชทเป็นโหมดการสนทนา เมื่อทำงานในโหมดแชท ให้ป้อน ESC เพื่อออกจากการสนทนา
ลำดับการดำเนินการปกติคือ pre_treat->train->evaluate->chat
มี actuator.py แยกต่างหากในแต่ละรุ่น ซึ่งสามารถข้ามการเชื่อมต่อภายนอกสำหรับการดำเนินการและการพัฒนาได้ อย่างไรก็ตาม โปรดใส่ใจกับการปรับเส้นทางไดเร็กทอรีโปรเจ็กต์ระหว่างการดำเนินการ
ภายใต้การสนทนา รหัสหลักของโมเดลที่เกี่ยวข้องจะถูกวางไว้เพื่ออำนวยความสะดวกในการห่อหุ้มและบรรจุภัณฑ์ในอนาคต
จุดตรวจจะบันทึกตำแหน่งสำหรับจุดตรวจ
config คือไดเร็กทอรีที่บันทึกไฟล์การกำหนดค่า
data เป็นสถานที่จัดเก็บข้อมูลต้นฉบับ ในเวลาเดียวกัน ไฟล์ข้อมูลระดับกลางที่สร้างขึ้นระหว่างการดำเนินการของโมเดลจะถูกบันทึกในไดเร็กทอรีนี้ด้วย
โมเดลบันทึกไดเร็กทอรีสำหรับโมเดล
tensorflow และ pytorch วางโค้ดหลักสำหรับการสร้างแบบจำลองและการดำเนินการของแต่ละโมดูล
preprocess_corpus.py เป็นสคริปต์การประมวลผลคลังข้อมูล ซึ่งประมวลผลแต่ละคลังข้อมูลในบทสนทนารอบเดียวและหลายรอบ และสร้างมาตรฐานการเรียกอินเทอร์เฟซแบบรวม
read_data.py ใช้สำหรับการเรียกรูปแบบการโหลดข้อมูลของ load_dataset.py
metrics.py เป็นสคริปต์สำหรับตัวบ่งชี้ต่างๆ
tools.py เป็นสคริปต์เครื่องมือซึ่งประกอบด้วยตัวแบ่งคำ การดำเนินการบันทึก สคริปต์บันทึก/โหลดจุดตรวจ ฯลฯ
วางคำแนะนำด้านเอกสารไว้ใต้เอกสาร รวมถึงบันทึกการอ่านแบบจำลองกระดาษ
นักเทียบท่า (มือถือ) ใช้สำหรับสคริปต์การปรับใช้เซิร์ฟเวอร์ (เทอร์มินัลมือถือ)
เซิร์ฟเวอร์เป็นอินเทอร์เฟซบริการ UI ใช้ขวดเพื่อสร้างและใช้งาน เพียงดำเนินการ server.py ที่เกี่ยวข้อง
tools คือไดเร็กทอรีเครื่องมือที่สงวนไว้
actuator.py (run.sh) คือทางเข้าแอคชูเอเตอร์ทั้งหมด
check.py (check.sh) เป็นสคริปต์ตรวจสอบไดเรกทอรีโครงการ
ก่อนที่จะใช้ระบบโต้ตอบการดึงข้อมูล SMN คุณต้องเตรียมสภาพแวดล้อม Solr แนะนำให้ใช้ Linux สำหรับสภาพแวดล้อมระบบการปรับใช้ Solr ขอแนะนำให้ใช้การปรับใช้คอนเทนเนอร์ (แนะนำให้ใช้ Docker) สำหรับเครื่องมือ และเตรียม:
โซล่าร์(8.6.3)
ไพโซล (3.9.0)
คำอธิบายสั้น ๆ มีให้ด้านล่าง สำหรับรายละเอียดเพิ่มเติม โปรดดูบทความ: รับการดึงข้อมูลการตอบสนองของผู้สมัครของระบบการสนทนาการดึงข้อมูล - การใช้ pysolr เพื่อโทรหา Solr
เพื่อให้แน่ใจว่า Solr ทำงานออนไลน์ได้อย่างเสถียรและอำนวยความสะดวกในการบำรุงรักษาในภายหลัง โปรดใช้ DockerFile สำหรับการปรับใช้ที่อยู่การรับ DockerFile: docker-solr
สำหรับการใช้โมเดลทดสอบเท่านั้น คุณสามารถใช้คำแนะนำในการสร้างที่ง่ายที่สุดต่อไปนี้:
docker pull solr:8.6.3 # 然后启动solr docker run -itd --name solr -p 8983:8983 solr:8.6.3 # 然后创建core核心选择器,这里取名smn(可选) docker exec -it --user=solr solr bin/solr create_core -c smn
เกี่ยวกับเครื่องมือแบ่งส่วนคำใน Solr มี IK Analyzer, Smartcn, ตัวแบ่งคำพินอิน ฯลฯ คุณต้องดาวน์โหลด jar ที่เกี่ยวข้อง จากนั้นเพิ่มการกำหนดค่าในไฟล์การกำหนดค่าหลักของ Solr ที่มีการจัดการสคีมา
หมายเหตุพิเศษ : หากคุณใช้ TF-IDF คุณจะต้องเปิดใช้งานการกำหนดค่าความคล้ายคลึงกันใน Managed-schema ด้วย
หลังจากปรับใช้ Solr ออนไลน์แล้ว ให้ใช้ pysolr ใน Python เพื่อเชื่อมต่อและใช้งาน:
pip install pysolr
วิธีการเพิ่มข้อมูลดัชนี (โดยทั่วไปต้องมีการตรวจสอบความปลอดภัยก่อน) มีดังต่อไปนี้ เพิ่มดัชนีลงในข้อมูลตอบกลับ การตอบสนองเป็น JSON ในรูปแบบ: [{},{},{},...] แต่ละออบเจ็กต์ในนั้นถูกสร้างขึ้นตามความต้องการในการตอบกลับของคุณ:
solr = pysolr.Solr(url=solr_server, always_commit=True, timeout=10) # 安全检查 solr.ping() solr.add(docs=responses)
วิธีการสืบค้นมีดังนี้
{!func}sum(product(idf(utterance,key1),tf(utterance,key1),product(idf(utterance,key2),tf(utterance,key2),...)
ก่อนใช้งาน คุณต้องเพิ่มข้อมูลลงใน Solr หากต้องการใช้ในรูปแบบ SMN นี้ เพียงดำเนินการโหมด pre_treat ก่อน
ความสนใจคือสิ่งที่คุณต้องการ |. หมายเหตุการอ่าน: งานบุกเบิกของ Transformer ที่คู่ควรกับการอ่านอย่างเข้มข้น |. Ashish et al, 2017
เครือข่ายการจับคู่ตามลำดับ: สถาปัตยกรรมใหม่สำหรับการเลือกการตอบสนองแบบหลายรอบใน Chatbots แบบดึงข้อมูล | บันทึกการอ่าน: โมเดลบทสนทนาการดึงข้อมูล SMN การดึงข้อมูลแบบหลายชั้นและหลายรายละเอียด |
การสำรวจสถาปัตยกรรมการแปลด้วยเครื่องประสาทจำนวนมาก |. การวิเคราะห์ขนาดใหญ่ครั้งแรกโดยใช้ไฮเปอร์พารามิเตอร์สถาปัตยกรรม NMT เป็นตัวอย่างที่นำเสนอ |. เดนนี่ และคณะ 2017
การสุ่มตัวอย่างตามกำหนดเวลาสำหรับ Transformers |. หมายเหตุการอ่าน: การใช้การสุ่มตัวอย่างตามกำหนดเวลาใน Transformer |. Mihaylova et al, 2019
ได้รับอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ลิขสิทธิ์ 2021 DengBoCong