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

绝区叁--如何在移动设备上本地运行LLM

随着大型语言模型 (LLM)(例如Llama 2和Llama 3)不断突破人工智能的界限,它们正在改变我们与周围技术的互动方式。这些模型早已集成到我们的手机中,但到目前为止,它们理解和处理请求的能力还非常有限。然而,这些新型LLM人工智能模型可以理解和生成类似人类的文本,使它们成为增强语音助手、聊天机器人和其他自然语言处理任务等应用程序的理想选择。

然而,这些 AI 模型的一个主要限制是它们需要大量资源才能运行计算。虽然桌面应用程序可以利用强大的CPUs 和GPUs,但手机的硬件却有限得多。更困难的是,由于我们的移动设备几乎一直伴随着我们,隐私也是一个更大的问题。网络连接也是一个问题,因为快速可靠的信号并不能保证。因此,为了最大限度地利用Llama 3Android 设备上的东西,我们必须在设备上离线运行它。

我们在 Android 手机上没有太多这样的选择。话虽如此,也有些工具可让您在 Android 设备上本地下载和运行 LLM 模型。您可以下载小型 AI 模型(2B 到 8B),如Llama 3、Gemma、Phi-2、Mistral 等。就此而言,让我们开始吧。

在本文中,我们将探讨如何在 Android 设备上运行小型轻量级模型,例如 Gemma-2B、Phi-2 和 StableLM-3B 。

具体操作

克隆此repo以访问并使用作为示例提供的演示 Android 应用程序git clone https://github.com/googlesamples/mediapipe
cd mediapipe
git sparse-checkout init --cone
git sparse-checkout set examples/llm_inference/android

接下来,下载您选择的量化 LLM 模型。目前,文档仅支持四种模型:Gemma 2B、Phi-2、Falcon-RW-1B 和 StableLM-3B。

为了避免兼容性问题,请在下载过程中使用此 Colab 笔记本:LLM 转换笔记本。

现在您已经下载了 model.bin 文件,您需要将其传输到您的 Android 设备。您可以使用命令adb shell推送文件,如文档中所述

有关使用 Android 调试桥 (ADB) 的更多详细信息,请参阅本文:了解 Android 调试桥 (ADB)。

传输模型后,导航到InferenceModel.kt位于以下位置的文件:mediapipe/examples/llm_inference/android/app/ src / main /java/com/google/mediapipe/examples/llminference

在此文件中,修改generateResponseAsync函数以更新模型路径,以反映您在手机上存储模型的位置


接下来,将 Android 应用程序构建为 APK 文件,并将其安装在 Android 手机上


演示

为了演示,我在搭载骁龙 778 芯片的 Android 手机上测试了 Gemma-2B 4 位模型并检查了结果。


结论

在 Android 手机上运行小型轻量级模型效果很好 。在演示中,我们使用了搭载骁龙 芯片的手机。响应需要几秒钟,结果并不完美,可能是因为使用了量化模型

然而,关键的一点是在设备上运行轻量级 LLM 相当令人印象深刻,表明这些模型变得更加高效👍。


欢迎你分享你的作品到我们的平台上. http://www.shxcj.com 或者 www.2img.ai 让更多的人看到你的才华。

创作不易,觉得不错的话,点个赞吧!!!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • QQ音乐Android一面凉经
  • 磁盘就是一个超大的Byte数组,操作系统是如何管理的?
  • javascripr如何设计弹出输入框并在网页内输出输入内容
  • Golang语法规范和风格指南(一)——简单指南
  • 【折腾手机】一加6T刷机postmarketOS经历和体验
  • android iconfont带图标的图文并茂的一种实现
  • Node.js-path 模块
  • 智能与伦理:Kimi与学术道德的和谐共舞
  • 流批一体计算引擎-13-[Flink]RuntimeExecutionMode和水印策略Watermark Strategy
  • 直播预告|飞思实验室暑期公益培训7月10日正式开启,报名从速!
  • Vue的学习之数据与方法
  • githup开了代理push不上去
  • leetcode力扣_排序问题
  • Symfony框架:优雅构建PHP应用的强有力工具
  • FFmpeg视频处理工具安装使用
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【翻译】babel对TC39装饰器草案的实现
  • CAP理论的例子讲解
  • golang中接口赋值与方法集
  • javascript数组去重/查找/插入/删除
  • SpriteKit 技巧之添加背景图片
  • SQLServer之创建数据库快照
  • 分类模型——Logistics Regression
  • 回顾2016
  • 前端性能优化--懒加载和预加载
  • 前端自动化解决方案
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 智能合约Solidity教程-事件和日志(一)
  • gunicorn工作原理
  • ​ubuntu下安装kvm虚拟机
  • #define与typedef区别
  • #Linux(帮助手册)
  • (C++)八皇后问题
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (译)2019年前端性能优化清单 — 下篇
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)Unity3DUnity3D在android下调试
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • ****Linux下Mysql的安装和配置
  • .apk 成为历史!
  • .NET CORE Aws S3 使用
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET中使用Redis (二)
  • ?.的用法
  • @四年级家长,这条香港优才计划+华侨生联考捷径,一定要看!
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [1204 寻找子串位置] 解题报告