DeepSpeed

在這里插入圖片描述

文章目錄

    • 一、關于 DeepSpeed
      • 1、DeepSpeed 是什么
      • 2、深度學習訓練和推理的極致速度和規模
      • 3、DeepSpeed 的四大創新支柱
        • 1)DeepSpeed 訓練
        • 2)DeepSpeed 推理
        • 3)DeepSpeed 壓縮
        • 4)DeepSpeed4Science
      • 4、DeepSpeed 軟件套件
        • DeepSpeed 庫
        • 推理模型實現 (MII)
        • Azure 上的 DeepSpeed
      • 5、DeepSpeed Adoption
      • 6、構建管道狀態
    • 二、安裝
      • 要求
      • 貢獻的硬件支持
      • PyPI
      • Windows
      • 特征
    • 三、編寫 DeepSpeed 模型
      • 訓練
      • 模型檢查點
      • DeepSpeed 配置
    • 四、啟動 DeepSpeed 訓練
      • 資源配置(多節點)
      • 多節點環境變量
        • MPI 和 AzureML 兼容性
      • 資源配置(單節點)


一、關于 DeepSpeed

1、DeepSpeed 是什么

DeepSpeed is a deep learning optimization library that makes distributed training and inference easy, efficient, and effective.

  • 官網:https://www.deepspeed.ai
    https://www.microsoft.com/en-us/research/project/deepspeed/
  • github : https://github.com/microsoft/DeepSpeed
  • 入門 : https://www.deepspeed.ai/getting-started/ 使用 DeepSpeed 的第一步
  • DeepSpeed JSON 配置 : https://www.deepspeed.ai/docs/config-json/
  • API文檔 : https://deepspeed.readthedocs.io/en/latest/ 生成的 DeepSpeed API 文檔
  • 教程 : https://www.deepspeed.ai/tutorials/
  • 博客 : https://www.deepspeed.ai/posts/

教程

  • Deepspeed大模型分布式框架精講
    https://www.bilibili.com/video/BV1mc411y7jW/


2、深度學習訓練和推理的極致速度和規模

DeepSpeed 支持世界上最強大的語言模型,例如MT-530B和BLOOM 。

它是一款易于使用的深度學習優化軟件套件,可為訓練和推理提供前所未有的規模和速度。借助 DeepSpeed,您可以:

  • 訓練/推理 具有數十億或數萬億參數的密集或稀疏模型
  • 實現出色的系統吞吐量 并 有效擴展到數千個 GPU
  • 在資源受限的 GPU 系統上進行 訓練/推理
  • 實現前所未有的低延遲和高吞吐量的推理
  • 以低成本實現極限壓縮,實現無與倫比的推理延遲和模型尺寸減小

3、DeepSpeed 的四大創新支柱


1)DeepSpeed 訓練

DeepSpeed 提供了系統創新的融合,使大規模深度學習訓練變得有效、高效,大大提高了易用性,并在可能的規模方面重新定義了深度學習訓練格局。

ZeRO、3D-Parallelism、DeepSpeed-MoE、ZeRO-Infinity 等創新屬于訓練支柱。了解更多:DeepSpeed 訓練


2)DeepSpeed 推理

DeepSpeed 匯集了張量、管道、專家和零并行等并行技術的創新,并將它們與高性能定制推理內核、通信優化和異構內存技術相結合,以前所未有的規模實現推理,同時實現無與倫比的延遲、吞吐量和性能。

降低成本。這種推理系統技術的系統組合屬于推理支柱。了解更多:DeepSpeed-推理


3)DeepSpeed 壓縮

為了進一步提高推理效率,DeepSpeed 為研究人員和從業人員提供易于使用且組合靈活的壓縮技術 來壓縮他們的模型,同時提供更快的速度、更小的模型大小并顯著降低的壓縮成本。

此外,ZeroQuant 和 XTC 等 SoTA 在壓縮方面的創新也包含在壓縮支柱下。了解更多:DeepSpeed 壓縮


4)DeepSpeed4Science

秉承微軟解決人類最緊迫挑戰的使命,微軟 DeepSpeed 團隊響應這一機遇,推出了一項名為DeepSpeed4Science的新計劃,旨在通過人工智能系統技術創新構建獨特的能力,幫助領域專家解開當今最大的科學謎團。 了解更多信息:DeepSpeed4Science 網站和教程



4、DeepSpeed 軟件套件


DeepSpeed 庫

https://github.com/microsoft/DeepSpeed

DeepSpeed庫實現并將 DeepSpeed 訓練、推理和壓縮支柱中的創新和技術打包到一個易于使用的開源存儲庫中。

它允許在單個訓練、推理或壓縮管道中輕松組合多個特征。

DeepSpeed 庫被 DL 社區廣泛采用,并已用于啟用一些最強大的模型(請參閱DeepSpeed 采用)。


推理模型實現 (MII)

推理模型實現 (MII) 是一個開源存儲庫,通過減輕應用復雜系統優化技術本身的需要,使所有數據科學家都可以進行低延遲和高吞吐量的推理。

MII 開箱即用,支持數千種廣泛使用的深度學習模型,并使用 DeepSpeed-Inference 進行優化,只需幾行代碼即可部署,同時與普通開源版本相比,延遲顯著降低。


Azure 上的 DeepSpeed

DeepSpeed 用戶多種多樣,可以訪問不同的環境。我們建議嘗試 Azure 上的 DeepSpeed,因為這是最簡單、最容易的方法。

在 Azure 上嘗試 DeepSpeed 的推薦方法是通過 AzureML recipes。

作業提交和數據準備腳本已在此處提供。有關如何在 Azure 上使用 DeepSpeed 的更多詳細信息,請遵循Azure 教程。



5、DeepSpeed Adoption

DeepSpeed 是 Microsoft 新的 大規模 AI 計劃的重要組成部分,該計劃旨在大規模實現下一代 AI 功能,您可以在此處找到更多信息。

DeepSpeed 已被用于訓練許多不同的大型模型,下面列出了我們所知道的幾個示例(如果您想包含您的模型,請提交 PR):

  • Megatron-Turing NLG (530B)
  • Jurassic-1 (178B)
  • BLOOM (176B)
  • GLM (130B)
  • xTrimoPGLM (100B)
  • YaLM (100B)
  • GPT-NeoX (20B)
  • AlexaTM (20B)
  • Turing NLG (17B)
  • METRO-LM (5.4B)

DeepSpeed 已與多種不同的流行開源深度學習框架集成,例如:

文檔
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳Transformers with DeepSpeed
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳使用 DeepSpeed 加速
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳Lightning with DeepSpeed
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳MosaicML with DeepSpeed
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳Determined with DeepSpeed
外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳MMEngine with DeepSpeed


6、構建管道狀態

DescriptionStatus
NVIDIA外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
AMD外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
CPU外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
Intel Gaudi外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
Intel XPU外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
PyTorch Nightly外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
Integrations外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳
Misc外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳 外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

二、安裝

開始使用 DeepSpeed 的最快方法是通過 pip,這將安裝最新版本的 DeepSpeed,該版本不依賴于特定的 PyTorch 或 CUDA 版本。

DeepSpeed 包含多個 C++/CUDA 擴展,我們通常將其稱為 ops

默認情況下,所有這些 extensions/ops 都將使用 torch 的 JIT C++ 擴展加載器即時構建(JIT),該加載器依賴 ninja在運行時構建和動態鏈接它們。


要求

  • 在安裝 DeepSpeed之前必須安裝PyTorch 。
  • 為了獲得完整的功能支持,我們建議使用 >= 1.9 的 PyTorch 版本,最好是最新的 PyTorch 穩定版本。
  • CUDA 或 ROCm 編譯器,例如nvcc或hipcc,用于編譯 C++/CUDA/HIP 擴展。
  • 下面列出了我們開發和測試的特定 GPU,這并不意味著您的 GPU 如果不屬于此類別就無法工作,只是 DeepSpeed 在以下方面進行了最充分的測試:
    • NVIDIA:Pascal、Volta、Ampere 和 Hopper 架構
    • AMD:MI100 和 MI200

