【昇騰開發者訓練營:Dify大模型部署實戰】MindIE + Dify + DeepSeek + Embedding模型 + Rerank模型

文章目錄

  • 部署 Dify
    • 1. Dify 適配 ARM
    • 2. 安裝 docker
    • 3. 啟動 Dify
  • MindIE+Dify 實操手冊
    • 1. 基礎環境搭建
      • 1.1 環境檢查
      • 1.2 下載模型權重
      • 1.3 獲取MindIE鏡像
    • 2. 啟動容器
    • 3. 純模型推理測試
      • 3.1 純模型對話測試
      • 3.2 性能測試
    • 4. 服務化部署
      • 4.1 MindIE 配置
      • 4.2 MindIE 服務化
      • 4.3 發起測試請求
    • 5. 接入 Dify
      • 5.1 訪問 Dify
      • 5.2 配置大模型
      • 5.3 創建聊天助手
  • 進階實操
    • 1. 環境部署
      • 1.1 下載模型權重
      • 1.2 獲取鏡像
    • 2. 啟動容器
    • 3. 推理測試
    • 4. 接入 Dify
      • 4.1 配置模型
      • 4.2 創建知識庫
    • 5. 創建聊天助手

本次我負責【昇騰開發者訓練營】的【DeepSeek+Dify大模型推理部署實踐】部分的講解,需要完成PPT、實操手冊、8臺服務器的環境部署~

機器:Atlas800 9000 即昇騰上一代芯片 910A,8卡32G,裸金屬。

可能的卡點:ARM架構上部署Dify、910A上跑MindIE、910A上跑BGE向量模型和重排序模型。

注:本文檔同樣適用于 Atlas800T A2(910B)、Duo卡等設備。

更好的閱讀體驗:點擊傳送門

image-20250523204934168 image-20250523204954253

部署 Dify

1. Dify 適配 ARM

git clone https://github.com/langgenius/dify.git
cd dify
git checkout 0.15.3
cd docker/
cp .env.example .env

1. 修改配置文件

vim docker-compose.yaml
# 在redis的command后添加:
--ignore-warnings ARM64-COW-BUG

image-20250523202730365

2. 修改sandbox版本

將sandbox版本從0.2.10修改為0.2.1。0.2.10版本會出現新增模型失敗的情況,修改后不使用插件式的方式,可以正常添加。

2. 安裝 docker

# 使用下面命令一鍵安裝 docker 和 docker-composesudo yum install -y docker-engine docker-engine-selinux && sudo bash -c 'cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me"]
}
EOF' && sudo systemctl restart docker && sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose

3. 啟動 Dify

cd dify/docker
docker-compose up -d# 停止服務并刪除容器
cd dify/docker
docker-compose down

MindIE+Dify 實操手冊

本文檔以 Atlas 800-9000 服務器和 DeepSeek-R1-Distill-Qwen-32B-W8A8 模型為例,讓開發者快速開始使用MindIE進行大模型推理流程。

MindIE(Mind Inference Engine,昇騰推理引擎)是基于昇騰硬件的運行加速、調試調優、快速遷移部署的高性能AI推理引擎。

1. 基礎環境搭建

注:本次昇騰開發者訓練營提供的服務器基礎環境已配置完畢,本章節可忽略。

1.1 環境檢查

物理機部署場景,需要在物理機安裝NPU驅動固件以及部署Docker,執行如下步驟判斷是否已安裝NPU驅動固件和部署Docker。

執行以下命令查看NPU驅動固件是否安裝。

npu-smi info

image-20250521153440553

1.2 下載模型權重

權重已下載,路徑:/home/aicc/models/DeepSeek-R1-Distill-Qwen-32B-W8A8

1.3 獲取MindIE鏡像

昇騰鏡像倉庫地址:https://www.hiascend.com/developer/ascendhub/detail/af85b724a7e5469ebd7ea13c3439d48f

進入昇騰官方鏡像倉庫,根據設備型號選擇下載對應的MindIE鏡像。該鏡像已具備模型運行所需的基礎環境,包括:CANN、FrameworkPTAdapter、MindIE與ATB Models,可實現模型快速上手推理。

容器內各組件安裝路徑:

組件安裝路徑
CANN/usr/local/Ascend/ascend-toolkit
CANN-NNAL-ATB/usr/local/Ascend/nnal/atb
MindIE/usr/local/Ascend/mindie
ATB Models/usr/local/Ascend/atb-models

