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变量更新为相应的路径。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue(学习笔记)

什么是Vue Vue是一套构建用户界面的渐进式框架 构建用户界面: 基于数据渲染出用户可以看到的界面 渐进式: 所谓渐进式就是循序渐进,不一定非得把Vue中的所有API都学完才能开发Vue,可以学一点开发一点 创建Vue实例 比如就上面…

猫头虎分享已解决Bug || ImportError: Keras requires TensorFlow 2.2 or higher

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

openai sora 只能根据文本生成视频?不,TA 是通用物理世界模拟器

视频生成模型作为世界模拟器 我们探索了在视频数据上进行大规模生成模型的训练。 具体来说,我们联合在可变持续时间、分辨率和长宽比的视频和图像上训练文本条件扩散模型。 我们利用了一个在视频和图像潜在编码的时空补丁上操作的变压器架构。 我们最大的模型So…

C++的string容器->基本概念、构造函数、赋值操作、字符串拼接、查找和替换、字符串比较、字符存取、插入和删除、子串

#include<iostream> using namespace std; #include <string> //string的构造函数 /* -string(); //创建一个空的字符串 例如: string str; -string(const char* s); //使用字符串s初始化 -string(const string& str); //使…

Leetcode 209.长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例 1&#xff1a; 输入&…

Linux基础命令-文件管理

目录结构 1.存放命令相关的目录 /bin #普通用户使用的命令 /bin/ls, /bin/date /sbin #管理员使用的命令 /sbin/service2.存放用户相关数据的家目录 /home #普通用户的家目录, 默认为/home/username /root #超级管理员root的家目录, 普通用户无权操作3.系统文件目录 /usr #相当…

《TCP/IP详解 卷一》第3章 链路层

目录 3.1 引言 3.2 以太网 3.3 全双工 省点 自动协商 流量控制 3.4 网桥和交换机 3.5 WiFi 3.6 PPP协议 3.6.1 PPP协议流程 3.7 环回 3.8 MTU和路径MTU 3.9 隧道基础 3.9.1 GRE 3.9.2 PPTP 3.9.3 L2TP 3.10 与链路层相关的攻击 3.11 总结 3.1 引言 城域网&…

132 Linux 系统编程9 ,IO操作,lseek 函数,truncate函数,查看文件的表示形式

一 lseek 函数 函数说明&#xff1a;此函数用于文件偏移 Linux中可使用系统函数lseek来修改文件偏移量(读写位置) 每个打开的文件都记录着当前读写位置&#xff0c;打开文件时读写位置是0&#xff0c;表示文件开头&#xff0c;通常读写多少个字节就会将读写位置往后移多少个字…

ai数字仿真辩论主持人提升用户体验

Ai虚拟主持人是元宇宙和AI人工智能技术在播音主持行业的重要应用&#xff0c;AI虚拟主持人能极大提升新闻资讯内容的精准度&#xff0c;改变单一的播报形式。 首先&#xff0c;AI虚拟主持人极大地提升了节目的制作效率和灵活性。传统主持人需要花费大量时间进行彩排和录制&…

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性&#xff0c;则返回 key&#xff08;属性名&#xff09; ${__property(key,,default)} 读取 key 属性如果找不到 k…

Python:函数

目录 前言&#xff1a; 一、函数的定义 二、函数的调用 三、函数的分类 四、全局变量和局部变量 五、函数的参数 5.1 位置参数 5.2 默认值参数 5.3 可变参数 5.4 关键字参数 5.5 命名关键字参数 5.6 参数的组合 六、函数的递归 前言&#xff1a; 函数就是一个过程…

ETL:数据转换与集成的关键过程

ETL&#xff1a;数据转换与集成的关键过程 在现代数据驱动的世界中&#xff0c;有效地管理和处理数据对于企业的成功至关重要。ETL&#xff08;提取、转换、加载&#xff09;是一种关键的数据处理过程&#xff0c;有助于将数据从源系统提取、清洗、转换并加载到目标系统中&…

学习JAVA的第二天(基础)

目录 基本概念 关键字 class关键字 字面量 练习 变量 定义格式 变量使用 数据类型 基本数据类型 标识符 命名规则 键盘录入 1.导包 2.创建对象 3.接受数据 运算符 算术运算符 练习 隐式转换&#xff08;自动类型提升&#xff09; 强制转换 自增自减运算符 …

【网络编程】okhttp源码解析

文章目录 配置清单框架结构解析 配置清单 首先了解一下okHttp的配置清单&#xff1a; Dispatcher dispatcher &#xff1a;调度器&#xff0c;⽤于调度后台发起的⽹络请求&#xff0c;有后台总请求数和单主机总请求数的控制。List<Protocol> protocols &#xff1a;⽀持…

PostgreSQL 实体化视图的使用

上周的教程中&#xff0c;通过 DVD Rental Database 示例&#xff0c;让我们了解了在 PostgreSQL 中创建实体化视图的过程。正如我们所了解的&#xff0c;PostgreSQL 实体化视图提供了一种强大的机制&#xff0c;通过预计算和存储查询结果集为物理表来提高查询性能。接下来的内…

leetcode刷题日志-98.验证二叉搜索树

思路&#xff1a;根据二叉搜索树的性质&#xff0c;中序遍历满足升序。那么我们就可以使用中序dfs&#xff0c;并且记录每个节点的前一个节点的值&#xff0c;如果前一个节点值比后一个大&#xff0c;返回false。 class Solution {Integer pre null; //记录前序节点boolean …

2.23数据结构

单向循环链表 创建单向循环链表&#xff0c;创建节点 &#xff0c;头插&#xff0c;按位置插入&#xff0c;输出&#xff0c;尾删&#xff0c;按位置删除功能 //main.c #include "loop_list.h" int main() {loop_p Hcreate_head();insert_head(H,12);insert_head(…

3分钟看懂设计模式02:观察者模式

一、什么是观察者模式 观察者模式又叫做发布-订阅模式或者源-监视器模式。 结合它的各种别名大概就可以明白这种模式是做什么的。 其实就是观察与被观察&#xff0c;一个对象&#xff08;被观察者&#xff09;的状态改变会被通知到观察者&#xff0c;并根据通知产生各自的不…

VTK通过线段裁剪

线段拆分网格 void retrustMesh(vtkSmartPointer<vtkPolyData> polydata, vtkSmartPointer<vtkPoints> intermediatePoint) {vtkSmartPointer<vtkPoints> srcPoints polydata->GetPoints();int pointSize intermediatePoint->GetNumberOfPoints();/…

【动态规划】【状态压缩】LCP04 覆盖

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 本文涉及知识点 动态规划汇总 LCP04 覆盖 你有一块棋盘&#xff0c;棋盘上有一些格子已经坏掉了。你还有无穷块大小为1 * 2的多米诺骨牌&#xff0c;你想把这些骨牌不重叠地覆盖在完好的格子上&#xff0…