貢獻的硬件支持

  • DeepSpeed 現在支持各種硬件加速器。
貢獻者硬件加速器名稱貢獻者已驗證上游驗證
華為華為升騰NPU西北大學是的
英特爾英特爾? Gaudi? 2 人工智能加速器高壓泵是的是的
英特爾英特爾? 至強? 處理器中央處理器是的是的
英特爾英特爾? 數據中心 GPU Max 系列xpu是的是的

PyPI

我們定期將版本推送到PyPI,并鼓勵用戶在大多數情況下從那里安裝。

pip install deepspeed

安裝后,您可以驗證安裝并通過 DeepSpeed 環境報告查看您的計算機與哪些擴展/操作兼容。

ds_report

如果您想預安裝任何 DeepSpeed 擴展/操作(而不是 JIT 編譯)或通過 PyPI 安裝預編譯操作,請參閱我們的高級安裝說明。


Windows

DeepSpeed 部分支持 Windows 支持。在 Windows 上,您可以通過以下步驟構建輪子,目前僅支持推理模式。

  1. 安裝pytorch,如pytorch 1.8 + cuda 11.1
  2. 安裝Visual cpp構建工具,例如VS2019 C++ x64/x86構建工具
  3. 使用管理員權限啟動 cmd 控制臺以創建所需的符號鏈接文件夾
  4. 運行以在文件夾python setup.py bdist_wheel中構建輪子dist

特征

請查看DeepSpeed-Training、DeepSpeed-Inference和DeepSpeed- Compression頁面,了解這三個支柱提供的全套功能。


三、編寫 DeepSpeed 模型

翻譯自:https://www.deepspeed.ai/getting-started/ (最后更新于 2024-05-14)

DeepSpeed 模型訓練是使用 DeepSpeed 引擎完成的。
該引擎可以包裝任何類型的任意模型torch.nn.module,并具有用于訓練和檢查模型的最小 API 集。請參閱教程以獲取詳細示例。


初始化 DeepSpeed 引擎:

model_engine, optimizer, _, _ = deepspeed.initialize(args=cmd_args,model=model, model_parameters=params)

deepspeed.initialize確保分布式數據并行 或 混合精度訓練 所需的所有必要設置 都在幕后適當完成。
除了包裝模型之外,DeepSpeed 還可以根據傳遞給 deepspeed.initialize 和 DeepSpeed 配置文件 的參數構建和管理訓練優化器、數據加載器和學習率調度器。
請注意,DeepSpeed 在每個訓練步驟中自動執行學習率計劃。


如果您已經有分布式環境設置,則需要替換:

torch.distributed.init_process_group(...)

為:

deepspeed.init_distributed()

默認情況下是使用 NCCL 后端,DeepSpeed 已對其進行了全面測試,但您也可以覆蓋默認值。

但如果您在 deepspeed.initialize() 之前不需要 分布式環境設置,則不必使用此功能,因為 DeepSpeed 會在其initialize 后自動初始化分布式環境。
無論如何,你需要刪除 torch.distributed.init_process_group,如果您已經安裝了它。


訓練

DeepSpeed 引擎初始化后,就可以使用三個簡單的 API 來訓練模型,分別用于前向傳播(可調用對象)、后向傳播 ( backward) 和權重更新 ( step)。


for step, batch in enumerate(data_loader):#forward() methodloss = model_engine(batch)#runs backpropagationmodel_engine.backward(loss)#weight updatemodel_engine.step()

在底層,DeepSpeed 使用預定義的學習率調度程序以混合精度自動執行分布式數據并行訓練所需的必要操作:

  • 梯度平均:在分布式數據并行訓練中,backward 確保在train_batch_size 訓練后,在數據并行過程中 對梯度進行平均。
  • 損失縮放:在 FP16/混合精度訓練中,DeepSpeed 引擎自動處理損失縮放以避免梯度中的精度損失。
  • 學習率調度程序:當使用 DeepSpeed 的學習率調度程序(在文件中指定ds_config.json)時,DeepSpeedstep()在每個訓練步驟(model_engine.step()執行時)調用調度程序的方法。不使用 DeepSpeed 的學習率調度程序時:
    • 如果計劃應該在每個訓練步驟執行,則用戶可以 在初始化 DeepSpeed 引擎時將計劃程序傳遞給 deepspeed.initialize ,并讓 DeepSpeed 管理它以進行更新或保存/恢復。
    • 如果計劃應該以任何其他間隔(例如,訓練時期)執行,則用戶不應在初始化期間將計劃程序傳遞給 DeepSpeed,并且必須顯式管理它。

模型檢查點

保存和加載訓練狀態是通過 DeepSpeed 中的save_checkpointload_checkpoint API 處理的,采用兩個參數來唯一標識檢查點:

  • ckpt_dir:保存檢查點的目錄。
  • ckpt_id:唯一標識目錄中檢查點的標識符。

在下面的代碼片段中,我們使用損失值作為檢查點標識符。


# load checkpoint
_, client_sd = model_engine.load_checkpoint(args.load_dir, args.ckpt_id)
step = client_sd['step']# advance data loader to ckpt step
dataloader_to_step(data_loader, step + 1)for step, batch in enumerate(data_loader):#forward() methodloss = model_engine(batch)#runs backpropagationmodel_engine.backward(loss)#weight updatemodel_engine.step()#save checkpointif step % args.save_interval:client_sd['step'] = stepckpt_id = loss.item()model_engine.save_checkpoint(args.save_dir, ckpt_id, client_sd = client_sd)

DeepSpeed 可以自動保存和恢復模型、優化器和學習率調度器狀態,同時向用戶隱藏這些詳細信息。
但是,用戶可能希望保存給定模型訓練所獨有的附加數據。為了支持這些項目,
save_checkpoint 接受客戶端狀態字典client_sd進行保存。
這些項目可以load_checkpoint作為返回參數來檢索。
在上面的示例中,該step值存儲為client_sd.

重要提示:所有進程都必須調用此方法,而不僅僅是排名為 0 的進程。
這是因為每個進程都需要保存其主權重和調度程序+優化器狀態。
如果僅針對排名為 0 的進程調用此方法,則該方法將掛起等待與其他進程同步。


DeepSpeed 配置

可以使用應指定為 .json 的配置 JSON 文件來啟用、禁用或配置 DeepSpeed 功能args.deepspeed_config
下面顯示了示例配置文件。有關完整的功能集,請參閱API 文檔。


{"train_batch_size": 8,"gradient_accumulation_steps": 1,"optimizer": {"type": "Adam","params": {"lr": 0.00015}},"fp16": {"enabled": true},"zero_optimization": true
}

四、啟動 DeepSpeed 訓練

deepspeedDeepSpeed 安裝啟動分布式訓練的入口點。我們通過以下假設來說明 DeepSpeed 的示例用法:

  1. 您已經將 DeepSpeed 集成到您的模型中
  2. client_entry.py是您模型的入口腳本
  3. client argsargparse命令行參數
  4. ds_config.json是 DeepSpeed 的配置文件

資源配置(多節點)

DeepSpeed 使用與OpenMPI和Horovod兼容的主機文件配置多節點計算資源 。

主機文件是主機名(或 SSH 別名)(可通過無密碼 SSH 訪問的計算機)和插槽計數(指定系統上可用的 GPU 數量)的列表。例如,


worker-1 slots=4
worker-2 slots=4

指定名為worker-1worker-2的兩臺機器各有四個GPU用于訓練。

