|
|
เรียกใช้ใน Google Colab
|
ดูแหล่งที่มาใน GitHub
|
|
ผลิตภัณฑ์ 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
- สร้างบัญชี Kaggle หากยังไม่มี
- ไปที่ https://www.kaggle.com/account/login?phase=startRegisterTab
- ใช้วิธีการแก้ไขใดก็ได้ที่คุณต้องการตั้งค่าบัญชี
- ขอสิทธิ์เข้าถึง Gemma
- ตรวจสอบว่าคุณเข้าสู่ระบบ Kaggle โดยใช้บัญชีด้านบน
- ไปที่หน้าความยินยอม: https://www.kaggle.com/models/google/gemma/license/consent
- เลือกช่องทำเครื่องหมาย "ยืนยันผ่านบัญชี Kaggle" (การเลือกเริ่มต้น) แล้วคลิกถัดไป
- กรอกแบบฟอร์มความยินยอม (ช่องชื่อและนามสกุลที่ด้านบน)
- รับทราบนโยบายโดยใช้ช่องทำเครื่องหมายด้านล่าง
- คลิกลิงก์ "ยอมรับ" ปุ่มที่ด้านล่างเพื่อรับสิทธิ์เข้าถึง
- การดำเนินการนี้ควรเปลี่ยนเส้นทางคุณไปยังหน้าโมเดล (https://www.kaggle.com/models/google/gemma)
- สร้างโทเค็น API
- ตรวจสอบว่าคุณเข้าสู่ระบบ Kaggle โดยใช้บัญชีที่คุณสร้างไว้ข้างต้น
- ไปที่หน้าการตั้งค่า: https://www.kaggle.com/settings
- เลื่อนลงไปที่ส่วน API
- ใช้ "สร้างโทเค็นใหม่" ปุ่มสำหรับทริกเกอร์การสร้างโทเค็น
- ใช้เมนูบนหน้าจอเพื่อบันทึกไฟล์ JSON ชื่อ kaggle.json ซึ่งบริการสร้างขึ้นในเครื่องของคุณ
- ไฟล์ JSON เป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้ 2 รายการ ได้แก่ ชื่อผู้ใช้และคีย์ คุณจะต้องใช้ทั้งคู่เพื่อตรวจสอบสิทธิ์กับบริการของตนในภายหลัง
- ใช้ข้อมูลเข้าสู่ระบบโทเค็น 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 เนื่องจากการขาดการเชื่อมต่อจะล้างแคชของข้อมูลเข้าสู่ระบบ
เรียกใช้ใน Google Colab
ดูแหล่งที่มาใน GitHub