ubuntu22.04部署语音助手

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 文件,而不是整个模型目录。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brain1234

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值