การใช้ LIT กับ Gemma

ดูเกี่ยวกับ Generative AI เรียกใช้ใน Google Colab ดูแหล่งที่มาใน GitHub เรียนรู้ใน Codelab

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

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

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

การตั้งค่า LIT เพื่อแก้ไขข้อบกพร่องของ Gemma Prompt

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

สมุดบันทึกนี้ใช้ KerasNLP ของ Gemma (ข้อมูลเพิ่มเติมเกี่ยวกับวิธี กำหนดค่าด้านล่าง) คุณต้องใช้ keras เวอร์ชันล่าสุด (3.0+) keras-nlp (0.12+) และ lit-nlp (1.2+) และบัญชี Kaggle เพื่อดาวน์โหลด โมเดลฐาน

# Keras is included in Colab runtimes, but needs to be updated to to v3.0+.
# LIT and Keras NLP are not icnldued by default and must be installed.
# Running this cell may require you to restart your session to ensure the newer
# packages are imported correctly.
 pip install -q -U "keras >= 3.0, <4.0" "keras-nlp >= 0.14" "lit-nlp >= 1.2"

การเข้าถึง Kaggle

KerasNLP จัดเก็บน้ำหนักโมเดลก่อนการฝึกของพวกเขาบน Kaggle ใช้แพ็กเกจ kagglehub แล้ว ตรวจสอบสิทธิ์ด้วยบริการนี้ อย่าลืมยอมรับข้อตกลงการอนุญาตให้ใช้สิทธิด้วย สำหรับ Gemma จากบัญชี Kaggle ของคุณ

ดูภาคผนวกในตอนท้ายสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า Kaggle ของคุณได้

import kagglehub

kagglehub.login()

กำลังกำหนดค่า LIT

LIT มีฟังก์ชัน make_notebook_widget() สำหรับการกำหนดค่าพรอมต์ของเรา เครื่องมือแก้ไขข้อบกพร่องในบริบทสมุดบันทึก

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

ดูความคิดเห็นด้านล่างสำหรับการกำหนดค่าวิดเจ็ตเพื่อใช้รุ่นต่างๆ และ/หรือ ชุดข้อมูล

from lit_nlp.examples.prompt_debugging import notebook as lit_pdbnb

# The following function initializes a LIT Notebook Widget. It's configured by
# two required positional arguments:
#
# * `datasets_config`: A list of strings containing the dataset names and
#       paths to load from, as "dataset:path", where path can be a URL or a
#       local file path. The example below uses a special value,
#       `sample_prompts`, to load the example prompts provided in the LIT
#       distribution; no other special values are supported.
# * `models_config`: A list of strings containing the model names and paths to
#       load from, as "model:path", where path can be a URL, a local file path,
#       or the name of a preset for the configured deep learning framework.
#
# LIT supports salience computation for KerasNLP and Hugging Face Transformers
# models running on TensorFlow or PyTorch. Note that all models passed to the
# `models_config` parameter will be loaded using the same framework and runtime.
# You can cofnigre these with the following keywork arguments.
#
# * `dl_framework`: Must be one of "kerasnlp" or "transformers".
# * `dl_runtime`: Must be one of "tensorflow" or "torch".
#
# Changing the `dl_framework` value will affect the authentication method used
# to access Gemma model weights.

lit_widget = lit_pdbnb.make_notebook_widget(
    ['sample_prompts'],
    ["gemma_2b_it:gemma_1.1_instruct_2b_en"],
    dl_framework="kerasnlp",
    dl_runtime="tensorflow",
    batch_size=1,
    max_examples=5,
    precision="bfloat16",
)

ตอนนี้คุณแสดงผล UI ในเซลล์ Colab ได้แล้ว

lit_widget.render()
<IPython.core.display.Javascript object>

พรอมต์การแก้ไขข้อบกพร่องด้วยความอิ่มตัวของลำดับ

โมเดลภาษาขนาดใหญ่ (LLM) ที่แปลงข้อความเป็นข้อความ เช่น Gemma จะใช้ลำดับการป้อนข้อมูล ในรูปแบบของข้อความโทเค็น และสร้างโทเค็นใหม่ การติดตามผลหรือการสำเร็จหลักสูตรเชิงตรรกะ

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

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

หากต้องการข้อมูลทางวิชาการและเทคโนโลยีเพิ่มเติมเกี่ยวกับวิธีการทำงานของ Sequence Salience โปรดดูบทความของเรา

ภาคผนวก: การเข้าถึง Gemma ใน Kaggle Hub

สมุดบันทึกนี้ใช้ KerasNLP ของ Gemma ในเอกสารนี้ KerasNLP จัดเก็บน้ำหนักโมเดลก่อนการฝึกของพวกเขาบน Kaggle และ Gemma ต้องการ การตรวจสอบสิทธิ์และการยอมรับใบอนุญาตเพื่อเข้าถึงน้ำหนักเหล่านั้น

คำแนะนำต่อไปนี้จะแนะนำคุณตลอดขั้นตอนการตั้งค่าบัญชี Kaggle และ ตรวจสอบสิทธิ์ด้วย Kaggle โดยใช้แพ็กเกจ kagglehub

  1. สร้างบัญชี Kaggle หากยังไม่มี
  2. ขอสิทธิ์เข้าถึง Gemma
    • ตรวจสอบว่าคุณเข้าสู่ระบบ Kaggle โดยใช้บัญชีด้านบน
    • ไปที่หน้าความยินยอม: https://www.kaggle.com/models/google/gemma/license/consent
    • เลือกช่องทำเครื่องหมาย "ยืนยันผ่านบัญชี Kaggle" (การเลือกเริ่มต้น) แล้วคลิกถัดไป
    • กรอกแบบฟอร์มความยินยอม (ช่องชื่อและนามสกุลที่ด้านบน)
    • รับทราบนโยบายโดยใช้ช่องทำเครื่องหมายด้านล่าง
    • คลิกลิงก์ "ยอมรับ" ปุ่มที่ด้านล่างเพื่อรับสิทธิ์เข้าถึง
    • การดำเนินการนี้ควรเปลี่ยนเส้นทางคุณไปยังหน้าโมเดล (https://www.kaggle.com/models/google/gemma)
  3. สร้างโทเค็น API
    • ตรวจสอบว่าคุณเข้าสู่ระบบ Kaggle โดยใช้บัญชีที่คุณสร้างไว้ข้างต้น
    • ไปที่หน้าการตั้งค่า: https://www.kaggle.com/settings
    • เลื่อนลงไปที่ส่วน API
    • ใช้ "สร้างโทเค็นใหม่" ปุ่มสำหรับทริกเกอร์การสร้างโทเค็น
    • ใช้เมนูบนหน้าจอเพื่อบันทึกไฟล์ JSON ชื่อ kaggle.json ซึ่งบริการสร้างขึ้นในเครื่องของคุณ
    • ไฟล์ JSON เป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้ 2 รายการ ได้แก่ ชื่อผู้ใช้และคีย์ คุณจะต้องใช้ทั้งคู่เพื่อตรวจสอบสิทธิ์กับบริการของตนในภายหลัง
  4. ใช้ข้อมูลเข้าสู่ระบบโทเค็น API เพื่อตรวจสอบสิทธิ์ด้วย kagglehub ใน Colab
    • ไปที่ Colab Sequence Saleince: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • เชื่อมต่อกับรันไทม์ของ GPU
    • สำหรับ Gemma 2B คุณสามารถใช้รันไทม์ T4 รุ่นฟรีได้
    • สำหรับ Gemma 7B คุณจะต้องมีเครดิตการประมวลผล Colab แบบชำระเงินล่วงหน้าหรือบัญชี Colab Pro เพื่อใช้ GPU V100, L4 หรือ A100
    • เรียกใช้เซลล์โค้ด kagglehub เพื่อแสดงแบบฟอร์ม HTML ที่ขอชื่อผู้ใช้และโทเค็นของคุณ
    • คัดลอกช่อง username จากไฟล์ kaggle.json ที่คุณดาวน์โหลดในขั้นตอนก่อนหน้า แล้ววางลงในช่อง username ในแบบฟอร์ม
    • คัดลอกช่อง key จากไฟล์ kaggle.json ที่คุณดาวน์โหลดในขั้นตอนก่อนหน้า แล้ววางลงในช่อง token ในแบบฟอร์ม
    • คลิกปุ่มเข้าสู่ระบบเพื่อบันทึกข้อมูลเข้าสู่ระบบเหล่านี้ในรันไทม์

คุณจะต้องทำขั้นตอนสุดท้ายซ้ำทุกครั้งที่ไม่มีการเชื่อมต่อรันไทม์ของ Colab เนื่องจากการขาดการเชื่อมต่อจะล้างแคชของข้อมูลเข้าสู่ระบบ