飞腾腾锐D2000 + OpenHarmony 4.1release部署deepseek大模型

news/2025/2/26 9:38:48
  1. 简介
    1.1 飞腾腾锐D2000
    飞腾腾锐D2000是一款面向桌面应用的高性能通用处理,集成8个飞腾自主研发的高能效处理器核FTC663,兼
    容64位ARMv8指令集并支持ARM64和ARM32两种执行模式,支持单精度、双精度浮点运算指令和ASIMD处理
    指令,主频最高2.3GHz,支持硬件虚拟化,支持商业和工业分级。
    1.2 OpenHarmony操作系统
    OpenHarmony 是由开放原子开源基金会孵化及运营的开源项目,由开放原子开源基金会 OpenHarmony 项目
    群工作委员会负责运作。由全球开发者共建的开源分布式操作系统,具备面向全场景、分布式等特点,是一款
    “全(全领域)・ 新 (新一代)・ 开(开源)・ 放(开放)”的操作系统。
    1.3 Deepseek大模型
    DeepSeek(深度求索)是中国人工智能领域的一匹黑马,凭借其低成本、高性能的大语言模型(LLM)技术迅
    速崛起,并在全球范围内引发关注。
  2. 运行效果
    下图是在腾锐D2000 + OpenHarmony4.1release环境下运行deepseek大模型的效果图,1.5b模型推理速度约为
    7.60 tokens/s。
  3. 方案设计
    OpenHarmony中c库使用的是musl,使用llvm开源项目的C ++ 标准库libc ++ 作为C++运行时库。在
    OpenHarmony上运行ollama最快的方法就是补充ollama依赖的GNU C 库(glibc)和GNU C++ 库
    (libstdc++)到腾锐D2000开发板中去,这里采用这个方案。
    开发环境:
  4. ollama64位二进制;
  5. OpenHarmony 4.1release arm64位镜像;
  6. 飞腾 腾锐D2000开发板;
    llm copy.md 2025-02-20
    2 / 3
  7. 具体实现
  8. 首先获取ollama arm64二进制ollama-linux-arm64.tgz,下载链接:
    https://github.com/ollama/ollama/releases
  9. 获取glibc 2.27以上版本的二进制,这里提取出来命令为glibc.tar.gz,参考链接:
    https://archlinuxarm.org/packages/aarch64/glibc
  10. 获取OpenHarmony源码下面gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linuxgnu/
    aarch64-linux-gnu/libc/lib下的所有so,打包成压缩包。
    cd gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linuxgnu/
    aarch64-linux-gnu/libc
    tar -czvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz lib
  11. 将下载完成以及打包完成的ollama-linux-arm64.tgz、glibc.tar.gz和gcc-linaro-7.5.0-2019.12-
    x86_64_aarch64-linux-gnu.tar.gz全部推送到腾锐D2000开发板中的data目录并且解压,解压完成后需要
    将其拷贝到系统根目录下的lib目录下。
    推送:
    hdc file send gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.gz /data
    llm copy.md 2025-02-20
    3 / 3
    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 /data/
    tar -xvf glibc.tar.gz /data/
    tar -zxvf ollama-linux-arm64.tgz /data/
    拷贝至系统根目录下的/lib文件夹:
    mount -o remount,rw /
    cd
    cp /data/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/* /lib
  12. 在当前的shell页开启ollama服务
    设置Ollama模型的下载位置
    export OLLAMA_MODELS=/data
    export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
    mount -o remount,rw /
    cd data/bin
    ./ollama serve #启动ollma系统服务
  13. 新建另外一个hdc shell运行模型
    hdc shell
    mount -o remount,rw /
    export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
    cd data/bin
    拉取deepseek-r1:1.5b模型
    ./ollama pull deepseek-r1:1.5b #耗时3+小时
    启动deepseek-r1:1.5b模型
    ./ollama run deepseek-r1:1.5b #运行后就可以提问了

http://www.niftyadmin.cn/n/5868488.html

相关文章

IP代理在网络数据挖掘中的关键作用(AI大模型数据采集版)

在当今人工智能飞速发展的时代,AI大模型的训练需要海量且多样化的数据。然而,在数据采集过程中,常常面临诸多挑战,而IP代理在其中发挥着至关重要的作用。 数据采集的多样性是影响AI大模型性能的关键因素。如果数据来源单一&#x…

【Electron入门】进程环境和隔离

目录 一、主进程和渲染进程 1、主进程(main) 2、渲染进程(renderer) 二、预加载脚本 三、沙盒化 为单个进程禁用沙盒 全局启用沙盒 四、环境访问权限控制:contextIsolation和nodeIntegration 1、contextIsola…

LeetCode 热题100 141. 环形链表

LeetCode 热题100 | 141. 环形链表 大家好,今天我们来解决一道经典的算法题——环形链表。这道题在 LeetCode 上被标记为简单难度,要求我们判断一个链表中是否存在环。下面我将详细讲解解题思路,并附上 Python 代码实现。 题目描述 给定一个…

DeepSeek开源周Day2:DeepEP - 专为 MoE 模型设计的超高效 GPU 通信库

项目地址:https://github.com/deepseek-ai/DeepEP 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (2/5)! ​ ​ 引言 在大模型训练中,混合专家模型(Mixture-of-Experts, MoE)因其动…

锂电池使用和存储电压

表格补充说明: 每列数据中,2S和3S电池的数值都是单电芯数值的2倍和3倍;对于其他电压的电池,将单电芯数值乘以相应S数即可;理论上单个电芯过放电压为3.0V,实际中为了保险,电压降到3.6V即需充电。…

深度学习笔记线性代数方面,记录一些每日学习到的知识

记录一些每日学习到的新知识: torch:Torch是一个有大量机器学习算法支持的科学计算框架,是一个与Numpy类似的张量(Tensor)操作库 jupyter:Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享程序文档&#…

centos系统MBR格式转换成gpt格式 (华为云)

在华为云上的centos7.9系统MBR格式转换成GPT格式的步骤 华为云上关于转换的步骤 这个链接里面 gdisk -g /dev/vda 是不对的,-g参数是新创建一个分区,慎用 自己步骤如下:(已经试验过) 1、gdisk /dev/sda (这里是盘 不…

请谈谈 React 中的状态管理,如何使用 Context API 和 Redux 进行状态管理?

一、Context API 深度应用 1. 核心实现原理 通过createContext创建上下文对象,使用Provider组件包裹需要共享状态的组件树,子组件通过useContext Hook或Consumer组件消费数据。 代码示例(主题切换场景): // 创建上…