image-20250521153010845

2. 啟動容器

鏡像已下載,執行以下命令啟動容器。

本次課程已提供8卡服務器,建議每臺服務器啟動4個容器,小組內自由分配,每個容器可以使用雙卡進行模型推理。

# 注:命令執行前請修改 [容器名稱]
# 啟動容器
docker run -itd --privileged  --name=m2 --net=host \--shm-size 500g \--device=/dev/davinci0  \--device=/dev/davinci1  \--device=/dev/davinci2  \--device=/dev/davinci3  \--device=/dev/davinci4  \--device=/dev/davinci5  \--device=/dev/davinci6  \--device=/dev/davinci7  \--device=/dev/davinci_manager \--device=/dev/hisi_hdc \--device /dev/devmm_svm \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \-v /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \-v /usr/local/sbin:/usr/local/sbin \-v /etc/hccn.conf:/etc/hccn.conf \-v /home/aicc:/home/aicc \swr.cn-central-221.ovaijisuan.com/wh-aicc-fae/mindie:910A-ascend_24.1.rc3-cann_8.0.t63-py_3.10-ubuntu_20.04-aarch64-mindie_1.0.T71.05  \bash# 進入容器
docker exec -it [容器名稱] /bin/bash

參數說明:

參數參數說明
–privileged特權容器,允許容器訪問宿主機的所有設備。
–name設置容器名稱。
–device表示映射的設備,可以掛載一個或者多個設備。需要掛載的設備如下:/dev/davinciX:NPU設備,X是ID號,如:davinci0。
/dev/davinci_manager:davinci相關的管理設備。
/dev/hisi_hdc:hdc相關管理設備。
/dev/devmm_svm:內存管理相關設備。
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro將宿主機目錄“/usr/local/Ascend/driver”掛載到容器,請根據驅動所在實際路徑修改。
-v /usr/local/sbin:/usr/local/sbin:ro將宿主機工具“/usr/local/sbin/”以只讀模式掛載到容器中,請根據實際情況修改。
-v /path-to-weights:/path-to-weights:ro設定權重掛載的路徑,需要根據用戶的情況修改。說明請將權重文件和數據集文件同時放置于該路徑下。

環境檢查:

進入容器后,使用 npu-smi info 檢查NPU驅動固件是否正常掛載。

3. 純模型推理測試

參考文檔

ATB Modelsrun_pa.py腳本用于純模型快速測試,腳本中未增加強校驗,出現異常情況時,會直接拋出異常信息,常用于快速驗證模型的可用性。

3.1 純模型對話測試

例如:使用/home/aicc/models/DeepSeek-R1-Distill-Qwen-32B-W8A8路徑下的權重,使用2卡推理"What's deep learning?""Hello World.",推理時batch size為2。

pip install pandas # 測試前安裝依賴
export ASCEND_RT_VISIBLE_DEVICES=1,2 # 設置使用的卡編號
cd ${ATB_SPEED_HOME_PATH}
torchrun --nproc_per_node 2  \--master_port 20030  \-m examples.run_pa  \--model_path /home/aicc/models/DeepSeek-R1-Distill-Qwen-32B-W8A8  \--input_texts "What's deep learning?" "Hello World."  \--max_batch_size 2# 參數說明
--nproc_per_node 使用的卡數
--input_texts 推理文本或推理文本路徑,多條推理文本間使用空格分割。省略則使用默認值:"What's deep learning?"
--max_batch_size 模型推理最大batch size。

啟動測試

image-20250521173349203

測試成功

image-20250521173450568

3.2 性能測試

安裝依賴

pip install tiktoken  fuzzywuzzy jieba rouge # 測試前安裝依賴

測試腳本

batch=1, 輸入長度256, 輸出長度256用例的2卡并行性能測試命令為:

export ASCEND_RT_VISIBLE_DEVICES=1,2 # 設置使用的卡編號
cd $ATB_SPEED_HOME_PATH/tests/modeltest/
bash run.sh pa_fp16 performance [[256,256]] 1 \
qwen /home/aicc/models/DeepSeek-R1-Distill-Qwen-32B-W8A8 2

耗時結果會顯示在Console中,并保存在./benchmark_result/benchmark.csv文件里。

image-20250522133144671

屏幕截圖 2025-05-22 114527

