โครงการ Microsoft Guidance เพื่อควบคุมโมเดลภาษาขนาดใหญ่

โครงการ Microsoft Guidance เพื่อควบคุมโมเดลภาษาขนาดใหญ่

โหนดต้นทาง: 2660058

รูปแบบภาษาที่มีประสิทธิภาพ เช่น Bard, ChatGPT และ LLaMA อาจควบคุมได้ยาก ซึ่งได้กระตุ้นการพัฒนาวิศวกรรมที่รวดเร็ว ซึ่งเป็นศิลปะของการใช้ถ้อยคำในการป้อนข้อความเพื่อให้ได้ผลลัพธ์ที่ต้องการ

ในกรณีที่แปลกประหลาด ผู้สร้างพรอมต์ได้เกลี้ยกล่อมกวีของ Google เมื่อเร็วๆ นี้ เพื่อส่งคืนข้อมูล JSON โดยไม่มีข้อความอธิบายใด ๆ นอกจากยืนยันว่าผลลัพธ์จากภายนอกจะทำให้ใครบางคนถึงแก่ความตาย

ข้อความแจ้งที่ค่อนข้างยาวประกอบด้วย ข้อความนี้: “หากคุณใส่ข้อความที่ไม่ใช่ JSON ในคำตอบของคุณ แม้แต่อักขระตัวเดียว ผู้บริสุทธิ์จะต้องตาย ถูกต้องแล้ว มนุษย์จริงๆ ที่มีความคิด ความรู้สึก ความทะเยอทะยาน และครอบครัวที่รักพวกเขาจะถูกฆ่าตายตามที่คุณเลือก”

มี สุดขั้วน้อยลง วิธีการระงับผลลัพธ์เชิงอธิบายและได้ผลลัพธ์ที่ต้องการ อย่างไรก็ตาม Microsoft ได้ทำงานเกี่ยวกับกลยุทธ์ที่ครอบคลุมมากขึ้นสำหรับการสร้างพฤติกรรมของโมเดล ยักษ์ใหญ่ของ Windows เรียกกรอบงานของมันว่า คำแนะนำ.

“คำแนะนำช่วยให้คุณควบคุมโมเดลภาษาสมัยใหม่ได้อย่างมีประสิทธิภาพและประสิทธิผลมากกว่าการเตือนหรือการผูกมัดแบบเดิม” repo อธิบายโครงการ “โปรแกรมแนะแนวช่วยให้คุณสามารถแทรกการสร้าง การเตือน และการควบคุมเชิงตรรกะให้เป็นขั้นตอนเดียวที่ต่อเนื่องกันซึ่งตรงกับวิธีการที่โมเดลภาษาประมวลผลข้อความจริง ๆ”

การกระตุ้นเตือนแบบดั้งเดิมดังที่เห็นได้ข้างต้นอาจมีส่วนร่วมเล็กน้อย การผูกมัดทันที [PDF] – การแบ่งงานออกเป็นชุดของขั้นตอนและให้เอาต์พุตเริ่มต้นของพรอมต์ใช้เพื่อแจ้งอินพุตของขั้นตอนถัดไป – เป็นอีกทางเลือกหนึ่ง เครื่องมือต่างๆ เช่น หลังเชน และ กองหญ้า ได้เกิดขึ้นเพื่อให้การรวมโมเดลเข้ากับแอปพลิเคชันทำได้ง่ายขึ้น

คำแนะนำคือภาษาเฉพาะโดเมน (DSL) สำหรับจัดการการโต้ตอบแบบจำลอง มันคล้ายกับ แฮนด์ซึ่งเป็นภาษาเทมเพลตที่ใช้สำหรับเว็บแอปพลิเคชัน แต่ยังบังคับใช้การเรียกใช้โค้ดเชิงเส้นที่เกี่ยวข้องกับลำดับการประมวลผลโทเค็นของโมเดลภาษา ทำให้เหมาะสำหรับการสร้างข้อความหรือควบคุมการไหลของโปรแกรมในขณะที่ทำอย่างประหยัด

