当前位置: 首页 > news >正文

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指南

近几个月来,谷歌推出了 Gemini 模型,在人工智能领域掀起了波澜。 现在,谷歌推出了 Gemma,再次引领创新潮流,这是向开源人工智能世界的一次变革性飞跃。 与前代产品不同,Gemma 是一款轻量级、小型模型&…...

LabVIEW智能家居安防系统

LabVIEW智能家居安防系统 随着科技的飞速发展和人们生活水平的不断提升,智能家居系统以其便利性和高效性,逐渐成为现代生活的新趋势。智能家居安防系统作为智能家居系统的重要组成部分,不仅能够提高家庭的安全性,还能为用户提供更…...

[蓝桥杯 2022 省 A] 求和

[蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1​,a2​,⋯,an​, 求它们两两相乘再相加的和,即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a 1 ⋅ a n a 2 ⋅ a 3 ⋯ a n − 2 ⋅ a n − 1 a n − 2 ⋅ a…...

【C++入门】输入输出、命名空间、缺省参数、函数重载、引用、内联函数、auto、基于范围的for循环

目录 命名空间 命名空间的定义 命名空间的使用 输入输出 缺省参数 函数重载 引用 常引用 引用的使用场景 内联函数 auto 基于范围的for循环 命名空间 请看一段C语言的代码&#xff1a; #include <stdio.h> #include <stdlib.h>int rand 10;int main…...

Docker + Nginx 安装

安装Docker 1.防火墙 2.yum源 3.安装基础软件 更新yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all #清除yum源缓存 yu…...

UE RPC 外网联机(1)

技术&#xff1a;RPC TCP通信 设计&#xff1a;大厅服务<---TCP--->房间服务<---RPC--->客户端&#xff08;Creator / Participator&#xff09; 1. PlayerController 用于RPC通信控制 2.GameMode 用于数据同步 3.类图 4. 注意 &#xff08;1&#xff09;RPC&a…...

AI预测福彩3D第22弹【2024年3月31日预测--第5套算法开始计算第4次测试】

今天&#xff0c;咱们继续进行本套算法的测试&#xff0c;今天为第四次测试&#xff0c;仍旧是采用冷温热趋势结合AI模型进行预测。好了&#xff0c;废话不多说了。直接上结果~ 仍旧是分为两个方案&#xff0c;1大1小。 经过人工神经网络计算并进行权重赋值打分后&#xff0c;3…...

Django(二)-搭建第一个应用(1)

一、项目环境和结构 1、项目环境 2、项目结构 二、编写项目 1、创建模型 代码示例: import datetimefrom django.db import models from django.utils import timezone# Create your models here.class Question(models.Model):question_text models.CharField(max_length2…...

前端bugs

问题&#xff1a; Failed to load plugin typescript-eslint declared in package.json eslint-config-react-app#overrides[0]: Cannot find module eslint/package.json 解决&#xff1a; google了一晚上还得是chatgpt管用 运行以下命令【同时还要注意项目本身使用的Node版…...

MCGS学习——水位控制

要求 插入一个水罐&#xff0c;液位最大值为37插入一个滑动输入器&#xff0c;用来调节水罐水位&#xff0c;滑动输入器最大调节为液位最大值&#xff0c;并能清楚的显示出液位情况用仪表显示水位变化情况&#xff0c;仪表最大显示设置直观清楚方便读数&#xff0c;主划线为小…...

本地搭建多人协作ONLYOFFICE文档服务器并结合Cpolar内网穿透实现公网访问远程办公

文章目录 1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 本篇文章讲解如何使用Docker在本地服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问。 Community Edition允许您在本地服务器上安装ONLYOFFICE文档&…...

Ubuntu 中电子邮件处理工具

Ubuntu 中电子邮件处理工具的综述 在现代通信技术中&#xff0c;电子邮件系统是不可或缺的一部分。特别是在基于 Linux 的操作系统如 Ubuntu 中&#xff0c;有许多高效且可靠的电子邮件处理工具可供选择。除了众所周知的 Postfix&#xff0c;还有其他几个重要的选项&#xff0…...

java多线程——运用线程同步解决线程安全问题

前言&#xff1a; 整理下学习笔记&#xff0c;打好基础&#xff0c;daydayup!!! 线程安全 多线程可以同时进行操作&#xff0c;但如果是同时操作一个共享资源的时候&#xff0c;可能会出现业务安全问题。 示例&#xff1a; 小A和小B共用一个账户&#xff0c;如果小A和小B同时取…...

Radio Silence for mac 好用的防火墙软件

Radio Silence for Mac是一款功能强大的网络防火墙软件&#xff0c;专为Mac用户设计&#xff0c;旨在保护用户的隐私和网络安全。它具备实时网络监视和控制功能&#xff0c;可以精确显示每个网络连接的状态&#xff0c;让用户轻松掌握网络活动情况。 软件下载&#xff1a;Radio…...

全国青少年软件编程(Python)等级考试一级考试真题2023年9月——持续更新.....

青少年软件编程(Python)等级考试试卷(一级) 分数:100 题数:37 一、单选题(共25题,共50分) 1.下列 Python 语句能够正确输出"学而时习之"五个字的是?( )A.print “学而时习之” B.print “(学而时习之)” C.print (“学而时习之”) D.print (学而时习之) 标…...

TCP通信——端口转发(重点内容)

实现多人群聊 Client(客户端&#xff09;建立通信 package com.zz.tcp.case1;import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.util.Scanner;public class Client {public static void mai…...

乐乐音乐鸿蒙版-支持krc歌词(动感歌词、翻译和音译歌词)

简介 乐乐音乐主要是基于HarmonyOS开发的音乐播放器&#xff0c;它支持lrc歌词和动感歌词(ksc歌词、krc歌词和hrc歌词等)、多种格式歌词转换器及制作动感歌词、翻译歌词和音译歌词。 开发环境 ArkTS、Stage模型、SDK3.1、 API 9 注&#xff1a;没试过在真机条件下调试。 功…...

批量删除 rabbitmq中随机队列

批量删除 amq.gen–* 随机队列 操作错误产生了无效随机队列&#xff0c;需要批量删除 进入MQ集群中 docker psdocker exec -it c2d28e816894 /bin/bash过滤列出指定amq.gen–队列 # 列出 指定 vhost/qq 以amq.gen开头的所有队列 rabbitmqctl list_queues --vhost / | grep ^…...

docker 数据卷

Docker数据卷是Docker中的一个核心机制&#xff0c;用于实现容器间数据的持久化和共享。它是宿主机上的一个特殊目录&#xff0c;可以供一个或多个容器使用。容器删除时&#xff0c;不会删除其挂载的数据卷&#xff0c;也不会存在类似的垃圾机制对容器存在的数据卷进行处理。 …...

【开发工具】Ubuntu复制CSDN代码多余符号的去除

在Ubuntu中使用CSDN复制的代码时&#xff0c;可能会出现\u200的符号&#xff0c;这个符号会影响代码的编译和运行&#xff0c;因此需要找到一种快速删除这种符号的方法。 通过搜索找到了一种替换为空的删除方式&#xff0c;笔者编写了一个适用于Rust的shell脚本&#xff0c;需要…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

土建施工员考试:建筑施工技术重点知识有哪些?

《管理实务》是土建施工员考试中侧重实操应用与管理能力的科目&#xff0c;核心考查施工组织、质量安全、进度成本等现场管理要点。以下是结合考试大纲与高频考点整理的重点内容&#xff0c;附学习方向和应试技巧&#xff1a; 一、施工组织与进度管理 核心目标&#xff1a; 规…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场&#xff0c;但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大&#xff0c;传统架构已较难满足当前企业发展的需求&#xff0c;企业面临着三重挑战&#xff1a; ① 业务&#xff1a;国内用户访问海外服…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...

Linux系统:进程间通信-匿名与命名管道

本节重点 匿名管道的概念与原理匿名管道的创建命名管道的概念与原理命名管道的创建两者的差异与联系命名管道实现EchoServer 一、管道 管道&#xff08;Pipe&#xff09;是一种进程间通信&#xff08;IPC, Inter-Process Communication&#xff09;机制&#xff0c;用于在不…...

Java多线程从入门到精通

一、基础概念 1.1 进程与线程 进程是指运行中的程序。 比如我们使用浏览器&#xff0c;需要启动这个程序&#xff0c;操作系统会给这个程序分配一定的资源&#xff08;占用内存资源&#xff09;。 线程是CPU调度的基本单位&#xff0c;每个线程执行的都是某一个进程的代码的某…...