สร้างการป้องกันอินพุตและเอาต์พุต

แอปพลิเคชัน Generative AI มักใช้การกรองข้อมูลอินพุตและเอาต์พุต ซึ่งบางครั้งเรียกว่าsafeguards เพื่อช่วยดูแลให้โมเดลทำงานอย่างมีความรับผิดชอบ เทคนิคการกรองอินพุตและเอาต์พุตจะตรวจสอบข้อมูลที่เข้าหรือออกจากโมเดล

การป้องกันและตัวแยกประเภทความปลอดภัยสำเร็จรูป

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

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

Google ได้พัฒนาตัวแยกประเภทที่มีให้ใช้เพื่อความปลอดภัยของเนื้อหาที่สามารถใช้เพื่อกรองอินพุตและเอาต์พุต ดังนี้

  • Perspective API คือ API ฟรีที่ใช้โมเดลแมชชีนเลิร์นนิงเพื่อให้คะแนนผลกระทบที่ความคิดเห็นอาจมีต่อการสนทนา ซึ่งจะระบุคะแนนที่บอกถึงความเป็นไปได้ว่าความคิดเห็นหนึ่งๆ มีพิษ คุกคาม ดูหมิ่น ไม่ตรงประเด็นหรือไม่ เป็นต้น
  • บริการดูแลข้อความคือ Google Cloud API ที่พร้อมใช้งานภายใต้ขีดจำกัดการใช้งานที่กำหนด และใช้แมชชีนเลิร์นนิงเพื่อวิเคราะห์เอกสารกับรายการแอตทริบิวต์ความปลอดภัย ซึ่งรวมถึงหมวดหมู่และหัวข้อต่างๆ ที่อาจเป็นอันตราย ซึ่งอาจถือว่าเป็นเนื้อหาที่ละเอียดอ่อน

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

สร้างตัวแยกประเภทความปลอดภัยที่กำหนดเอง

หาก API ที่พร้อมใช้งานไม่ได้ครอบคลุมนโยบายหรือหากต้องการสร้างตัวแยกประเภทของคุณเอง เทคนิคการปรับแต่งอย่างมีประสิทธิภาพสำหรับพารามิเตอร์ เช่น การปรับแต่งข้อความแจ้ง และ LoRA จะให้เฟรมเวิร์กที่มีประสิทธิภาพ ในวิธีการเหล่านี้ คุณจะใช้ข้อมูลแบบจำกัดเพื่อฝึกพารามิเตอร์ที่สำคัญชุดเล็กๆ ของโมเดลแทนการปรับแต่งทั้งโมเดลได้ วิธีนี้จะช่วยให้โมเดลเรียนรู้พฤติกรรมใหม่ๆ เช่น วิธีแยกประเภทสำหรับกรณีการใช้งานความปลอดภัยใหม่ ด้วยข้อมูลการฝึกที่ค่อนข้างน้อยและพลังในการประมวลผล วิธีการนี้ช่วยให้คุณพัฒนาเครื่องมือความปลอดภัยส่วนบุคคลสำหรับผู้ใช้และ งานของคุณเอง

เพื่อสาธิตวิธีการทำงาน Codelab นี้จะแสดงโค้ดที่จำเป็นสำหรับการตั้งค่า "ตัวแยกประเภทแบบคล่องตัว" Codelab จะแสดงขั้นตอนการนำเข้าข้อมูล จัดรูปแบบสำหรับ LLM, การฝึกการยกน้ำหนัก LoRA และประเมินผลลัพธ์ Gemma ช่วยให้คุณสร้างตัวแยกประเภทที่ทรงพลังเหล่านี้ได้โดยใช้โค้ดเพียงไม่กี่บรรทัด หากต้องการดูภาพรวมที่ละเอียดยิ่งขึ้น เอกสารวิจัยของเรา "Towards Agile Text Classifiers for เท่าไหร่" แสดงวิธีใช้เทคนิคเหล่านี้ในการฝึกงานด้านความปลอดภัยต่างๆ เพื่อบรรลุประสิทธิภาพสูงสุดด้วยตัวอย่างการฝึกอบรมเพียงไม่กี่ร้อย