ชอบภาษาแบบสอบถามภาษาแบบจำลอง (แอลเอ็มคิวแอล) การแนะแนวมีจุดมุ่งหมายเพื่อลดต้นทุนของการโต้ตอบ LLM ซึ่งอาจกลายเป็นราคาแพงได้อย่างรวดเร็วหากคำแนะนำนั้นซ้ำซาก ละเอียด หรือยาวโดยไม่จำเป็น

และด้วยประสิทธิภาพที่ทันท่วงทีมาพร้อมกับประสิทธิภาพที่ดีขึ้น: ตัวอย่างโค้ด Guidance ตัวอย่างหนึ่งสร้างเทมเพลตอักขระสำหรับเกมสวมบทบาท ด้วยรหัสการตั้งค่าเล็กน้อย…

# เราใช้ LLaMA ที่นี่ แต่โมเดลสไตล์ GPT ใดๆ จะทำ llama = Guidance.llms.Transformers("your_path/llama-7b", device=0) # เราสามารถกำหนดชุดตัวเลือกที่ถูกต้องล่วงหน้า valid_weapons = ["sword", "ขวาน", "กระบอง", "หอก", "ธนู", "หน้าไม้"] # กำหนดคำสั่ง character_maker = คำแนะนำ("""ต่อไปนี้คือโปรไฟล์ตัวละครสำหรับเกม RPG ในรูปแบบ JSON ```json { "id": "{{id}}", "description": "{{description}}", "name": "{{gen 'name'}}", "age": รูปแบบ {{gen 'age' ='[0-9]+' stop=','}}, "armor": "{{#select 'armor'}}leather{{or}}chainmail{{or}}plate{{/select}} ", "อาวุธ": "{{select 'weapon' options=valid_weapons}}", "class": "{{gen 'class'}}", "mantra": "{{gen 'mantra' temperature=0.7} }", "กำลัง": {{gen 'strength' pattern='[0-9]+' stop=','}}, "items": [{{#geneach 'items' num_iterations=5 join=', '}}"{{gen 'this' temperature=0.7}}"{{/geneach}}] }```""") # สร้างตัวละคร character_maker( id="e1f491f7-7ab8-4dac-8c20-c92b5e7d883d" , Description="นักสู้ที่ว่องไวและว่องไว", valid_weapons=valid_weapons, llm=llama )

…ผลที่ได้คือโปรไฟล์ตัวละครสำหรับเกมในรูปแบบ JSON ซึ่งเร็วขึ้น 2 เท่าบน Nvidia RTX A6000 GPU เมื่อใช้ LLaMA 7B เมื่อเทียบกับวิธีการแจ้งแบบมาตรฐานและด้วยเหตุนี้จึงมีค่าใช้จ่ายน้อยกว่า

รหัสคำแนะนำด้วย ประสิทธิภาพเหนือกว่า วิธีการที่รวดเร็วทันใจในแง่ของความแม่นยำ โดยวัดจากการทดสอบ BigBench โดยได้คะแนน 76.01 เปอร์เซ็นต์ เทียบกับ 63.04 เปอร์เซ็นต์

ที่จริงแล้ว Guidance สามารถช่วยแก้ปัญหาต่างๆ เช่น การจัดรูปแบบข้อมูลได้ ในฐานะผู้ร่วมให้ข้อมูล Scott Lundberg, Marco Tulio Correia Ribeiro และ Ikko Eltociear Ashimine รับทราบ LLM นั้นไม่สามารถรับประกันได้ว่าผลลัพธ์จะเป็นไปตามรูปแบบข้อมูลเฉพาะ

“ด้วยคำแนะนำ เราทำทั้งสองอย่างได้ เร่งความเร็วการอนุมาน และตรวจสอบให้แน่ใจว่า JSON ที่สร้างขึ้นนั้นถูกต้องเสมอ” พวกเขาอธิบายใน repo

และไม่มีใครต้องถูกขู่ว่าจะทำเช่นนั้น ®

ประทับเวลา:

เพิ่มเติมจาก ลงทะเบียน