Toolformer (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

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]:

  1. การสร้างผู้สมัครการเรียก API ขั้นแรก นำข้อความจาก corpus ขนาดใหญ่ (เช่น บทความหรือหน้าเว็บ) และ แทรกการเรียกเครื่องมือโดยเทียม ที่อาจช่วยในการต่อเติมหรือเสริมข้อความนั้น การแทรกเหล่านี้โมเดลสร้างขึ้นเองโดยใช้ N-shot prompting โดยอาศัยตัวอย่างการใช้งาน API แต่ละตัวที่กำหนดด้วยมือเพียงไม่กี่ตัวอย่าง[1] ตัวอย่างเช่น โมเดลอาจได้รับข้อความแบบ: «ในปี 2024 ประชากรในเมืองมีจำนวน [QA("จำนวนประชากรของเมืองนี้คือเท่าไร?") → ...] คน» โดย QA( ) คือการเรียกระบบถาม-ตอบที่ควรจะคืนค่าข้อมูลที่ขาดหายไป สำหรับเครื่องมือแต่ละชิ้นจะคัดเลือกบริบทที่เหมาะสม เช่น สำหรับเครื่องคิดเลข โมเดลจะเลือกประโยคที่มีตัวเลขหลายตัวและคำอย่าง «เท่ากับ» หรือ «รวม»[4] — ในบริบทที่ผลลัพธ์ทางเลขคณิตเป็นสิ่งจำเป็นอย่างแท้จริง
  2. การดำเนินการเรียก API และการเสริมข้อมูล จากนั้นการเรียก API ทั้งหมดที่โมเดลสร้างขึ้นจะ ถูกดำเนินการจริง — ตัวอย่างเช่น ส่งคำค้นหาไปยังเสิร์ชเอนจิน หรือคำนวณนิพจน์บนเครื่องคิดเลข คำตอบที่ได้จะถูกแทรกกลับเข้าไปในข้อความ เพื่อสร้างเวอร์ชันสมบูรณ์ของประโยคพร้อมการแทรกในรูปแบบ `{คำตอบ}`[4][4] ในเวลาเดียวกัน ยังเก็บรักษาเวอร์ชัน «ว่างเปล่า» (โดยไม่แทนค่าคำตอบ) และข้อความต้นฉบับที่ไม่มีการเรียกใดๆ — สำหรับการเปรียบเทียบในภายหลัง
  3. การกรองและการประเมินตนเองด้านความมีประโยชน์ ในขั้นตอนนี้ 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. 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]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
  3. 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. 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]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [9]