4. 服務化部署

4.1 MindIE 配置

參考文檔

修改MindIE配置:

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

主要參數

"ipAddress" : "192.168.0.10",  改為本機內網地址
"managementIpAddress" : "192.168.0.10",  改為本機內網地址()
"port" : 1025, 推理端口,請保證端口號無沖突
"managementPort" : 1026, 管理面端口,請保證端口號無沖突
"metricsPort" : 1027, 服務監控指標接口,請保證端口號無沖突
"npuDeviceIds" : [[0,1]], 表示啟用哪幾張卡。對于每個模型實例分配的npuIds
"modelName" : "DeepSeek-R1-Distill-Qwen-32B-W8A8", 模型名稱
"modelWeightPath" : "/home/aicc/models/DeepSeek-R1-Distill-Qwen-32B-W8A8/", 模型權重路徑
"worldSize" : 2, 啟用幾張卡推理。本模型啟用兩卡推理即可

注:小組內多個MindIE服務請保證 port 不同、modelName不同

image-20250521185214880

image-20250521184923787

4.2 MindIE 服務化

首先進入mindie-service目錄:

cd /usr/local/Ascend/mindie/latest/mindie-service
  • 方式一(推薦):使用后臺進程方式啟動服務。后臺進程方式啟動服務后,關閉窗口后進程也會保留。

    nohup ./bin/mindieservice_daemon > output.log 2>&1 &
    

    使用 tail 實時跟蹤日志

    tail -f output.log
    

    打印如下信息說明啟動成功。

    Daemon start success!
    
  • 方式二:直接啟動服務。

    ./bin/mindieservice_daemon
    

    回顯如下則說明啟動成功。

    Daemon start success!
    

4.3 發起測試請求

參考文檔

image-20250521190056832

重開一個窗口,使用以下命令發送請求:

# OpenAI 接口
curl -H "Accept: application/json" -H "Content-type: application/json" \
-X POST -d '{"model": "DeepSeek-R1-Distill-Qwen-32B-W8A8","messages": [{"role": "user","content": "You are a helpful assistant."}],"stream": false,"presence_penalty": 1.03,"frequency_penalty": 1.0,"repetition_penalty": 1.0,"temperature": 0.5,"top_p": 0.95,"top_k": 10,"seed": null,"stop": ["stop1", "stop2"],"stop_token_ids": [2, 13],"include_stop_str_in_output": false,"skip_special_tokens": true,"ignore_eos": false,"max_tokens": 20
}' http://192.168.0.10:1025/v1/chat/completions

image-20250521185820980

5. 接入 Dify

5.1 訪問 Dify

根據 彈性公網IP:Dify端口 訪問本機的Dify前端頁面

用戶名/密碼:atlas@hw.com / 0atlas@hw.com

image-20250521193057237

5.2 配置大模型

  1. 點擊右上角用戶頭像,點擊“設置”
image-20250521193307435
  1. 點擊“模型提供商”,搜索OpenAI-API-compatible,點擊“添加模型”

image-20250521193417055

  1. 添加MindIE模型。

    模型名稱:填寫MindIE配置的modelName

    API endpoint URL:填寫本機內網IP:MindIE配置的port/v1

image-20250521193743499

  1. 新增OpenAI-API-compatible模型

添加過OpenAI-API-compatible模型后,可在彈窗上方看到已添加的模型列,可以點擊“添加模型”繼續添加。添加時請避免模型名稱相同。

image-20250521194346367

5.3 創建聊天助手

  1. 點擊“工作室”、“創建空白應用”

image-20250521194506139

  1. 選擇 “聊天助手”,輸入名稱,點擊 “創建”

image-20250521194559695

  1. 選擇模型

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

  1. 對話測試

輸入內容進行對話測試,接收到響應即為正確。

image-20250521194836351

進階實操

本文檔以 Atlas 800-9000 服務器為例,讓開發者快速開始使用TEI進行文本嵌入(Embedding)和重排序(Reranker)模型推理流程。

TEI(全稱:Text Embeddings Inference)是由Huggingface推出的高性能推理框架,旨在簡化和加速文本嵌入(Embedding)和重排序(Reranker)模型在生產環境中的部署。

