LLMs之Gemma:Gemma(Google开发的新一代领先的开源模型)的简介、安装、使用方法之详细攻略

LLMs之Gemma:Gemma(Google开发的新一代领先的开源模型)的简介、安装、使用方法之详细攻略

导读:此文章介绍了Google推出的新一代开源模型Gemma,旨在帮助研发人员负责任地开发AI。

背景

>> Google长期致力于为开发者和研究人员提供各种开放模型,如Transformers、TensorFlow、BERT、T5等,以推动AI的负责任开发

核心要点

>> Gemma是基于同样技术与架构研发的Gemini模型开发出来的轻量级开放模型家族,它是一系列体积较小但性能领先的开源模型。

>> Gemma有2B和7B两种规模,均搭载了预训练和指令调优版本,可以直接在笔记本电脑上运行。与其它同类开源模型相比,Gemma模型规模相对较小但性能表现更好。

>> 同时推出"可责任生成AI工具包",提供安全开发指南和辅助工具,以帮助研发人员安全开发应用。

>> Gemma支持各主流框架进行推理和监督调优,如JAX、PyTorch、TensorFlow Keras,可以在不同设备与平台上应用。

>> 针对开发者提供多设备兼容性,如笔记本、服务器、 IoT、手机以及云平台。

>> 与NVIDIA合作,使Gemma在GPU上实现最优性能。同时支持Google Cloud平台。

>> Google提供300美元Google Cloud试用证和高达50万美元研究资助,支持开发者研究。

优势

>>比同规模模型在多项基准上表现更优。

>>安全性能出色,预训练模型过滤敏感信息,指令训练强调責任感。

>>可在开发者本地设备上运行,极低成本。

>>生态系统完善,支持多框架和设备,助推AI成果在多个场景的应用。

总之,Gemma旨在通过提供强大且低成本的开放模型,推动负责任的AI研发和应用。Gemma模型系列体现了谷歌长期开源AI领域贡献的精神,它旨在通过提供小体积高性能的开源模型,结合提供的安全工具,帮助研发人员以更负责任的方式开发应用AI能力。

目录

Gemma的简介

1、关键细节

2、尺寸上的领先性能

显示Gemma在常见基准测试中的性能,与Llama-2 7B和13B进行比较的图表

3、负责的设计

4、跨框架、工具和硬件的优化

5、用于研究和开发的免费信用额

Gemma的安装

0、系统要求

1、安装

2、下载模型

3、运行单元测试

4、示例

Gemma的使用方法

1、Colab笔记本教程:


Gemma的简介

2024年2月21日,Gemma是由Google DeepMind推出的一系列开源的大型语言模型(LLM),基于Gemini研究和技术。该存储库包含一个基于Flax和JAX的推理实现和示例。

Gemma是使用与Gemini模型相同的研究和技术构建的,旨在推动负责任的人工智能发展。同时,Google长期以来一直致力于为开放社区贡献创新,例如Transformers、TensorFlow、BERT、T5、JAX、AlphaFold和AlphaCode。今天,Google向开发者和研究人员开源了新一代开放模型,以帮助他们负责任地构建人工智能。从今天开始,Gemma全球可用。

Gemma是一系列轻量级、领先的开放模型,它们是由Google DeepMind和Google其他团队开发的,受到了Gemini的启发,名称反映了拉丁语"gemma"的含义,即"宝石"。除了模型权重外,还发布了支持开发者创新、促进合作并引导负责任使用Gemma模型的工具。

官网地址:https://ai.google.dev/gemma

GitHub地址:GitHub - google-deepmind/gemma: Open weights LLM from Google DeepMind.
官方文章地址:Gemma: Google introduces new state-of-the-art open models

1、关键细节

>> Google发布了两个尺寸的模型权重:Gemma 2B和Gemma 7B。每个尺寸都发布了经过预训练和指导调整的变体。

>> 新的负责任生成AI工具包提供了使用Gemma创建更安全人工智能应用程序的指导和基本工具。

>> 我们为推断和监督微调(SFT)提供了工具链,涵盖所有主要框架:JAX、PyTorch和TensorFlow通过本地Keras 3.0。

