尝试在手机上运行google 最新开源的gpt模型 gemma

2024-04-10 06:44

本文主要是介绍尝试在手机上运行google 最新开源的gpt模型 gemma,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Gemma介绍

Gemma简介

Gemma是谷歌于2024年2月21日发布的一系列轻量级、最先进的开放语言模型,使用了与创建Gemini模型相同的研究和技术。由Google DeepMind和Google其他团队共同开发。
Gemma提供两种尺寸的模型权重:2B和7B。每种尺寸都带有经过预训练(pre-trained)和经过指令调制(instruction-tuned)的变体。旨在为开发人员和研究者提供一个“轻量级、最先进的开源模型系列”Gemma提供了2B和7B两种不同规模的版本,每种都包含了预训练基础版本和经过指令优化的版本,并且无需数据量化处理,拥有高达8K tokens的处理能力。

  • 预训练模型可以用于各种自然语言处理任务,例如文本生成、翻译、问答和摘要。
  • 指令调制模型经过微调,可以执行特定任务,例如编写代码、撰写不同类型的创意内容、回答开放式问题等。

Gemma模型可以在您的笔记本电脑、工作站或Google Cloud上运行,并可轻松部署到Vertex AI和Google Kubernetes Engine(GKE)。

Gemma优势

Gemma具有以下优势:

  • 性能领先:Gemma在多个基准测试中都取得了最先进的成果,都优于Meta的Llama 2。
  • 易于使用:Gemma提供简单易用的API,可轻松集成到您的应用程序中。
  • 可扩展性:Gemma可以根据您的需要进行扩展,以满足各种规模的需求。
  • 开放性:Gemma是开源的,您可以自由使用和修改。
  • 模型较小:尽管其参数数量较少,但在关键基准测试中表现出色,并且超过了一些更大的模型。
  • *适用范围广:拥有独特的运行环境,可以在各种类型的设备上工作,包括笔记本电脑、台式机、物联网设备、移动设备以及云端平台等。
  • 与Hugging Face平台无缝集成:可以让AIGC爱好者更好的去使用。

Gemma应用

Gemma可以应用于各种自然语言处理任务,包括:

  • 文本生成
  • 翻译
  • 问答
  • 摘要
  • 代码生成
  • 撰写创意内容
  • 回答开放式问题

总结

Gemma是谷歌发布的一系列轻量级、最先进的开放语言模型,具有性能领先、易于使用、可扩展性和开放性等优势。Gemma可以应用于各种自然语言处理任务,具有广阔的应用前景。

以下是一些Gemma的应用案例:

  • 新闻写作:Gemma可以用于自动生成新闻报道,例如体育比赛的赛况报道、公司财报的分析报道等。
  • 产品描述生成:Gemma可以用于自动生成产品描述,例如电商网站上的商品详情页。
  • 聊天机器人:Gemma可以用于构建聊天机器人,为用户提供个性化的服务。
  • 教育:Gemma可以用于开发教育应用程序,例如帮助学生学习语言或编写代码。

测试环境

  • 硬件环境
    • 小米 11 ultra
    • rk3588 测试板
  • 软件环境
    • 小米11 android 13
    • rk3588 android 13

环境准备

  • 安装最新版 android studio,下载android sdk 需要包含ndk-bundle
    *下载gemma.cpp
  • 设置ANDROID_NDK 路径

模型下载准备

available on kaggle
我下载的是2b-it-sfp模型,选择gemma.cpp可运行版本模型

编译

    git clone --recursive https://github.com/google/gemma.cppcd gemma.cppcmake -G Ninja -Bbuild_ninja_arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
-DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DANDROID_ARM_NEON=ON -DCMAKE_INSTALL_PREFIX=`pwd`/build_ninja_arm64/android_install -DHWY_ENABLE_TESTS=OFF .cmake --build build_ninja_arm64

拷贝到设备运行

  • 用usb链接计算机,或者使用无线链接到手机
  • 列出设备
adb devicesList of devices attached
172.16.0.89:5555        device
  • 拷贝执行程序和模型
    # 拷贝执行程序adb push ./build_ninja_arm64/gemma /data/local/tmp # 拷贝库adb push build_ninja_arm64/3rdparty/sentencepiece/src/libsentencepiece.so /data/local/tmp# 先解压再拷贝模型tar -xvf gemma_model_2b_cxx_sfp.tar.gzadb push gemma_model_2b_cxx_sfp/2b-it-sfp.sbs /data/local/tmpadb push gemma_model_2b_cxx_sfp/tokenizer.spm /data/local/tmp
  • 运行
    export LD_LIBRARY_PATH=/data/local/tmp/./gemma --tokenizer tokenizer.spm --compressed_weights ./2b-it-sfp.sbs --model 2b-it

 

这篇关于尝试在手机上运行google 最新开源的gpt模型 gemma的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

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

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

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl