|
|
||
|---|---|---|
| .. | ||
| 13-TextRep | ||
| 14-Embeddings | ||
| 15-LanguageModeling | ||
| 16-RNN | ||
| 17-GenerativeNetworks | ||
| 18-Transformers | ||
| 19-NER | ||
| 20-LangModels | ||
| README.md | ||
README.md
การประมวลผลภาษาธรรมชาติ
ในส่วนนี้ เราจะเน้นการใช้โครงข่ายประสาทเทียมเพื่อจัดการกับงานที่เกี่ยวข้องกับ การประมวลผลภาษาธรรมชาติ (NLP) มีปัญหา NLP มากมายที่เราต้องการให้คอมพิวเตอร์สามารถแก้ไขได้:
- การจัดหมวดหมู่ข้อความ เป็นปัญหาการจัดหมวดหมู่ทั่วไปที่เกี่ยวข้องกับลำดับข้อความ ตัวอย่างเช่น การจัดอีเมลเป็นสแปมหรือไม่ใช่สแปม หรือจัดหมวดหมู่บทความเป็นกีฬา ธุรกิจ การเมือง ฯลฯ นอกจากนี้ เมื่อพัฒนาแชทบอท เรามักจะต้องเข้าใจว่าสิ่งที่ผู้ใช้ต้องการจะสื่อคืออะไร — ในกรณีนี้เรากำลังจัดการกับ การจัดหมวดหมู่เจตนา บ่อยครั้งในการจัดหมวดหมู่เจตนา เราต้องจัดการกับหลายหมวดหมู่
- การวิเคราะห์ความรู้สึก เป็นปัญหาการถดถอยทั่วไป ที่เราต้องกำหนดตัวเลข (ความรู้สึก) ที่สอดคล้องกับว่าประโยคนั้นมีความหมายเชิงบวกหรือลบมากน้อยเพียงใด เวอร์ชันขั้นสูงของการวิเคราะห์ความรู้สึกคือ การวิเคราะห์ความรู้สึกตามแง่มุม (ABSA) ที่เรากำหนดความรู้สึกไม่ใช่กับทั้งประโยค แต่ให้กับส่วนต่าง ๆ ของประโยค (แง่มุม) เช่น ในร้านอาหารแห่งนี้ ฉันชอบอาหาร แต่บรรยากาศแย่มาก
- การจดจำเอนทิตีเฉพาะ (NER) หมายถึงปัญหาการดึงเอนทิตีบางอย่างออกจากข้อความ เช่น เราอาจต้องเข้าใจว่าในวลี ฉันต้องการบินไปปารีสวันพรุ่งนี้ คำว่า วันพรุ่งนี้ หมายถึง DATE และ ปารีส คือ LOCATION
- การดึงคำสำคัญ คล้ายกับ NER แต่เราต้องดึงคำที่สำคัญต่อความหมายของประโยคโดยอัตโนมัติโดยไม่ต้องผ่านการฝึกล่วงหน้าสำหรับประเภทเอนทิตีเฉพาะ
- การจัดกลุ่มข้อความ สามารถใช้ได้เมื่อต้องการจัดกลุ่มประโยคที่คล้ายคลึงกัน เช่น คำร้องขอที่คล้ายกันในบทสนทนาการสนับสนุนทางเทคนิค
- การตอบคำถาม หมายถึงความสามารถของแบบจำลองในการตอบคำถามเฉพาะ แบบจำลองจะได้รับข้อความและคำถามเป็นอินพุต และต้องให้ตำแหน่งในข้อความที่มีคำตอบของคำถามอยู่ (หรือบางครั้งอาจสร้างข้อความคำตอบ)
- การสร้างข้อความ คือความสามารถของแบบจำลองในการสร้างข้อความใหม่ สามารถมองได้ว่าเป็นงานการจัดหมวดหมู่ที่ทำนายตัวอักษร/คำถัดไปโดยอิงตาม ข้อความตัวอย่าง แบบจำลองการสร้างข้อความขั้นสูง เช่น GPT-3 สามารถแก้งาน NLP อื่นๆ เช่น การจัดหมวดหมู่โดยใช้เทคนิคที่เรียกว่า prompt programming หรือ prompt engineering
- การสรุปข้อความ เป็นเทคนิคที่ต้องการให้คอมพิวเตอร์ "อ่าน" ข้อความยาวและสรุปให้อยู่ในไม่กี่ประโยค
- การแปลภาษาเครื่อง สามารถมองว่าเป็นการรวมการเข้าใจข้อความในภาษาหนึ่ง และการสร้างข้อความในอีกภาษาหนึ่งเข้าด้วยกัน
ในตอนแรก งาน NLP ส่วนใหญ่ถูกแก้โดยใช้วิธีดั้งเดิม เช่น ไวยากรณ์ ตัวอย่างเช่น ในการแปลภาษาใช้การวิเคราะห์ประโยคเพื่อแปลงประโยคเริ่มต้นเป็นต้นไม้ไวยากรณ์ จากนั้นดึงโครงสร้างความหมายระดับสูงเพื่อแทนความหมายของประโยค และอิงจากความหมายนั้นและไวยากรณ์ของภาษาเป้าหมายก็จะสร้างผลลัพธ์ ในปัจจุบัน งาน NLP จำนวนมากได้รับการแก้ไขอย่างมีประสิทธิภาพมากขึ้นด้วยโครงข่ายประสาทเทียม
วิธี NLP แบบดั้งเดิมมากมายถูกใช้ในไลบรารี Python Natural Language Processing Toolkit (NLTK) มีหนังสือ NLTK Book ที่ยอดเยี่ยมให้เรียนออนไลน์ซึ่งครอบคลุมวิธีแก้ปัญหา NLP ต่างๆ ด้วย NLTK
ในหลักสูตรนี้ เราจะมุ่งเน้นการใช้โครงข่ายประสาทเทียมสำหรับ NLP เป็นหลัก และจะใช้ NLTK เมื่อจำเป็น
เราได้เรียนรู้การใช้โครงข่ายประสาทเทียมสำหรับจัดการข้อมูลตารางและภาพแล้ว ความแตกต่างหลักระหว่างข้อมูลเหล่านั้นกับข้อความคือ ข้อความเป็นลำดับความยาวที่เปลี่ยนแปลงได้ ขณะที่ขนาดอินพุตของภาพเป็นค่าคงที่ล่วงหน้า ขณะที่โครงข่ายคอนโวลูชันสามารถดึงรูปแบบจากข้อมูลอินพุต รูปแบบในข้อความมีความซับซ้อนกว่า เช่น เราอาจมีการปฏิเสธซึ่งห่างจากประธานได้โดยไม่จำกัดจำนวนคำ (เช่น ฉันไม่ชอบส้ม เทียบกับ ฉันไม่ชอบส้มใหญ่สีสันสดใสนั้น) และควรถูกตีความเป็นรูปแบบเดียว ดังนั้น เพื่อจัดการกับภาษา เราต้องนำเสนอประเภทโครงข่ายประสาทเทียมใหม่ เช่น เครือข่ายวนซ้ำ และ ทรานส์ฟอร์มเมอร์
การติดตั้งไลบรารี
หากคุณใช้ Python ติดตั้งในเครื่องเพื่อรันหลักสูตรนี้ คุณอาจต้องติดตั้งไลบรารีที่จำเป็นทั้งหมดสำหรับ NLP โดยใช้คำสั่งต่อไปนี้:
สำหรับ PyTorch
pip install -r requirements-pytorch.txt
สำหรับ TensorFlow
pip install -r requirements-tf.txt
คุณสามารถทดลองใช้ NLP กับ TensorFlow ได้ที่ Microsoft Learn
คำเตือนเกี่ยวกับ GPU
ในส่วนนี้ ในบางตัวอย่างเราจะฝึกฝนแบบจำลองขนาดใหญ่มาก
- ใช้คอมพิวเตอร์ที่รองรับ GPU: แนะนำให้รันโน้ตบุ๊กของคุณบนคอมพิวเตอร์ที่มี GPU เพื่อช่วยลดเวลารอเมื่อทำงานกับแบบจำลองขนาดใหญ่
- ข้อจำกัดหน่วยความจำ GPU: การรันบน GPU อาจทำให้เกิดสถานการณ์ที่หน่วยความจำ GPU หมดโดยเฉพาะเมื่อฝึกแบบจำลองขนาดใหญ่
- การใช้หน่วยความจำ GPU: ปริมาณหน่วยความจำ GPU ที่ใช้ during การฝึกขึ้นอยู่กับหลายปัจจัย รวมถึงขนาดมินิบแซต
- ลดขนาดมินิบแซต: หากพบปัญหาหน่วยความจำ GPU ให้ลดขนาดมินิบแซตในโค้ดของคุณเป็นแนวทางแก้ไขที่เป็นไปได้
- การปล่อยหน่วยความจำ GPU ของ TensorFlow: เวอร์ชันเก่าของ TensorFlow อาจไม่ปล่อยหน่วยความจำ GPU อย่างถูกต้องเมื่อฝึกแบบจำลองหลายตัวในเคอร์เนล Python เดียว เพื่อจัดการการใช้หน่วยความจำ GPU อย่างมีประสิทธิภาพ คุณสามารถตั้งค่า TensorFlow ให้จัดสรรหน่วยความจำ GPU เมื่อจำเป็นเท่านั้น
- การใส่โค้ด: เพื่อกำหนดให้ TensorFlow เพิ่มการจัดสรรหน่วยความจำ GPU เมื่อจำเป็นเท่านั้น ให้ใส่โค้ดต่อไปนี้ในโน้ตบุ๊กของคุณ:
physical_devices = tf.config.list_physical_devices('GPU')
if len(physical_devices)>0:
tf.config.experimental.set_memory_growth(physical_devices[0], True)
หากคุณสนใจเรียนรู้เกี่ยวกับ NLP จากมุมมองคลาสสิกของ ML ให้ไปที่ ชุดบทเรียนนี้
ในส่วนนี้
ในส่วนนี้เราจะเรียนรู้เกี่ยวกับ:
- การแทนข้อความเป็นเทนเซอร์
- การฝังคำ
- การทำแบบจำลองภาษา
- โครงข่ายประสาทเทียมวนซ้ำ
- โครงข่ายสร้างสรรค์
- ทรานส์ฟอร์มเมอร์
ปฏิเสธความรับผิดชอบ: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator ขณะที่เราพยายามให้ความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้
