Gemma:谷歌开源AI模型

2024年03月13日 由 alex 发表 277 0

近几个月来,谷歌推出了 Gemini 模型,在人工智能领域掀起了波澜。现在,谷歌推出了 Gemma,再次引领创新潮流,这是向开源人工智能世界的一次变革性飞跃。


与它的前身不同,Gemma 是一个轻量级、较小的模型,旨在帮助世界各地的开发人员负责任地构建人工智能解决方案,与谷歌的人工智能原则紧密结合。这一具有里程碑意义的举措标志着人工智能技术民主化的重要时刻,为开发人员和研究人员提供了前所未有的使用尖端工具的机会。


作为一个开源模型,Gemma 不仅使最先进的人工智能技术的获取变得民主化,还鼓励全球开发者、研究人员和爱好者社区为其进步做出贡献。这种协作方法旨在加速人工智能创新,消除障碍并培育共享知识和资源的文化。


在本文中,我们将使用 Keras 探索 Gemma 模型,并尝试一些文本生成任务的实验,包括问答、摘要和模型微调。


什么是 Gemma

Gemma 是谷歌人工智能阵容的最新成员,由轻量级的顶级开放模型组成,这些模型源自为 Gemini 模型提供动力的相同技术。这些文本到文本、仅解码器的大型语言模型有英语版本,提供开放权重、预训练变体和指令调整变体。Gemma 模型在问题解答、摘要和推理等各种文本生成任务中表现出色。它们体积小巧,便于在笔记本电脑、台式机或个人云基础设施等资源受限的环境中部署,实现了尖端人工智能模型的平民化,促进了全民创新。


主要特点:

  • 模型尺寸: 谷歌推出两种尺寸的 Gemma 模型: Gemma 2B 和 Gemma 7B,每种模型都提供预训练和指令调整变体。
  • Responsible AI工具包: 谷歌推出了负责任的生成式人工智能工具包,帮助开发人员利用 Gemma 创建更安全的人工智能应用。
  • 用于推理和微调的工具链: 开发人员可以通过原生 Keras 3.0 在 JAX、PyTorch 和 TensorFlow 等主要框架中使用推理和监督微调 (SFT) 工具链。
  • 易于部署: 经过预训练和指令调整的 Gemma 模型可部署在笔记本电脑、工作站或谷歌云上。它们可以毫不费力地部署在 Vertex AI 和谷歌 Kubernetes Engine(GKE)上。
  • 性能: 与其他开放式模型相比,Gemma 模型在其规模上实现了顶级性能。它们在关键基准上的表现远远优于更大的模型,同时还能保持严格的安全和负责任的输出标准。


Gemma 与 Gemini

谷歌表示,Gemma 虽然有别于 Gemini,但与其共享重要的技术和基础设施组件。这种共同的基础使 Gemma 2B 和 Gemma 7B 与其他类似规模的开放模型相比,实现了 "同类最佳性能"。


18


Gemma 与 Llama 2

Google 将 Gemma 7B 与 Meta 的 Llama 2 7B 在推理、数学和代码生成等多个领域进行了比较。在所有基准测试中,Gemma 都明显优于 Llama 2。例如,在 BBH 基准测试中,Gemma 的推理得分为 55.1,而 Llama 2 为 32.6。在数学方面,Gemma 在 GSM8K 基准测试中获得了 46.4 分,而 Llama 2 只有 14.6 分。Gemma 在解决复杂问题方面也表现出色,在 MATH 4-shot 基准测试中获得了 24.3 分,超过了 Llama 2 的 2.5 分。此外,在 Python 代码生成方面,Gemma 获得了 32.3 分,超过了 Llama 2 的 12.8 分。


19


在 Gemma 上进行实验

Gemma 可在 Colab 和 Kaggle 笔记本上随时使用,并与 Hugging Face、NVIDIA、NeMo、MaxText 和 TensorRT-LLM 等流行工具无缝集成。此外,开发人员还可以通过 Keras 3.0 在 JAX、PyTorch 和 TensorFlow 等领先框架中利用 Google 的工具链进行推理和监督微调 (SFT)。


方法 1:将 Gemma 与 KerasNLP 结合使用

KerasNLP 提供对 Gemma 模型的便捷访问,使研究人员和从业人员能够根据自己的需要随时探索和利用其功能。


启用 Gemma-7b 访问

Gemma-7b 是一个门控模型,需要用户申请访问。


请按照以下步骤启用模型访问权限。

  • 登录您的 Kaggle 账户,如果还没有账户,请注册一个新账户。
  • 使用 Gemma | Kaggle 链接打开 Gemma 模型页面。
  • 在 Gemma 模型页面,点击 "请求访问 "链接,请求访问模型。
  • 在下一页提供您的名、姓和电子邮件 ID。
  • 在下一页点击 "接受",接受许可协议。


20


生成 Kaggle 访问密钥

要访问模型,您还需要一个 Kaggle 访问令牌。你可以进入设置 | Kaggle,然后点击 API 下的 "创建新令牌 "按钮来创建一个新的访问令牌。


21


使用 KerasNLP 用 Gemma 创建第一个脚本

要运行模型,Gemma 需要一个拥有 16GB 内存的系统。在本节中,我们将使用 Google Colab 而不是个人计算机。如果您的机器符合要求,您可以尝试在自己的机器上运行相同的代码。


  • 打开 "欢迎来到 Colaboratory - Colaboratory "链接,点击 "登录 "以登录 Colab 账户,如果没有账户,则创建新账户。
  • 通过运行时 → 更改运行时类型 → T4 GPU → 保存,将运行时更改为 T4 GPU。


22


设置环境变量

要使用 Gemma,必须提供 Kaggle 访问令牌。在左侧窗格中选择 "秘密" (?),然后添加你的 KAGGLE_USERNAME 和 KAGGLE_KEY。


23


点击 + New notebook(新建笔记本)按钮,创建新的 colab 笔记本。为 KAGGLE_USERNAME 和 KAGGLE_KEY 设置环境变量。


import os
from google.colab import userdata
os.environ["KAGGLE_USERNAME"] = userdata.get('KAGGLE_USERNAME')
os.environ["KAGGLE_KEY"] = userdata.get('KAGGLE_KEY')


安装依赖项

使用以下命令安装访问 gemma 模型所需的 python 库。点击播放图标执行单元格。


!pip install -q -U keras-nlp
!pip install -q -U keras>=3


导入软件包

导入 Keras 和 KerasNLP。


import keras
import keras_nlp


选择后端

Keras 适用于 tensorflow、jax 和 torch。本节选择 jax 作为后端。


import os
os.environ["KERAS_BACKEND"] = "jax"


创建模型

在本文中,您将使用 GemmaCausalLM(一种用于因果语言建模的端到端 Gemma 模型)创建一个模型。使用 from_preset 方法创建模型。


gemma_lm = keras_nlp.models.GemmaCausalLM.from_preset("gemma_2b_en")


24


使用summary获取有关模型的更多信息:


gemma_lm.summary()


25


生成文本

gemma 模型有一个根据提示生成文本的 generate 方法。可选的 max_length 参数指定了生成序列的最大长度。


gemma_lm.generate("What is the meaning of life?", max_length=64)
gemma_lm.generate("How does the brain work?", max_length=64)


26


您还可以使用列表作为输入,提供分批提示:


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


27


方法 2:从 HuggingFace 使用 Gemma

通过 Hugging Face 平台可以方便地访问和使用 Gemma 模型。该模型随时可供探索,使研究人员和从业人员能够利用其潜力。


启用 Gemma-7b 访问

Gemma-7b 是一个门控模型,需要用户申请访问。


28


请按照以下步骤启用模型访问。


  • 登录您的 Hugging Face 账户,如果还没有账户,请注册一个新账户。
  • 您可以访问 https://huggingface.co/google/gemma-7b 申请访问权限。


29


  • 访问链接后,请确认许可协议。然后,您将被引导至一个页面,授权 Kaggle 共享您的 HuggingFace 详情。


30


  • 确认许可证后,继续授权 Kaggle 共享您的 "拥抱脸 "详细信息。这一步对于进一步访问是必要的。
  • 授权 Kaggle 后,你将被重定向到一个显示许可协议的页面。点击 "接受 "按钮同意条款和条件。


31


  • 接受许可协议后,您现在可以访问 Gemma-7b 模型。
  • 要确认访问权限,请访问以下链接:https://huggingface.co/google/gemma-7b/resolve/main/config.json。如果您已成功访问 Gemma-7b 模型,您将收到相关信息。


32


生成 Hugging Face 访问令牌

要访问模型,您还需要一个 HuggingFace 访问令牌。您可以进入 "设置",然后进入左侧边栏的 "访问令牌",点击 "新建令牌 "按钮创建一个新的访问令牌。


33


使用 HuggingFace 与 Gemma 一起创建第一个脚本

要运行模型,Gemma 需要一个拥有 16GB 内存的系统。我们将使用 Google Colab 而不是个人计算机。如果您的机器符合要求,您可以尝试在自己的机器上运行相同的代码。


  • 打开 "欢迎来到 Colaboratory - Colaboratory "链接,点击 "登录 "以登录 Colab 账户,如果没有账户,则创建新账户。
  • 通过运行时 → 更改运行时类型 → T4 GPU → 保存,将运行时更改为 T4 GPU。
  • 要使用 Gemma,必须提供 Hugging Face 访问令牌。在左窗格中选择秘密 (?) 并添加 HF_TOKEN 密钥。
  • 点击 + 新建笔记本按钮,创建新的 colab 笔记本。


安装依赖项

使用以下命令安装访问 gemma 模型所需的 python 库。点击播放图标执行单元格。


!pip install transformers torch accelerate


登录 HuggingFace

要使用 Gemma 模型,您需要验证您的 Hugging Face 帐户。将提供的代码添加到 Hugging Face 登录的新单元格中。点击播放图标执行单元格。在指定单元格中输入您的 Hugging Face 访问令牌,完成验证过程。


from huggingface_hub import login
login()


34


选择模型

使用以下命令访问 gemma-2b-it 模型。您也可以尝试使用任何一种 gemma 模型。


from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2b-it")
model = AutoModelForCausalLM.from_pretrained("google/gemma-2b-it")


35


生成文本

  • 执行以下代码片段,测试模型。


input_text = "What is Machine Learning."
input_ids = tokenizer(input_text, return_tensors="pt")
outputs = model.generate(**input_ids, max_new_tokens=1024)
print(tokenizer.decode(outputs[0]))


输出结果如下:


36


37


38

文章来源:https://medium.com/pythoneers/exploring-gemma-google-open-source-ai-model-812e71b539c0
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消