2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

如何在Android上运行Llama 3.2

发布日期:2024-09-26 17:25:54 浏览次数: 3404
作者:程序员石磊

微信搜一搜,关注“程序员石磊”

引言

随着Llama 3.2的发布,Meta在将强大的语言模型带到边缘和移动设备方面取得了重大进展。Llama 3.2包含了专为智能手机和平板电脑高效运行而设计的轻量级模型(1B和3B参数)。本教程将指导您通过MLC LLM库对Llama 3.2模型进行量化、转换和部署。

您将学习到

  • 如何设置模型转换和部署的环境。
  • 如何量化和转换Llama 3.2模型,以便在移动设备上兼容。
  • 如何编译和构建Android应用程序,以便在设备上本地运行模型。

前提条件

  • 一个Google Colab帐户(最好是Colab Pro或更高,以获取GPU资源)。
  • 一台具有足够硬件能力的Android设备。
  • 基本的Python和命令行工具知识。
  • 访问Llama 3.2模型权重(可在Hugging Face上获取)。

目录

  1. 了解Llama 3.2

  2. 设置环境

  3. 量化和转换模型

  4. 为Android编译模型

  5. 设置Android环境

  6. 构建和运行Android应用

  7. 结论


了解Llama 3.2

Llama 3.2是Meta最新的开源语言模型版本,经过优化以适应边缘和移动设备。轻量级模型(1B和3B参数)支持高达128K令牌的上下文长度,并能够执行诸如摘要、指令跟随和重写等任务,均可在您的设备上本地运行。

关键特性:

  • 轻量级模型: 专为设备部署设计的1B和3B参数模型。
  • 高性能: 经过优化,以提高效率而不牺牲能力。
  • 隐私友好: 本地运行模型确保您的数据保留在设备上。

设置环境

我们将使用Google Colab进行初步步骤,以利用其GPU资源。

步骤1:克隆存储库

首先,克隆包含必要脚本和笔记本的存储库。

!git clone https://github.com/YourUsername/Llama3.2-on-Mobile.git

步骤2:安装依赖项

安装MLC LLM库,并确保NumPy版本兼容。

!pip install --pre --force-reinstall mlc-ai-nightly-cu122 mlc-llm-nightly-cu122 -f https://mlc.ai/wheels
!pip install numpy==1.23.5

步骤3:导入库

import mlc_llm
import torch
from huggingface_hub import snapshot_download

步骤4:验证GPU可用性

确保Colab使用的是GPU。

import torch
torch.cuda.is_available()

如果返回True,则说明可以使用。

量化和转换模型

步骤1:下载Llama 3.2模型权重

登录Hugging Face账户并下载Llama 3.2模型。

from huggingface_hub import notebook_login
notebook_login()

# 将'meta-llama/Llama-3.2-3B'替换为实际模型库
snapshot_download(repo_id="meta-llama/Llama-3.2-3B", local_dir="/content/Llama-3.2-3B/")

步骤2:配置模型名称和量化类型

设置模型名称和所需的量化。

MODEL_NAME = "Llama-3.2-3B"
QUANTIZATION = "q4f16_1"

步骤3:转换和量化模型

使用MLC LLM工具对模型权重进行量化和转换。

!python -m mlc_llm convert_weight /content/$MODEL_NAME/ --quantization $QUANTIZATION -o /content/$MODEL_NAME-$QUANTIZATION-android/

步骤4:生成配置文件

创建必要的令牌文件和配置。

!python -m mlc_llm gen_config /content/$MODEL_NAME/ --quantization $QUANTIZATION \
    --conv-template llama-3 --context-window-size 8192 --prefill-chunk-size 1024  \
    -o /content/$MODEL_NAME-$QUANTIZATION-android/

步骤5:为Android编译模型

将模型编译为Android兼容格式。

!python -m mlc_llm compile /content/$MODEL_NAME-$QUANTIZATION-android/mlc-chat-config.json \
    --device android -o /content/$MODEL_NAME-$QUANTIZATION-android/$MODEL_NAME-$QUANTIZATION-android.tar

步骤6:将模型上传到Hugging Face

这将使您更容易直接在Android设备上下载模型权重。

from huggingface_hub import create_repo, upload_folder

repo_name = f"{MODEL_NAME}-{QUANTIZATION}-android"
username = "YourUsername"  # 将其替换为您的Hugging Face用户名
repo_id = f"{username}/{repo_name}"

create_repo(repo_id, exist_ok=True)

upload_folder(
    repo_id=repo_id,
    folder_path=f"/content/{MODEL_NAME}-{QUANTIZATION}-android/",
    commit_message="Quantized Llama 3.2 model for Android.",
)

为Android编译模型

步骤1:设置Linux环境(可选)

如果您使用的是Windows,建议使用Linux环境或云虚拟机(如Google Cloud Platform)以避免兼容性问题。

步骤2:安装Rust

Rust是交叉编译标记器所需的。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装后重启终端。

步骤3:安装Android NDK和CMake

打开Android Studio,通过SDK管理器安装NDK和CMake。

步骤4:安装其他依赖项

pip install --pre -U -f https://mlc.ai/wheels mlc-llm-nightly mlc-ai-nightly
sudo apt-get install cmake

步骤5:克隆必要的存储库

git clone https://github.com/mlc-ai/mlc-llm.git
git clone https://github.com/YourUsername/Llama3.2-on-Mobile.git

步骤6:下载量化模型权重

导航到mlc-llm/android/MLCChat/dist/prebuilt目录,克隆包含量化模型的Hugging Face存储库。

cd mlc-llm/android/MLCChat/dist/prebuilt
git clone https://huggingface.co/YourUsername/Llama-3.2-3B-q4f16_1-android.git

步骤7:复制编译后的模型

将之前生成的.tar文件复制到lib目录。

cd mlc-llm/android/MLCChat/dist
mkdir lib
cp /content/Llama-3.2-3B-q4f16_1-android.tar ./lib/

步骤8:配置mlc-package-config.json

编辑mlc-package-config.json文件以包含您的模型详细信息。

{
    "device""android",
    "model_list": [
        {
            "model""Llama-3.2-3B-q4f16_1-android",
            "bundle_weight"true,
            "model_id""llama-3.2-3b-q4f16_1",
            "model_lib""llama-q4f16_1",
            "estimated_vram_bytes"1500000000,
            "overrides": {
                "context_window_size"768,
                "prefill_chunk_size"256
            }
        }
    ],
    "model_lib_path_for_prepare_libs": {
        "llama-q4f16_1""./dist/lib/Llama-3.2-3B-q4f16_1-android.tar"
    }
}

步骤9:设置环境变量

export ANDROID_NDK=/path/to/your/ndk
export TVM_NDK_CC=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang
export TVM_HOME=/path/to/mlc-llm/3rdparty/tvm
export JAVA_HOME=/path/to/android-studio/jbr
export MLC_LLM_HOME=/path/to/mlc-llm

步骤10:生成Android构建文件

cd mlc-llm/android/MLCChat
python3 -m mlc_llm package

设置

Android环境

步骤1:打开Android项目

在Android Studio中打开位于Llama3.2-on-Mobile/mobile-llama3/MobileLlama3的Android项目。

步骤2:更新mlc-app-config.json

src/main/assets目录中,配置mlc-app-config.json文件。

{
  "model_list": [
    {
      "model_id""llama-3.2-3b-q4f16_1",
      "model_lib""llama-q4f16_1",
      "model_url""https://huggingface.co/YourUsername/Llama-3.2-3B-q4f16_1-android",
      "estimated_vram_bytes"1500000000
    }
  ]
}

步骤3:构建Android应用

在Android Studio中点击Build > Make Project,这可能需要一些时间。

构建和运行Android应用

步骤1:连接Android设备

确保您的设备启用了USB调试。

步骤2:运行应用

在Android Studio中点击Run > Run 'app'

步骤3:与设备上的Llama 3.2互动

应用安装后,您可以开始在Android设备上直接与Llama 3.2模型互动。

注意:在移动设备上运行大型语言模型需要相当大的计算资源。性能可能会根据设备的硬件能力而有所不同。

结论

恭喜您!您已成功在Android设备上部署Llama 3.2模型。这使得离线推理成为可能,并确保数据在您的设备上保持私密。欢迎尝试不同的模型和配置,以优化性能。


    53AI,企业落地大模型首选服务商

    产品:场景落地咨询+大模型应用平台+行业解决方案

    承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

    联系我们

    售前咨询
    186 6662 7370
    预约演示
    185 8882 0121

    微信扫码

    添加专属顾问

    回到顶部

    加载中...

    扫码咨询

    扫码登录
    登录即表示您同意《53AI网站服务协议》
    服务协议

    欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

    在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

    一、 定义

    本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

    会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

    知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

    二、 账号注册与登录

    登录方式:本网站支持以下登录方式,您可根据实际情况选择:

    微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

    手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

    账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

    实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

    未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

    三、 服务内容与规范

    知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

    服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

    禁止行为:您在使用服务时不得实施以下行为:

    利用技术手段批量爬取、下载、转存知识库内容;

    将知识库内容用于商业目的或未经授权地向第三方传播;

    干扰本网站正常运行或侵犯其他用户合法权益;

    发布违法违规信息或从事违反公序良俗的活动。

    四、 知识产权声明

    权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

    有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

    侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

    五、 个人信息保护

    我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

    您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

    您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

    六、 免责声明

    内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

    不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

    第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

    七、 违约责任

    如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

    如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

    八、 法律适用与争议解决

    本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

    因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

    九、 其他

    本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

    本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

    我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


    已查阅