Sử dụng LIT với Gemma

Xem về AI tạo sinh Chạy trong Google Colab Xem nguồn trên GitHub Tìm hiểu tại Lớp học lập trình

Các sản phẩm AI tạo sinh còn khá mới và hành vi của chúng có thể khác biệt các dạng phần mềm trước đây. Điều này khiến việc thăm dò công nghệ học máy trở nên quan trọng các mô hình đang được sử dụng, xem xét các ví dụ về hành vi của mô hình và điều tra bất ngờ.

Công cụ diễn giải học tập (LIT; trang web, GitHub) là nền tảng gỡ lỗi và phân tích các mô hình học máy để hiểu lý do và cách thức chúng hành xử theo cách của mình.

Tại đây, bạn sẽ tìm hiểu cách thiết lập LIT để khai thác thêm sức mạnh Mô hình Gemma bằng cách sử dụng mô-đun Salience trình tự để phân tích để thiết kế câu lệnh.

Thiết lập LIT để gỡ lỗi lời nhắc Gemma

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.

Bạn có thể yên tâm bỏ qua những thông tin này.

Cài đặt LIT và Keras NLP

Sổ tay này sử dụng cách triển khai KerasNLP của Gemma (xem thêm về cách định cấu hình mục này ở bên dưới). Bạn cần có phiên bản mới nhất của keras (3.0 trở lên) keras-nlp (0.12+) và lit-nlp (1.2 trở lên) và tài khoản Kaggle để tải xuống mô hình cơ sở.

# 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"

Truy cập Kaggle

KerasNLP lưu trữ các mô hình tạ đã qua huấn luyện trên Kaggle. Chiến lược phát hành đĩa đơn Đã sử dụng gói kagglehub để trau chuốt bằng dịch vụ này. Ngoài ra, đừng quên chấp nhận thoả thuận cấp phép cho Gemma từ tài khoản Kaggle của bạn.

Hãy xem Phụ lục ở cuối để biết thêm thông tin về cách thiết lập Kaggle tài khoản.

import kagglehub

kagglehub.login()

Định cấu hình LIT

LIT cung cấp một hàm make_notebook_widget() để định cấu hình lời nhắc công cụ gỡ lỗi trong ngữ cảnh sổ tay.

LIT cung cấp tập dữ liệu gồm các câu lệnh mẫu đi kèm với hướng dẫn được liên kết ở phần sau của tài liệu này.

Hãy xem các nhận xét bên dưới để biết cách định cấu hình tiện ích để sử dụng các kiểu máy khác nhau và/hoặc tập dữ liệu.

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",
)

Giờ đây, bạn có thể kết xuất giao diện người dùng trong một ô Colab.

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

Gỡ lỗi bằng lời nhắc bằng phần thưởng trình tự

Các mô hình ngôn ngữ lớn chuyển văn bản thành văn bản (LLM), chẳng hạn như Gemma, áp dụng trình tự đầu vào dưới dạng văn bản được mã hoá và tạo các mã thông báo mới tiếp nối hoặc hoàn thành logic.

Phương thức đảm bảo an toàn cho phép bạn kiểm tra các phần của một đầu vào có ý nghĩa quan trọng đối với mô hình cho các phần khác nhau của đầu ra được tạo. Mô-đun trình tự phục hồi của LIT mở rộng các phương pháp này để giải thích tầm quan trọng của các trình tự ở nhiều mức độ chi tiết: từ mã thông báo đến từ thành câu và hơn thế nữa.

Bạn có thể sử dụng LIT trong ô ở trên để thực hiện thao tác chọn lọc theo trình tự của riêng bạn. Để có trải nghiệm học tập có hướng dẫn cụ thể hơn, bạn có thể làm theo các bước với hướng dẫn Gỡ lỗi câu lệnh bằng thuộc tính trình tự ngay trong Colab này.

Để có thêm thông tin học thuật và kỹ thuật về cách hoạt động của Tính năng xác minh trình tự, hãy xem bài viết của chúng tôi.

Phụ lục: Truy cập vào Gemma trên Kaggle Hub

Sổ tay này sử dụng phương thức triển khai KerasNLP của Gemma trong tài liệu này. KerasNLP lưu trữ các trọng số mô hình luyện sẵn trên Kaggle và Gemma yêu cầu xác thực và cấp phép để truy cập vào các trọng số đó.

Hướng dẫn sau đây sẽ hướng dẫn bạn cách thiết lập tài khoản Kaggle và xác thực với Kaggle bằng gói kagglehub.

  1. Tạo một tài khoản Kaggle nếu bạn chưa có
  2. Yêu cầu quyền truy cập vào Gemma
    • Đảm bảo bạn đã đăng nhập vào Kaggle bằng tài khoản ở trên
    • Truy cập vào trang yêu cầu sự đồng ý: https://www.kaggle.com/models/google/gemma/license/consent
    • Chọn "Xác minh qua Tài khoản Kaggle" (lựa chọn mặc định) và nhấp vào tiếp theo
    • Hoàn tất biểu mẫu đồng ý (các trường họ và tên ở trên cùng)
    • Xác nhận chính sách bằng cách sử dụng các hộp đánh dấu ở dưới cùng
    • Nhấp vào nút "Chấp nhận" nút ở dưới cùng để được cấp quyền truy cập
    • Thao tác này sẽ chuyển hướng bạn đến trang mô hình (https://www.kaggle.com/models/google/gemma)
  3. Tạo mã thông báo API
    • Đảm bảo bạn đăng nhập vào Kaggle bằng tài khoản bạn đã tạo ở trên
    • Truy cập trang Cài đặt: https://www.kaggle.com/settings
    • Di chuyển xuống phần API
    • Sử dụng nút "Tạo mã thông báo mới" nút dùng để kích hoạt quá trình tạo mã thông báo
    • Sử dụng trình đơn trên màn hình để lưu tệp JSON (có tên là kaggle.json) mà dịch vụ tạo vào máy của bạn
    • Tệp JSON là một đối tượng có hai thuộc tính là tên người dùng và khoá. Bạn sẽ cần cả hai để xác thực với dịch vụ của chúng sau này
  4. Sử dụng thông tin đăng nhập về mã thông báo API để xác thực với kagglehub trong Colab
    • Truy cập vào trình tự LIT Salesince Colab: https://colab.sandbox.google.com/github/google/generative-ai-docs/blob/main/site/en/gemma/docs/lit_gemma.ipynb#scrollTo=yKw8gDsh_nVR
    • Kết nối với một môi trường thời gian chạy có GPU
    • Đối với Gemma 2B, bạn có thể dùng môi trường thời gian chạy T4 miễn phí
    • Đối với Gemma 7B, bạn cần có tín dụng điện toán trả trước của Colab hoặc một tài khoản Colab Pro để sử dụng GPU V100, L4 hoặc A100
    • Chạy ô chứa mã kagglehub để hiện một biểu mẫu HTML yêu cầu tên người dùng và mã thông báo
    • Sao chép trường username của tệp kaggle.json mà bạn đã tải xuống ở bước trước rồi dán vào trường username trong biểu mẫu
    • Sao chép trường key của tệp kaggle.json mà bạn đã tải xuống ở bước trước rồi dán vào trường token trong biểu mẫu
    • Nhấp vào nút đăng nhập để lưu các thông tin đăng nhập này trong thời gian chạy của bạn

Bạn sẽ cần lặp lại bước cuối cùng bất cứ khi nào môi trường thời gian chạy Colab bị ngắt kết nối, vì việc ngắt kết nối sẽ xoá bộ nhớ đệm mà thông tin xác thực đã được lưu trữ.