TEI支持基于HTTP和gRPC協議的服務接口,能夠高效處理文本嵌入的生成和基于文本相關性的重排序等任務;TEI框架同時也支持多種嵌入模型和重排序模型,并提供了靈活的請求批處理、模型管理和動態調度功能。通過TEI,開發者可以輕松地擴展和優化文本嵌入和重排序服務,以滿足實時應用和批量處理的需求,特別適用于自然語言處理相關的在線推理任務,能夠滿足RAG(全稱:Retrieval-Augmented Generation)、信息檢索 (IR)、自然語言理解 (NLU)、文本分類以及個性化推薦系統等下游應用場景。

原生TEI僅支持GPU硬件環境,且Python后端接口僅支持Embedding模型的embed服務。昇騰實現了基于MindIE Torch與ATB的組圖優化,拓展其Python后端功能、將其適配到昇騰環境。

本次使用以下模型:

模型名說明
BAAI/bge-large-zh-v1.5稠密向量模型
BAAI/bge-m3稠密和稀疏向量模型
BAAI/bge-reranker-large排序模型

1. 環境部署

注:本次昇騰開發者訓練營提供的服務器基礎環境已配置完畢,本章節可忽略。

1.1 下載模型權重

權重已下載,路徑:/home/aicc/bge_model

mkdir /home/aicc/bge_model
pip install modelscopemodelscope download --model  BAAI/bge-large-zh-v1.5 --local_dir /home/aicc/bge_model/bge-large-zh-v1.5
modelscope download --model  BAAI/bge-reranker-large --local_dir /home/aicc/bge_model/bge-reranker-large 
modelscope download --model  BAAI/bge-m3 --local_dir /home/aicc/bge_model/bge-m3

修改模型數據類型

修改每一個模型內部的配置項torch_dtypefloat16Atlas800 9000/300I Duo/300V Pro設備需修改。Atlas 800T A2等設備不用修改。

cd /home/aicc/bge_model
vim bge-reranker-large/config.json
vim bge-large-zh-v1.5/config.json
vim bge-m3/config.json# 修改為:
torch_dtype": "float16",

1.2 獲取鏡像

昇騰鏡像倉庫:https://www.hiascend.com/developer/ascendhub/detail/07a016975cc341f3a5ae131f2b52399d

進入昇騰官方鏡像倉庫,根據設備型號選擇下載對應的TEI鏡像,該鏡像已具備模型運行所需的基礎環境。

image-20250521215709556

因為本次實驗的機器為910A,所以需要根據官方鏡像手動修改或重新構建。本次采用的是華為山東AICC的一位老哥的鏡像,下載方式:docker pull crpi-8ew3ouqcvy9yujug.cn-hangzhou.personal.cr.aliyuncs.com/sxj731533730/mis-tei_atlas_800_9000:v0

2. 啟動容器

注意:

  1. 請修改本機 IP 和 端口,以下命令采用IP為192.168.0.10,端口為9000、9001、9002
  2. 修改推理卡編號:TEI_NPU_DEVICE=0 表示使用0卡推理,請修改為合適的卡號
# 啟動 BAAI/bge-m3  推理容器
docker run -itd  -u root -e ENABLE_BOOST=True --privileged=true \
-e TEI_NPU_DEVICE=0 --name=bge-m3 --net=host \
-v /home/aicc/bge_model:/home/HwHiAiUser/model \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0  \
--device=/dev/davinci1  \
--device=/dev/davinci2  \
--device=/dev/davinci3  \
--device=/dev/davinci4  \
--device=/dev/davinci5  \
--device=/dev/davinci6  \
--device=/dev/davinci7  \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
mis-tei_atlas_800_9000:v0  
# 啟動服務
docker exec -it bge-m3 bash
export HOME=/home/HwHiAiUser
bash start.sh BAAI/bge-m3 192.168.0.10 9000# 啟動 BAAI/bge-large-zh-v1.5  推理容器
docker run -itd  -u root -e ENABLE_BOOST=True --privileged=true \
-e TEI_NPU_DEVICE=0 --name=bge-large-zh-v1.5 --net=host \
-v /home/aicc/bge_model:/home/HwHiAiUser/model \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0  \
--device=/dev/davinci1  \
--device=/dev/davinci2  \
--device=/dev/davinci3  \
--device=/dev/davinci4  \
--device=/dev/davinci5  \
--device=/dev/davinci6  \
--device=/dev/davinci7  \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
mis-tei_atlas_800_9000:v0  
# 啟動服務
docker exec -it bge-large-zh-v1.5 bash
export HOME=/home/HwHiAiUser
bash start.sh BAAI/bge-large-zh-v1.5 192.168.0.10 9001# 啟動 BAAI/bge-reranker-large  推理容器
docker run -itd  -u root -e ENABLE_BOOST=True --privileged=true \
-e TEI_NPU_DEVICE=0 --name=bge-reranker-large --net=host \
-v /home/aicc/bge_model:/home/HwHiAiUser/model \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0  \
--device=/dev/davinci1  \
--device=/dev/davinci2  \
--device=/dev/davinci3  \
--device=/dev/davinci4  \
--device=/dev/davinci5  \
--device=/dev/davinci6  \
--device=/dev/davinci7  \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
mis-tei_atlas_800_9000:v0  
# 啟動服務
docker exec -it bge-reranker-large bash
export HOME=/home/HwHiAiUser
bash start.sh BAAI/bge-reranker-large 192.168.0.10 9002# 對于800TA2、300I Duo設備無需進入容器手動啟動服務。將模型名稱、IP、端口作為容器啟動參數,例如:
docker run -itd  -u root -e ENABLE_BOOST=True --privileged=true \
-e TEI_NPU_DEVICE=0 --name=bge-m3 --net=host \
-v /home/aicc/bge_model:/home/HwHiAiUser/model \-e POOLING=splade \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:7.0.RC1-800I-A2-aarch64   BAAI/bge-m3 127.0.0.1 9000