>> 准备就绪的Colab和Kaggle笔记本,以及与Hugging Face、MaxText、NVIDIA NeMo和TensorRT-LLM等流行工具的集成,使得开始使用Gemma变得轻而易举。

>> 经过预训练和指导调整的Gemma模型可以在您的笔记本电脑、工作站或Google Cloud上运行,并可轻松部署到Vertex AI和Google Kubernetes Engine(GKE)上。

>>  跨多个AI硬件平台的优化确保了行业领先的性能,包括NVIDIA GPU和Google Cloud TPU。 使用条款允许所有组织在尺寸上不受限制地进行负责任的商业使用和分发。

2、尺寸上的领先性能

Gemma模型与今天广泛可用的我们最大、最功能强大的AI模型Gemini共享技术和基础架构组件。这使得与其他开放模型相比,Gemma 2B和7B在其尺寸上实现了最佳性能。并且Gemma模型能够直接在开发者的笔记本电脑或台式电脑上运行。值得注意的是,Gemma在关键基准测试上明显优于更大的模型,同时符合我们对安全和负责任输出的严格标准。有关性能、数据集组成和建模方法的详细信息,请参阅技术报告。

显示Gemma在常见基准测试中的性能,与Llama-2 7B和13B进行比较的图表

3、负责的设计

Gemma是根据我们的AI原则设计的。作为使Gemma预训练模型安全可靠的一部分,我们使用自动化技术从训练集中过滤出某些个人信息和其他敏感数据。此外,我们使用了广泛的微调和人类反馈的强化学习(RLHF),以使我们的指导调整模型与负责任的行为保持一致。为了了解和减少Gemma模型的风险概况,我们进行了强大的评估,包括手动红队测试、自动对抗测试以及对模型进行危险活动能力的评估。这些评估在我们的模型卡中概述。

我们还将一个新的负责任生成AI工具包与Gemma一起发布,以帮助开发者和研究人员优先考虑构建安全和负责任的人工智能应用程序。该工具包包括:

>> 安全分类:我们提供了一种新颖的方法,用于使用最少的示例构建健壮的安全分类器。

>> 调试:模型调试工具可帮助您调查Gemma的行为并解决潜在问题。

>> 指导:您可以根据Google在开发和部署大型语言模型方面的经验,获取模型构建者的最佳实践。

4、跨框架、工具和硬件的优化

您可以根据自己的数据微调Gemma模型,以适应特定的应用需求,例如摘要或检索增强生成(RAG)。Gemma支持各种工具和系统:

>> 多框架工具:使用多框架Keras 3.0、本地PyTorch、JAX和Hugging Face Transformers的推理和微调的参考实现,带上您喜爱的框架。

>> 跨设备兼容性:Gemma模型可以在各种流行设备类型上运行,包括笔记本电脑、台式电脑、物联网、移动和云,实现广泛可访问的人工智能功能。

>> 尖端硬件平台:我们与NVIDIA合作,优化Gemma以适用于NVIDIA GPU,从数据中心到云端再到本地RTX AI个人电脑,确保行业领先的性能和与尖端技术的集成。

>> 为Google Cloud优化:Vertex AI提供了广泛的MLOps工具集,具有一系列调优选项,并使用内置的推理优化进行一键部署。使用完全托管的Vertex AI工具或自管理的GKE,包括从任一平台的成本效益高的基础设施部署。

5、用于研究和开发的免费信用额

Gemma是为驱动AI创新的开放开发者和研究人员社区构建的。您可以通过Kaggle的免费访问、Colab笔记本的免费套餐以及首次使用Google Cloud用户的300美元信用额来开始使用Gemma。研究人员还可以申请高达50万美元的Google Cloud信用额来加速他们的项目。

Gemma的安装

0、系统要求

Gemma可以在CPU、GPU和TPU上运行。对于GPU,我们建议在2B检查点上使用8GB+ GPU RAM,在7B检查点上使用24GB+ GPU RAM。

1、安装

要安装Gemma,您需要使用Python 3.10或更高版本。

安装用于CPU、GPU或TPU的JAX。请按照JAX网站上的说明操作。

运行

python -m venv gemma-demo
. gemma-demo/bin/activate
pip install git+https://github.com/google-deepmind/gemma.git

2、下载模型

