![]() |
![]() |
![]() |
![]() |
생성형 AI 제품은 상대적으로 새로운 제품이며 작동 방식은 소프트웨어입니다. 그렇기 때문에 머신러닝을 탐색하여 모델 동작의 예시를 살펴보고 사용 중인 모델을 조사하여 놀라움을 금치 못합니다.
학습 해석 가능성 도구 (LIT, 웹사이트, GitHub) ML 모델을 디버깅 및 분석하여 원인과 방법을 이해할 수 있는 플랫폼입니다 스스로 행동한다는 것입니다.
여기서는 LIT를 설정하여 Google의 Gemma 모델: 시퀀스 특성 모듈을 사용해 프롬프트 엔지니어링 접근 방식을 사용합니다.
LIT를 설정하여 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.
이는 무시해도 됩니다.
LIT 및 Keras NLP 설치
이 노트북은 Gemma의 KerasNLP 구현을 사용합니다 (자세한 내용은
아래에서 구성하세요. 최신 버전의 keras
(3.0 이상)가 필요합니다.
keras-nlp
(0.12 이상) 및 lit-nlp
(1.2 이상), 그리고
기본 모델입니다.
# 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
패키지가 사용됨
이 서비스로 인증해야 합니다 라이선스 계약에도 동의해야 합니다.
Kaggle 계정에서 Gemma를 구매합니다.
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",
)
이제 Colab 셀에서 UI를 렌더링할 수 있습니다.
lit_widget.render()
<IPython.core.display.Javascript object>
시퀀스 현저성을 사용한 프롬프트 디버깅
Gemma와 같은 텍스트 대 텍스트 대규모 언어 모델 (LLM)은 입력 시퀀스를 텍스트 형식으로 토큰화된 텍스트 형식으로 변환하고 논리적인 후속 조치나 완료로 이어지지요
Salience 메서드를 사용하면 입력은 생성된 출력의 여러 부분에 대해 모델에 중요합니다. LIT의 시퀀스 특징 모듈은 이러한 메서드를 확장하여 시퀀스의 중요성을 다양한 수준에서 설명: 토큰부터 학습합니다.
위 셀의 LIT를 사용하여 시퀀스 특성으로 시도해 볼 수 있습니다. 모듈을 마치겠습니다 보다 자세한 학습 경험을 위해 시퀀스 특징으로 프롬프트 디버깅 튜토리얼을 참조하세요. 확인할 수 있습니다
시퀀스 Salience의 작동 방식에 대한 더 많은 학술 및 기술적 정보는 Google 보고서를 확인하세요.
부록: Kaggle Hub에서 Gemma 액세스
이 노트북은 이 문서에서 Gemma의 KerasNLP 구현을 사용합니다. KerasNLP는 선행 학습된 모델 가중치를 Kaggle에 저장하는데, Gemma는 인증 및 라이선스 확인을 통해 가중치에 액세스할 수 있습니다.
다음 안내에서는 Kaggle 계정을 설정하고
kagglehub
패키지를 사용하여 Kaggle에 인증합니다.
- 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 섹션까지 아래로 스크롤
- '새 토큰 만들기' 사용 토큰 생성을 트리거하는 버튼
- 화면에 표시되는 메뉴를 사용하여 서비스에서 생성하는 kaggle.json이라는 JSON 파일을 저장합니다.
- JSON 파일은 두 가지 속성(사용자 이름과 키)을 갖는 객체입니다. 나중에 서비스에 인증하려면 두 속성이 모두 필요합니다.
- API 토큰 사용자 인증 정보를 사용하여 Colab에서 kagglehub에 인증하세요.
- LIT 시퀀스 판매 Colab으로 이동합니다. 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의 경우 V100, L4 또는 A100 GPU를 사용하려면 선불 Colab 컴퓨팅 크레딧 또는 Colab Pro 계정이 필요합니다.
kagglehub
코드 셀을 실행하여 사용자 이름과 토큰을 요청하는 HTML 양식을 표시합니다.- 이전 단계에서 다운로드한
kaggle.json
파일에서username
필드를 복사하여 양식의username
필드에 붙여넣습니다. - 이전 단계에서 다운로드한
kaggle.json
파일에서key
필드를 복사하여 양식의token
필드에 붙여넣습니다. - 로그인 버튼을 클릭하여 사용자 인증 정보를 런타임에 저장합니다.
Colab 런타임이 연결 해제될 때마다 사용자 인증 정보가 저장된 캐시가 삭제되므로 언제든지 마지막 단계를 반복해야 합니다.