การปกป้อง LLM

Python เบื้องต้นสำหรับ LLMs

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

ความท้าทายของ LLM

รองรับหลายภาษา: ความหลากหลายทางภาษา ทรัพยากรที่มีอยู่ และความสามารถในการปรับตัว

รองรับหลายภาษา

ปัญหา LLM แบบเปิดและแบบปิด: ความร่วมมือ vs การใช้งานอย่างรับผิดชอบ

LLM แบบเปิดและแบบปิด

ความสามารถในการปรับขนาดโมเดล: ความสามารถในการนำเสนอ ความต้องการด้านการคำนวณ และข้อกำหนดการฝึก

ความสามารถในการปรับขนาด LLM

อคติ: ข้อมูลฝึกที่มีอคติ การเข้าใจและสร้างภาษาอย่างไม่เป็นธรรม

อคติใน LLM

1 ไอคอนออกแบบโดย Freepik (freepik.com)
Python เบื้องต้นสำหรับ LLMs

ความถูกต้องและ Hallucination

  • Hallucination: ข้อความที่สร้างขึ้นมีข้อมูลเท็จหรือไม่สมเหตุสมผล แต่ถูกนำเสนอราวกับว่าถูกต้อง

Hallucination ใน LLM

กลยุทธ์ลด Hallucination ใน LLM:

  1. เปิดรับข้อมูลฝึกที่หลากหลายและเป็นตัวแทนที่ดี
  2. ตรวจสอบอคติในผลลัพธ์ + เทคนิคกำจัดอคติ
  3. Fine-tune สำหรับกรณีใช้งานเฉพาะในแอปพลิเคชันที่ละเอียดอ่อน
  4. Prompt engineering: ออกแบบและปรับปรุง prompt อย่างรอบคอบ
Python เบื้องต้นสำหรับ LLMs

ความถูกต้องและ Hallucination

  • Hallucination: ข้อความที่สร้างขึ้นมีข้อมูลเท็จหรือไม่สมเหตุสมผล แต่ถูกนำเสนอราวกับว่าถูกต้อง

Hallucination ใน LLM

Python เบื้องต้นสำหรับ LLMs

เมตริกวิเคราะห์อคติใน LLM: toxicity

  • Toxicity: วัดระดับความเป็นพิษของข้อความโดยใช้ตัวจำแนก hate speech ที่ฝึกไว้แล้ว
  • aggregation="maximum" คืนค่าคะแนน toxicity สูงสุดจากข้อมูลนำเข้า
  • aggregation="ratio" คืนค่า % ของผลการทำนายที่มี toxicity เกิน 0.5
toxicity_metric = load("toxicity")
texts_1 = ["Everyone in the team adores him", "He is a true genius, pure talent"]
texts_2 = ["Nobody in the team likes him", "He is a useless 'good-for-nothing'"]

toxicity_results_1 = toxicity_metric.compute(predictions=texts_1,aggregation="maximum") toxicity_results_2 = toxicity_metric.compute(predictions=texts_2, aggregation="maximum") print("Toxicity Sentences 1:", toxicity_results_1) print("Toxicity Sentences 2:", toxicity_results_2)
Toxicity Sentences 1: {'max_toxicity': 0.0001386617950629443}
Toxicity Sentences 2: {'max_toxicity': 0.012273495085537434}
Python เบื้องต้นสำหรับ LLMs

เมตริกวิเคราะห์อคติใน LLM: regard

  • Regard: ขั้วความรู้สึกทางภาษาและการรับรู้ที่มีอคติต่อกลุ่มประชากรบางกลุ่ม

  • ประเมินคะแนน regard จากผลลัพธ์ LLM ที่เชื่อมโยงกับสองกลุ่มแยกกัน

regard = load("regard")

group1 = ['abc are described as loyal employees',
          'abc are ambitious in their career expectations']
group2 = ['abc are known for causing lots of team conflicts',
          'abc are verbally violent']


polarity_results_1 = regard.compute(data=group1) polarity_results_2 = regard.compute(data=group2)
Python เบื้องต้นสำหรับ LLMs

เมตริกวิเคราะห์อคติใน LLM: regard

for result in polarity_results_1['regard']:
  print(result)
[{'label': 'positive', 'score': 0.9098386764526367}, 
 {'label': 'neutral', 'score': 0.059396952390670776}, 
 {'label': 'other', 'score': 0.026468101888895035}, 
 {'label': 'negative', 'score': 0.004296252969652414}]
[{'label': 'positive', 'score': 0.7809812426567078}, 
 {'label': 'neutral', 'score': 0.18085983395576477}, 
 {'label': 'other', 'score': 0.030492952093482018}, 
 {'label': 'negative', 'score': 0.007666013203561306}]
for result in polarity_results_2['regard']:
  print(result)
[{'label': 'negative', 'score': 0.9658734202384949}, 
 {'label': 'other', 'score': 0.021555885672569275}, 
 {'label': 'neutral', 'score': 0.012026479467749596},
 {'label': 'positive', 'score': 0.0005441228277049959}]
[{'label': 'negative', 'score': 0.9774736166000366}, 
 {'label': 'other', 'score': 0.012994581833481789},  
 {'label': 'neutral', 'score': 0.008945506066083908}, 
 {'label': 'positive', 'score': 0.0005862844991497695}]
Python เบื้องต้นสำหรับ LLMs

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับ LLMs

Preparing Video For Download...