關鍵參數解釋

  • user: 容器運行用戶,可配置為root或HwHiAiUser,如果不配置默認使用HwHiAiUser,建議以普通用戶HwHiAiUser運行降低容器運行相關安全風險
  • -e ASCEND_VISIBLE_DEVICES: 掛載指定的npu卡到容器中,只有宿主機安裝了Ascend Docker Runtime,此環境變量才會生效,如果未安裝Ascend Docker Runtime,可參考配置如下參數掛載指定的卡到容器
    --device=/dev/davinci_manager \--device=/dev/hisi_hdc \--device=/dev/devmm_svm \--device=/dev/davinci0 \--device=/dev/davinci1 \-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \-v /usr/local/sbin:/usr/local/sbin:ro \
  • -e ENABLE_BOOST: 使能bert、roberta、xml-roberta類模型推理加速
  • model dir: 模型存放的上級目錄,如/home/data,不能配置為/home和/home/HwHiAiUser容器內的掛載目錄/home/HwHiAiUser/model不可更改
  • image id:從ascendhub網上拉取鏡像后的鏡像ID
  • model id:從modelscope上獲取的模型ID:例如:BAAI/bge-base-zh-v1.5, BAAI/bge-reranker-large等,如需運行時下載模型,請確保網絡可訪問modelscope網站
  • listen ip:TEI服務的監聽IP,例如:127.0.0.1
  • listen port:TEI服務的監聽端口,例如:8080
  • 稀疏向量模型添加(本次實踐無需添加): -e POOLING=splade,請求接口采用embed_sparse

3. 推理測試

使用以下命令進行推理測試:

curl 192.168.0.10:9000/embed \-X POST \-d '{"inputs":"What is Deep Learning?"}' \-H 'Content-Type: application/json'curl 192.168.0.10:9001/embed \-X POST \-d '{"inputs":"I like you."}' \-H 'Content-Type: application/json'curl 192.168.0.10:9002/rerank \-X POST \-d '{"query":"What is Deep Learning?", "texts": ["Deep Learning is not...", "Deep learning is..."]}' \-H 'Content-Type: application/json'

本鏡像接口規范(符合TEI):
image-20250521220658643

4. 接入 Dify

4.1 配置模型

在“模型供應商”中查詢Text Embedding Inference,依次添加以下參數:

API Key 需要填寫,隨意填寫即可。

模型名稱服務器URLAPI Key
bge-m3http://192.168.0.10:90001
bge-large-zh-v1.5http://192.168.0.10:90011
bge-reranker-largehttp://192.168.0.10:90021

image-20250522145103572

image-20250522145816708

4.2 創建知識庫

  1. 點擊“知識庫”,點擊“創建知識庫”

image-20250522145857215

  1. 從本地選擇一個文件導入:

選擇文件后,點擊“下一步”

image-20250522145956225

  1. 配置分段:使用默認配置無需修改

