安卓通过termux部署ChatGLM

一、安装Termux并进行相关配置

1、安装termux

Termux 是一个 Android 终端仿真应用程序,用于在 Android 手机上搭建一个完整的 Linux 环境。 不需要 root 权限 Termux 就可以正常运行。Termux 基本实现 Linux 下的许多基本操作。可以使用 Termux 安装 python,并实现 python 编程,可以用手机架设 Server,同样可以用于渗透测试等等。

安装链接: 安卓手机termux安装

2、进行配置

打开termux进行apt的更新:

apt update && apt upgrade

安装sudo软件:

pkg install tsu

设置账户密码(后续ssh要用):

passwd

查看账户名(后续ssh要用):

whoami

安装远程ssh:

pkg install ssh

将PC和手机连接在同一局域网上,建议是电脑给手机开热点,在PC端的设置-网络和Internet-移动热点可以查看手机的IP地址。(或者termux用ifconfig查看)
IP地址查看

PC通过SSH连接手机:使用Mobaterm,注意端口为8022
Mobaterm连接手机
至此,PC与手机端通过Mobaterm和termux完成远程连接。

二、通过fastllm部署ChatGLM2-6b-int4

框架地址: fastllm
fastllm是纯c++实现,无第三方依赖的高性能大模型推理库6~7B级模型在安卓端上也可以流畅运行,可以在安卓上直接编译,目前已支持ChatGLM系列模型,各种LLAMA模型(ALPACA, VICUNA等),BAICHUAN模型,QWEN模型,MOSS模型,MINICPM模型等。

1、安装编译fastllm

git clone https://github.com/ztxz16/fastllm
cd fastllm
mkdir build
cd build
cmake ..
make -j

安装完后,build文件夹应该有

~/fastllm/build $ ls
CMakeCache.txt  CMakeFiles  Makefile  apiserver  benchmark  cmake_install.cmake  main  quant  testOps  tools  web  webui

2、下载已量化好的.flm模型并导入termux

hatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。 ChatGLM-6B 使用了和 ChatGPT 相似的技术,针对中文问答和对话进行了优化。经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 已经能生成相当符合人类偏好的回答。

模型链接: chatglm-6b-int4.flm

关于如何导入termux目录中,我采用的方法是将模型文件通过USB文件传输到手机文件中,找到文件选择用termux打开即可自动导入到termux系统中的download文件夹中。

模型文件位置

3、运行chatglm

关于参数可以通过./main -h查看:
-h参数说明

cd fastllm
cd build
./main -p ../../downloads/chatglm-6b-int4.flm

运行效果
手机端运行效果如下:

手机运行

4、推理速度测试

./benchmark -p ../../downloads/chatglm-6b-int4.flm -f ../example/benchmark/prompts/beijing.txt -b 1

推理速度

6B级int4模型在骁龙870(小米10s)上速度大约为1 token/s。

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 20:06:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 20:06:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 20:06:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 20:06:06       18 阅读

热门阅读

  1. 快速在Linux系统安装MySQL

    2024-03-14 20:06:06       20 阅读
  2. Android API 30及更高版本网络权限设置

    2024-03-14 20:06:06       19 阅读
  3. linux Shell 命令行-08-file include 文件包含

    2024-03-14 20:06:06       20 阅读
  4. PYTHON 120道题目详解(106-108)

    2024-03-14 20:06:06       19 阅读
  5. oracle创建表空间语句

    2024-03-14 20:06:06       17 阅读
  6. 触发器

    2024-03-14 20:06:06       18 阅读
  7. WPF中使用LiveCharts绘制散点图

    2024-03-14 20:06:06       18 阅读
  8. SQLite语句

    2024-03-14 20:06:06       20 阅读
  9. mysql订单表设计

    2024-03-14 20:06:06       18 阅读
  10. vector与list的区别与应用?

    2024-03-14 20:06:06       26 阅读
  11. 依赖注入与控制反转:优化Go语言REST API客户端

    2024-03-14 20:06:06       16 阅读