模型检查点可通过Kaggle上的http://kaggle.com/models/google/gemma获取。选择其中一个Flax模型变体,单击⤓按钮下载模型存档,然后将内容提取到本地目录。存档包含模型权重和标记器,例如2b Flax变体包含:

2b/ # 包含模型权重的目录

tokenizer.model # 标记器

3、运行单元测试

要运行单元测试,请安装可选的[test]依赖项(例如,在源树的根目录下使用pip install -e .[test]),然后:

pytest .

请注意,默认情况下会跳过sampler_test.py中的测试,因为Gemma源代码中未包含标记器。要运行这些测试,请按照上述说明下载标记器,并在sampler_test.py中的_VOCAB常量中更新路径。

4、示例

要运行示例抽样脚本,请传递权重目录和标记器的路径:

python examples/sampling.py --
--path_checkpoint=/path/to/archive/contents/2b/
--path_tokenizer=/path/to/archive/contents/tokenizer.model

Gemma的使用方法

1、Colab笔记本教程:

colabs/sampling_tutorial.ipynb 包含一个带有抽样示例的Colab笔记本。

colabs/fine_tuning_tutorial.ipynb 包含一个简单的教程,介绍了如何对Gemma进行微调,例如将英语翻译成法语。

colabs/gsm8k_eval.ipynb 是一个带有参考GSM8K评估实现的Colab。

要运行这些笔记本,您需要下载权重和标记器的本地副本(参见上文),并将ckpt_path和vocab_path变量更新为相应的路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/406102.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java向ES库中插入数据报错:I/O reactor status: STOPPED

Java向ES库中插入数据报错:java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STO 一、问题问题原因 二、解决思路 一、问题 在使用Java向ES库中插入数据时,第一次成功插入,第二次出现以下错误&#xff1a…

Python reversed函数

在Python编程中,reversed()函数是一个内置函数,用于反转序列对象的元素顺序。这个函数可以应用于列表、元组、字符串等可迭代对象,并返回一个反向迭代器,可以按照相反的顺序遍历序列中的元素。本文将深入探讨Python中的reversed()…

springboot邮箱注册

1.准备工作 操作之前准备两个邮箱 我准备了网易邮箱和QQ邮箱,网易邮箱用来发送验证码,QQ邮箱用来做注册(希望大家和我一样,不然可能会出错 ) 发送验证码的邮箱需要开启一些设置,否则不…

FFmpeg解析之avformat_find_stream_info函数

avformat_find_stream_info 的主要作用就是:解析媒体文件并获取相关的流信息 整体的逻辑如下图所示: /*** Read packets of a media file to get stream information. This* is useful for file formats with no headers such as MPEG. This* function…

【Java程序设计】【C00276】基于Springboot的就业信息管理系统(有论文)

基于Springboot的就业信息管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的就业信息管理系统 本系统分为前台功能模块、管理员功能模块、学生功能模块、企业功能模块以及导师功能模块。 前台功能模块&…

第十四章[面向对象]:14.8:枚举类

一,定义枚举类 1,把一个类定义为枚举类: 只需要让它继承自 enum 模块中的 Enum 类即可。 例如在下面的例子中,Weekday 类继承自 Enum 类, 则表明这是一个枚举类 枚举类的每个成员都由 2 部分组成,分别是 name 和 value, 其中 name 属性值为该枚举值的变量名(如下例中: …

SwiftUI 支持拖放功能的集合视图(Grid)如何捕获手指按下并抬起这一操作

功能需求 假设我们开发了一款 SwiftUI 应用,其中用户可以通过拖放 Grid 中的 Cell 来完成一些操作。现在,我们希望用户在某个 Cell 被按下并随后抬起手指时得到通知,这能够实现吗? 如上图所示,我们准确地捕获到了手指在 Grid 的 Cell 上按下再抬起这一操作!那么它是如何…

电子元件分销商

Top 10 Active Electronic Parts Distributors List – 2022 / 2023 一家从众多制造商那里收购所有电子元件并销售给客户的公司被称为电子元件分销商。 A company that acquires all electronic components from numerous manufacturers and sells them to customers from a si…

如何做bug分析 ?bug分析什么 ? 为什么要做bug分析 ?

每当我们完成一个版本测试时,总会在测试报告中添加一些分析bug的指标 ,主要用于分析在测试过程中存在的问题 。但是在分析的过程中你就可能遇到如下的问题 : 我应该分析那些指标呢 ?每一个具体的指标该如何分析 ?它能说…

使用Python制作进度条有多少种方法?看这一篇文章就够了!

前言 偶然间刷到一个视频,说到:当程序正在运算时,会有一个较长时间的空白期,谁也不知道程序运行的进度如何,不如给他加个进度条。 于是我今个就搜寻一下,Python版的进度条都可以怎么写! 正文…

【Logback】Logback 日志框架的架构

目录 1、Logger(记录器) (1)有效级别和级别继承 (2)日志打印和日志筛选 (3)记录器命名 2、Appenders(追加器) 3、Layouts(布局)…

【深度学习】LoRA: Low-Rank Adaptation of Large Language Models,论文解读

文章: https://arxiv.org/abs/2106.09685 文章目录 摘要介绍LoRA的特点什么是低秩适应矩阵?什么是适应阶段?低秩适应矩阵被注入到预训练模型的每一层Transformer结构中,这一步是如何做到的? 摘要 自然语言处理的一个重…

Docusaurus框架——快速搭建markdown文档站点介绍sora

文章目录 ⭐前言⭐初始化项目💖 创建项目(react-js)💖 运行项目💖 目录文件💖 创建一个jsx页面💖 创建一个md文档💖 创建一个介绍sora的文档 ⭐总结⭐结束 ⭐前言 大家好&#xff0…

变分自编码器 VAE 超详解,从简单公式推导到模型结构到模型理解

参考文献: [1] Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. [2] Doersch C. Tutorial on variational autoencoders[J]. arXiv preprint arXiv:1606.05908, 2016. [3] 变分自编码器(一&#xff…

nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置

一、http设置 1.1 验证模块 需要输入用户名和密码 htpasswd 此命令来自于 httpd-tools 包,如果没有安装 安装一下即可 也可以安装httpd 直接yum install httpd -y 也一样 第一次生成文件htpasswd -c 文件路径 姓名 交互式生成密码 htpasswd -bc 文…

【牛牛送书 | 第四期】《高效使用Redis:一书学透数据存储与高可用集群》带你快速学习使用Redis

前言: 当今互联网技术日新月异,随着数据量的爆炸式增长,如何高效地存储和管理数据成为了每个公司都必须面对的挑战。与此同时,用户对于应用程序的响应速度和稳定性要求也越来越高。在这个背景下,Redis 作为一个…

证件照(兼容H5,APP,小程序)

证件照由uniappuyui开发完成&#xff0c;并同时兼容H5、App、微信小程序、支付宝小程序&#xff0c;其他端暂未测试。 先看部分效果图吧具体可以下方复制链接体验demo 首页代码 <template><view class""><view class"uy-m-x-30 uy-m-b-20"…

TYPE-C接口桌面显示器:视频与充电的双重革新

在现代科技的浪潮中&#xff0c;TYPE-C接口桌面显示器崭露头角&#xff0c;它不仅仅是一台显示器&#xff0c;更是充电与视频传输的完美融合。这种新型的显示器&#xff0c;凭借其TYPE-C接口&#xff0c;实现了从DC电源到PD协议充电的华丽转身&#xff0c;为众多设备如笔记本电…

实用区块链应用:去中心化投票系统的部署与实施

一、需求分析背景 随着技术的发展&#xff0c;传统的投票系统面临着越来越多的挑战&#xff0c;如中心化控制、透明度不足和易受攻击等问题。为了解决这些问题&#xff0c;我们可以利用区块链技术去中心化、透明性和安全性来构建一个去中心化投票系统。这样的系统能够确保投票过…

opencv直方图绘制详解

文章目录 1.直方图的定义、意义和特征1. 定义2. 意义3. 特征4. 方法和参数 2.灰度直方图3.mask详解4.彩色直方图 1.直方图的定义、意义和特征 1. 定义 在统计学中&#xff0c;直方图是一种对数据分布情况的图形表示&#xff0c;是一种二维统计图表&#xff0c; 他的两个坐标分…