ubuntu22.04安装语音小助手
ubuntu22.04部署安装语言小助手
1.必要依赖项目安装
新建环境
创建一个 your-environment的虚拟环境,python版本为3.10
conda create -n mlc python==3.10
conda activate mlc
Rust安装
# 安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
#检验
rustc --version
android studio及相关内容安装
android studio下载地址: link
将tar.gz文件解压到对应目录后运行以下命令使用studio:
./bin/studio.sh
file-settings-languages & frameworks - andriod SDK - SDK Tools 选择安装NDK/CMake和Android SDK Platform-Tools
安装完成后,在环境变量中对NDK等进行配置
输入sudo vim ~/.bashrc
复制粘贴以下内容后即可
export ANDROID_NDK=/home/User/Android/Sdk/ndk/26.1.10909125
export ANDROID_HOME=/home/User/Android/Sdk
export PATH=$PATH:/home/User/Android/Sdk/cmake/3.22.1/bin
export PATH=$PATH:/home/User/Android/Sdk/platform-tools
export TVM_NDK_CC=$ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang
export TVM_HOME=/home/User/mlc-llm/3rdparty/tvm
export TVM_HOME=$TVM_HOME/include/tvm/runtime
source $HOME/.cargo/env # Rust
JAVA安装
# 更新update
sudo apt update
# 安装openjdk17
sudo apt install openjdk-17-jdk
# 查看jdk17的安装路径
sudo update-alternatives --list java
# 用上面命令获取的路径,编入到bashrc文件的最后一行中
vi ~/.bashrc
# 将下面的命令,编入到bashrc文件的最后一行中
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64/bin/java
# 更新环境变量
source ~/.bashrc
2.MLC-LLM包安装
MLC-LLM安装
# 克隆源代码
git clone https://github.com/mlc-ai/mlc-llm.git
# 进入mlc-llm文件夹
cd mlc-llm
# 加载子项目,如果加载失败,可反复运行,直到运行后没有返回为止
git submodule update --init --recursive
TVM安装
1. 安装依赖工具
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev
2.安装LLVM
下载源链接:llvm官网
(根据自己系统的版本下载)
选择一个LLVM版本(比如#16)添加到/etc/apt/sources.list里面
解锁存档签名
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
签名
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main'
安装LLVM
sudo apt-get update
sudo apt-get install clang-16 lldb-16 lld-16
3. 编译TVM
进入TVM目录
mkdir build
cd build
cp ../cmake/config.cmake ./
自定义编译选项
打开刚刚复制过来的config.cmake 文件,根据自己的需求修改参数
更改为启用 CUDA 后端。对您要为其构建的其他后端和库(OpenCL、RCOM、METAL、VULKAN …)执行相同的操作。
set(USE_CUDA ON)
为了帮助调试,请确保使用和启用嵌入式图形执行器和调试功能
set(USE_GRAPH_EXECUTOR ON)
set(USE_PROFILER ON)
使用 IR 进行调试,并设置环境变量TVM_LOG_DEBUG。
set(USE_RELAY_DEBUG ON)
直接设置让cmake搜索一个可用的LLVM版本。
set(USE_LLVM ON)
保存
执行编译命令
cmake ..
make -j4
4. 设置环境变量
设置环境变量PYTHONPATH来告诉 python 在哪里可以找到库。可在打开 ~/.bashrc中添加以下行。
sudo vim ~/.bashrc
添加环境变量
export TVM_HOME=/home/code/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
这里的/home/code/tvm就是你TVM代码所在的位置。
保存后,让环境变量生效
source ~/.bashrc
5. 安装python依赖项
pip3 install --user numpy decorator attrs tornado psutil xgboost cloudpickle
6.正式安装python包
cd python
pip install -e .
# 1,在conda环境中安装依赖包
(tvm-build) @P920:~/tvm/code/apache-tvm-src-v0.12.0$ conda install numpy decorator attrs tornado psutil xgboost cloudpickle
# 2.切换到python目录,执行setup.py安装
(tvm-build) @P920:~/tvm/code/apache-tvm-src-v0.12.0$ cd python;
# 使用develop,采用软链接的安装方式,这样可以实时debug
(tvm-build) @P920:~/tvm/code/apache-tvm-src-v0.12.0/python$ rm tvm/*.so
(tvm-build) @P920:~/tvm/code/apache-tvm-src-v0.12.0/python$ rm -rf tvm/configs/
(tvm-build) @P920:~/tvm/code/apache-tvm-src-v0.12.0/python$ python setup.py develop
6.检查TVM是否安装成功
python3
import tvm # 如果显示没有tvm模块,说明安装失败
tvm.__version__ # 若成功会显示tvm版本号
MLC-LLM python构建
测试:
python -c “import mlc_llm; print(mlc_llm)”
如下输出说明安装正确
2.2 转换参数
使用 mlc_llm 的 convert_weight 对模型参数进行转换和量化,转换后的参数可以跨平台使用
cd android/MLCChat
export TVM_SOURCE_DIR=/home/t/mlc-llm/android/mlc-llm/3rdparty/tvm
export MLC_LLM_SOURCE_DIR=/home/t/mlc-llm/android/mlc-llm
# 改变目标文件夹的权限,使当前用户能够访问和读取这些文件:
sudo chmod -R 755 /home/t/mlc-llm/models/internlm2_5-1_8b-chat/
mlc_llm convert_weight /home/t/mlc-llm/models/internlm2_5-1_8b-chat/ \
--quantization q4f16_1 \
-o dist/internlm2_5-1_8b-chat-q4f16_1-MLC
最后命令执行报错:
argument config: invalid detect_config value: ‘/home/t/mlc-llm/models/internlm2_5-1_8b-chat/’
在运行 mlc_llm convert_weight 命令时,你的 config 参数未能正确识别配置路径。命令行工具期望的是一个 config.json 文件,而不是一个目录路径。因此,你需要确保你提供的是包含模型架构配置的 config.json 文件,而不是整个模型目录。