ไวยากรณ์
ทรานส์ฟอร์มเมอร์ Hugging Face อันล้ำสมัยมีโมเดลที่ผ่านการฝึกอบรมมาแล้วมากมาย โมเดลเหล่านี้สามารถนำไปใช้กับโมเดลภาษาต่างๆ ที่แสดงรายการต่อไปนี้:
- ตัวแปลงเหล่านี้อาจประมวลผลข้อความในภาษาต่างๆ และสามารถทำงานที่แตกต่างกันในข้อความ เช่น การจัดหมวดหมู่ข้อความ การถามและตอบ การแปลข้อความเป็นภาษาต่างๆ และการสร้างข้อความ
- เรายังอาจใช้ตัวแปลงเหล่านี้ใน Hugging Face สำหรับงานจำแนกตามการมองเห็น เช่น การตรวจจับวัตถุและงานที่ใช้เสียงพูด เช่น การจัดประเภทผู้พูดหรือการระบุ/รู้จำเสียงพูด
ตัวแปลงจาก Hugging Face ได้แก่ TensorFlow, PyTorch, ONNX เป็นต้น สำหรับไวยากรณ์ของการติดตั้งแพ็คเกจสำหรับตัวแปลงเหล่านี้ เราใช้คำสั่งต่อไปนี้:
$ pip ติดตั้งหม้อแปลง
ตอนนี้ เราพยายามลองตัวอย่างต่างๆ ที่เราใช้โมเดลจาก Hugging Face transformer สำหรับงานประมวลผลภาษาต่างๆ
ตัวอย่างที่ 1: การสร้างข้อความโดยใช้ Hugging Face Transformers
ตัวอย่างนี้ครอบคลุมวิธีการใช้ตัวแปลงสำหรับการสร้างข้อความ สำหรับการสร้างข้อความ เราใช้และนำเข้าโมเดลการสร้างข้อความที่ผ่านการฝึกอบรมล่วงหน้าจากหม้อแปลง หม้อแปลงมีไลบรารีพื้นฐานซึ่งเรียกว่า 'ไปป์ไลน์' ไปป์ไลน์เหล่านี้ทำงานให้กับหม้อแปลงโดยดำเนินการก่อนและหลังการประมวลผลที่จำเป็นทั้งหมดบนข้อมูลที่จำเป็นเพื่อป้อนให้กับโมเดลที่ผ่านการฝึกอบรมล่วงหน้าเป็นอินพุต
เราเริ่มเขียนโค้ดตัวอย่างด้วยการติดตั้งไลบรารี่ของ 'transformers' ในเทอร์มินัล Python ก่อน หากต้องการดาวน์โหลดแพ็คเกจของ Transformer ให้ใช้ 'pip install with the name of the package, i.e. transformer' เมื่อเราดาวน์โหลดและติดตั้งแพ็คเกจหม้อแปลงแล้ว เราดำเนินการต่อโดยนำเข้าแพ็คเกจ 'ไปป์ไลน์' จากหม้อแปลง ไปป์ไลน์ใช้เพื่อประมวลผลข้อมูลก่อนที่จะป้อนไปยังโมเดล
เรานำเข้า 'pprint' จาก pprint แพ็คเกจนี้ได้รับการติดตั้งเพื่อพิมพ์ผลลัพธ์จากโมเดลการสร้างข้อความในรูปแบบที่อ่านง่าย มีโครงสร้าง และมีการจัดรูปแบบที่ดี มิฉะนั้น ถ้าเราใช้ฟังก์ชัน “print()” จะแสดงผลลัพธ์เป็นบรรทัดเดียว ซึ่งรูปแบบไม่ถูกต้องและอ่านง่าย โมเดลการสร้างข้อความช่วยสร้างหรือเพิ่มข้อความเพิ่มเติมให้กับข้อความที่เราจัดเตรียมไว้ให้กับโมเดลเป็นอินพุตในตอนแรก
ในการเรียกโมเดลที่ผ่านการฝึกอบรมจากหม้อแปลง เราใช้ฟังก์ชันไปป์ไลน์ () ซึ่งมีพารามิเตอร์สองตัวเป็นอินพุต อันแรกระบุชื่อของงานที่เลือก และอันที่สองคือชื่อรุ่นจากหม้อแปลง ในสถานการณ์สมมตินี้ งานที่เลือกคือการสร้างข้อความ รูปแบบการฝึกอบรมล่วงหน้าที่เราใช้จากหม้อแปลงคือ 'gpt'
หลังจากใช้ฟังก์ชันไปป์ไลน์ เราตัดสินใจอินพุตที่เราต้องการให้กับโมเดลของเราเพื่อสร้างข้อความเพิ่มเติมสำหรับมัน จากนั้นเราจะส่งข้อมูลนี้ไปยังฟังก์ชัน “task_pipeline()” ฟังก์ชันนี้สร้างเอาต์พุตสำหรับโมเดลโดยรับอินพุต ความยาวสูงสุดของเอาต์พุต และจำนวนประโยคที่เอาต์พุตควรมีเป็นพารามิเตอร์อินพุต
เราป้อนข้อมูลเป็น 'นี่คือรูปแบบภาษา' เรากำหนดความยาวสูงสุดของเอาต์พุตเป็น '30' และจำนวนประโยคในเอาต์พุตเป็น '3' ตอนนี้ เราเรียกฟังก์ชัน pprint() เพื่อแสดงผลที่สร้างขึ้นจากโมเดลของเรา
!pip ติดตั้งหม้อแปลงจากท่อนำเข้าหม้อแปลงไฟฟ้า
จาก pprint นำเข้า pprint
SELECTED_TASK = 'การสร้างข้อความ'
รุ่น = 'gpt2'
งาน = ไปป์ไลน์ (f'{SELECTED_TASK}', รุ่น = MODEL)
INPUT = 'นี่คือรูปแบบภาษา'
OUT_put = งาน (อินพุต, ความยาวสูงสุด = 30, num_return_sequences=3)
พิมพ์ (OUT_put)
จากส่วนย่อยและเอาต์พุตของโค้ดที่กล่าวถึงก่อนหน้านี้ เราจะเห็นว่าโมเดลสร้างข้อมูล/ข้อความเพิ่มเติมที่เกี่ยวข้องกับอินพุตที่เราป้อนเข้าไป
ตัวอย่างที่ 2: การจำแนกประเภทข้อความโดยใช้ไปป์ไลน์จาก Transformers
ตัวอย่างก่อนหน้านี้ครอบคลุมวิธีการสร้างข้อความเพิ่มเติมที่เกี่ยวข้องกับอินพุตโดยใช้หม้อแปลงและไปป์ไลน์แพ็คเกจ ตัวอย่างนี้แสดงให้เราเห็นวิธีการจำแนกข้อความด้วยไปป์ไลน์ การจัดหมวดหมู่ข้อความคือกระบวนการระบุอินพุตที่ป้อนให้กับโมเดลในฐานะสมาชิกของคลาสเฉพาะ เช่น บวกหรือลบ
ก่อนอื่นเรานำเข้าท่อจากหม้อแปลง จากนั้น เราเรียกฟังก์ชัน “pipeline()” เราส่งชื่อรุ่นซึ่งในกรณีของเราคือ 'การจำแนกข้อความ' ไปยังพารามิเตอร์ เมื่อระบุโมเดลโดยใช้ไปป์ไลน์แล้ว เราอาจตั้งชื่อโมเดลนั้นว่า 'ตัวแยกประเภท' จนถึงจุดนี้ โมเดลเริ่มต้นสำหรับการจำแนกข้อความจะถูกดาวน์โหลดไปยังเครื่องโฮสต์ของเรา ตอนนี้เราสามารถใช้แบบจำลองนี้สำหรับงานของเรา
ดังนั้น นำเข้าหมีแพนด้าเป็น “pd” เราต้องการนำเข้าแพ็คเกจนี้เนื่องจากเราต้องการพิมพ์เอาต์พุตจากโมเดลในรูปแบบของ DataFrame ตอนนี้ เราระบุข้อความที่เราต้องการให้โมเดลของเราเป็นอินพุตเพื่อจัดประเภทเป็นประโยคเชิงบวกหรือประโยคเชิงลบ เราตั้งข้อความว่า “I’m a good guy” เราส่งข้อความนี้ไปยังโมเดล classifier() ที่เราเพิ่งสร้างขึ้นในตัวอย่างนี้ และบันทึกผลลัพธ์ในตัวแปร 'เอาต์พุต'
ในการแสดงผลลัพธ์ เราเรียกคำนำหน้าของ Pandas เช่น pd เป็น “.Dataframe()” และส่งเอาต์พุตจากโมเดลตัวแยกประเภทไปยังฟังก์ชันนี้ ตอนนี้แสดงผลลัพธ์จากโมเดลตัวแยกประเภทตามที่แสดงในตัวอย่างข้อมูลเอาต์พุตต่อไปนี้ โมเดลลักษณนามของเราจัดประเภทข้อความเป็นคลาสเชิงบวก
!pip ติดตั้งหม้อแปลงจากท่อนำเข้าหม้อแปลงไฟฟ้า
นำเข้าแพนด้าเป็น pd
ลักษณนาม = ไปป์ไลน์ ('การจำแนกข้อความ', รุ่น = 'textattack/distilbert-base-uncased-CoLA')
ข้อความ = 'ฉันเป็นคนดี'
ผลลัพธ์ = ลักษณนาม (ข้อความ)
pprint(ผลลัพธ์)
df = pd.DataFrame (ผลลัพธ์)
บทสรุป
คู่มือนี้ครอบคลุมสถาปัตยกรรมหม้อแปลงไฟฟ้าจาก Hugging Face เราได้พูดถึงห้องสมุด 'ไปป์ไลน์' จากหม้อแปลง Hugging Face จากนั้น ด้วยความช่วยเหลือของห้องสมุดนี้ เราใช้แบบจำลองหม้อแปลงที่ผ่านการฝึกอบรมมาล่วงหน้าสำหรับการสร้างข้อความและการจัดหมวดหมู่