ในบทแนะนำตัวอย่างนี้ คุณฝึกตัวแยกประเภทเกี่ยวกับวาจาสร้างความเกลียดชังได้โดยใช้ชุดข้อมูล ETHOS ซึ่งเป็นชุดข้อมูลที่เผยแพร่ต่อสาธารณะเพื่อตรวจจับวาจาสร้างความเกลียดชังซึ่งสร้างขึ้นจากความคิดเห็นของ YouTube และ Reddit เมื่อฝึกในโมเดล Gemma ที่เล็กกว่า ตัวอย่างเพียง 200 รายการ (น้อยกว่า 1⁄4 ของชุดข้อมูลเล็กน้อย) จะได้รับคะแนน F1 ที่ 0.80 และ ROC-AUC ที่ 0.78 ผลการค้นหานี้เปรียบเทียบที่น่าพอใจกับผลการค้นหาล้ำสมัยที่รายงานในลีดเดอร์บอร์ดลีดเดอร์บอร์ดนี้ เมื่อฝึกโดยใช้ตัวอย่าง 800 ตัวอย่างเหมือนกับตัวแยกประเภทอื่นๆ ในลีดเดอร์บอร์ด ตัวแยกประเภทแบบ Agile ที่อิงตาม Gemma จะได้คะแนน F1 อยู่ที่ 83.74 คะแนน และคะแนน ROC-AUC อยู่ที่ 88.17 คะแนน คุณจะใช้ตัวแยกประเภทนี้ตั้งแต่แกะกล่อง หรือจะปรับเปลี่ยนโดยใช้บทแนะนำตัวแยกประเภท Gemma Agile ก็ได้

บทแนะนำตัวแยกประเภท Gemma Agile

เริ่ม Codelab เริ่มต้น Google Colab

แนวทางปฏิบัติแนะนำสำหรับการตั้งค่าการป้องกัน

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

หาจุดสมดุลที่เหมาะสมระหว่างความมีประโยชน์กับความไม่เป็นอันตราย: เมื่อใช้ตัวแยกประเภทความปลอดภัย คุณต้องเข้าใจว่าตัวแยกประเภทจะผิดพลาดได้ ซึ่งรวมถึงทั้งผลบวกลวง (เช่น การกล่าวอ้างว่าเอาต์พุตไม่ปลอดภัยแต่ไม่ปลอดภัย) และผลลบลวง (ไม่สามารถติดป้ายกำกับเอาต์พุตว่าไม่ปลอดภัยหากเป็นเช่นนั้น) การประเมินตัวแยกประเภทด้วยเมตริกต่างๆ เช่น F1, Precision, Recall และ AUC-ROC ช่วยให้คุณระบุวิธีเปรียบเทียบระหว่างข้อผิดพลาดผลบวกลวงกับข้อผิดพลาดผลลบลวงได้ การเปลี่ยนเกณฑ์ของตัวแยกประเภทจะช่วยหาจุดสมดุลที่เหมาะสมซึ่งจะช่วยให้ไม่เกิดการกรองผลลัพธ์มากเกินไป แต่ก็ยังปลอดภัยในระดับที่เหมาะสมด้วย

ตรวจสอบตัวแยกประเภทเพื่อหาอคติที่เกิดขึ้นโดยไม่ได้ตั้งใจ: ตัวแยกประเภทความปลอดภัยอย่างเช่นโมเดล ML อื่นๆ สามารถเผยแพร่อคติที่เกิดขึ้นโดยไม่ได้ตั้งใจได้ เช่น การเหมารวมทางสังคม-วัฒนธรรม แอปพลิเคชันต้องได้รับการประเมินอย่างเหมาะสมสำหรับพฤติกรรม ที่อาจเป็นปัญหา โดยเฉพาะอย่างยิ่ง ตัวแยกประเภทความปลอดภัยของเนื้อหาอาจทริกเกอร์เนื้อหาที่เกี่ยวข้องกับตัวตนที่มักเป็นเป้าหมายของการใช้ภาษาที่ไม่เหมาะสมทางออนไลน์มากกว่า ตัวอย่างเช่น ตอนที่เปิดตัว Perspective API โมเดลนี้แสดงผลคะแนนความเป็นพิษในความคิดเห็นซึ่งอ้างอิงถึงกลุ่มข้อมูลประจำตัวบางกลุ่มสูงกว่า (บล็อก) พฤติกรรมที่มากเกินไปนี้สามารถเกิดขึ้นได้เนื่องจากความคิดเห็นที่พูดถึงคำตัวตน สำหรับกลุ่มเป้าหมายที่มักถูกโจมตีมากกว่า (เช่น คำอย่าง "คนผิวดำ" "มุสลิม" "สตรีนิยม" "ผู้หญิง" "เกย์" ฯลฯ) มักเป็นคำที่ไม่เหมาะสมมากกว่า เมื่อชุดข้อมูลที่ใช้ในการฝึกตัวแยกประเภทมีความไม่สมดุลอย่างมากสำหรับความคิดเห็นที่มีคำบางคำ ตัวแยกประเภทอาจสร้างข้อความทั่วไปให้มากเกินไปและพิจารณาว่าความคิดเห็นทั้งหมดที่มีคำเหล่านั้นน่าจะไม่ปลอดภัย มาดูกันว่าทีม Jigsaw ช่วยลด อคติที่เกิดขึ้นโดยไม่ได้ตั้งใจนี้ได้อย่างไร

แหล่งข้อมูลสำหรับนักพัฒนาแอป