Toolformer (TH)
Toolformer — คือแนวทางการสร้าง โมเดลภาษาขนาดใหญ่ (LLM) ที่ช่วยให้โมเดลสามารถใช้ เครื่องมือภายนอก ผ่านการเรียก API ได้ด้วยตนเอง[1] วิธีการนี้ถูกเสนอในปี 2023 โดยกลุ่มนักวิจัยจาก Meta AI Research ร่วมกับมหาวิทยาลัย Pompeu Fabra (สเปน) ในผลงาน «Toolformer: Language Models Can Teach Themselves to Use Tools» (Timo Schick et al., 2023) ผู้เขียนชี้ให้เห็นถึงความขัดแย้งที่ว่า: LLM สมัยใหม่แสดงความสามารถที่น่าประทับใจในการแก้ปัญหาใหม่ที่ซับซ้อนจากตัวอย่างข้อความ แต่กลับมักไม่สามารถดำเนินการพื้นฐานได้อย่างน่าเชื่อถือ เช่น การนับหรือการค้นหาข้อเท็จจริง[1] เพื่อเอาชนะข้อจำกัดเหล่านี้ ทีมงานได้พัฒนาโมเดล Toolformer ซึ่ง เรียนรู้ด้วยตนเองในการเลือกและเรียกใช้เครื่องมือภายนอก (เช่น เสิร์ชเอนจิน เครื่องคิดเลข หรือบริการแปลภาษา) เพื่อยกระดับคุณภาพการทำงานในหลากหลายภารกิจ[1] ในเดือนกุมภาพันธ์ 2023 โมเดลนี้ถูกเผยแพร่ในรูปแบบ preprint บน arXiv และต่อมาได้รับการยอมรับและนำเสนอในงานประชุม NeurIPS 2023[2]
แนวคิดหลักและความสามารถของโมเดล
Toolformer คือโมเดลภาษาที่ผ่านการ fine-tuning ซึ่งสามารถตัดสินใจได้ว่า จะเรียกใช้เครื่องมือใด เมื่อใดควรเรียกใช้ จะส่งพารามิเตอร์ใด และจะนำผลลัพธ์ที่ได้ไปรวมกับข้อความที่กำลังสร้างอย่างไร[3] การฝึกอบรมดำเนินการในรูปแบบ self-supervised — โมเดลสร้างและประเมินตัวอย่างการใช้ API ด้วยตนเอง โดยต้องการเพียงชุดสาธิตขนาดเล็ก (เพียงไม่กี่ตัวอย่าง) สำหรับเครื่องมือแต่ละชิ้น[3] ต่างจากแนวทางก่อนหน้า ไม่จำเป็นต้องมีการกำกับข้อมูลจำนวนมากหรือเทมเพลตที่กำหนดโดยมนุษย์สำหรับการรวม เครื่องมือ โมเดลเรียนรู้ด้วยตนเองว่า เมื่อใดและอย่างไรจึงควรใช้ API แต่ละตัว โดยยังคงความสามารถด้านภาษาโดยทั่วไปและไม่ถูกจำกัดให้ทำงานเฉพาะกับภารกิจที่กำหนดไว้แคบๆ[1]
ผู้เขียนได้รวมเครื่องมือหลากหลายประเภทเข้าไว้ใน Toolformer ซึ่งเข้าถึงได้ผ่านการเรียก API แบบง่าย ในเวอร์ชันทดลองมีการใช้เครื่องมือดังต่อไปนี้[3]:
- เครื่องคิดเลข – สำหรับดำเนินการคำนวณเลขคณิต
- ระบบ ถาม-ตอบ (Q&A) – สำหรับค้นหาคำตอบสำหรับคำถามข้อเท็จจริงจากฐานความรู้
- เสิร์ชเอนจิน (2 แบบที่แตกต่างกัน) – สำหรับค้นหาข้อมูลที่เป็นปัจจุบันในอินเทอร์เน็ต
- ระบบ แปลภาษาด้วยเครื่อง – สำหรับแปลข้อความระหว่างภาษาต่างๆ
- ปฏิทิน – สำหรับรับข้อมูลเกี่ยวกับวันที่และเวลา
เครื่องมือแต่ละชิ้นถูกแทนในรูปแบบส่วนของข้อความ (ป้ายกำกับข้อความพิเศษ) ซึ่งช่วยให้โมเดลสามารถ แทรกการเรียก API ลงในข้อความที่กำลังสร้างได้โดยตรง[4] ตัวอย่างเช่น โมเดลสามารถแทรกโครงสร้างในรูปแบบ `[Calculator(...)]` หรือ `[Search("คำค้นหา")]` ในบริบทปัจจุบัน เพื่อส่งสัญญาณว่าต้องการการเรียกใช้ภายนอก ระหว่างการสร้างคำตอบ Toolformer จะสร้างสัญลักษณ์พิเศษ (ลูกศร →) ซึ่งระบบจะหยุดการสร้างชั่วคราวและดำเนินการเรียก API ที่เกี่ยวข้อง ผลลัพธ์ที่ได้จะถูกแทรกลงในข้อความ จากนั้นการสร้างส่วนถัดไปจะดำเนินต่อไป[4] กลไกนี้ช่วยให้โมเดลสามารถ ดึงความสามารถของบริการภายนอกมาใช้แบบไดนามิก ขณะที่ยังคงเป็นโมดูลภาษาเดียวโดยไม่เปลี่ยนแปลงสถาปัตยกรรม
การฝึกอบรมโมเดล (วิธีการ)
นักพัฒนาได้อธิบายกระบวนการฝึกอบรม Toolformer เป็นหลายขั้นตอน[4] โดยใช้เทคนิค in-context learning เพื่อสร้างข้อมูลสังเคราะห์[1]:
- การสร้างผู้สมัครการเรียก API ขั้นแรก นำข้อความจาก corpus ขนาดใหญ่ (เช่น บทความหรือหน้าเว็บ) และ แทรกการเรียกเครื่องมือโดยเทียม ที่อาจช่วยในการต่อเติมหรือเสริมข้อความนั้น การแทรกเหล่านี้โมเดลสร้างขึ้นเองโดยใช้ N-shot prompting โดยอาศัยตัวอย่างการใช้งาน API แต่ละตัวที่กำหนดด้วยมือเพียงไม่กี่ตัวอย่าง[1] ตัวอย่างเช่น โมเดลอาจได้รับข้อความแบบ: «ในปี 2024 ประชากรในเมืองมีจำนวน [QA("จำนวนประชากรของเมืองนี้คือเท่าไร?") → ...] คน» โดย QA( ) คือการเรียกระบบถาม-ตอบที่ควรจะคืนค่าข้อมูลที่ขาดหายไป สำหรับเครื่องมือแต่ละชิ้นจะคัดเลือกบริบทที่เหมาะสม เช่น สำหรับเครื่องคิดเลข โมเดลจะเลือกประโยคที่มีตัวเลขหลายตัวและคำอย่าง «เท่ากับ» หรือ «รวม»[4] — ในบริบทที่ผลลัพธ์ทางเลขคณิตเป็นสิ่งจำเป็นอย่างแท้จริง
- การดำเนินการเรียก API และการเสริมข้อมูล จากนั้นการเรียก API ทั้งหมดที่โมเดลสร้างขึ้นจะ ถูกดำเนินการจริง — ตัวอย่างเช่น ส่งคำค้นหาไปยังเสิร์ชเอนจิน หรือคำนวณนิพจน์บนเครื่องคิดเลข คำตอบที่ได้จะถูกแทรกกลับเข้าไปในข้อความ เพื่อสร้างเวอร์ชันสมบูรณ์ของประโยคพร้อมการแทรกในรูปแบบ `{คำตอบ}`[4][4] ในเวลาเดียวกัน ยังเก็บรักษาเวอร์ชัน «ว่างเปล่า» (โดยไม่แทนค่าคำตอบ) และข้อความต้นฉบับที่ไม่มีการเรียกใดๆ — สำหรับการเปรียบเทียบในภายหลัง
- การกรองและการประเมินตนเองด้านความมีประโยชน์ ในขั้นตอนนี้ Toolformer จะประเมินด้วยตนเองว่าการแทรก API ที่สร้างขึ้นใดมีประโยชน์จริงสำหรับการทำนายการต่อเติมข้อความ[4] ทำการเปรียบเทียบความน่าจะเป็นของโมเดลภาษาในการต่อเติมข้อความในสามสถานการณ์: (ก) ไม่มีการเรียกใดๆ (ข) มีการเรียกเครื่องมือโดยไม่แทนค่าผลลัพธ์ (ค) มีการเรียกพร้อมผลลัพธ์ที่แทนค่าแล้ว[4] หากการเพิ่มคำตอบ API เฉพาะเจาะจงช่วยเพิ่มความน่าจะเป็นของโมเดลในการต่อเติมวลีได้อย่างถูกต้อง (นั่นคือช่วยให้โมเดลทำนายคำต่อไปได้จริง) ตัวอย่างนั้นจะถือว่ามีประโยชน์ เฉพาะการแทรกที่ ให้ผลกำไรในแง่ความน่าจะเป็น เท่านั้นที่จะถูกเก็บไว้ในชุดข้อมูล วิธีนี้ช่วยกรองกรณีที่การเรียกเครื่องมือซ้ำซ้อนหรือไม่ได้นำข้อมูลใหม่เข้ามา สุดท้าย โมเดลจะถูก fine-tuning บนชุดข้อมูลที่กรองแล้วซึ่งประกอบด้วยตัวอย่างข้อความจริงพร้อมการเรียก API ที่แทรกอย่างเหมาะสม[1] การฝึกอบรมดำเนินการตามเป้าหมายมาตรฐานของการสร้างโมเดลภาษา — การทำนาย token ถัดไปในลำดับ รวมถึง token ที่แทนผลลัพธ์การเรียกเครื่องมือด้วย
สิ่งสำคัญที่ต้องเน้นคือ การนำเครื่องมือใหม่แต่ละชิ้นมาใช้ต้องการเพียง ตัวอย่างที่ทำด้วยมือเพียงไม่กี่ตัวอย่าง ของการใช้งาน — หลังจากนั้นการสร้างข้อมูลการฝึกอบรมจะดำเนินไปโดยอัตโนมัติ[3] ด้วยเหตุนี้ แนวทาง Toolformer จึงแทบไม่ขึ้นอยู่กับการมี corpus ที่มีป้ายกำกับเฉพาะทาง และ ลดภาระงานในการกำกับข้อมูลให้น้อยที่สุด โมเดลเรียนรู้รูปแบบและความเหมาะสมของการเรียก API ด้วยตนเอง และยังคงความเป็นสากล: โมเดลจะใช้เครื่องมือเฉพาะเมื่อจำเป็นจริงๆ สำหรับการแก้ไขงานที่กำหนดเท่านั้น[1]
ผลการทดลอง
เพื่อทดสอบวิธีการในเชิงทดลอง นักวิจัยได้นำโมเดลภาษาที่มีอยู่แล้ว GPT-J (6.7 พันล้านพารามิเตอร์) — LLM แบบเปิดที่ฝึกอบรมบน corpus The Pile[4] มาใช้ โมเดลนี้ถูก fine-tuning ตามขั้นตอนที่อธิบายไว้ ได้ Toolformer ที่อิงจาก GPT-J ประสิทธิภาพของแนวทางใหม่ถูกประเมินในรูปแบบ zero-shot (ไม่มีตัวอย่าง) บนภารกิจมาตรฐานหลายประการ รวมถึงการแก้โจทย์คณิตศาสตร์ข้อความ การค้นหาข้อเท็จจริงและการตอบคำถามเชิงความรู้ (QA) รวมถึงการแปลและการเติมช่องว่างในข้อความ ชุดข้อมูลทดสอบที่ใช้ ได้แก่ ชุดคำถามเปิด Natural Questions, TriviaQA (สำหรับการประเมินความรู้ข้อเท็จจริง) และชุดโจทย์ ASDiv, MAWPS, SVAMP (โจทย์คณิตศาสตร์ข้อความเลขคณิต) รวมถึง benchmark QA หลายภาษา MLQA, LAMA[5]
ผลลัพธ์แสดงให้เห็นว่า Toolformer มีประสิทธิภาพเหนือกว่า โมเดลต้นฉบับที่มีขนาดเดียวกันอย่างมีนัยสำคัญในหลายภารกิจ[1] ยิ่งกว่านั้น ด้วยการเชื่อมต่อเครื่องมือ โมเดลขนาดค่อนข้างเล็ก (6.7 พันล้านพารามิเตอร์) สามารถ แซงหน้าโมเดล GPT-3 ที่ใหญ่กว่ามาก (175 พันล้านพารามิเตอร์) ในตัวชี้วัดบางประการ[1][6] ตัวอย่างเช่น ในโจทย์คณิตศาสตร์ข้อความที่ต้องการการคำนวณที่แม่นยำ Toolformer แสดงความก้าวหน้าที่เห็นได้ชัดเจนเป็นพิเศษเมื่อเทียบกับ LLM ทั่วไป โดยแก้โจทย์ดังกล่าว ได้อย่างแม่นยำด้วยเครื่องคิดเลข ขณะที่แม้แต่ GPT-3 ก็ยังเกิดข้อผิดพลาด[1] ในการทดสอบคำถามข้อเท็จจริง (QA) Toolformer ที่อิงจาก GPT-J ยังแสดงคุณภาพการตอบที่เทียบเท่าหรือดีกว่า GPT-3 เนื่องจากสามารถค้นหาอินเทอร์เน็ตเพื่อรับข้อมูลที่เป็นปัจจุบัน[1] สิ่งสำคัญคือแนวทางใหม่นี้ ไม่ได้ลดความสามารถโดยทั่วไปของโมเดลภาษา เช่น การต่อเติมข้อความอย่างสอดคล้องกันบนข้อมูลปกติ: Toolformer รักษาระดับการสร้างภาษาธรรมชาติโดยไม่ใช้เครื่องมือให้อยู่ในระดับเดียวกับ GPT-J ต้นฉบับ[3] กล่าวอีกนัยหนึ่ง การเพิ่มฟังก์ชันการเรียก API ไม่ได้ «ลด» ทักษะพื้นฐานของโมเดล แต่ขยายความสามารถเหล่านั้นด้วยความสามารถเพิ่มเติม
ความสำคัญของงานและการวิจัยต่อเนื่อง
การพัฒนา Toolformer ได้แสดงให้เห็นถึงความเป็นไปได้ในหลักการที่จะ ฝึกโมเดลให้ใช้เครื่องมือภายนอกโดยแทบไม่ต้องมีการกำกับข้อมูลด้วยมือ โดยผ่านการสร้างข้อมูลสังเคราะห์และการประเมินตนเองด้านความมีประโยชน์ ความสำเร็จนี้เปิดทางไปสู่ LLM ขนาดใหญ่ที่ มีประสิทธิภาพและเชื่อถือได้มากขึ้น: แทนที่จะเพิ่มพารามิเตอร์หลายพันล้านตัวเพื่อจดจำข้อเท็จจริงหรือกฎคณิตศาสตร์ โมเดลขนาดค่อนข้างกะทัดรัดสามารถ ดึงทรัพยากรภายนอกแบบไดนามิก (ฐานความรู้ เครื่องคิดเลข บริการต่างๆ) เพื่อเติมเต็มช่องว่างของตนเอง[1] แนวทางนี้ช่วยลดจำนวน «ภาพหลอน» (เมื่อโมเดลสร้างข้อมูลที่ไม่มีอยู่จริง) เพิ่มความแม่นยำของคำตอบและความทันสมัยของความรู้โดยไม่ต้องปรับโมเดลทั้งหมดใหม่ โดยพื้นฐานแล้ว Toolformer บรรลุ «สิ่งที่ดีที่สุดจากสองโลก» — ผสมผสานทักษะด้านภาษาของโมเดลขนาดใหญ่เข้ากับความแม่นยำของเครื่องมือเฉพาะทาง[3]
ผลงานของ Schick และเพื่อนร่วมงานเป็นหนึ่งในผลงานแรกที่แสดงให้เห็นการเรียนรู้ API ภายนอกโดยอิสระของ LLM และได้สร้างความสนใจอย่างมากในชุมชน มีการวิจัยต่อเนื่องที่พัฒนาแนวคิดนี้ต่อไป ตัวอย่างเช่น ในปี 2023 ได้มีการเสนอโมเดล Graph-ToolFormer ซึ่งปรับหลักการของ Toolformer สำหรับการทำงานกับข้อมูลกราฟ โดยอิงจาก prompt ที่สร้างโดย ChatGPT Graph-ToolFormer สอนโมเดลภาษาให้เรียกใช้เครื่องมือภายนอกสำหรับการแก้งานการวิเคราะห์กราฟ (เช่น การรับคุณสมบัติของกราฟ การทำงานกับเครือข่ายความรู้ ฯลฯ)[7] การพัฒนาที่น่าสังเกตอีกอย่างคือโมเดล Gorilla (Univ. of California, Berkeley, 2023) ซึ่งมุ่งเน้นที่การใช้งาน API ของโปรแกรมบุคคลที่สามจำนวนมากอย่างแม่นยำ[8] Gorilla คือโมเดล LLaMA ที่ถูก fine-tuning บนชุดฟังก์ชันที่มีเอกสารประกอบจำนวนมาก ซึ่งสามารถสร้าง การเรียก API ที่ถูกต้องจากคำอธิบายงาน และประสบความสำเร็จมากจนในการทดลองสามารถแซงหน้าแม้แต่ GPT-4 ในแง่ความแม่นยำของการสร้างการเรียกไลบรารีและบริการ[8] ใน Gorilla มีการรวมกลไกการค้นหาเอกสาร ซึ่งช่วยให้สามารถอัปเดตข้อมูลเกี่ยวกับการเปลี่ยนแปลง API และลดข้อผิดพลาดและภาพหลอนในการใช้เครื่องมืออย่างมีนัยสำคัญ[8] งานเหล่านี้ยืนยันความสำคัญของทิศทางที่ Toolformer เปิด: การผสมผสาน LLM กับเครื่องมือภายนอกถูกมองว่าเป็นแนวทางที่มีแนวโน้มในการสร้างระบบ AI ที่ทรงพลังและเชื่อถือได้มากขึ้น
มีการสังเกตว่าแนวคิดการรวมเครื่องมือเข้ากับโมเดลภาษากำลังพัฒนาไม่เพียงแต่ในด้านการวิจัยเท่านั้น แต่ยังในอุตสาหกรรมด้วย ตัวอย่างเช่น ในเดือนมีนาคม 2023 บริษัท OpenAI ได้เปิดตัวระบบ ปลั๊กอินสำหรับ ChatGPT — อินเทอร์เฟซพิเศษที่ช่วยให้สามารถเชื่อมต่อโมเดลกับบริการภายนอก (เว็บเบราว์เซอร์ ฐานความรู้ เครื่องยนต์คำนวณ ฯลฯ) เพื่อรับข้อมูลที่เป็นปัจจุบันและดำเนินการคำนวณ[9] ผู้ใช้ร้องขอฟังก์ชันดังกล่าวมานาน และการปรากฏตัวของปลั๊กอินนั้นได้นำแนวคิดที่คล้ายกับ Toolformer ไปปฏิบัติจริง: โมเดลถูกเสริมด้วย «เครื่องมือ» เพื่อขยายความสามารถในการตอบสนองต่อคำขอผู้ใช้ที่หลากหลาย[9] ดังนั้น Toolformer จึงสอดคล้องกับแนวโน้มทั่วไปของการพัฒนา AI ซึ่ง LLM กำลังกลายเป็น แพลตฟอร์ม ที่สามารถดึงความรู้และการคำนวณภายนอกมาใช้ตามคำขอ การวิจัยที่ดำเนินการโดยทีม Meta AI และ UPF ได้วางรากฐานที่สำคัญของทิศทางนี้ โดยแสดงให้เห็นว่า LLM สามารถเรียนรู้การทำงานกับเครื่องมือโดยแทบไม่ต้องมีการแนะนำด้วยมือ และด้วยเหตุนี้จึงเข้าใกล้ผู้ช่วยอัจฉริยะที่เป็นสากลและปลอดภัยยิ่งขึ้น[1][3]
ลิงก์
- บทความต้นฉบับ «Toolformer: Language Models Can Teach Themselves to Use Tools» บน arXiv
- ภาพรวม Toolformer บน Synced Review
- หน้า Toolformer บน OpenReview
- ภาพรวม Toolformer บน Medium
- บทความเกี่ยวกับโมเดล Gorilla บน arXiv
- หน้าปลั๊กอิน ChatGPT บนเว็บไซต์ OpenAI
เอกสารอ้างอิง
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
- Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
- Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
- Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
- Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
- Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
- OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
- Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
- Schick, T. et al. (2023). Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.
หมายเหตุ
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
- ↑ Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
- ↑ «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
- ↑ Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
- ↑ Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
- ↑ 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
- ↑ 9.0 9.1 «ChatGPT plugins». OpenAI. [9]