Get started with Gemma using KerasNLP实践实验一

Get started with Gemma using KerasNLP

https://www.kaggle.com/code/nilaychauhan/get-started-with-gemma-using-kerasnlp

Step1: Gemma Setup

1.1.Gemma setup

To complete this tutorial, you will first need to complete the setup instructions at Gemma setup. The Gemma setup instructions show you how to do the following:

Gemma models are hosted by Kaggle. To use Gemma, request access on Kaggle:

  • Sign in or register at kaggle.com
  • Open the Gemma model card and select "Request Access"
  • Complete the consent form and accept the terms and conditions

1.2.Open the Gemma model card and select "Request Access"

1.3 上面的页面(Gemma | Kaggle)往下滑到下面:选中New Notebook

1.4 更改notebook临时名称为Get started with Gemma using KerasNLP

1.5 运行本地环境。

python 复制代码
# This Python 3 environment comes with many helpful analytics libraries installed
# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python
# For example, here's several helpful packages to load

import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

# Input data files are available in the read-only "../input/" directory
# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using "Save & Run All" 
# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session

Step2 Install dependencies

Install keras and KerasNLP

python 复制代码
# Install Keras 3 last. See https://keras.io/getting_started/ for more details.
!pip install -q -U keras-nlp
!pip install -q -U keras>=3
python 复制代码
pip install Wurlitzer

Step3 Import packages

Import Keras and KerasNLP

python 复制代码
import keras
import keras_nlp

Step 4 Selected a backend

Keras is a high-level, multi-framework deep learning API designed for simplicity and ease of use. Keras 3 lets you choose the backend: TensorFlow, JAX, or PyTorch. All three will work for this tutorial.

python 复制代码
import os

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

Step 5 Create a model

KerasNLP provides implementations of many popular model architectures. In this tutorial, you'll create a model using GemmaCausalLM, an end-to-end Gemma model for causal language modeling. A causal language model predicts the next token based on previous tokens.

Create the model using the from_preset method:

python 复制代码
gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset("gemma_2b_en")

from_preset instantiates the model from a preset architecture and weights. In the code above, the string "gemma_2b_en" specifies the preset architecture: a Gemma model with 2 billion parameters. (A Gemma model with 7 billion parameters is also available. To run the larger model in Colab, you need access to the premium GPUs available in paid plans. Alternatively, you can perform distributed tuning on a Gemma 7B model on Kaggle or Google Cloud.)

Use summary to get more info about the model:

python 复制代码
gemma_lm.summary()

As you can see from the summary, the model has 2.5 billion trainable parameters.

Step 6 Generate text

Now it's time to generate some text! The model has a generate method that generates text based on a prompt. The optional max_length argument specifies the maximum length of the generated sequence.

Try it out with the prompt "What is the meaning of life?".

python 复制代码
gemma_lm.generate("What is the meaning of life?", max_length=64)

Try calling generate again with a different prompt.

python 复制代码
gemma_lm.generate("How does the brain work?", max_length=64)

If you're running on JAX or TensorFlow backends, you'll notice that the second generate call returns nearly instantly. This is because each call to generate for a given batch size and max_length is compiled with XLA. The first run is expensive, but subsequent runs are much faster.

linkcode

You can also provide batched prompts using a list as input:

python 复制代码
gemma_lm.generate(
    ["What is the meaning of life?",
     "How does the brain work?"],
    max_length=64)

Step7 Optional: Try a different sampler

You can control the generation strategy for GemmaCausalLM by setting the sampler argument on compile(). By default, "greedy" sampling will be used.

As an experiment, try setting a "top_k" strategy:

python 复制代码
gemma_lm.compile(sampler="top_k")
gemma_lm.generate("What is the meaning of life?", max_length=64)

While the default greedy algorithm always picks the token with the largest probability, the top-K algorithm randomly picks the next token from the tokens of top K probability.

You don't have to specify a sampler, and you can ignore the last code snippet if it's not helpful to your use case. If you'd like learn more about the available samplers, see Samplers.

倘若您觉得我写的好,那么请您动动你的小手粉一下我,你的小小鼓励会带来更大的动力。Thanks.

相关推荐
冻柠檬飞冰走茶4 分钟前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
小蒋观天下5 分钟前
码率、I帧间隔、智能编码冲突:H.265+导致AI取流解码异常
人工智能
FRing0319 分钟前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
橙橙笔记20 分钟前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
雪落漂泊23 分钟前
C++算法 二分查找篇(上)
开发语言·c++·算法
小小张说故事29 分钟前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
roman_日积跬步-终至千里1 小时前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
在所不辞兄1 小时前
为什么神经网络在训练集损失已接近零后继续训练,测试性能仍可能继续提升,而不是单纯地越来越过拟合?
人工智能·深度学习·神经网络·机器学习·智能仿真
波力海苔夹心脆6751 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
AI砖家2 小时前
ChatGPT Images 2.6 正式支持 GIF 生成:一张图片也能动起来,AI 动图创作时代来了!
人工智能·chatgpt