保證Embedding模型和Rerank模型設置正確,下滑到底部點擊“保存并處理”

image-20250522150127643

點擊“前往文檔”

image-20250522150227229

  1. 可查看處理后的文件狀態

image-20250522150301195

5. 創建聊天助手

  1. 點擊 “創建”點擊“工作室”、“創建空白應用”
  2. 選擇 “聊天助手”,輸入名稱,

image-20250522150417770

  1. 點擊添加上下文

image-20250522150526779

  1. 選擇處理好的知識庫

image-20250522150547478

  1. 提問

image-20250522150650686

回答正確:
image-20250522150801672

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81926.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81926.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81926.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

塔能高溫冰蓄冷技術:工廠能耗精準節能的創新之路

在工廠的能耗構成中&#xff0c;制冷系統是重要的耗能環節。傳統的水蓄冷和冰蓄冷技術在實際應用中存在一些局限性&#xff0c;難以滿足工廠對節能和成本控制的更高要求。塔能科技的高溫冰蓄冷技術&#xff0c;憑借其獨特的優勢&#xff0c;為工廠能耗精準節能提供了創新的解決…

通過現代數學語言重構《道德經》核心概念體系,形成一個兼具形式化與啟發性的理論框架

以下是對《道德經》的數學轉述嘗試&#xff0c;通過現代數學語言重構其核心概念&#xff0c;形成一個兼具形式化與啟發性的理論框架&#xff1a; 0. 基礎公理體系 定義&#xff1a; 《道德經》是一個動態宇宙模型 U(D,V,Φ)&#xff0c;其中&#xff1a; D 為“道”的無限維…

SQLMesh Typed Macros:讓SQL宏更強大、更安全、更易維護

在SQL開發中&#xff0c;宏&#xff08;Macros&#xff09;是一種強大的工具&#xff0c;可以封裝重復邏輯&#xff0c;提高代碼復用性。然而&#xff0c;傳統的SQL宏往往缺乏類型安全&#xff0c;容易導致運行時錯誤&#xff0c;且難以維護。SQLMesh 引入了 Typed Macros&…

5月23日day34打卡

GPU訓練及類的call方法 知識點回歸&#xff1a; CPU性能的查看&#xff1a;看架構代際、核心數、線程數GPU性能的查看&#xff1a;看顯存、看級別、看架構代際GPU訓練的方法&#xff1a;數據和模型移動到GPU device上類的call方法&#xff1a;為什么定義前向傳播時可以直接寫作…

集群、容器云與裸金屬服務器的全面對比分析

文章目錄 引言 集群 2.1 定義 2.2 特點 2.3 應用場景 容器云 3.1 定義 3.2 核心功能 3.3 應用場景 裸金屬 4.1 定義 4.2 特點 4.3 應用場景 三者的區別 5.1 架構與性能 5.2 管理與運維 5.3 成本與靈活性 總結 1. 引言 在云計算和數據中心領域&#xff0c;50…

Vscode +Keil Assistant編譯報錯處理

Vscode Keil Assistant編譯報錯處理 1.報錯圖片內容 所在位置 行:1 字符: 25 chcp.com 65001 -Command & c:\Users\92170.vscode\extensions\cl.keil-a … ~ 不允許使用與號(&)。& 運算符是為將來使用而保留的&#xff1b;請用雙引號將與號引起來(“&”)&…

Java實現中文金額轉換

概述 話不多說&#xff0c;直接上代碼 代碼 /*** Author: hweiyu* Description: TODO* Date: 2025/5/23 11:33*/ import java.math.BigDecimal; import java.util.Scanner;public class AmountToChinese {// 中文數字字符private static final String[] NUMBERS {"零&…

Oracle 的 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH 命令

Oracle 的ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH 命令 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH 是 Oracle Data Guard 環境中用于停止恢復過程并準備備用數據庫切換為主庫的關鍵命令。 命令用途 該命令主要用于以下場景&#xff1a; 故…

Java 依賴管理工具:使用 Sonatype Nexus 管理項目依賴

Java 依賴管理工具&#xff1a;使用 Sonatype Nexus 管理項目依賴 在 Java 開發領域&#xff0c;依賴管理是項目構建和維護過程中的關鍵環節。Sonatype Nexus 作為一個功能強大的依賴管理工具&#xff0c;能夠有效地幫助我們管理項目的各種依賴&#xff0c;提高開發效率并降低…

