ที่เก็บนี้มีการใช้งานเอกสารที่สำคัญที่สุดสำหรับการตอบคำถาม การใช้งานอยู่ในรูปแบบของการสอนและเป็น คำอธิบายประกอบ ของเอกสารดังกล่าว ที่เก็บนี้อาจเป็นประโยชน์สำหรับผู้ที่รู้พื้นฐานของการเรียนรู้ลึกและ NLP ต้องการเริ่มต้นกับการอ่านเอกสารที่ซับซ้อนเล็กน้อยและดูว่าพวกเขาถูกนำไปใช้อย่างไร ที่เก็บนี้ยังถือว่ามีความคุ้นเคยกับพื้นฐานของ Pytorch แม้ว่าฉันจะพยายามอย่างดีที่สุดที่จะทำลายทุกอย่างในแง่ง่าย ๆ
การตอบคำถามเป็นงานที่สำคัญตามความฉลาดของระบบ NLP และ AI โดยทั่วไปสามารถตัดสินได้ ระบบ QA จะได้รับย่อหน้าสั้น ๆ หรือ บริบท เกี่ยวกับบางหัวข้อและถามคำถามบางข้อตามข้อความ คำตอบสำหรับคำถามเหล่านี้คือช่วงของบริบทนั่นคือพวกเขามีอยู่โดยตรงในเนื้อเรื่อง ในการฝึกอบรมโมเดลดังกล่าวเราใช้ชุดข้อมูลทีม
สมุดบันทึกชื่อ "NLP Preprocessing Pipeline สำหรับ QA" มีรหัสการประมวลผลล่วงหน้าทั้งหมดที่ฉันเขียน รหัสการประมวลผลล่วงหน้าไม่ได้ใช้ไลบรารีระดับสูงใด ๆ และฉันได้เขียนฟังก์ชั่นทั้งหมดตั้งแต่เริ่มต้น มันใช้เฉพาะ spacy สำหรับ tokenization ฟังก์ชั่นที่นำมาใช้ที่นี่เป็นเรื่องธรรมดาสำหรับงาน NLP จำนวนมากและอาจเป็นประโยชน์สำหรับคนที่เพิ่งเริ่มต้น ตัวอย่างเช่น: การสร้างคำศัพท์เมทริกซ์น้ำหนักสำหรับการฝังตัวที่ผ่านการฝึกอบรมชุดข้อมูล/ดาต้าโหลด ฯลฯ ในการเข้าใจถึงปัญหาหลังเหตุการณ์โดยใช้ไลบรารีระดับสูงเช่น Torchtext จะเป็นความคิดที่ดีกว่าและตอนนี้ฉันกำลังทำงานเหมือนกัน
สมุดบันทึกทั้งหมดขึ้นอยู่กับวิธีการนี้ ในที่สุดการสร้างอวนประสาทเป็นเรื่องเกี่ยวกับการทำงานกับเทนเซอร์ การรู้รูปร่างและเนื้อหาของแต่ละเทนเซอร์เป็นสิ่งที่ฉันพบว่ามีประโยชน์มากในขณะที่เรียนรู้ ดังนั้นหลังจากแต่ละบรรทัดของรหัสฉันได้แสดงความคิดเห็นรูปร่างเทนเซอร์และการเปลี่ยนแปลงที่เกิดขึ้นเนื่องจากการแปลงในรหัส สิ่งนี้ทำให้กระบวนการทำความเข้าใจกับสิ่งที่เกิดขึ้นในอวนประสาทที่ใช้งานง่ายมากขึ้น
ฉันไม่สามารถเข้าถึง GPU ที่เร็วกว่าได้อย่างไม่ จำกัด โมเดลด้านล่างได้รับการฝึกฝนโดยการเช่า GPUs ใน Vast.ai ฉันใช้ GTX 1080 TI สำหรับการทดลองส่วนใหญ่
ในสมุดบันทึกเล่มแรกเราใช้โมเดลที่ค่อนข้างง่ายซึ่งเกี่ยวข้องกับ LSTMs หลายชั้นและความสนใจ bilinear รายละเอียดและสัญชาตญาณของแต่ละเลเยอร์/ส่วนประกอบมีการอธิบายก่อนที่จะกระโดดลงในรหัส โมเดลนี้คล้ายกับที่กล่าวถึงในบทความนี้และมีผู้เขียนคนแรกเดียวกัน: Danqi Chen รุ่นที่สองเป็นที่รู้จักกันในนาม "Stanfor Attentive Reader" โมเดลที่ใช้ในโน้ตบุ๊กเป็นเวอร์ชันขั้นสูงเล็กน้อยของสิ่งนี้ ผลลัพธ์ในชุด dev ที่ได้คือ:
| ยุค | em | F1 |
|---|---|---|
| 5 | 56.4 | 68.2 |
ฉันจะฝึกอบรมเรื่องนี้มากขึ้นเพื่อปรับปรุงผลลัพธ์และจะอัปเดตเร็ว ๆ นี้
ต่อไปเราย้ายไปยังกระดาษที่ซับซ้อนมากขึ้น บทความนี้ปรับปรุงผลลัพธ์ที่ได้จากบทความก่อนหน้า โมเดลที่นำมาใช้ที่นี่ซึ่งแตกต่างจากรุ่นก่อนหน้านี้เป็นสถาปัตยกรรมลำดับชั้นหลายขั้นตอนที่แสดงถึง บริบท และ การสืบค้น ในหลายระดับของความละเอียด บทความนี้ยังเกี่ยวข้องกับการเกิดซ้ำเนื่องจากใช้ LSTMS อย่างกว้างขวางและกลไกความสนใจ ที่ไม่ต้องใช้หน่วยความจำ ซึ่งเป็นสองทิศทางในธรรมชาติ สมุดบันทึกนี้กล่าวถึงรายละเอียดเกี่ยวกับเทคนิค NLP ที่สำคัญบางอย่างเช่น การฝังตัวละคร เครือข่ายทางหลวง ระหว่างอื่น ๆ ผลลัพธ์ในชุด Dev:
| ยุค | em | F1 |
|---|---|---|
| 5 | 60.4 | 70.1 |
ในที่สุดเราก็ออกไปจากการเกิดซ้ำและใช้ความตั้งใจและการโน้มน้าวใจเท่านั้น บทความนี้ได้รับแรงบันดาลใจจาก "ความสนใจคือสิ่งที่คุณต้องการ" แรงจูงใจที่สำคัญที่อยู่เบื้องหลังการออกแบบของแบบจำลองคือ: Convolution รวบรวมโครงสร้างท้องถิ่นของข้อความในขณะที่ความตั้งใจของตนเองเรียนรู้การมีปฏิสัมพันธ์ระดับโลกระหว่างคำแต่ละคำ บทช่วยสอนนี้อธิบายหัวข้อ ต่าง ๆ เช่น ความตั้งใจของตนเอง ผลลัพธ์ในชุด Dev:
| ยุค | em | F1 |
|---|---|---|
| 3 | - | 36.6 |
ตอนนี้ฉันกำลังฝึกอบรมรุ่นนี้ ขณะนี้ฉันสั้นตรงเวลาและฉันไม่สามารถเข้าถึง GPU ที่เร็วขึ้นได้ การฝึกอบรมนี้เป็นเวลา 1 ยุคใช้เวลาประมาณ 1 ชั่วโมงใน GTX 1080 TI
ฉันไม่ใช่ผู้เชี่ยวชาญ แรงจูงใจหลักของฉันที่อยู่เบื้องหลังโครงการนี้คือการเรียนรู้เกี่ยวกับโดเมน NLP หากคุณพบความผิดพลาดทางแนวคิดหรือโง่ ๆ โปรดสร้างปัญหาและฉันจะพยายามอย่างเต็มที่เพื่อแก้ไขพวกเขาอย่างรวดเร็ว การมีส่วนร่วมอื่น ๆ ก็ยินดีต้อนรับ หากคุณฝึกอบรมโมเดลใด ๆ และได้รับผลลัพธ์ที่ดีขึ้นโปรดสร้าง PR หากคุณมีความสนใจในการใช้เอกสารเพิ่มเติมในโดเมนนี้และต้องการเพิ่มเข้าไปในที่เก็บนี้ฉันยินดีที่จะช่วยเหลือ แม้ว่าตอนนี้ฉันจะอยู่ตรงเวลา แต่ฉันจะดูแลที่เก็บนี้อย่างแข็งขัน