AES200物理机部署DeepSeek-R1蒸馏模型

AES200物理机部署DeepSeek-R1模型

华为官方官宣自己的NPU支持DeepSeek-R1模型部署,华为的大模型推理部署依托于其大模型推理引擎:MindIE,但是根据MindIE的文档,其只支持以下硬件:

表1 MindIE支持的硬件列表

类型配置参考
服务器Atlas 800I A2 推理产品
Atlas 200T A2 Box16 异构子框
推理卡Atlas 300I Duo 推理卡+Atlas 800 推理服务器(型号:3000)

而且根据华为官方发布的支持DeepSeek的docker 镜像,也需要以下硬件配置:

硬件要求

部署DeepSeek-V3模型用BF16权重进行推理至少需要4台Atlas 800I A2(864G)服务器,用W8A8量化权重进行推理则至少需要2台Atlas 800I A2 (864G)

今天我们就尝试一下,凌华智能科技有限公司发布的基于华为Ascend310P处理芯片的AES200边缘推理服务器能不能拉动DeepSeek这两大车! 开搞!!

1. 安装MindIE推理引擎

虽然根据MindIE的文档,MindIE只支持Atlas 300I Duo推理卡以上的设备,但是由于AES200采用的Ascend310P处理芯片是和Atlas 300I Duo卡采用的芯片是同一系列的芯片,按理来说MindIE也是应该能跑起来的,我们不防试试,走起!

注意:本次安装为了简单方便,我们的安装用户和运行用户都采用root账号!!!

1.1 安装方案

此次我们采用如下图所示的物理机部署方案,完成MindIE开发环境的安装。

img

1.2 准备AES200环境

这次我们在AES200上安装OpenEuler 22.03的系统版本,固件和驱动的版本如下:

软件名称分类发布日期说明
Ascend-hdk-310p-npu-firmware-soc_7.3.0.1.231.runNPU2024/07/19Atlas 200I SOC A1产品固件包(run格式)
Ascend-hdk-310p-npu-driver-soc-oe2203_24.1.rc2_linux-aarch64.runNPU2024/07/19Atlas 200I SOC A1产品ARM架构支持OpenEuler 22.03驱动包(run格式)
+--------------------------------------------------------------------------------------------------------+
| npu-smi 24.1.rc2                                 Version: 24.1.rc2                                     |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310P1                 | OK              | NA           27                0     / 0             |
| 0       0                     | NA              | 80           NA / 43173                              |
+===============================+=================+======================================================+

1.3 安装开发环境

MindIE与CANN版本必须配套使用,其版本配套关系如下表所示。

MindIE版本配套CANN版本
1.0.08.0.0

软件安装前,请下载下表MindIE依赖的软件包,各软件包版本号需要保持一致。

依赖软件包软件说明
CANNAscend-cann-toolkit*_{version}_linux-{arch}*.run开发套件包。
Ascend-cann-kernels-{chip_type}_{version}_linux-{arch}.run二进制算子包。
Ascend-cann-nnal*_{version}_linux-{arch}*.run加速库软件包。
ATB ModelsAscend-mindie-atb-models_{version}_linux-{arch}py*xxxtorchx.x.x*-{abi}.tar.gz模型库安装包。使用MindIE Service和MindIE LLM组件时,需要安装。
Ascend Extension for PyTorchtorch_npu-{torch_version}.post{post_id}-cpxxx-cpxxx-manylinux_{arch}.whltorch_npu插件whl包。
apex-{apex_version}_ascend-cpxxx-cpxxx-{arch}.whlApex模块的whl包。请参见《Ascend Extension for PyTorch 配置与安装》中的“(可选)安装APEX模块”章节,根据Python3.10版本自行编译。
torch-{torch_version}+cpu-cpxxx-cpxxx-linux_{arch}.whlPyTorch框架whl包。说明当前只支持1.11.0和2.1.0版本。请从《Ascend Extension for PyTorch 配置与安装》中的“安装PyTorch框架”章节获取。
1.3.1 安装依赖

