มีความก้าวหน้าหลายอย่างในโดเมน NLP โมเดลที่ได้รับการฝึกอบรมล่วงหน้าและบริการ NLP ที่มีการจัดการเต็มรูปแบบมีการเข้าถึงและการนำ NLP ไปใช้ในระบอบประชาธิปไตย เข้าใจ Amazon เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งทำงาน NLP ได้ เช่น การรู้จำเอนทิตีแบบกำหนดเอง การสร้างแบบจำลองหัวข้อ การวิเคราะห์ความคิดเห็น และอื่นๆ เพื่อดึงข้อมูลเชิงลึกจากข้อมูลโดยไม่จำเป็นต้องมีประสบการณ์ ML มาก่อน
ปีที่แล้ว AWS ได้ประกาศ a ห้างหุ้นส่วน กับ กอดหน้า เพื่อช่วยนำแบบจำลองการประมวลผลภาษาธรรมชาติ (NLP) ไปสู่การผลิตได้รวดเร็วยิ่งขึ้น Hugging Face เป็นชุมชน AI แบบโอเพนซอร์สที่เน้นไปที่ NLP ไลบรารีที่ใช้ Python ของพวกเขา (หม้อแปลง) จัดเตรียมเครื่องมือเพื่อใช้สถาปัตยกรรม Transformer อันล้ำสมัยยอดนิยมอย่าง BERT, RoBERTa และ GPT ได้อย่างง่ายดาย คุณสามารถใช้แบบจำลองเหล่านี้กับงาน NLP ต่างๆ ได้ เช่น การจัดประเภทข้อความ การดึงข้อมูล และการตอบคำถาม คนอื่น ๆ.
อเมซอน SageMaker เป็นบริการที่มีการจัดการเต็มรูปแบบซึ่งให้นักพัฒนาและนักวิทยาศาสตร์ข้อมูลสามารถสร้าง ฝึกอบรม และปรับใช้โมเดลการเรียนรู้ของเครื่อง (ML) ได้อย่างรวดเร็ว SageMaker ขจัดการยกของหนักออกจากแต่ละขั้นตอนของกระบวนการ ML ทำให้ง่ายต่อการพัฒนาโมเดลคุณภาพสูง SageMaker Python SDK จัดเตรียม API แบบโอเพนซอร์สและคอนเทนเนอร์สำหรับฝึกและปรับใช้โมเดลบน SageMaker โดยใช้ ML ที่แตกต่างกันหลายแบบและเฟรมเวิร์กการเรียนรู้เชิงลึก
การผสานรวม Hugging Face กับ SageMaker ช่วยให้คุณสร้างโมเดล Hugging Face ได้ตามขนาดกรณีการใช้งานเฉพาะโดเมนของคุณเอง
ในโพสต์นี้ เราจะแนะนำคุณเกี่ยวกับตัวอย่างวิธีสร้างและปรับใช้โปรแกรมสรุปข้อความ Hugging Face แบบกำหนดเองบน SageMaker เราใช้ Pegasus [1] เพื่อจุดประสงค์นี้ ซึ่งเป็นโมเดล Transformer ตัวแรกที่ได้รับการฝึกฝนมาล่วงหน้าโดยเฉพาะตามวัตถุประสงค์ที่ได้รับการปรับแต่งสำหรับการสรุปข้อความที่เป็นนามธรรม BERT ได้รับการฝึกอบรมล่วงหน้าเกี่ยวกับการปิดบังคำแบบสุ่มในประโยค ในทางตรงกันข้าม ในระหว่างการฝึกก่อนการฝึกของเพกาซัส ประโยคจะถูกปิดบังจากเอกสารป้อนข้อมูล จากนั้น โมเดลจะสร้างประโยคที่หายไปเป็นลำดับเอาต์พุตเดียวโดยใช้ประโยคที่ไม่ได้มาสก์ทั้งหมดเป็นบริบท ทำให้เกิดบทสรุปสำหรับผู้บริหารของเอกสาร
ด้วยความยืดหยุ่นของไลบรารี HuggingFace คุณจึงสามารถปรับโค้ดที่แสดงในโพสต์นี้สำหรับหม้อแปลงรุ่นอื่นๆ ได้อย่างง่ายดาย เช่น t5, BART และอื่นๆ
โหลดชุดข้อมูลของคุณเองเพื่อปรับแต่งโมเดล Hugging Face
ในการโหลดชุดข้อมูลที่กำหนดเองจากไฟล์ CSV เราใช้ load_dataset
วิธีการจากแพ็คเกจ Transformers เราสามารถใช้ tokenization กับชุดข้อมูลที่โหลดได้โดยใช้คำสั่ง datasets.Dataset.map
ฟังก์ชัน map
ฟังก์ชันจะวนซ้ำชุดข้อมูลที่โหลดและใช้ฟังก์ชัน tokenize กับแต่ละตัวอย่าง จากนั้นชุดข้อมูลที่เป็นโทเค็นจะถูกส่งต่อไปยังผู้ฝึกสอนเพื่อปรับแต่งโมเดลอย่างละเอียด ดูรหัสต่อไปนี้:
สร้างสคริปต์การฝึกอบรมสำหรับเครื่องมือประมาณการ Hugging Face SageMaker
ตามที่อธิบายไว้ในโพสต์ AWS และ Hugging Face ร่วมมือกันเพื่อลดความซับซ้อนและเร่งการนำโมเดลการประมวลผลภาษาธรรมชาติมาใช้การฝึกโมเดล Hugging Face บน SageMaker ง่ายกว่าที่เคย เราสามารถทำได้โดยใช้ตัวประมาณการกอดใบหน้าจาก SDK ของ SageMaker.
ข้อมูลโค้ดต่อไปนี้จะปรับแต่ง Pegasus บนชุดข้อมูลของเรา นอกจากนี้คุณยังสามารถหาได้มากมาย โน๊ตบุ๊คตัวอย่าง ที่จะแนะนำคุณเกี่ยวกับการปรับแต่งรุ่นต่างๆ อย่างละเอียด ซึ่งมีอยู่ในคลังเก็บ GitHub ของ Transformer โดยตรง เพื่อเปิดใช้งานการฝึกอบรมแบบกระจาย เราสามารถใช้ ไลบรารีข้อมูลแบบขนาน ใน SageMaker ซึ่งสร้างไว้ใน HuggingFace Trainer API ในการทำให้ข้อมูลมีความขนานกัน เราต้องกำหนด distribution
พารามิเตอร์ในตัวประมาณการกอดใบหน้าของเรา
ขนาดชุดการฝึกสูงสุดที่คุณสามารถกำหนดค่าได้ขึ้นอยู่กับขนาดรุ่นและหน่วยความจำ GPU ของอินสแตนซ์ที่ใช้ หากเปิดใช้งานการฝึกแบบกระจาย SageMaker ขนาดแบตช์ทั้งหมดคือผลรวมของทุกแบตช์ที่แจกจ่ายไปยังอุปกรณ์/GPU แต่ละตัว หากเราใช้ ml.g4dn.16xlarge กับการฝึกอบรมแบบกระจายแทนอินสแตนซ์ ml.g4dn.xlarge เรามีหน่วยความจำแปดเท่า (8 GPU) เท่ากับอินสแตนซ์ ml.g4dn.xlarge (1 GPU) ขนาดแบทช์ต่ออุปกรณ์ยังคงเท่าเดิม แต่อุปกรณ์แปดเครื่องกำลังฝึกแบบขนานกัน
ตามปกติกับ SageMaker เราสร้าง a train.py
สคริปต์เพื่อใช้กับโหมดสคริปต์และส่งผ่านไฮเปอร์พารามิเตอร์สำหรับการฝึก ข้อมูลโค้ดต่อไปนี้สำหรับ Pegasus จะโหลดโมเดลและฝึกฝนโดยใช้ Transformers Trainer
ระดับ:
รหัสเต็มสามารถดูได้ที่ GitHub.
ปรับใช้โมเดล Hugging Face ที่ผ่านการฝึกอบรมกับ SageMaker
เพื่อนของเราที่ Hugging Face ได้สรุปเกี่ยวกับ SageMaker สำหรับโมเดล Transformers ได้ง่ายกว่าที่เคยด้วย ชุดเครื่องมืออนุมานใบหน้ากอด SageMaker. คุณสามารถปรับใช้โมเดลที่ฝึกก่อนหน้านี้ได้โดยตรงโดยเพียงแค่ตั้งค่าตัวแปรสภาพแวดล้อม "HF_TASK":"summarization"
(ดูคำแนะนำได้ที่ รุ่น Pegasus) กำลังเลือก ปรับใช้แล้วเลือก อเมซอน SageMakerโดยไม่ต้องเขียนสคริปต์อนุมาน
อย่างไรก็ตาม หากคุณต้องการวิธีเฉพาะในการสร้างหรือการคาดคะเนภายหลังการประมวลผล เช่น การสร้างคำแนะนำสรุปหลายรายการตามรายการพารามิเตอร์การสร้างข้อความต่างๆ การเขียนสคริปต์การอนุมานของคุณเองอาจมีประโยชน์และค่อนข้างตรงไปตรงมา:
ตามที่แสดงในโค้ดก่อนหน้านี้ สคริปต์อนุมานดังกล่าวสำหรับ HuggingFace บน SageMaker ต้องการเพียงฟังก์ชันเทมเพลตต่อไปนี้เท่านั้น:
- model_fn() – อ่านเนื้อหาของสิ่งที่บันทึกไว้เมื่อสิ้นสุดงานการฝึกอบรมภายใน
SM_MODEL_DIR
หรือจากไดเร็กทอรีน้ำหนักโมเดลที่มีอยู่ซึ่งบันทึกเป็นไฟล์ tar.gz ใน บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3). ใช้เพื่อโหลดโมเดลที่ได้รับการฝึกและโทเค็นไลเซอร์ที่เกี่ยวข้อง - input_fn() – จัดรูปแบบข้อมูลที่ได้รับจากการร้องขอไปยังปลายทาง
- ทำนาย_fn() – เรียกผลลัพธ์ของ
model_fn()
(ตัวแบบและตัวสร้างโทเค็น) เพื่อทำการอนุมานผลลัพธ์ของinput_fn()
(ข้อมูลที่จัดรูปแบบ)
คุณสามารถเลือกสร้าง an output_fn()
ฟังก์ชันสำหรับการจัดรูปแบบการอนุมาน โดยใช้ผลลัพธ์ของ predict_fn()
ซึ่งเราไม่ได้แสดงให้เห็นในโพสต์นี้
จากนั้นเราสามารถปรับใช้โมเดล Hugging Face ที่ผ่านการฝึกอบรมด้วยสคริปต์อนุมานที่เชื่อมโยงกับ SageMaker โดยใช้ กอดใบหน้า SageMaker รุ่น ระดับ:
ทดสอบโมเดลที่ปรับใช้
สำหรับการสาธิตนี้ เราได้ฝึกโมเดลเกี่ยวกับ ชุดข้อมูลรีวิวเสื้อผ้าอีคอมเมิร์ซของผู้หญิงซึ่งมีบทวิจารณ์บทความเกี่ยวกับเสื้อผ้า (ซึ่งเราถือว่าเป็นข้อความป้อนเข้า) และชื่อที่เกี่ยวข้อง (ซึ่งเราถือว่าเป็นบทสรุป) หลังจากที่เราลบบทความที่ไม่มีชื่อแล้ว ชุดข้อมูลจะมีบทวิจารณ์ 19,675 รายการ การปรับแต่งโมเดล Pegasus อย่างละเอียดในชุดการฝึกที่มี 70% ของบทความเหล่านั้นสำหรับห้ายุคใช้เวลาประมาณ 3.5 ชั่วโมงในอินสแตนซ์ ml.p3.16xlarge
จากนั้นเราสามารถปรับใช้โมเดลและทดสอบด้วยข้อมูลตัวอย่างบางส่วนจากชุดทดสอบ ต่อไปนี้คือตัวอย่างบทวิจารณ์ที่อธิบายเสื้อกันหนาว:
ต้องขอบคุณสคริปต์การอนุมานแบบกำหนดเองของเราที่โฮสต์อยู่ในจุดสิ้นสุด SageMaker เราจึงสามารถสร้างสรุปหลายรายการสำหรับการตรวจทานนี้ด้วยพารามิเตอร์การสร้างข้อความที่แตกต่างกัน ตัวอย่างเช่น เราสามารถขอให้ปลายทางสร้างช่วงของบทสรุปสั้นมากถึงยาวปานกลางที่ระบุบทลงโทษด้านความยาวที่แตกต่างกัน ต่อไปนี้คือตัวอย่างอินพุตพารามิเตอร์บางส่วน และข้อมูลสรุปที่สร้างโดยเครื่องในภายหลัง:
สรุปแบบไหนที่คุณชอบ? ชื่อที่สร้างขึ้นครั้งแรกจะรวบรวมข้อเท็จจริงที่สำคัญทั้งหมดเกี่ยวกับบทวิจารณ์ โดยคิดเป็นหนึ่งในสี่ของจำนวนคำ ในทางตรงกันข้าม คำสุดท้ายใช้เพียงสามคำ (น้อยกว่า 1 ใน 10 ของบทวิจารณ์ต้นฉบับ) เพื่อเน้นที่คุณลักษณะที่สำคัญที่สุดของเสื้อสเวตเตอร์
สรุป
คุณสามารถปรับแต่งตัวสรุปข้อความบนชุดข้อมูลที่กำหนดเองของคุณ และปรับใช้กับการใช้งานจริงบน SageMaker ด้วยตัวอย่างง่ายๆ ที่มีอยู่ใน GitHub. เพิ่มเติม โน๊ตบุ๊คตัวอย่าง เพื่อฝึกฝนและปรับใช้โมเดล Hugging Face บน SageMaker ได้ด้วย
เช่นเคย AWS ยินดีรับข้อเสนอแนะ กรุณาส่งความคิดเห็นหรือคำถามใด ๆ
อ้างอิง
[1] PEGASUS: การฝึกอบรมล่วงหน้าด้วยการแยกประโยคสำหรับการสรุปเชิงนามธรรม
เกี่ยวกับผู้แต่ง
วิคเตอร์ มาเลเซวิช เป็นวิศวกรแมชชีนเลิร์นนิ่งที่มีบริการระดับมืออาชีพของ AWS ซึ่งหลงใหลในการประมวลผลภาษาธรรมชาติและ MLOps เขาทำงานร่วมกับลูกค้าเพื่อพัฒนาและนำโมเดลการเรียนรู้เชิงลึกที่ท้าทายมาสู่การผลิตบน AWS ในเวลาว่าง เขาชอบดื่มไวน์แดงและชีสกับเพื่อนๆ
อามนะ นัจมี เป็นนักวิทยาศาสตร์ข้อมูลที่มี AWS Professional Services เธอมีความกระตือรือร้นในการช่วยลูกค้าสร้างสรรค์นวัตกรรมด้วยเทคโนโลยี Big Data และปัญญาประดิษฐ์ เพื่อดึงมูลค่าทางธุรกิจและข้อมูลเชิงลึกจากข้อมูล ในเวลาว่าง เธอชอบทำสวนและเดินทางไปยังสถานที่ใหม่ๆ
- AI
- ไอ อาร์ต
- เครื่องกำเนิดไออาร์ท
- หุ่นยนต์ไอ
- อเมซอน SageMaker
- ปัญญาประดิษฐ์
- ใบรับรองปัญญาประดิษฐ์
- ปัญญาประดิษฐ์ในการธนาคาร
- หุ่นยนต์ปัญญาประดิษฐ์
- หุ่นยนต์ปัญญาประดิษฐ์
- ซอฟต์แวร์ปัญญาประดิษฐ์
- AWS Machine Learning AWS
- blockchain
- การประชุม blockchain ai
- เหรียญอัจฉริยะ
- ปัญญาประดิษฐ์สนทนา
- การประชุม crypto ai
- ดัล-อี
- การเรียนรู้ลึก ๆ
- google ai
- เรียนรู้เครื่อง
- เพลโต
- เพลโตไอ
- เพลโตดาต้าอินเทลลิเจนซ์
- เกมเพลโต
- เพลโตดาต้า
- เพลโตเกม
- ขนาดไอ
- วากยสัมพันธ์
- ลมทะเล