微信扫码
与创始人交个朋友
我要投稿
随着Llama 3.2的发布,Meta在将强大的语言模型带到边缘和移动设备方面取得了重大进展。Llama 3.2包含了专为智能手机和平板电脑高效运行而设计的轻量级模型(1B和3B参数)。本教程将指导您通过MLC LLM库对Llama 3.2模型进行量化、转换和部署。
了解Llama 3.2
设置环境
量化和转换模型
为Android编译模型
设置Android环境
构建和运行Android应用
结论
Llama 3.2是Meta最新的开源语言模型版本,经过优化以适应边缘和移动设备。轻量级模型(1B和3B参数)支持高达128K令牌的上下文长度,并能够执行诸如摘要、指令跟随和重写等任务,均可在您的设备上本地运行。
关键特性:
我们将使用Google Colab进行初步步骤,以利用其GPU资源。
首先,克隆包含必要脚本和笔记本的存储库。
!git clone https://github.com/YourUsername/Llama3.2-on-Mobile.git
安装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
import mlc_llm
import torch
from huggingface_hub import snapshot_download
确保Colab使用的是GPU。
import torch
torch.cuda.is_available()
如果返回True
,则说明可以使用。
登录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/")
设置模型名称和所需的量化。
MODEL_NAME = "Llama-3.2-3B"
QUANTIZATION = "q4f16_1"
使用MLC LLM工具对模型权重进行量化和转换。
!python -m mlc_llm convert_weight /content/$MODEL_NAME/ --quantization $QUANTIZATION -o /content/$MODEL_NAME-$QUANTIZATION-android/
创建必要的令牌文件和配置。
!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/
将模型编译为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
这将使您更容易直接在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.",
)
如果您使用的是Windows,建议使用Linux环境或云虚拟机(如Google Cloud Platform)以避免兼容性问题。
Rust是交叉编译标记器所需的。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装后重启终端。
打开Android Studio,通过SDK管理器安装NDK和CMake。
pip install --pre -U -f https://mlc.ai/wheels mlc-llm-nightly mlc-ai-nightly
sudo apt-get install cmake
git clone https://github.com/mlc-ai/mlc-llm.git
git clone https://github.com/YourUsername/Llama3.2-on-Mobile.git
导航到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
将之前生成的.tar
文件复制到lib
目录。
cd mlc-llm/android/MLCChat/dist
mkdir lib
cp /content/Llama-3.2-3B-q4f16_1-android.tar ./lib/
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"
}
}
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
cd mlc-llm/android/MLCChat
python3 -m mlc_llm package
Android环境
在Android Studio中打开位于Llama3.2-on-Mobile/mobile-llama3/MobileLlama3
的Android项目。
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
}
]
}
在Android Studio中点击Build > Make Project
,这可能需要一些时间。
确保您的设备启用了USB调试。
在Android Studio中点击Run > Run 'app'
。
应用安装后,您可以开始在Android设备上直接与Llama 3.2模型互动。
注意:在移动设备上运行大型语言模型需要相当大的计算资源。性能可能会根据设备的硬件能力而有所不同。
恭喜您!您已成功在Android设备上部署Llama 3.2模型。这使得离线推理成为可能,并确保数据在您的设备上保持私密。欢迎尝试不同的模型和配置,以优化性能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-06
2024-07-25
2024-08-13
2024-06-12
2024-07-11
2024-06-16
2024-07-20
2024-09-20
2024-06-15
2024-06-06
2024-12-20
2024-12-19
2024-11-22
2024-11-19
2024-11-13
2024-11-13
2024-10-07
2024-09-22