根据MindIE的文档,MindIE依赖下表中的软件包

软件版本要求
glibc>=2.34,(openEuler22.03系统中glibc版本满足要求)。
gcc、g++>=11.4.0,(OpenEuler22.03系统找那个gcc,g++不满足要求),可以通过conda环境安装,或者编译安装,我这里采用Conda虚拟一个环境进行安装。
Python3.10*.x*、3.11.x,OpenEuler22.03默认带的python版本为3.9,我们这里用Conda来创建一个虚拟环境来满足对Python版本的要求。建议执行命令pip3 install --upgrade pip进行升级(pip版本需 ≤ 24.0),避免因pip版本过低导致安装失败。
gevent22.10.2
python-rapidjson>=1.6
geventhttpclient2.0.11
urllib32.1.0
greenlet3.0.3
zope.event5.0
zope.interface6.1
prettytable3.5.0
jsonschema4.21.1
jsonlines4.0.0
thefuzz0.22.1
pyarrow>=15.0.0
pydantic2.6.3
sacrebleu2.4.2
rouge_score0.1.2
pillow10.3.0
requests2.31.0
matplotlib>=1.3.0
text_generation0.7.0
numpy1.26.3
pandas2.1.4
transformers>=4.30.2,请用户根据模型选择对应版本。
tritonclient[all]-
colossalai0.4.0

安装Miniconda

$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
$ ./Miniconda3-latest-Linux-aarch64.sh #安装时选择缺失配置安装就行

创建虚拟环境

$ conda create -n mindie python=3.10
$ conda activate mindie
$ pip3 install --upgrade pip==24
$ conda install -c conda-forge gcc=11.4.0 gxx=11.4.0
$ gcc --version #检查gcc版本
$ pip3 --version #检查pip3版本呢

安装依赖pip包

将以下内容添加安装文件requirements.txt中,样例如下所示。

gevent==22.10.2
python-rapidjson>=1.6
geventhttpclient==2.0.11
urllib3>=2.1.0
greenlet==3.0.3
zope.event==5.0
zope.interface==6.1
prettytable~=3.5.0
jsonschema~=4.21.1
jsonlines~=4.0.0
thefuzz~=0.22.1
pyarrow~=15.0.0
pydantic~=2.6.3
sacrebleu~=2.4.2
rouge_score~=0.1.2
pillow~=10.3.0
requests~=2.31.0
matplotlib>=1.3.0
text_generation~=0.7.0
numpy~=1.26.3
pandas~=2.1.4
transformers>=4.30.2
tritonclient[all]
colossalai==0.4.0

在创建的mindie虚拟环境中执行以下命令进行安装

$ pip3 install -r requirements.txt
1.3.2 安装CANN

详细过程,请参照华为的《CANN 软件安装指南》中的“安装CANN软件包”章节,依据设备情况及操作系统支持情况,安装CANN开发套件包Ascend-cann-toolkit*_{version}_linux-{arch}*.run。

安装CANN依赖

在创建的conda 虚拟环境mindie下安装CANN依赖包

$ pip3 install attrs cython numpy==1.24.0 decorator sympy cffi pyyaml pathlib2 psutil protobuf==3.20 scipy requests absl-py cloudpickle  ml-dtypes tornado

安装toolkit

$ ./Ascend-cann-toolkit_8.0.0_linux-aarch64.run --install --install-for-all
# 环境变量设置
$ source /usr/local/Ascend/ascend-toolkit/set_env.sh

根据安装成功后的提示,添加source /usr/local/Ascend/ascend-toolkit/set_env.sh到/root/.bashrc中, 设置永久环境变量

安装二进制算子包

详细过程,请参照华为的《CANN 软件安装指南》中的“安装CANN软件包”章节,依据设备情况及操作系统支持情况,安装CANN二进制算子包Ascend-cann-kernels-{chip_type}_{version}_linux-{arch}.run。

$ ./Ascend-cann-kernels-310p_8.0.0_linux-aarch64.run --install --install-for-all

安装加速库

