Gemma开源AI指南

2024-03-26 10:12
文章标签 ai 开源 指南 gemma

本文主要是介绍Gemma开源AI指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

1、什么是Gemma

Gemma 是 Google AI 系列的最新成员,由轻量级的顶级开放模型组成,这些模型源自为 Gemini 模型提供动力的相同技术。 这些文本到文本、仅限解码器的大型语言模型以英语提供,提供开放权重、预训练变体和指令调整变体。 Gemma 模型在各种文本生成任务中表现出色,例如回答问题、摘要和推理。 其紧凑的尺寸有助于在笔记本电脑、台式机或个人云基础设施等资源有限的环境中进行部署,实现对尖端人工智能模型的民主化访问并刺激所有人的创新。

Gemma的主要特性如下:

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

2、Gemma vs. Gemini

谷歌表示,Gemma 虽然与 Gemini 不同,但与其共享重要的技术和基础设施组件。 这一共同的基础使 Gemma 2B 和 Gemma 7B 能够相对于其他类似尺寸的开放式模型实现“一流的性能”。

3、Gemma vs. Llama 2

Google 将 Gemma 7B 与 Meta 的 Llama 2 7B 在推理、数学和代码生成等各个领域进行了比较。 Gemma 在所有基准测试中均显着优于 Llama 2。 例如,在推理方面,Gemma 在 BBH 基准测试中得分为 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 分。

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

4、实验1:Gemma与 KerasNLP的结合

KerasNLP 提供了对 Gemma 模型的便捷访问,使研究人员和从业者能够轻松探索和利用其功能来满足他们的需求。

4.1 启用模型访问权限

Gemma-7b 是一个受控模型,需要用户请求访问。按照如下步骤启用模型访问。

  • 登录你的 Kaggle 帐户或注册一个新帐户(如果还没有帐户)。
  • 使用这个链接打开 Kaggle上的Gemma 模型页面。
  • 在 Gemma 模型页面上,单击“请求访问”链接以请求访问模型。
  • 在下一页上提供你的名字、姓氏和电子邮件 ID。
  • 在接下来的页面中单击“接受”以接受许可协议。

4.2 Kaggle 访问密钥生成

要访问该模型,你还需要 Kaggle 访问令牌。 可以通过转到Kaggle设置来,然后单击 API 下的“创建新令牌”按钮来创建新的访问令牌。

4.3 使用 KerasNLP 通过 Gemma 创建脚本

为了运行该模型,Gemma 需要一个具有 16GB RAM 的系统。 在本节中,我们将使用 Google Colab 而不是个人机器。 如果符合要求的规格,可以尝试在你的计算机上运行相同的代码。

  • 打开链接“欢迎来到 Colaboratory — Colaboratory”,然后单击“登录”以登录到你的 Colab 帐户;如果没有帐户,则创建一个新帐户。
  • 通过Runtime→更改运行时类型→T4 GPU→保存将Runtime更改为T4 GPU。

4.4 设置环境变量

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

单击 + 新笔记本 按钮创建新的 Colab 笔记本。 设置 KAGGLE_USERNAME 和 KAGGLE_KEY 的环境变量。

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

4.5 安装依赖项

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

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

4.6 导入包

导入 Keras 和 KerasNLP。

import keras
import keras_nlp

4.7 选择后端

Keras 适用于 TensorFlow、JAX 和 Torch。 选择 jax 作为本部分的后端。

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

4.8 创建模型

在本教程中,我们将使用 GemmaCausalLM 创建一个模型,这是一个用于因果语言建模的端到端 Gemma 模型。 使用 from_preset 方法创建模型。  from_preset 根据预设的架构和权重实例化模型。

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

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

gemma_lm.summary()

4.9 生成文本

gemma 模型有一个生成方法,可以根据提示生成文本。 可选的 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)

还可以使用列表作为输入来提供批量提示:

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

5、实验2:使用HuggingFace的Gemma模型

通过 Hugging Face 平台可以方便地访问和使用 Gemma 模型。 该模型易于探索,使研究人员和实践者能够发挥其潜力。

5.1 启用 Gemma-7b 访问

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

按照步骤启用模型访问:

  • 登录你的 Hugging Face 帐户或注册一个新帐户(如果还没有帐户)。
  • 可以访问这里请求访问权限。

访问链接后,请确认许可协议。 然后,你将被定向到一个页面,可以在其中授权 Kaggle 分享你的 HuggingFace 详细信息。

确认许可后,继续授权 Kaggle 分享你的 Hugging Face 详细信息。 为了进一步访问,此步骤是必需的。

授权 Kaggle 后,将被重定向到显示许可协议的页面。 单击“接受”按钮即同意条款和条件。

接受许可协议后,现在可以访问 Gemma-7b 模型。

要确认你的访问权限,请前往这个链接 ,如果成功访问 Gemma-7b 模型,将收到有关它的相关信息。

5.2 Hugginface访问令牌生成

要访问该模型,还需要 HuggingFace 访问令牌。 可以通过转到“设置”,然后转到左侧边栏中的“访问令牌”,然后单击“新令牌”按钮来创建新的访问令牌来生成一个。

5.3 用 HuggingFace 与 Gemma 创建一个脚本

为了运行该模型,Gemma 需要一个具有 16GB RAM 的系统。 在本节中,我们将使用 Google Colab 而不是个人机器。 如果符合要求的规格,可以尝试在你的计算机上运行相同的代码。

  • 打开链接“欢迎来到 Colaboratory — Colaboratory”,然后单击“登录”以登录到你的 Colab 帐户;如果没有帐户,则创建一个新帐户。
  • 通过Runtime→更改运行时类型→T4 GPU→保存将Runtime更改为T4 GPU。
  • 要使用 Gemma,你必须提供 Hugging Face 访问令牌。 在左侧窗格中选择 Secrets (🔑) 并添加你的 HF_TOKEN 密钥。
  • 单击 + 新笔记本按钮创建新的 Colab 笔记本。

5.4 安装依赖项

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

!pip install transformers torch accelerate

5.5 Huggingface登录

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

5.6 选择模型

使用以下命令访问 gemma-2b-it 模型。 你还可以尝试使用任何一种 Gemma 模型。 请访问 这个链接以了解有关其他 Gemma 模型的更多信息。

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

5.7 生成文本

通过执行以下代码片段来测试模型。

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]))

你将得到如下输出:

这篇关于Gemma开源AI指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848147

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

SpringBoot整合Apache Flink的详细指南

《SpringBoot整合ApacheFlink的详细指南》这篇文章主要为大家详细介绍了SpringBoot整合ApacheFlink的详细过程,涵盖环境准备,依赖配置,代码实现及运行步骤,感兴趣的... 目录1. 背景与目标2. 环境准备2.1 开发工具2.2 技术版本3. 创建 Spring Boot

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