主機文件是使用--hostfile命令行選項指定的。如果未指定主機文件,DeepSpeed 將搜索/job/hostfile.如果未指定或未找到主機文件,DeepSpeed 會查詢本地計算機上的 GPU 數量以發現可用的本地插槽數量。

以下命令在 中指定的所有可用節點和 GPU 上啟動 PyTorch 訓練作業myhostfile

deepspeed --hostfile=myhostfile <client_entry.py> <client args> \--deepspeed --deepspeed_config ds_config.json

或者,DeepSpeed 允許您將模型的分布式訓練限制為可用節點和 GPU 的子集。此功能通過兩個命令行參數啟用:--num_nodes--num_gpus。例如,可以使用以下命令將分布式訓練限制為僅使用兩個節點:


deepspeed --num_nodes=2 \<client_entry.py> <client args> \--deepspeed --deepspeed_config ds_config.json

--include您可以使用和 --exclude 標志來包含或排除特定資源。

例如,要使用節點 worker-2上 除 GPU 0 之外的所有可用資源以及 worker-3 上的GPU 0和1 :

deepspeed --exclude="worker-2:0@worker-3:0,1" \<client_entry.py> <client args> \--deepspeed --deepspeed_config ds_config.json

同樣,您只能在 worker-2 上使用GPU 0和1 :

deepspeed --include="worker-2:0,1" \<client_entry.py> <client args> \--deepspeed --deepspeed_config ds_config.json

多節點環境變量

當跨多個節點進行訓練時,我們發現支持傳播用戶定義的環境變量很有用。

默認情況下,DeepSpeed 將傳播設置的所有 NCCL 和 PYTHON 相關環境變量。

如果您想傳播其他變量,您可以在名為的點文件中指定它們,.deepspeed_env該文件包含換行符分隔的條目列表 VAR=VAL

DeepSpeed 啟動器將查找您正在執行的本地路徑以及您的主目錄 ( ~/)。

如果您想用自己的文件或路徑和名稱覆蓋該文件的默認名稱,則可以使用環境變量DS_ENV_FILE.如果您要啟動多個需要不同變量的作業,這非常有用。

作為一個具體示例,某些集群需要在訓練之前設置特殊的 NCCL 變量。用戶可以簡單地將這些變量添加到 .deepspeed_env其主目錄中的文件中,如下所示:


NCCL_IB_DISABLE=1
NCCL_SOCKET_IFNAME=eth0

然后,DeepSpeed 將確保在訓練作業中的每個節點上啟動每個進程時設置這些環境變量。


MPI 和 AzureML 兼容性

如上所述,DeepSpeed 提供了自己的并行啟動器來幫助啟動多節點/多 GPU 訓練作業。如果您更愿意使用 MPI(例如 mpirun)啟動訓練作業,我們會為此提供支持。應該注意的是,DeepSpeed 仍將使用 torch 分布式 NCCL 后端,而不是MPI 后端。

要使用 mpirun + DeepSpeed 或 AzureML(使用 mpirun 作為啟動器后端)啟動訓練作業,您只需安裝 mpi4py python 包。 DeepSpeed 將使用它來發現 MPI 環境并將必要的狀態(例如,世界大小、等級)傳遞到火炬分布式后端。

如果您使用模型并行性、管道并行性,或者在調用之前需要 torch.distributed 調用,deepspeed.initialize(..)我們會通過額外的 DeepSpeed API 調用提供相同的 MPI 支持。將您的初始 torch.distributed.init_process_group(..)呼叫替換為:


deepspeed.init_distributed()

資源配置(單節點)

如果我們僅在單個節點(具有一個或多個 GPU)上運行,則 DeepSpeed不需要如上所述的主機文件。如果未檢測到或未傳入主機文件,則 DeepSpeed 將查詢本地計算機上的 GPU 數量,以發現可用插槽的數量。和--include參數 --exclude正常工作,但用戶應指定“localhost”作為主機名。

另請注意,CUDA_VISIBLE_DEVICES不能與 DeepSpeed 一起使用來控制應使用哪些設備。例如,要僅使用當前節點的 gpu1,請執行以下操作:


deepspeed --include localhost:1 ...

2024-05-15(三)

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

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

相關文章

React 第二十七章 Hook useCallback

useCallback 是 React 提供的一個 Hook 函數&#xff0c;用于優化性能。它的作用是返回一個記憶化的函數&#xff0c;當依賴發生變化時&#xff0c;才會重新創建并返回新的函數。 在 React 中&#xff0c;當一個組件重新渲染時&#xff0c;所有的函數都會被重新創建。這可能會…

青少年軟件編程(Python)等級考試試卷(五級)2024年3月

2024.03 電子學會 青少年軟件編程&#xff08;Python&#xff09;等級考試試卷&#xff08;五級&#xff09; 一、單選題 1.以下代碼的輸出結果是? ) nums list(range(100, 201)) print(nums[::10]) A.[100,110,120,130,140,150,160,170,180,190,200] B.[100,101,1…

QML筆記八

QML與C交互 QML中調用C功能、使用QML或者Quick中的C接口、使用C實現自定義的QML對象 注&#xff1a; 只有QObject的派生類才能與QML交互 QML引擎集成Qt元對象系統&#xff0c;QObject的派生子類的屬性、方法、信號都可以在QML中訪問 C類可以被注冊為一個QML實例 C類可以被注冊為…

【Web后端】請求頭

1、簡介 請求頭&#xff08;Request Headers&#xff09;是在HTTP協議中&#xff0c;客戶端&#xff08;如瀏覽器或應用程序&#xff09;向服務器發送請求時附帶的元數據。包含了關于請求的額外信息&#xff0c;有助于客戶端與服務器之間的有效通信。請求頭中的信息可以讓服務…

.[sqlback@memeware.net].2700勒索病毒數據怎么處理|數據解密恢復

導言&#xff1a; 隨著信息技術的飛速發展&#xff0c;網絡安全問題愈發嚴峻&#xff0c;其中勒索病毒成為了企業和個人用戶面臨的重要威脅之一。.[sqlbackmemeware.net].2700勒索病毒作為其中的佼佼者&#xff0c;以其獨特的攻擊方式和強大的破壞力&#xff0c;引起了廣泛關注…

【Go語言入門學習筆記】Part1.夢開始的地方

一、前言 經過一系列的學習&#xff0c;終于有時間來學習一些新的語言&#xff0c;Go語言在現在還是比較時髦的&#xff0c;多一個技能總比不多的好&#xff0c;故有時間來學一下。 二、配置環境 按照網絡中已有的配置方法配置好&#xff0c;本人采用了Jetbrain的Goland&#…

DTC 2024回顧丨zData X 多元數據庫一體機:開創多元數據庫時代部署新范式

導語 在2024“數據技術嘉年華”上&#xff0c;云和恩墨數據庫一體機產品總經理劉宇在“數據庫極致特性”專題論壇發表了題為《打造多元數據庫部署新范式&#xff0c;引領一體化資源池創新之路》的演講。他深入分析了國產數據庫面臨的挑戰&#xff0c;并詳細介紹了云和恩墨如何利…

5.10.1 Pre-Trained Image Processing Transformer

研究了低級計算機視覺任務&#xff08;例如去噪、超分辨率和去雨&#xff09;并開發了一種新的預訓練模型&#xff0c;即圖像處理變壓器&#xff08;IPT&#xff09;。利用著名的 ImageNet 基準來生成大量損壞的圖像對。 IPT 模型是在這些具有多頭和多尾的圖像上進行訓練的。此…

Megatron-lm、DeepSpeed

1、為了訓練更多的數據、更大的模型&#xff0c;提出了并行訓練框架。 2、并行的方式&#xff1a;數據并行、模型并行&#xff08;張量并行、流水線并行&#xff09;。 3、Megatron-LM 綜合應用了數據并行&#xff08;Data Parallelism&#xff09;&#xff0c;張量并行&…

內網安全工具之ADExplorer的使用