NNAL软件包中提供了面向大模型领域的ATB(Ascend Transformer Boost)加速库,实现了基于Transformer结构的神经网络推理加速引擎库,提供昇腾亲和的融合算子、通信算子、内存优化等,作为算子的公共底座提升了大模型推理性能。

$ ./Ascend-cann-nnal_8.0.0_linux-aarch64.run --install  --install-for-all
# 环境变量设置
$ source /usr/local/Ascend/nnal/atb/set_env.sh

source /usr/local/Ascend/nnal/atb/set_env.sh添加到/root/.bashrc文件中的最后一行, 设置永久环境变量

1.3.3 安装Pytorch
  • 请参见《Ascend Extension for PyTorch 配置与安装》中的“安装PyTorch框架”章节安装PyTorch框架。
  • 请参见《Ascend Extension for PyTorch 配置与安装》中的“安装torch_npu插件”章节安装torch_npu插件。

MindIE中各组件依赖PyTorch框架和torch_npu插件,依赖情况如下表所示,请用户依据实际使用需求安装。

组件名称是否需要安装PyTorch框架是否需要安装torch_npu插件
MindIE Torch必装可选
MindIE Service必装必装
MindIE LLM必装必装
MindIE SD必装必装

安装pytorch

# 下载软件包
$ wget https://download.pytorch.org/whl/cpu/torch-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 安装命令
$ pip3 install torch-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

安装pytorch扩展

# 下载插件包
$ wget https://gitee.com/ascend/pytorch/releases/download/v6.0.0-pytorch2.1.0/torch_npu-2.1.0.post10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
# 安装命令
$ pip3 install torch_npu-2.1.0.post10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

执行如下命令,若返回True 则说明安装成功。

python3 -c "import torch;import torch_npu;print(torch_npu.npu.is_available())"
1.3.4 安装ATB Models

详细过程,请参照华为的《MindIE安装指南》中的“安装ATB Models”章节。

ATB Models软件包是集成到了华为提供的MindIE推理镜像包里面,需要下载推理镜像包,运行docker启动镜像后,从/opt/package目录提取对应版本的ATB Models包。注意包有两类接包:abi0,abi1,请在你的mindie虚拟环境中使用以下指令查看abi是0还是1

python -c "import torch; print(torch.compiled_with_cxx11_abi())"

若输出结果为True表示abi1,False表示abi0,根据输出结果选择对应的abi包

$ mkdir /usr/local/Ascend/llm_model
$ tar -xzf Ascend-mindie-atb-models_1.0.0_linux-aarch64_py310_torch2.1.0-abi0.tar.gz -C /usr/local/Ascend/llm_model
# 环境变量设置
$ source /usr/local/Ascend/llm_model/set_env.sh

source /usr/local/Ascend/llm_model/set_env.sh添加到/root/.bashrc文件中的最后一行, 设置永久环境变量

安装atb-llm

$ pip3 install /usr/local/Ascend/llm_model/atb_llm-0.0.1-py3-none-any.whl

1.4 安装MindIE

1.4.1 准备安装包

MindIE软件包

名称软件包说明
MindIE软件包Ascend-mindie*_{version}_linux-{arch}*.run推理引擎软件包,主要用于用户开发基于MindIE的应用。

执行安装前请确保安装环境满足硬件环境,支持的操作系统要求,并已参照安装驱动和固件和安装开发环境章节完成开发环境的安装。执行MindIE软件包的安装,会依次安装MindIE RT、MindIE Torch、MindIE Service、MindIE LLM和MindIE SD各组件,组件包的路径在MindIE的子路径下。

1.4.2 安装步骤

执行安装程序

$ ./Ascend-mindie_1.0.0_linux-aarch64.run --install
# 环境变量设置
$ source /usr/local/Ascend/mindie/set_env.sh

source /usr/local/Ascend/mindie/set_env.sh添加到/root/.bashrc文件中的最后一行, 设置永久环境变量

1.5 配置MindIE Server

详细配置项介绍,请参照华为的《MindIE安装指南》中的“配置MindIE Server”章节的单机推理。