編譯原理 期末速成

一、基本概念 1. 翻譯程序 vs 編譯程序 翻譯程序的三種方式 編譯&#xff1a;將高級語言編寫的源程序翻譯成等價的機器語言或匯編語言。&#xff08;生成文件&#xff0c;等價&#xff09;解釋&#xff1a;將高級語言編寫的源程序翻譯一句執行一句&#xff0c;不生成目標文件…

Pysnmp使用指南

1. 簡介 pysnmp 是一個純 Python 實現的 SNMP&#xff08;Simple Network Management Protocol&#xff09;庫&#xff0c;支持 SNMPv1、SNMPv2c 和 SNMPv3 協議。用于&#xff1a; 查詢&#xff08;GET&#xff09;和修改&#xff08;SET&#xff09;網絡設備的管理信息。遍…

SHELL編程簡介

1.腳本格式&#xff1a; 聲明位于shell腳本的行首&#xff0c;通常形式如下&#xff1a; #!/bin/sh#!/bin/bash 其中#表示注釋&#xff0c;!聲明所使用的shell&#xff0c;后面為所使用shell的絕對路徑。 2.常用函數 echo&#xff1a;shell輸出語句&#xff0c;可不接參數…

Django 中的 ORM 基礎語法

深入剖析 Django 中的 ORM 語法&#xff1a;從基礎到實戰進階 在 Django 開發領域&#xff0c;ORM&#xff08;對象關系映射&#xff09;是開發者高效操作數據庫的得力工具。它以簡潔直觀的 Python 代碼&#xff0c;替代繁瑣的 SQL 語句&#xff0c;極大提升了開發效率。本文將…

A10服務器使用vllm推理框架成功運行Qwen3大模型

1.下載Qwen3大模型&#xff1a; git clone https://www.modelscope.cn/Qwen/Qwen3-1.7B.git放在服務器的/mnt/workspace/Qwen3-1.7B目錄下。 2.創建python虛擬環境&#xff1a; python3 -m venv venv1 source venv1/bin/activate3.安裝vllm推理框架 pip install vllm 4.啟動…

Disruptor—1.原理和使用簡介

大綱 1.Disruptor簡介 2.Disruptor和BlockingQueue的壓測對比 3.Disruptor的編程模型 4.Disruptor的數據結構與生產消費模型 5.RingBuffer Disruptor Sequence相關類 6.Disruptor的WaitStrategy消費者等待策略 7.EventProcessor EventHandler等類 8.Disruptor的運行…

谷歌瀏覽器調試python pygui程序

谷歌瀏覽器地址:chrome://inspect/#devices 前端vue為8080, 配置如下 pychat 需要配置環境變量 PYTHONUNBUFFERED1;QTWEBENGINE_REMOTE_DEBUGGING9012

手寫Tomcat(二)—Tomcat簡化模型架構

一、 Tomcat架構 Tomcat的主要角色是 servlet容器&#xff0c;提供一個解釋器&#xff0c;能夠解析并執行JavaScript Object Notation (JON)腳本&#xff08;后更改為Servlet&#xff09;&#xff0c;并將請求傳送到指定的服務器&#xff08;如JavaBean&#xff09;。因此&…

Android 網絡全棧攻略(五)—— 從 OkHttp 攔截器來看 HTTP 協議二

上一篇我們介紹了 OkHttp 的責任鏈以及第一個內置攔截器 —— 重試與重定向攔截器。本篇我們將剩余四個攔截器的解析做完。 1、橋接攔截器 BridgeInterceptor 作為請求準備和實際發送之間的橋梁&#xff0c;自動處理 HTTP 請求頭等繁瑣工作。比如設置請求內容長度&#xff0c…

JDBC-java操作數據庫

1.基本結構&#xff1a; package com.atguigu.servlets;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;public class JDBCemo {public static void main(String[] args) throws Exception{String url "jdbc:mysql:///mysql&qu…

七彩喜適老化改造:讓每個空間成為長者尊嚴的守護者

隨著我國老齡化進程的加速&#xff0c;居家養老逐漸成為老年人首選的生活方式。 為了讓老年人能夠在熟悉的環境中安享晚年&#xff0c;適老化改造應運而生。 七彩喜作為居家養老服務的創新者&#xff0c;致力于通過科學設計和人性化改造&#xff0c;為老年人提供安全、舒適、…