OpenHarmony上运行Ollama玩转本地大模型

OpenHarmony上运行Ollama玩转本地大模型

开源仓库:https://gitee.com/OpenHarmony_rk_equipment_transplantation/OpenHarmony_Ollama/tree/master

OpenHarmony中c库使用的是musl,使用llvm开源项目的C ++ 标准库libc ++ 作为C++运行时库。所以想在OpenHarmony上运行ollama最快的方法就是补充ollama依赖的GNU C 库(glibc)GNU C++ 库(libstdc++)到开发板中去,这里采用这个方案。

javascript 复制代码
开发环境:
1.ollama64位二进制
2.OpenHarmony arm64位镜像
3.3588开发板

1.首先获取ollama arm64二进制ollama-linux-arm64.tgz

https://github.com/ollama/ollama/releases

2.获取glibc 2.27以上版本的二进制,这里提取出来命令为glibc.tar.gz

https://archlinuxarm.org/packages/aarch64/glibc

3.获取OpenHarmony源码下面gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/lib下的所有so

javascript 复制代码
cd gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc

tar -czvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz lib

4.将ollama-linux-arm64.tgzglibc.tar.gzgcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz全部推送到开发板data目录并且解压,复制到开发板lib目录

javascript 复制代码
hdc file send gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz /data
hdc file send glibc.tar.gz /data
hdc file send ollama-linux-arm64.tgz /data
hdc shell  

cd data
tar -zxvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz
tar -zxvf glibc.tar.gz
tar -zxvf ollama-linux-arm64.tgz

mount -o remount,rw /
cd 
cp /data/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/* /lib

5.开启ollama服务

javascript 复制代码
# 设置Ollama模型的下载位置
# export OLLAMA_MODELS=/data
# export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
# mount -o remount,rw /
# cd data/bin
# ./ollama serve

6.新建另外一个hdc shell运行模型

javascript 复制代码
# mount -o remount,rw /
# export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
# cd data/bin

# 拉取qwen:0.5b模型
# ./ollama pull qwen:0.5b
# 启动模型
# ./ollama run qwen:0.5b