MindIE Server 对于Python的环境要求为Python3.10. 或者Python3.11. 此处以我的虚拟环境中Python3.10.16为例,如果环境中的Python3.10.16不是默认版本,需要参考如下方法添加环境变量到/root/.bashrc文件中(Python路径根据实际路径进行修改)。

conda activate mindie #默认激活虚拟环境
export export LD_LIBRARY_PATH=${HOME}/miniconda3/envs/mindie/lib:${HOME}/miniconda3/envs/mindie/lib/python3.10:$LD_LIBRARY_PATH

在此,我只是添加了Python的环境变量,并没有更改MindIE Server的配置项文件:config.json。这个文件可以根据不同的模型修改,我们放在模型部署时修改此文件。

2 部署DeepSeek模型

由于AES200的资源有限,肯定是不可能推理满血的DeepSeek模型的,我们采用一个蒸馏过的模型: DeepSeek-R1-Distill-Qwen-7B测试一下。

2.1 下载模型

由于模型是从huggingface官网下载,我们需要安装官方的下载工具huggingface_hub,这样更快的下载模型,注意:这里可能需要科学上网

 $ pip3 install -U huggingface_hub

下载模型文件

$ huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Llama-8B  --local-dir /home/data/datasets/DeepSeek-R1-Distill-Llama-8B 

修改模型权重config.json中torch_dtype字段为float16

修改文件的属性:

$ chmod 750 /home/data/datasets/DeepSeek-R1-Distill-Llama-8B/config.json

2.2 服务化推理

打开配置文件

$ vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json

更改配置文件

{
...
"ServerConfig" :
{
...
"port" : 1040, #自定义
"managementPort" : 1041, #自定义
"metricsPort" : 1042, #自定义
...
"httpsEnabled" : false, #测试阶段可以用开启https
...
},

"BackendConfig": {
...
"npuDeviceIds" : [[0]], #因为AES200只有一个NPU
...
"ModelDeployConfig":
{
"truncation" : false,
"ModelConfig" : [
{
...
"modelName" : "qwen",
"modelWeightPath" : "/home/data/datasets/DeepSeek-R1-Distill-Llama-8B",
"worldSize" : 1, #这里的数字应和NPU的数量对应,我的测试结果结果是:如果不设置成1,执行报错。
...
}
]
},
}
}

拉起服务化

cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon

当出现Daemon start success!, 表示成功拉起服务

2025-02-09 14:27:32,109 [INFO] standard_model.py:155 - >>>rank:0 done ibis manager to device
2025-02-09 14:27:32,117 [INFO] npu_compile.py:20 - 310P,some op does not support
2025-02-09 14:27:32,118 [INFO] standard_model.py:172 - >>>rank:0: return initialize success result: {'status': 'ok', 'npuBlockNum': '2602', 'cpuBlockNum': '731', 'maxPositionEmbeddings': '131072'}
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.
Daemon start success!

2.3 推理请求

当服务化推理成功后,我们就可以通过curl发送推理求来测试是否可以正常推理。

开启一个新的终端, 并运行一下命令

 time curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{
 "model": "llama",
 "messages": [{
  "role": "user",
  "content": "我有三天的假期,我想去长沙玩玩,主要看看橘子洲头、岳麓山、博物馆,请给我做一个攻略"
 }],
 "max_tokens": 512,
 "presence_penalty": 1.03,
 "frequency_penalty": 1.0,
 "seed": null,
 "temperature": 0.5,
 "top_p": 0.95,
 "stream": false
}' http://127.0.0.1:1040/v1/chat/completions     #其中127.0.0.1以实际ip地址为准

大致的结果如下,但是感觉结果没有输出全,估计是curl请求的问题,待确认:

{"id":"endpoint_common_2","object":"chat.completion","created":1739086214,"model":"llama","choices":[{"index":0,"message":{"role":"assistant","content":"<think>\n好,我现在要帮用户制定一个三天的长沙游攻略,用户想去橘子洲头、岳麓山和博物馆。首先,我得了解这几个景点的地理位置和大致门票情况。\n\n橘子洲头在长沙市中心附近,应该不需要太多时间,可以安排第一天去那里,然后顺便看看周边的商业街,比如IFS城花园,这样比较充实。第二天可以考虑岳麓山,那里距离市区有点远,可能需要半程停车,然后坐公交或者打车前往山内景点。第三天可以集中在博物馆,比如湖南地方法院旧址和文化宫,这些都是比较著名的地方,而且都靠近市中心,方便安排。\n\n交通方面,长沙的公共交通很发达,但有些景点离市区较远的话可能需要自驾或包车。我得提醒用户注意这一点。另外,每个景点的开放时间也要确认,如果有特殊展览的话会不会影响行程。\n\n住宿的话,如果是短期旅行,可以推荐一些经济型酒店或民宿,特别是如果预算有限的话,还可以给出一些选择建议。不过,也有可能用户希望更高档,所以我就简单提一下选项吧。\n\n餐饮部分,每个地方都有一些特色美食,比如湘菜火锅、烧烤等,要让用户知道能吃到当地特色,这样他们会更满意行程。此外,还应告知他们安全带好风衣,因为四季变换时节气变化较大,不同季节防护措施不同。\n\n最后,把这些内容整合成一份清晰的攻略,让每一天都有明确的活动安排,并且尽量紧凑时间,以满足三天之内尽可能多地点游玩。\n</think>\n\n好的!以下是一个详细的大纲,将帮助你规划三日之旅:\n\n---\n\n### **第一 天:橘子洲头与城市体验**\n**上午:橘子洲头(Yueh-Lung Mountain)**\n1. **门票价格**:约60-80元  \n2. **游览路线**:\n   - 从入口进入后,可骑电车环岛观光,或步行登山至望云楼(免费)。\n","tool_calls":null},"finish_reason":"length"}],"usage":{"prompt_tokens":39,"completion_tokens":512,"total_tokens":551},"prefill_time":140,"decode_time_arr":[97,103,97,96,96,95,98,96,95,95,102,100,96,96,96,96,95,96,98,95,97,95,97,95,95,96,95,99,97,96,95,96,97,96,97,98,100,101,100,100,100,100,102,100,101,100,101,100,101,101,100,100,99,99,101,95,97,97,95,96,95,96,95,95,96,98,97,97,95,95,96,95,95,96,97,95,95,95,96,95,96,96,102,96,97,97,96,95,98,99,95,99,104,96,95,95,95,98,95,95,96,96,95,95,96,96,95,95,96,96,95,99,95,95,95,97,95,97,96,96,97,95,96,95,95,96,96,95,95,95,95,103,95,96,97,95,97,96,96,95,96,97,97,96,95,97,95,95,95,96,95,97,97,99,97,96,96,96,95,95,100,99,96,95,95,95,95,95,95,96,113,96,96,96,104,95,96,95,97,96,95,96,95,95,95,95,96,96,95,95,104,96,98,95,95,95,96,95,95,95,103,95,95,96,95,96,96,96,96,97,95,95,97,97,95,97,96,98,96,95,95,97,98,95,96,97,96,95,95,97,96,95,95,95,96,95,95,95,95,103,102,96,96,102,97,95,96,95,96,107,95,95,95,99,99,108,99,100,101,103,102,100,100,102,100,102,100,100,102,102,100,100,101,99,101,100,102,100,102,100,95,97,95,95,96,95,96,95,95,95,97,95,96,97,96,100,95,95,97,96,95,96,95,95,95,97,95,95,103,95,96,96,100,97,95,95,97,95,95,95,95,95,102,96,95,95,95,103,96,96,95,103,100,95,95,95,96,95,96,96,95,96,95,96,95,98,96,96,97,96,96,96,96,103,95,95,95,96,95,95,95,96,96,96,96,97,96,95,96,95,96,97,96,95,97,95,95,96,96,97,97,96,96,98,97,96,96,96,95,95,95,97,95,96,98,96,95,95,96,95,96,95,95,107,98,95,95,95,95,95,106,95,97,106,96,96,96,96,96,96,95,97,96,95,95,98,95,95,95,96,95,103,95,96,96,96,96,95,95,96,96,97,95,95,95,95,96,96,95,103,95,96,96,96,95,103,97,96,96,95,96,95,96,96,96,95,95,98,103,96,96,97,96,98,96,96,95,95,95,95,95,95,103,96,95,95,103,96,98,96,95,100,102,95,103,96,95,95,95,95,95,95,95,95,96,96,96,96,97,96,96]}
real    0m49.998s
user    0m0.011s
sys     0m0.017s

