Dieser Artikel stellt die Ergebnisse von „Local Deployment of Large Language Models in OpenHarmony“ vor, die auf der 2. OpenHarmony-Technologiekonferenz vorgestellt wurden: https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob /master/thirdparty /InferLLM/docs/hap_integrate.md.
Portieren Sie das leichtgewichtige LLM-Modellinferenz-Framework InferLLM auf das OpenHarmony-Standardsystem und kompilieren Sie ein Binärprodukt, das auf OpenHarmony ausgeführt werden kann.
InferLLM ist ein einfaches und effizientes LLM-CPU-Inferenz-Framework, das Quantisierungsmodelle lokal in LLM bereitstellen kann.
Verwenden Sie OpenHarmony NDK, um ausführbare InferLLM-Dateien auf OpenHarmony zu kompilieren.
Verwenden Sie insbesondere das Cross-Compilation-Framework OpenHarmony Lycium und schreiben Sie dann einige Skripte. Speichern Sie es dann im tpc_c_cplusplusSIG-Warehouse.
OpenHarmony SDK herunterladen, Download-Adresse: http://ci.openharmony.cn/workbench/cicd/dailybuild/dailyList2.
Laden Sie dieses Lager herunter.
git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1
# 设置环境变量export OHOS_SDK=解压目录/ohos-sdk/linux# 请替换为你自己的解压目录 cd lycium./build.sh InferLLM
Rufen Sie die InferLLM-Drittanbieter-Bibliotheksheaderdatei ab und die generierte Bibliothek generiert das Verzeichnis InferLLM-405d866e4c11b884a8072b4b30659c63555be41d im Verzeichnis tpc_c_cplusplus/thirdparty/InferLLM/. In diesem Verzeichnis gibt es ein kompiliertes 3-Verzeichnis. Bit- und 64-Bit-Bibliotheken von Drittanbietern. (Die relevanten Kompilierungsergebnisse werden nicht in das USR-Verzeichnis unter dem Lycium-Verzeichnis gepackt.)
InferLLM-405d866e4c11b884a8072b4b30659c63555be41d/arm64-v8a-buildInferLLM-405d866e4c11b884a8072b4b30659c63555be41d/armeabi-v7a-build
Laden Sie die Modelldatei herunter: https://huggingface.co/kewin4933/InferLLM-Model/tree/main.
Packen Sie die ausführbare Lama-Datei, die durch Kompilieren von InferLLM generiert wurde, libc++_shared.so im OpenHarmony SDK und die heruntergeladene Modelldatei chinese-alpaca-7b-q4.bin in den Ordner llama_file.
# 将llama_file文件夹发送到开发板data目录hdc file send llama_file /data
# hdc shell 进入开发板执行cd data/llama_file# 在2GB的dayu200上加swap交换空间# 新建一个空的ram_ohos文件touch ram_ohos# 创建一个用于交换空间的文件(8GB大小的交换文件)fallocate -l 8G /data/ram_ohos# 设置文件权限,以确保所有用户可以读写该文件:chmod 777 /data/ram_ohos# 将文件设置为交换空间:mkswap /data/ram_ohos# 启用交换空间:swapon /data/ram_ohos# 设置库搜索路径export LD_LIBRARY_PATH=/data/llama_file:$LD_LIBRARY_PATH# 提升rk3568cpu频率# 查看 CPU 频率cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq# 查看 CPU 可用频率(不同平台显示的可用频率会有所不同)cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies# 将 CPU 调频模式切换为用户空间模式,这意味着用户程序可以手动控制 CPU 的工作频率,而不是由系统自动管理。这样可以提供更大的灵活性和定制性,但需要注意合理调整频率以保持系统稳定性和性能。echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor# 设置rk3568 CPU 频率为1.9GHzecho 1992000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed# 执行大语言模型chmod 777 llama./llama -m chinese-alpaca-7b-q4.bin -t 4
Portieren Sie die InferLLM-Drittanbieterbibliothek und stellen Sie das große Sprachmodell auf dem OpenHarmmony-Gerät rk3568 bereit, um den Mensch-Computer-Dialog zu realisieren. Der endgültige Laufeffekt ist etwas langsam, und das Popup des Mensch-Maschine-Dialogfelds ist ebenfalls etwas langsam. Bitte warten Sie geduldig.
Das obige ist der detaillierte Inhalt vonStellen Sie große Sprachmodelle lokal in OpenHarmony bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!