ADExplorer是域內一款信息查詢工具&#xff0c;它是獨立的可執行文件&#xff0c;無需安裝。它能夠列出域組織架構、用戶賬號、計算機賬號登&#xff0c;可以幫助尋找特權用戶和數據庫服務器等敏感目標。 下載地址&#xff1a;http://live.sysinternals.com/ 連接 下載了ADE…

第十四屆藍橋杯大賽軟件賽國賽C/C++ 大學 B 組 拼數字

//bfs只能過40%。 #include<bits/stdc.h> using namespace std; #define int long long int a,b,c,dp[2028]; struct s {int x,y,z;string m; }; map<vector<int>,int>k; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a…

Java入門基礎學習筆記24——While循環和do-while循環

1、While循環&#xff1a; 例1&#xff1a; package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// 目標&#xff1a;掌握while循環的書寫格式&#xff0c;以及理解其執行流程// 需求&#xff1a;打印多行Hello Worldint i 0;while…

EFCore_創建項目

添加依賴 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools(Migration工具) 根據使用的DB添加對應依賴&#xff1a; SQL Server&#xff1a;Microsoft.EntityFrameworkCore.SqlServer 添加該依賴時可不添加Microsoft.EntityFrameworkCore&#xff0c;該依…

電工能混到這份上

最近看到某電工師傅發了一篇帖子&#xff0c;大致內容是他在處理一個簡單故障的時候居然花了很長的時間。我們一起來看看他遇到的是什么故障吧! plc 控制的一臺設備&#xff0c;行走部分靠 2 個腳踏開關控制&#xff08;內部開關量控制方向&#xff0c;電位器控制速度&#xff…

Java:使用BigDecimal、NumberFormat和DecimalFormat保留小數

一、代碼和調試結果 1.1 BigDecimal ![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/fa36749de8124266a730817710fdf737.png) 1.2 DecimalFormat 1.3 NumberFormat 二、原代碼 BigDecimalUtil.java 代碼 package utils;import java.math.BigDecimal; import jav…

前端模塊導入導出方式

不同的導出方式和相應的導入方式&#xff0c;可以提煉成 3 種類型&#xff1a;name、default 和 list。 以下是使用示例&#xff1a; // Name Export | Name Import // 一個“命名”的導出 export const name value import { name } from ...? 錯誤示例&#xff1a; export…

Linux平臺和Windows平臺互傳文件

rz和sz的出發對象都是從Linux出發的&#xff0c;例如sz發送&#xff08;Send&#xff09;從Linux->發送到Windows。 rz 從Windows文件發送到Linux中 先創立一個新文本文件 之后將hello Windows輸入到該文本文件中 在顯示器上顯示里面是否有hello Windows內容 sz發送Lin…

Flutter 中的 PageStorage 小部件:全面指南

Flutter 中的 PageStorage 小部件&#xff1a;全面指南 在Flutter中&#xff0c;PageStorage小部件提供了一種方法來保存和恢復頁面間的信息&#xff0c;這對于具有多個頁面且需要在這些頁面之間共享狀態的應用程序非常有用。本文將詳細介紹PageStorage的用途、如何使用它以及…

Microsoft Azure AI語音服務

一&#xff1a;文字轉語音SDK安裝 安裝語音 SDK - Azure AI services | Microsoft Learn 二&#xff1a;基于文本轉語音Rest API 文本轉語音 API 參考 (REST) - 語音服務 - Azure AI services | Microsoft Learn 三&#xff1a;基于文本合成語音 如何基于文本合成語音 - 語…

Retrying,一個神奇優雅的 Python 庫

大家好&#xff01;我是愛摸魚的小鴻&#xff0c;關注我&#xff0c;收看每期的編程干貨。 一個簡單的庫&#xff0c;也許能夠開啟我們的智慧之門&#xff0c; 一個普通的方法&#xff0c;也許能在危急時刻挽救我們于水深火熱&#xff0c; 一個新穎的思維方式&#xff0c;也許能…