在手机上运行大语言模型?

我们带着问题来思考这次试验。

一、什么是termux? 官网介绍

  Termux 是一个 Android 平台上的应用程序,它提供了一个功能丰富的 Linux 环境。它允许用户在 Android 设备上运行一个基于 Linux 的终端模拟器和一个扩展的 Linux 包集合。Termux 不需要设备进行 root,就可以直接在 Android 系统上安装和运行。

Termux 与 Linux 的关系

  Termux 是基于 Linux 的,它提供了一个类似于 Linux 的命令行环境。Termux 使用的是 Android 的 Linux 内核,但它提供了一个独立的环境,其中包含了许多常见的 Linux 工具和应用程序。这些工具和应用程序是通过 Termux 的包管理系统安装的,该系统类似于 Debian 或 Ubuntu 中的 `apt`。

  在 Termux 中,用户可以使用各种 Linux 命令行工具,如 `bash`、`ssh`、`python`、`git` 等。此外,Termux 还支持用户安装额外的软件包,以扩展其功能。

Termux 与 Android 的关系

  Termux 是为 Android 设备设计的,它利用了 Android 的 Linux 内核,但在用户空间中创建了一个隔离的环境。这意味着 Termux 在 Android 设备上运行,但它并不直接修改 Android 系统的核心部分或需要系统级的权限。

  Termux 通过提供一个独立的环境,使得用户可以在不影响 Android 系统稳定性的情况下,执行各种 Linux 命令和程序。由于 Termux 不需要 root 权限,它可以在大多数 Android 设备上安全地使用。

Termux 的特点

  • 无需 root:Termux 不需要对 Android 设备进行 root,即可提供 Linux 环境。
  • 包管理器:Termux 有自己的包管理器,可以用来安装、更新和管理软件包。
  • 可扩展性:用户可以通过安装额外的软件包来扩展 Termux 的功能。
  • 可访问性:Termux 可以访问 Android 设备的存储空间,允许用户在两个环境之间传输文件。
  • 自定义:用户可以通过安装额外的插件和工具来自定义 Termux 环境。

Termux 的用途

  Termux 可以用于多种用途,包括但不限于:

  • 远程管理:通过 SSH 客户端连接到远程服务器。
  • 编程:支持多种编程语言,如 Python、Ruby、Node.js 等。
  • 文件管理:使用命令行工具管理 Android 设备上的文件。
  • 网络监控:运行网络分析工具来监控网络活动。
  • 系统备份:使用 `rsync` 等工具备份系统数据。

  总之,Termux 是一个强大的工具,它在 Android 设备上提供了一个接近于 Linux 的环境,同时保持了与 Android 系统的兼容性和独立性。对于那些希望在移动设备上使用 Linux 命令行工具的用户来说,Termux 是一个理想的选择。

  在这里可以下载Termux的代码  

 

相关问题:

 

二、什么是ollama?

   Ollama 是一个强大的框架,设计用于在 Docker 容器中部署 LLM。Ollama 的主要功能是在 Docker 容器内部署和管理 LLM 的促进者,它使该过程变得非常简单。它帮助用户快速在本地运行大模型,通过简单的安装指令,可以让用户执行一条命令就在本地运行开源大型语言模型,例如 Llama 2。

  https://ollama.com/

 

三、ollama可以运行在termux上?

我们先看看一些资料:

https://gitlab.com/-/snippets/3682973

https://github.com/ggerganov/llama.cpp?tab=readme-ov-file#building-the-project-using-termux-f-droid

https://github.com/ollama/ollama/issues/1006

 

四、开始安装

  1. 编译termux代码并运行在手机上

   本人通过修改gradle.properties文件中的:

org.gradle.jvmargs=-Xmx2048M

  修改为:

org.gradle.jvmargs=-Xmx2048M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED

  终于能在Android studio成功编译并运行到手机上。

 

  2. 在termux终端上安装ollama

  输入以下命令:

curl -fsSL https://ollama.com/install.sh | sh

  如果在安装过程中出现出错:

ollama no superuser binary detected

  请把手机root掉并参考这里的方法: https://gitlab.com/st42/termux-sudo 

  如果在下载时出现:

curl error in the http2 framing layer

    请尝试多几次下载。

  另一个可行参考 

 

  3. 通过代码编译ollama

  官方教程:https://github.com/ollama/ollama/blob/main/docs/development.md

  其它教程:https://echo.xuchaoji.com/index.php/archives/454/

  • 如果在编译时出现go代理问题:dial tpc 172.217.163.49:443 ,请参考:https://blog.csdn.net/LXDOS/article/details/104749494
  • 本次编辑我用的命令是:

    OLLAMA_CUSTOM_CPU_DEFS="-DLLAMA_AVX=on -DLLAMA_AVX2=on -DLLAMA_F16C=on -DLLAMA_FMA=on" go generate ./...
    go build .

 

五、其它方案

posted @ 2024-03-19 11:32  johnny_zhao  阅读(143)  评论(0编辑  收藏  举报