在 Android 设备上运行自己的 AI 聊天机器人

你是否厌倦了每次与 AI 助手互动时都不得不将个人数据交给大型客机公司?好消息是,你可能在你的Android 智能手机或平板电脑上直接运行强大的语言模型,这一切都始于llama.cpp。 在这个教程中

你是否厌倦了每次与 AI 助手互动时都不得不将个人数据交给大型客机公司?好消息是,你可能在你的Android 智能手机或平板电脑上直接运行强大的语言模型,这一切都始于llama.cpp

在这个教程中,我将指导你如何在 Android 设备上设置llama.cpp,让您能够亲身体验本地 AI 处理的自由和可定制性。不再依赖于远程服务器,也不必担心您的数据会被泄露。是时候重新掌控局面,释放现在机器学习技术的全部潜力了。

在 Android 设备上运行大型语言模型的优势

在深入技术细节之前,让我们先探讨一下在 Android 设备上本地运行 AI 模型的原因。

首先,这可以让你完全掌控你的数据。当你与基于云的 AI 助手互动时,你的对话、查询甚至个人信息都会被发送到远程服务器,你对齐如何使用甚至出售给第三方公司几乎没有任何可见性和控制权。

使用llama.cpp,一切都发生在你的设备上。你与 AI 的互动从未离开你的智能手机或平板电脑,确保了你的隐私安全。此外,你还可以在无法访问云端 AI 服务的地方(如某些工作场所)使用这些本地的 AI 模型。

但好处还不止于此。通过运行本地人工智能,你还可以对其进行自定义。你可以亲自挑选适合你的特定需求和兴趣的人工智能模型,而不是局限于大型科技公司提供的预构建模型。或者,如果你拥有合适的硬件并且对 AI 模型经验丰富,你甚至可以自己微调模型以创建真正个性化的 AI 体验。

在 Android 上开始使用llama.cpp

好了,让我们开始在你的 Android 设备上设置llama.cpp吧。

前提条件

在开始之前,请确保你的 Android 设备满足以下要求:

  • Android 8.0或更高版本
  • 至少 6-8GB 内存以获得最佳性能
  • 至少 4 核的现代骁龙或联发科 CPU
  • 足够的存储空间用于应用程序和语言模型文件通常为 (1-8GB)

第1步:安装 F-Droid 和 Termux 首先,你需要在 Android 设备上安装 F-Droid 应用程序存储库。F-Droid 是开源软件的重要来源,我们将在这里获得 Termux 终端模拟器。

前往F-Droid 网站并按照说明安装该应用。完成后,打开 F-Droid 并搜索 Termux 并安装最新版本。

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

请不要使用 Google Play 商店安装 Termux,因为那里的版本已经过时了。

设置Termux 存储库(可选) 如果你将 termux 存储库服务器更改为你所在的国家/地区的服务器,则在安装软件包时可以获得更快的下载速度:

复制代码
termux-change-repo

如果你需要帮助,请查看Termux Wiki站点。

第2步:设置llama.cpp环境 安装 Termux 之后,是时候启动llama.cpp项目了。从打开 Termux 应用程序开始,安装一下软件包,我们后面会用到它们来编译llama.cpp:

css
复制代码
pkg i clang wget git cmake

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

现在克隆llama.cpp Git仓库到您的手机:

bash
复制代码
git clone https://github.com/ggerganov/llama.cpp.git

但是由于github 目前不支持用户名密码下载,所以我换了一种方式,通过电脑把文件下载下来后,放入手机端

先查看一下路径:

bash
复制代码
pwd

在 Android 设备上运行自己的 AI 聊天机器人

bash
复制代码
// 把文件拷贝到手机内存 /storage/emulated/0/ cd /storage/emulated/0/ // ls 找到 llama.cpp 文件夹 // Termux 的路径 /data/data/com.termux/files/home/ // 将llama.cpp 文件拷贝到 Termux 里面 mv llama.cpp /data/data/com.termux/files/home

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

接下来,我们需要设置 Android NDK(Native Development Kit)来编译llama.cpp项目。访问Termux-NDK 存储库并下载最新的 NDK 版本。解压 ZIP 文件,然后在 Termux 中设置 NDK路径:

bash
复制代码
// 把文件拷贝到手机内存 /storage/emulated/0/ cd /storage/emulated/0/ // ls 找到 android-ndk-r26b-aarch64.zip 文件夹 // Termux 的路径 /data/data/com.termux/files/home/ // 将android-ndk-r26b-aarch64.zip 文件拷贝到 Termux 里面 mv android-ndk-r26b-aarch64.zip /data/data/com.termux/files/home unzip android-ndk-r26b-aarch64.zip export NDK=~/android-ndk-r26b

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

第3.1步:使用 Android NDK 编译llama.cpp

NDK 设置好后,你现在可以为你的 Android 设备编译llama.cpp了。有两种选择:使用或不使用 GPU 加速。我建议从 非 GPU 版本开始,因为它的设置稍微简单一些。

ini
复制代码
cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-26 -DCMAKE_C_FLAGS=-march=native .. make

如果一切顺利,您现在应该在项目的 build 文件夹中拥有可用的llama.cpp的二进制文件了。你现在可以继续下载模型文件(第 4 步)

第3.2步:使用 GPU 加速构建llama.cpp(可选)

使用 OpenCL 和 CLBlast 支持构建llama.cpp可以提高整体性能,但需要一些额外的步骤:

下载必要的软件包:

复制代码
apt install ocl-icd opencl-headers opencl-clhpp clinfo libopenblas

下载 CLBlast,编译并将clblast.h复制到llama.cpp文件夹:

bash
复制代码
git clone https://github.com/CNugteren/CLBlast.git cd CLBlast cmake . cmake --build . --config Release mkdir install cmake --install . --prefix ~/CLBlast/install cp libclblast.so* $PREFIX/lib cp ./include/clblast.h ../llama.cpp
复制代码
这里面 github 没办法下载,还得和之前 ndk 和 llama.cpp 文件下载导入手机的方式一致

将 OpenBLAS 文件复制到llama.cpp:

bash
复制代码
cp /data/data/com.termux/files/usr/include/openblas/cblas.h . cp /data/data/com.termux/files/usr/include/openblas/openblas_config.h .

将CLBlast 构建llama.cpp:

bash
复制代码
cd ~/llama.cpp mkdir build cd build cmake -DLLAMA_CLBLAST=ON -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-24 -DCMAKE_C_FLAGS=-march=native -DCLBlast_DIR=~/CLBlast/install/lib/cmake/CLBlast .. cd .. make

~/.bashrc下天还 LD_LIBRARY_PATH(直接在无力 GPU 上运行程序):

bash
复制代码
echo "export LD_LIBRARY_PATH=/vendor/lib64:$LD_LIBRARY_PATH:$PREFIX" >> ~/.bashrc

检查 GPU 是否可用于 OpenCL:

复制代码
clinfo -l

如果一切正常,例如对于高通骁龙 Soc,他将显示:

bash
复制代码
Platform #0: QUALCOMM Snapdragon(TM) `-- Device #0: QUALCOMM Adreno(TM)

第4步:下载并复制语言模型

最后,你需要下载一个兼容的语言模型,并将其复制到~/llama.cpp/models目录。前往Hugging Face并搜索适合您设备可用 RAM 的 GGUF 格式模型。我建议从TinyLlama-1.1B开始。

下载模型文件后,使用

arduino
复制代码
termux-setup-storage

命令授予访问你设备共享存储的权限,然后将模型文件移动到llama.cpp模型目录:

javascript
复制代码
mv ~/storage/downloads/model_name.gguf ~/llama.cpp/models

第5步:运行llama.cpp

在设置好llama.cpp环境并准备好语言模型之后,你就可以开始于你自己的本地 AI 助手互动了。我建议你运行llama.cpp Web服务器:

bash
复制代码
cd llama.cpp ./server -m models/[YourModelName].gguf -t [#threads]

#threads替换为你Android 设备的核心数减1,否则它可能会变得无响应。

然后通过在移动浏览器中打开http://localhost:8080来访问 AI 聊天机器人。

或者你也可以直接在 Termux 中运行llama.cpp聊天:

css
复制代码
./main -m models/[YourModelName].gguf --color -inst

结论

性能将根据您的设备的硬件性能而有所不同,即使是中端手机,只要选择足够适合你设备内存的较小模型,也应该能够合理地运行llama.cpp。高端设备当然可以充分利用模型的功能。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

100% 压榨 GitHub Copilot 指南

2024-5-3 19:19:32

人工智能

利用 LobeChat 提升 ChatGPT 互动体验:全新的 AI 对话界面

2024-5-3 19:19:39

在 Android 设备上运行自己的 AI 聊天机器人

你是否厌倦了每次与 AI 助手互动时都不得不将个人数据交给大型客机公司?好消息是,你可能在你的Android 智能手机或平板电脑上直接运行强大的语言模型,这一切都始于llama.cpp。 在这个教程中

你是否厌倦了每次与 AI 助手互动时都不得不将个人数据交给大型客机公司?好消息是,你可能在你的Android 智能手机或平板电脑上直接运行强大的语言模型,这一切都始于llama.cpp

在这个教程中,我将指导你如何在 Android 设备上设置llama.cpp,让您能够亲身体验本地 AI 处理的自由和可定制性。不再依赖于远程服务器,也不必担心您的数据会被泄露。是时候重新掌控局面,释放现在机器学习技术的全部潜力了。

在 Android 设备上运行大型语言模型的优势

在深入技术细节之前,让我们先探讨一下在 Android 设备上本地运行 AI 模型的原因。

首先,这可以让你完全掌控你的数据。当你与基于云的 AI 助手互动时,你的对话、查询甚至个人信息都会被发送到远程服务器,你对齐如何使用甚至出售给第三方公司几乎没有任何可见性和控制权。

使用llama.cpp,一切都发生在你的设备上。你与 AI 的互动从未离开你的智能手机或平板电脑,确保了你的隐私安全。此外,你还可以在无法访问云端 AI 服务的地方(如某些工作场所)使用这些本地的 AI 模型。

但好处还不止于此。通过运行本地人工智能,你还可以对其进行自定义。你可以亲自挑选适合你的特定需求和兴趣的人工智能模型,而不是局限于大型科技公司提供的预构建模型。或者,如果你拥有合适的硬件并且对 AI 模型经验丰富,你甚至可以自己微调模型以创建真正个性化的 AI 体验。

在 Android 上开始使用llama.cpp

好了,让我们开始在你的 Android 设备上设置llama.cpp吧。

前提条件

在开始之前,请确保你的 Android 设备满足以下要求:

  • Android 8.0或更高版本
  • 至少 6-8GB 内存以获得最佳性能
  • 至少 4 核的现代骁龙或联发科 CPU
  • 足够的存储空间用于应用程序和语言模型文件通常为 (1-8GB)

第1步:安装 F-Droid 和 Termux 首先,你需要在 Android 设备上安装 F-Droid 应用程序存储库。F-Droid 是开源软件的重要来源,我们将在这里获得 Termux 终端模拟器。

前往F-Droid 网站并按照说明安装该应用。完成后,打开 F-Droid 并搜索 Termux 并安装最新版本。

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

请不要使用 Google Play 商店安装 Termux,因为那里的版本已经过时了。

设置Termux 存储库(可选) 如果你将 termux 存储库服务器更改为你所在的国家/地区的服务器,则在安装软件包时可以获得更快的下载速度:

复制代码
termux-change-repo

如果你需要帮助,请查看Termux Wiki站点。

第2步:设置llama.cpp环境 安装 Termux 之后,是时候启动llama.cpp项目了。从打开 Termux 应用程序开始,安装一下软件包,我们后面会用到它们来编译llama.cpp:

css
复制代码
pkg i clang wget git cmake

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

现在克隆llama.cpp Git仓库到您的手机:

bash
复制代码
git clone https://github.com/ggerganov/llama.cpp.git

但是由于github 目前不支持用户名密码下载,所以我换了一种方式,通过电脑把文件下载下来后,放入手机端

先查看一下路径:

bash
复制代码
pwd

在 Android 设备上运行自己的 AI 聊天机器人

bash
复制代码
// 把文件拷贝到手机内存 /storage/emulated/0/ cd /storage/emulated/0/ // ls 找到 llama.cpp 文件夹 // Termux 的路径 /data/data/com.termux/files/home/ // 将llama.cpp 文件拷贝到 Termux 里面 mv llama.cpp /data/data/com.termux/files/home

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

接下来,我们需要设置 Android NDK(Native Development Kit)来编译llama.cpp项目。访问Termux-NDK 存储库并下载最新的 NDK 版本。解压 ZIP 文件,然后在 Termux 中设置 NDK路径:

bash
复制代码
// 把文件拷贝到手机内存 /storage/emulated/0/ cd /storage/emulated/0/ // ls 找到 android-ndk-r26b-aarch64.zip 文件夹 // Termux 的路径 /data/data/com.termux/files/home/ // 将android-ndk-r26b-aarch64.zip 文件拷贝到 Termux 里面 mv android-ndk-r26b-aarch64.zip /data/data/com.termux/files/home unzip android-ndk-r26b-aarch64.zip export NDK=~/android-ndk-r26b

在 Android 设备上运行自己的 AI 聊天机器人

在 Android 设备上运行自己的 AI 聊天机器人

第3.1步:使用 Android NDK 编译llama.cpp

NDK 设置好后,你现在可以为你的 Android 设备编译llama.cpp了。有两种选择:使用或不使用 GPU 加速。我建议从 非 GPU 版本开始,因为它的设置稍微简单一些。

ini
复制代码
cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-26 -DCMAKE_C_FLAGS=-march=native .. make

如果一切顺利,您现在应该在项目的 build 文件夹中拥有可用的llama.cpp的二进制文件了。你现在可以继续下载模型文件(第 4 步)

第3.2步:使用 GPU 加速构建llama.cpp(可选)

使用 OpenCL 和 CLBlast 支持构建llama.cpp可以提高整体性能,但需要一些额外的步骤:

下载必要的软件包:

复制代码
apt install ocl-icd opencl-headers opencl-clhpp clinfo libopenblas

下载 CLBlast,编译并将clblast.h复制到llama.cpp文件夹:

bash
复制代码
git clone https://github.com/CNugteren/CLBlast.git cd CLBlast cmake . cmake --build . --config Release mkdir install cmake --install . --prefix ~/CLBlast/install cp libclblast.so* $PREFIX/lib cp ./include/clblast.h ../llama.cpp
复制代码
这里面 github 没办法下载,还得和之前 ndk 和 llama.cpp 文件下载导入手机的方式一致

将 OpenBLAS 文件复制到llama.cpp:

bash
复制代码
cp /data/data/com.termux/files/usr/include/openblas/cblas.h . cp /data/data/com.termux/files/usr/include/openblas/openblas_config.h .

将CLBlast 构建llama.cpp:

bash
复制代码
cd ~/llama.cpp mkdir build cd build cmake -DLLAMA_CLBLAST=ON -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-24 -DCMAKE_C_FLAGS=-march=native -DCLBlast_DIR=~/CLBlast/install/lib/cmake/CLBlast .. cd .. make

~/.bashrc下天还 LD_LIBRARY_PATH(直接在无力 GPU 上运行程序):

bash
复制代码
echo "export LD_LIBRARY_PATH=/vendor/lib64:$LD_LIBRARY_PATH:$PREFIX" >> ~/.bashrc

检查 GPU 是否可用于 OpenCL:

复制代码
clinfo -l

如果一切正常,例如对于高通骁龙 Soc,他将显示:

bash
复制代码
Platform #0: QUALCOMM Snapdragon(TM) `-- Device #0: QUALCOMM Adreno(TM)

第4步:下载并复制语言模型

最后,你需要下载一个兼容的语言模型,并将其复制到~/llama.cpp/models目录。前往Hugging Face并搜索适合您设备可用 RAM 的 GGUF 格式模型。我建议从TinyLlama-1.1B开始。

下载模型文件后,使用

arduino
复制代码
termux-setup-storage

命令授予访问你设备共享存储的权限,然后将模型文件移动到llama.cpp模型目录:

javascript
复制代码
mv ~/storage/downloads/model_name.gguf ~/llama.cpp/models

第5步:运行llama.cpp

在设置好llama.cpp环境并准备好语言模型之后,你就可以开始于你自己的本地 AI 助手互动了。我建议你运行llama.cpp Web服务器:

bash
复制代码
cd llama.cpp ./server -m models/[YourModelName].gguf -t [#threads]

#threads替换为你Android 设备的核心数减1,否则它可能会变得无响应。

然后通过在移动浏览器中打开http://localhost:8080来访问 AI 聊天机器人。

或者你也可以直接在 Termux 中运行llama.cpp聊天:

css
复制代码
./main -m models/[YourModelName].gguf --color -inst

结论

性能将根据您的设备的硬件性能而有所不同,即使是中端手机,只要选择足够适合你设备内存的较小模型,也应该能够合理地运行llama.cpp。高端设备当然可以充分利用模型的功能。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

Yolo V8 模型训练初学者笔记(番外篇)-- 一键转移labalimg标签文件

2024-5-3 19:19:25

人工智能

100% 压榨 GitHub Copilot 指南

2024-5-3 19:19:32

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索