性能方面:

第一次开启新话题比较慢,要思考1分钟多钟,后续基于此话题在继续问问题会快一些,总体而言,也就是AES200也能跑大模型,只是速度方面稍慢,华为的库支持还需要完善!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/966860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步&#xff0c;测试方法也在演变。企业需要紧跟新兴趋势&#xff0c;以提升软件质量、提高测试效率&#xff0c;并确保安全性&#xff0c;在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…

w200基于spring boot的个人博客系统的设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

【B站保姆级视频教程:Jetson配置YOLOv11环境(十)镜像备份】

Jetson配置YOLOv11环境&#xff08;10&#xff09;镜像备份 B站视频的镜像已打包上传至百度网盘&#xff0c;镜像的硬盘空间使用量如下&#xff0c;感兴趣的小伙伴可自行下载烧录&#xff0c;需使用64g及以上的tf卡&#xff1a; (pytorch) nxnx-desktop:~$ df -h Filesystem …

了解大语言模型的基本原理(一)——Transformer工作原理

为什么选择Transformer&#xff1f; RNN&#xff1a;无法并行计算&#xff0c;不擅长处理长序列 LSTM&#xff1a;依然存在这两个问题 Transformer&#xff1a;可以并行计算&#xff0c;并且能学习输入序列里所有词的相关性和上下文关系 Tranformer优点&#xff1a; 1、注…

【Matlab优化算法-第13期】基于多目标优化算法的水库流量调度

一、前言 水库流量优化是水资源管理中的一个重要环节&#xff0c;通过合理调度水库流量&#xff0c;可以有效平衡防洪、发电和水资源利用等多方面的需求。本文将介绍一个水库流量优化模型&#xff0c;包括其约束条件、目标函数以及应用场景。 二、模型概述 水库流量优化模型…

JAVA:CloseableHttpClient 进行 HTTP 请求的技术指南

1、简述 CloseableHttpClient 是 Apache HttpComponents 提供的一个强大 HTTP 客户端库。它允许 Java 程序与 HTTP/HTTPS 服务交互&#xff0c;可以发送 GET、POST 等各种请求类型&#xff0c;并处理响应。该库广泛用于 REST API 调用、文件上传和下载等场景。 2、特性 Close…

(2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型

BiomedGPT: A generalist vision–language foundation model for diverse biomedical tasks 目录 1. 摘要 2. 引言 3. 相关研究 3.1 基础模型与通用生物医学 AI 3.2 生物医学 AI 的局限性 3.3 BiomedGPT 的创新点 4. 方法 4.1 架构及表示 4.1.1 模型架构选择 4.1.2 …

使用DeepSeek实现AI自动编码

最近deepseek很火&#xff0c;低成本训练大模型把OpenAI、英伟达等股票搞得一塌糊涂。那它是什么呢&#xff0c;对于咱们程序员编码能有什么用呢&#xff1f;DeepSeek 是一款先进的人工智能语言模型&#xff0c;在自然语言处理和代码生成方面表现出色。它经过大量代码数据训练&…

Linux之Https协议原理

Linux之Https协议原理 一.Https协议的概念二.常见的加密方法三.数据摘要&#xff08;数字指纹&#xff09;四.Https协议加密方法的逐渐完善4.1使用对称或者非对称加密4.2增加CA证书 一.Https协议的概念 Https协议是基于Http协议延申出的一种应用层协议&#xff0c;其原理就是在…

基于Java的在线购物系统的设计与实现

引言 课题背景 随着Internet国际互联网的发展&#xff0c;越来越多的企业开始建造自己的网站。基于Internet的信息服务&#xff0c;商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强…

HarmonyOS 5.0应用开发——全局自定义弹出框openCustomDialog

【高心星出品】 文章目录 全局自定义弹出框openCustomDialog案例开发步骤完整代码 全局自定义弹出框openCustomDialog CustomDialog是自定义弹出框&#xff0c;可用于广告、中奖、警告、软件更新等与用户交互响应操作。开发者可以通过CustomDialogController类显示自定义弹出框…

CSS基本语法和常用属性

目录 一、CSS二、CSS基本语法三、CSS的三种形式1、行内样式2、内部样式3、外部样式4、三者的优先级问题5、代码演示 四、选择器1 基础选择器1.1标签选择器1.2 ID选择器1.3 Class选择器1.4 属性选择器 2. 组合选择器2.1 层次选择器4.2.2 并列选择器 3. 伪类选择器4、选择器的优先…

白嫖RTX 4090?Stable Diffusion:如何给线稿人物快速上色?

大家都知道&#xff0c;在设计的初期&#xff0c;我们通常会先绘制草图&#xff0c;然后再进行上色处理&#xff0c;最终才开始进行最终的设计工作。在这个上色的过程中&#xff0c;配色是至关重要的一环。这不仅方便了内部同事的评审&#xff0c;也让产品方和客户可以直观地了…

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。

题目&#xff1a;在CT107D单片机综合训练平台上&#xff0c;8个数码管分别单独依次显示0~9的值&#xff0c;然后所有数码管一起同时显示0~F的值&#xff0c;如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值&#xff0c;如此往…

手动配置IP

手动配置IP&#xff0c;需要考虑四个配置项&#xff1a; 四个配置项 IP地址、子网掩码、默认网关、DNS服务器 IP地址&#xff1a;格式表现为点分十进制&#xff0c;如192.168.254.1 子网掩码&#xff1a;用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的&#…

2025年知识竞赛活动怎样办才有新意

2025年的知识竞赛活动要怎样举办才有新意。首先&#xff0c;我们需要理解用户的需求。他们可能是在策划一个活动&#xff0c;想要区别于传统的知识竞赛&#xff0c;吸引更多人参与&#xff0c;尤其是在2025年这样的未来时间点&#xff0c;科技发展可能更快&#xff0c;所以需要…

Chirpy3D:用于创意 3D 鸟类生成的连续部分潜在特征

Chirpy3D框架可以将细粒度的2D图像理解提升至3D生成的全新境界。当前的3D生成方法往往只关注于重构简单的对象&#xff0c;缺乏细致的特征和创造性。Chirpy3D通过结合多视角扩散模型和连续的部件潜在空间&#xff0c;能够生成全新且合理的3D鸟类模型。该系统不仅能够保持细致的…

【Git】ssh如何配置gitlab+github

当我们工作项目在gitlab上&#xff0c;又希望同时能更新自己个人的github项目时&#xff0c;可能因为隐私问题&#xff0c;不能使用同一′密钥。就需要在本地电脑上分别配置两次ssh。 1、分别创建ssh key 在用户主目录下&#xff0c;查询是否存在“.ssh”文件&#xff1a; 如…

用python获取AH股股票列表并且输出-附源代码

用python 获取在A股和香港上市的公司和在A股和香港上市的公司股票代码和名称 import akshare as akdef get_ah_stocks():# 获取A股股票列表a_stock_list ak.stock_zh_a_spot_em()a_stock_list a_stock_list[["代码", "名称"]]# 获取港股股票列表h_stock…

继承QLineEdit类实现自动补全功能

QlineEdit类本身是没有自动补全功能的&#xff0c;可以使用QCompleter配合实现功能。 但是在开发过程中发现&#xff0c;输入的字符串如果匹配那么QCompleter类会弹窗显示匹配项&#xff0c;如果输入的字符串不匹配则QCompleter类会关闭弹出(这点我也倒是能理解&#xff0c;没有…