Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Stellen Sie große Sprachmodelle lokal in OpenHarmony bereit

Stellen Sie große Sprachmodelle lokal in OpenHarmony bereit

王林
王林Original
2024-06-07 10:02:23878Durchsuche

Stellen Sie große Sprachmodelle lokal in OpenHarmony bereit

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.

Implementierungsideen und -schritte

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.

Schritte der lokalen Bereitstellung eines großen Sprachmodells

Kompilieren und beziehen Sie das mit der InferLLM-Drittanbieterbibliothek kompilierte Produkt.

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

Schieben Sie die kompilierte Produkt- und Modelldatei zur Ausführung auf das Entwicklungsboard

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.

Stellen Sie große Sprachmodelle lokal in OpenHarmony bereit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn