Maison  >  Article  >  Périphériques technologiques  >  Déployer de grands modèles de langage localement dans OpenHarmony

Déployer de grands modèles de langage localement dans OpenHarmony

王林
王林original
2024-06-07 10:02:23879parcourir

Déployer de grands modèles de langage localement dans OpenHarmony

Cet article ouvrira en source les résultats du « Déploiement local de grands modèles de langage dans OpenHarmony » démontrés lors de la 2e conférence sur la technologie OpenHarmony : https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob. /master/thirdparty /InferLLM/docs/hap_integrate.md.

Idées et étapes de mise en œuvre

Portez le cadre d'inférence de modèle LLM léger InferLLM vers le système standard OpenHarmony et compilez un produit binaire pouvant s'exécuter sur OpenHarmony.

InferLLM est un cadre d'inférence CPU LLM simple et efficace qui peut déployer localement des modèles de quantification dans LLM.

Utilisez OpenHarmony NDK pour compiler les exécutables InferLLM sur OpenHarmony.

Utilisez spécifiquement le framework de compilation croisée OpenHarmony lycium, puis écrivez quelques scripts. Stockez-le ensuite dans l'entrepôt tpc_c_cplusplusSIG.

Étapes de déploiement local d'un grand modèle de langage

Compilez et obtenez le produit compilé de la bibliothèque tierce InferLLM

Téléchargez le SDK OpenHarmony, adresse de téléchargement : http://ci.openharmony.cn/workbench/cicd/dailybuild/dailyList2.

Téléchargez cet entrepôt.

git clone https://gitee.com/openharmony-sig/tpc_c_cplusplus.git --depth=1
# 设置环境变量export OHOS_SDK=解压目录/ohos-sdk/linux# 请替换为你自己的解压目录 cd lycium./build.sh InferLLM

Obtenez le fichier d'en-tête de la bibliothèque tierce InferLLM et la bibliothèque générée générera le répertoire InferLLM-405d866e4c11b884a8072b4b30659c63555be41d dans le répertoire tpc_c_cplusplus/thirdparty/InferLLM/. 3 répertoire dans ce répertoire 2- bibliothèques tierces bits et 64 bits. (Les résultats de compilation pertinents ne seront pas regroupés dans le répertoire usr sous le répertoire lycium).

InferLLM-405d866e4c11b884a8072b4b30659c63555be41d/arm64-v8a-buildInferLLM-405d866e4c11b884a8072b4b30659c63555be41d/armeabi-v7a-build

Poussez le produit et le fichier de modèle compilés vers la carte de développement pour l'exécution

Téléchargez le fichier de modèle : https://huggingface.co/kewin4933/InferLLM-Model/tree/main.

Emballez le fichier exécutable de lama généré en compilant InferLLM, libc++_shared.so dans le SDK OpenHarmony et le fichier modèle téléchargé Chinese-alpaca-7b-q4.bin dans le dossier 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

Portez la bibliothèque tierce InferLLM et déployez le grand modèle de langage sur l'appareil OpenHarmmony rk3568 pour réaliser le dialogue homme-machine. L'effet d'exécution final est un peu lent et la fenêtre contextuelle de la boîte de dialogue homme-machine est également un peu lente. Veuillez patienter.

Déployer de grands modèles de langage localement dans OpenHarmony

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn