การใช้ LIT เพื่อวิเคราะห์โมเดล Gemma ใน Keras

1. บทนำ

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

เครื่องมือการตีความการเรียนรู้ (LIT; เว็บไซต์, GitHub) เป็นแพลตฟอร์มสำหรับการแก้ไขข้อบกพร่องและวิเคราะห์โมเดล ML เพื่อให้ทราบสาเหตุและลักษณะการทํางานของโมเดล

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

วัตถุประสงค์ในการเรียนรู้

  1. ทําความเข้าใจความโดดเด่นของลําดับและการนําไปใช้ในการวิเคราะห์โมเดล
  2. การตั้งค่า LIT สําหรับ Gemma เพื่อคํานวณเอาต์พุตพรอมต์และความโดดเด่นของลําดับ
  3. การใช้ความโดดเด่นของลําดับผ่านโมดูลความโดดเด่นของ LM เพื่อทําความเข้าใจผลกระทบของการออกแบบพรอมต์ต่อเอาต์พุตของโมเดล
  4. ทดสอบการปรับปรุงพรอมต์ตามสมมติฐานใน LIT และดูผลกระทบ

หมายเหตุ: โค้ดแล็บนี้ใช้การใช้งาน KerasNLP ของ Gemma และ TensorFlow v2 สําหรับแบ็กเอนด์ เราขอแนะนําอย่างยิ่งให้ใช้เคอร์เนล GPU เพื่อทําตาม

การสาธิต UI ของ LIT

2. ความโดดเด่นของลําดับและการใช้งานในการวิเคราะห์โมเดล

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

วิธีการระบุความสำคัญเป็นเทคนิค AI ที่อธิบายได้ (XAI) ประเภทหนึ่งที่บอกได้ว่าอินพุตส่วนใดสำคัญต่อโมเดลสำหรับเอาต์พุตส่วนต่างๆ LIT รองรับวิธีการระบุความสำคัญสำหรับงานการจัดประเภทที่หลากหลาย ซึ่งอธิบายผลกระทบของลำดับโทเค็นอินพุตที่มีต่อป้ายกำกับที่คาดการณ์ ความโดดเด่นของลําดับจะนําวิธีการเหล่านี้ไปใช้กับโมเดล Generative ที่เป็นข้อความต่อข้อความ และอธิบายผลกระทบของโทเค็นก่อนหน้าที่มีต่อโทเค็นที่สร้างขึ้น

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

วิธีการหาจุดสนใจที่อิงตามการไล่สีขั้นสูงขึ้น ได้แก่ Grad ⋅ Input และการไล่สีแบบรวม นอกจากนี้ยังมีวิธีการที่อิงตามการลบออก เช่น LIME และ SHAP ซึ่งอาจมีประสิทธิภาพมากขึ้น แต่การประมวลผลจะใช้เวลานานกว่ามาก ดูการเปรียบเทียบวิธีการต่างๆ ของระดับการมองเห็นโดยละเอียดได้ในบทความนี้

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทางวิทยาศาสตร์เกี่ยวกับความโดดเด่นได้ในบทแนะนําแบบอินเทอร์แอกทีฟสําหรับความโดดเด่น

3. การนําเข้า สภาพแวดล้อม และรหัสการตั้งค่าอื่นๆ

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

หมายเหตุ: คุณอาจเห็นคำเตือนบางอย่างเกี่ยวกับแบบฟอร์ม

ERROR: pip's dependency resolver does not currently take into account all the
packages that are installed. This behaviour is the source of the following
dependency conflicts. bigframes 0.21.0 requires scikit-learn>=1.2.2, but you
have scikit-learn 1.0.2 which is incompatible. google-colab 1.0.0 requires
ipython==7.34.0, but you have ipython 8.14.0 which is incompatible.

คุณไม่จำเป็นต้องสนใจข้อความเหล่านี้

ติดตั้ง LIT และ Keras NLP

สําหรับโค้ดแล็บนี้ คุณจะต้องมี keras (3) keras-nlp (0.14) และ lit-nlp (1.2) เวอร์ชันล่าสุด รวมถึงบัญชี Kaggle เพื่อดาวน์โหลดโมเดลพื้นฐาน

pip install -q -U 'keras >= 3.0' 'keras-nlp >= 0.14' 'lit-nlp >= 1.2'

การเข้าถึง Kaggle

หากต้องการตรวจสอบสิทธิ์ด้วย Kaggle คุณสามารถเลือกดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้

  • จัดเก็บข้อมูลเข้าสู่ระบบไว้ในไฟล์ เช่น ~/.kaggle/kaggle.json
  • ใช้ตัวแปรสภาพแวดล้อม KAGGLE_USERNAME และ KAGGLE_KEY หรือ
  • เรียกใช้โค้ดต่อไปนี้ในสภาพแวดล้อม Python แบบอินเทอร์แอกทีฟ เช่น Google Colab
import kagglehub

kagglehub.login()

ดูรายละเอียดเพิ่มเติมในเอกสารประกอบ kagglehub และอย่าลืมยอมรับข้อตกลงการอนุญาตให้ใช้สิทธิ Gemma

การกำหนดค่า Keras

Keras 3 รองรับแบ็กเอนด์การเรียนรู้เชิงลึกหลายรายการ ซึ่งรวมถึง Tensorflow (ค่าเริ่มต้น), PyTorch และ JAX ระบบจะกําหนดค่าแบ็กเอนด์โดยใช้ตัวแปรสภาพแวดล้อม KERAS_BACKEND ซึ่งต้องตั้งค่าก่อนนําเข้าคลัง Keras ข้อมูลโค้ดต่อไปนี้แสดงวิธีตั้งค่าตัวแปรนี้ในสภาพแวดล้อม Python แบบอินเทอร์แอกทีฟ

import os

os.environ["KERAS_BACKEND"] = "tensorflow"  # or "jax" or "torch"

4. การตั้งค่า LIT

LIT สามารถใช้ใน Python Notebook หรือผ่านเว็บเซิร์ฟเวอร์ได้ Codelab นี้มุ่งเน้นที่กรณีการใช้งาน Notebook เราขอแนะนำให้ทำตามใน Google Colab

ใน Codelab นี้ คุณจะโหลด Gemma v2 2B IT โดยใช้ KerasNLP preset ข้อมูลโค้ดต่อไปนี้จะเริ่มต้น Gemma และโหลดชุดข้อมูลตัวอย่างในวิดเจ็ต LIT Notebook

from lit_nlp.examples.prompt_debugging import notebook as lit_pdbnb

lit_widget = lit_pdbnb.make_notebook_widget(
    ['sample_prompts'],
    ["gemma2_2b_it:gemma2_instruct_2b_en"],
)

คุณสามารถกําหนดค่าวิดเจ็ตได้โดยเปลี่ยนค่าที่ส่งไปยังอาร์กิวเมนต์ตําแหน่งที่จําเป็น 2 รายการ ดังนี้

  • datasets_config: รายการสตริงที่มีชื่อชุดข้อมูลและเส้นทางที่จะโหลดจาก "dataset:path" โดยที่เส้นทางอาจเป็น URL หรือเส้นทางไฟล์ในเครื่อง ตัวอย่างด้านล่างใช้ค่าพิเศษ sample_prompts เพื่อโหลดพรอมต์ตัวอย่างที่ระบุไว้ในชุดค่าผสม LIT
  • models_config: รายการสตริงที่มีชื่อโมเดลและเส้นทางที่จะโหลดในรูปแบบ "model:path" โดยที่เส้นทางอาจเป็น URL, เส้นทางไฟล์ในเครื่อง หรือชื่อค่าที่กำหนดล่วงหน้าสำหรับเฟรมเวิร์กการเรียนรู้เชิงลึกที่กำหนดค่าไว้

เมื่อกําหนดค่า LIT ให้ใช้โมเดลที่ต้องการแล้ว ให้เรียกใช้ข้อมูลโค้ดต่อไปนี้เพื่อแสดงผลวิดเจ็ตในโน้ตบุ๊ก

lit_widget.render(open_in_new_tab=True)

การใช้ข้อมูลของคุณเอง

Gemma เป็นโมเดล Generative ที่เป็นข้อความต่อข้อความ ซึ่งจะรับอินพุตข้อความและสร้างเอาต์พุตข้อความ LIT ใช้ Opinionated API เพื่อสื่อสารโครงสร้างของชุดข้อมูลที่โหลดไปยังโมเดล LLM ใน LIT ออกแบบมาเพื่อทำงานร่วมกับชุดข้อมูลที่มี 2 ช่อง ได้แก่

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

LIT มี sample_prompts ชุดเล็กๆ พร้อมตัวอย่างจากแหล่งที่มาต่อไปนี้ที่รองรับ Codelab นี้และบทแนะนำการแก้ไขข้อบกพร่องพรอมต์แบบขยายของ LIT

  • GSM8K: การแก้โจทย์คณิตศาสตร์ระดับประถมศึกษาด้วยตัวอย่างแบบไม่กี่ช็อต
  • การเปรียบเทียบของ Gigaword: การสร้างบรรทัดแรกสำหรับคอลเล็กชันบทความสั้นๆ
  • พรอมต์ตามหลักเกณฑ์: สร้างแนวคิดใหม่ๆ เกี่ยวกับวิธีใช้วัตถุที่มีเส้นกํากับ/ขอบเขต

นอกจากนี้ คุณยังโหลดข้อมูลของคุณเองได้ง่ายๆ ไม่ว่าจะโหลดเป็นไฟล์ .jsonl ที่มีระเบียนที่มีฟิลด์ prompt และ target (ตัวอย่าง) หรือจากรูปแบบใดก็ได้โดยใช้ Dataset API ของ LIT

เรียกใช้เซลล์ด้านล่างเพื่อโหลดพรอมต์ตัวอย่าง

5. การวิเคราะห์พรอมต์แบบไม่กี่ช็อตสําหรับ Gemma ใน LIT

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

ระบุข้อผิดพลาดในพรอมต์ที่ซับซ้อน

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

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

def analyze_menu_item_template(food_likes, food_dislikes, menu_item):
  return f"""Analyze a menu item in a restaurant.

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in france is usually great
Recommendation: Likely good.

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in france
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.

## Now analyze one more example:

Taste-likes: {food_likes}
Taste-dislikes: {food_dislikes}
Suggestion: {menu_item}
Analysis:"""

คุณพบปัญหาเกี่ยวกับพรอมต์นี้ไหม LIT จะช่วยคุณตรวจสอบพรอมต์ด้วยโมดูลความโดดเด่นของ LM

6. ใช้ความโดดเด่นของลําดับสําหรับการแก้ไขข้อบกพร่อง

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

มาเริ่มกันด้วยการตั้งค่าพรอมต์ให้ป้อนตัวอย่างใหม่สําหรับตัวแปรพรอมต์เทมเพลต ดังนี้

food_likes = """Cheese"""
food_dislikes = """Can't eat eggs"""
menu_item = """Quiche Lorraine"""

prompt = analyze_menu_item_template(food_likes, food_dislikes, menu_item)
print(prompt)

fewshot_mistake_example = {'prompt': prompt}  # you'll use this below
Analyze a menu item in a restaurant.

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in france is usually great
Recommendation: Likely good.

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in france
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.

## Now analyze one more example:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis:

หากเปิด UI ของ LIT ในเซลล์ด้านบนหรือในแท็บแยกต่างหาก คุณสามารถใช้เครื่องมือแก้ไขจุดข้อมูลของ LIT เพื่อเพิ่มพรอมต์นี้

LIT Datapoint Editor

อีกวิธีหนึ่งคือการแสดงผลวิดเจ็ตอีกครั้งโดยตรงด้วยพรอมต์ความสนใจ ดังนี้

lit_widget.render(data=[fewshot_mistake_example])

โปรดสังเกตความสมบูรณ์ของโมเดลที่น่าประหลาดใจ

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: A savoury tart with cheese and eggs
Recommendation: You might not like it, but it's worth trying.

Why is the model suggesting you eat something that you clearly said you can't eat?

ความโดดเด่นของลําดับจะช่วยไฮไลต์ปัญหาที่เป็นต้นเหตุ ซึ่งอยู่ในตัวอย่างแบบไม่กี่ช็อต ในตัวอย่างแรก เหตุผลเชิงตรรกะในส่วนการวิเคราะห์ it has cooked onions in it, which you don't like ไม่ตรงกับคําแนะนําสุดท้าย You have to try it

ในโมดูลความโดดเด่นของ LM ให้เลือก "ประโยค" แล้วเลือกบรรทัดคําแนะนํา ตอนนี้ UI ควรมีลักษณะดังต่อไปนี้

ความโดดเด่นของ LIT

ปัญหานี้เกิดจากข้อผิดพลาดของมนุษย์ นั่นคือการคัดลอกและวางส่วนคำแนะนำโดยไม่ตั้งใจและไม่ได้อัปเดต

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

def get_fewshot_example(source: str) -> str:
  for example in datasets['sample_prompts'].examples:
    if example['source'] == source:
      return example['prompt']
  raise ValueError(f'Source "{source}" not found in the dataset.')

lit_widget.render(data=[{'prompt': get_fewshot_example('fewshot-fixed')}])

ตอนนี้การทํางานของโมเดลจะกลายเป็น

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs and cheese, which you don't like.
Recommendation: Avoid.

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

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

7. ทดสอบสมมติฐานเพื่อปรับปรุงลักษณะการทํางานของโมเดล

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

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

Analyze a menu item in a restaurant.

* The analysis should be brief and to the point.
* The analysis and recommendation should both be clear about the suitability for someone with a specified dietary restriction.

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: Avoid.

...

lit_widget.render(data=[{'prompt': get_fewshot_example('fewshot-constitution')}])

การอัปเดตนี้ช่วยให้คุณเรียกใช้ตัวอย่างอีกครั้งและดูเอาต์พุตที่แตกต่างออกไปได้

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs, which you can't eat.
Recommendation: Not suitable for you.

จากนั้นตรวจสอบความโดดเด่นของพรอมต์อีกครั้งเพื่อช่วยทำความเข้าใจสาเหตุของการเปลี่ยนแปลงนี้

ความโดดเด่นของ LIT

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

8. รวมทีมที่ไม่ใช่ฝ่ายเทคนิคไว้ในการสอดแนมและการสํารวจรูปแบบ

ความสามารถในการตีความควรเป็นการทำงานร่วมกันของทีมที่ครอบคลุมความเชี่ยวชาญด้าน XAI, นโยบาย, กฎหมาย และอื่นๆ

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

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

9. สรุป

กล่าวโดยสรุปคือ

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

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

สุดท้าย Lit มีการปรับปรุงอยู่เสมอ ดูข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์และแชร์คำแนะนำได้ที่นี่