国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

這篇具有很好參考價值的文章主要介紹了阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文介紹如何使用GPU云服務(wù)器,使用Megatron-Deepspeed框架訓(xùn)練GPT-2模型并生成文本。

背景信息

GPT-2模型是OpenAI于2018年在GPT模型的基礎(chǔ)上發(fā)布的新的無監(jiān)督NLP模型,當(dāng)時被稱為“史上最強通用NLP模型”。該模型可以生成連貫的文本段落,并且能在未經(jīng)預(yù)訓(xùn)練的情況下,完成閱讀理解、問答、機器翻譯等多項不同的語言建模任務(wù)。GPT-2模型尤其在文本生成上有著驚艷的表現(xiàn),其生成的文本在上下文連貫性和情感表達上都超過了人們的預(yù)期。

GPT-2模型由多層單向Transformer的解碼器部分構(gòu)成,根據(jù)模型層次規(guī)模,GPT-2模型有以下幾個規(guī)格:

阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

Megatron-Deepspeed框架結(jié)合了兩種主要技術(shù):

  • Megatron-LM是由NVIDIA開源的Transformer 模型框架。

  • DeepSpeed是由Microsoft開源的一個深度學(xué)習(xí)優(yōu)化庫。

DeepSpeed團隊通過將DeepSpeed庫中的ZeRO分片(ZeRO sharding)數(shù)據(jù)并行(Data Parallelism)和管道并行(Pipeline Parallelism)與Megatron-LM中的張量并行(Tensor Parallelism)相結(jié)合,開發(fā)了一種基于3D并行的實現(xiàn),這就是Megatron-Deepspeed,它使得千億級參數(shù)量以上的大規(guī)模語言模型(LLM)的分布式訓(xùn)練變得更簡單、高效和有效。

本文基于阿里云GPU服務(wù)器,使用Megatron-Deepspeed框架訓(xùn)練GPT-2模型并生成文本。

阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

重要

  • 阿里云不對第三方模型“GPT-2”的合法性、安全性、準(zhǔn)確性進行任何保證,阿里云不對由此引發(fā)的任何損害承擔(dān)責(zé)任。

  • 您應(yīng)自覺遵守第三方模型的用戶協(xié)議、使用規(guī)范和相關(guān)法律法規(guī),并就使用第三方模型的合法性、合規(guī)性自行承擔(dān)相關(guān)責(zé)任。

操作步驟

創(chuàng)建ECS實例

在ECS實例創(chuàng)建頁面,創(chuàng)建ECS實例。

關(guān)鍵參數(shù)說明如下,其他參數(shù)的配置,請參見自定義購買實例。

  • 實例規(guī)格:選擇ecs.gn7i-c8g1.2xlarge(單卡NVIDIA A10)。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

  • 鏡像:使用云市場鏡像,名稱為aiacc-train-solution,您可以直接通過名稱搜索該鏡像,選擇最新版本即可。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

  • 公網(wǎng)IP:選中分配公網(wǎng)IPv4地址,帶寬計費方式選擇按使用流量,帶寬峰值選擇100?Mbps,以加快模型下載速度。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

安裝Megatron-Deepspeed框架

  1. 使用root用戶遠程登錄ECS實例。具體操作,請參見通過密碼或密鑰認(rèn)證登錄Linux實例。

  2. 執(zhí)行以下命令,啟動容器。

    docker run -d -t --network=host --gpus all --privileged --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --name megatron-deepspeed -v /etc/localtime:/etc/localtime -v /root/.ssh:/root/.ssh nvcr.io/nvidia/pytorch:21.10-py3
  3. 執(zhí)行以下命令,進入容器終端。

    docker exec -it megatron-deepspeed bash
  4. 執(zhí)行以下命令,下載Megatron-DeepSpeed框架。

    git clone https://github.com/bigscience-workshop/Megatron-DeepSpeed
  5. 執(zhí)行以下命令,安裝Megatron-DeepSpeed框架。

    cd Megatron-DeepSpeed
    pip install -r requirements.txt

處理數(shù)據(jù)

本指南使用1GB 79K-record的JSON格式的OSCAR數(shù)據(jù)集。

  1. 執(zhí)行以下命令,下載數(shù)據(jù)集。

    wget https://huggingface.co/bigscience/misc-test-data/resolve/main/stas/oscar-1GB.jsonl.xz
    wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json
    wget https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt
  2. 執(zhí)行以下命令,解壓數(shù)據(jù)集。

    xz -d oscar-1GB.jsonl.xz
  3. 執(zhí)行以下命令,預(yù)處理數(shù)據(jù)。

    python3 tools/preprocess_data.py \
        --input oscar-1GB.jsonl \
        --output-prefix meg-gpt2 \
        --vocab gpt2-vocab.json \
        --dataset-impl mmap \
        --tokenizer-type GPT2BPETokenizer \
        --merge-file gpt2-merges.txt \
        --append-eod \
        --workers 8

    如果回顯信息類似如下所示,表示預(yù)處理數(shù)據(jù)完成。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

  4. 執(zhí)行以下命令,新建data目錄。

    mkdir data
  5. 執(zhí)行以下命令,將處理好的數(shù)據(jù)移動到data目錄下。

    mv meg-gpt2* ./data
    mv gpt2* ./data

預(yù)訓(xùn)練

本示例使用單機單卡的GPU實例完成GPT-2 MEDIUM模型的預(yù)訓(xùn)練。

  1. 創(chuàng)建預(yù)訓(xùn)練腳本文件。

    1. 執(zhí)行以下命令,創(chuàng)建預(yù)訓(xùn)練腳本文件。

      vim pretrain_gpt2.sh
    2. i鍵,進入編輯模式,在文件中添加以下信息。

      #! /bin/bash
      
      # Runs the "345M" parameter model
      
      GPUS_PER_NODE=1
      # Change for multinode config
      MASTER_ADDR=localhost
      MASTER_PORT=6000
      NNODES=1
      NODE_RANK=0
      WORLD_SIZE=$(($GPUS_PER_NODE*$NNODES))
      
      DATA_PATH=data/meg-gpt2_text_document
      CHECKPOINT_PATH=checkpoints/gpt2
      
      DISTRIBUTED_ARGS="--nproc_per_node $GPUS_PER_NODE --nnodes $NNODES --node_rank $NODE_RANK --master_addr $MASTER_ADDR --master_port $MASTER_PORT"
      
      python -m torch.distributed.launch $DISTRIBUTED_ARGS \
             pretrain_gpt.py \
             --tensor-model-parallel-size 1 \
             --pipeline-model-parallel-size 1 \
             --num-layers 24 \
             --hidden-size 1024 \
             --num-attention-heads 16 \
             --micro-batch-size 4 \
             --global-batch-size 8 \
             --seq-length 1024 \
             --max-position-embeddings 1024 \
             --train-iters 5000 \
             --lr-decay-iters 320000 \
             --save $CHECKPOINT_PATH \
             --load $CHECKPOINT_PATH \
             --data-path $DATA_PATH \
             --vocab-file data/gpt2-vocab.json \
             --merge-file data/gpt2-merges.txt \
             --data-impl mmap \
             --split 949,50,1 \
             --distributed-backend nccl \
             --lr 0.00015 \
             --lr-decay-style cosine \
             --min-lr 1.0e-5 \
             --weight-decay 1e-2 \
             --clip-grad 1.0 \
             --lr-warmup-fraction .01 \
             --checkpoint-activations \
             --log-interval 10 \
             --save-interval 500 \
             --eval-interval 100 \
             --eval-iters 10 \
             --fp16
    3. Esc鍵,輸入:wq后,按Enter鍵保存文件。

  2. 修改測試代碼。

    Megatron源碼有一個斷言需要注釋掉,以保證代碼正常運行。

    1. 執(zhí)行以下命令,打開測試代碼文件。

      vim /workspace/Megatron-DeepSpeed/megatron/model/fused_softmax.py +191
    2. i鍵,進入編輯模式,在assert mask is None, "Mask is silently ignored due to the use of a custom kernel"前加#。

      阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

    3. Esc鍵,輸入:wq后,按Enter鍵保存文件。

  3. 預(yù)訓(xùn)練。

    1. 執(zhí)行以下命令,開始預(yù)訓(xùn)練。

      nohup sh ./pretrain_gpt2.sh &

      阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

    2. 執(zhí)行如下命令,可以持續(xù)的查看nohup.out的輸出,達到監(jiān)控程序的效果。

      tail -f nohup.out

      如果回顯信息類似如下所示,表示預(yù)訓(xùn)練完成。

      阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

      說明?

      預(yù)訓(xùn)練完成大概需要1小時30分鐘,如果超時斷開了ECS連接,重新遠程登錄ECS實例后,執(zhí)行以下命令,繼續(xù)查看預(yù)訓(xùn)練進度。預(yù)訓(xùn)練完成后,可以執(zhí)行Ctrl+Z命令退出。

      docker exec -it megatron-deepspeed bash
      cd Megatron-DeepSpeed
      tail -f nohup.out
  4. (可選)執(zhí)行以下命令,查看生成的模型checkpoint路徑。

    本示例生成的模型checkpoint路徑設(shè)置在/workspace/Megatron-DeepSpeed/checkpoints/gpt2。

    ll ./checkpoints/gpt2

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

使用GPT-2模型生成文本

  1. 執(zhí)行以下命令,安裝相關(guān)依賴。

    說明?

    由于網(wǎng)絡(luò)原因,執(zhí)行命令后可能會失敗,建議您多次嘗試。

    pip install mpi4py

    如果回顯信息類似如下所示,表示依賴安裝完成。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

  2. 創(chuàng)建文本生成腳本。

    1. 執(zhí)行以下命令,創(chuàng)建文本生成腳本。

      vim generate_text.sh
    2. i鍵,進入編輯模式,在文件中增加以下內(nèi)容。

      #!/bin/bash
      
      CHECKPOINT_PATH=checkpoints/gpt2
      VOCAB_FILE=data/gpt2-vocab.json
      MERGE_FILE=data/gpt2-merges.txt
      
      python tools/generate_samples_gpt.py \
             --tensor-model-parallel-size 1 \
             --num-layers 24 \
             --hidden-size 1024 \
             --load $CHECKPOINT_PATH \
             --num-attention-heads 16 \
             --max-position-embeddings 1024 \
             --tokenizer-type GPT2BPETokenizer \
             --fp16 \
             --micro-batch-size 2 \
             --seq-length 1024 \
             --out-seq-length 1024 \
             --temperature 1.0 \
             --vocab-file $VOCAB_FILE \
             --merge-file $MERGE_FILE \
             --genfile unconditional_samples.json \
             --num-samples 2 \
             --top_p 0.9 \
             --recompute
    3. Esc鍵,輸入:wq后,按Enter鍵保存文件。

  3. 執(zhí)行以下命令,生成文本。

    sh ./generate_text.sh

    如果回顯信息類似如下所示,表示生成文本完成。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本

  4. 執(zhí)行以下命令,查看生成的JSON格式的文本文件。

    vim unconditional_samples.json

    回顯信息類似如下所示。

    阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本文章來源地址http://www.zghlxwxcb.cn/news/detail-489003.html

了解更多AIGC實踐和GPU優(yōu)惠

到了這里,關(guān)于阿里云AIGC- 使用Megatron-Deepspeed訓(xùn)練GPT-2并生成文本的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 阿里云林立翔:基于阿里云 GPU 的 AIGC 小規(guī)模訓(xùn)練優(yōu)化方案

    阿里云林立翔:基于阿里云 GPU 的 AIGC 小規(guī)模訓(xùn)練優(yōu)化方案

    本篇文章圍繞生成式 AI 技術(shù)棧、生成式 AI 微調(diào)訓(xùn)練和性能分析、ECS GPU 實例為生成式 AI 提供算力保障、應(yīng)用場景案例等相關(guān)話題展開。 1、生成式 AI 爆發(fā)的歷程 在 2022 年的下半年,業(yè)界迎來了生成式 AI 的全面爆發(fā),尤其是以 ChatGPT 為代表的大語言模型和以 Stable Diffusion 為代

    2024年02月02日
    瀏覽(18)
  • 基于DeepSpeed訓(xùn)練ChatGPT

    基于DeepSpeed訓(xùn)練ChatGPT

    ??最近微軟發(fā)布了一個基于DeepSpeed的訓(xùn)練優(yōu)化框架來完成ChatGPT類模型的訓(xùn)練,博主對其進行了研究并通過此博文分享相關(guān)技術(shù)細節(jié)。 1、開源倉庫 :DeepSpeed-Chat 2、配置要求: ● cuda:11.0以上 ● torch:1.12.1+cu113 ● deepspeed:0.9.0 ● transformers:4.29.0.dev0 3、開源語料(Hugging

    2023年04月22日
    瀏覽(18)
  • DeepSpeed: 大模型訓(xùn)練框架

    目前,大模型的發(fā)展已經(jīng)非?;馃?,關(guān)于大模型的訓(xùn)練、微調(diào)也是各個公司重點關(guān)注方向。但是大模型訓(xùn)練的痛點是模型參數(shù)過大,動輒上百億,如果單靠單個GPU來完成訓(xùn)練基本不可能。所以需要多卡或者分布式訓(xùn)練來完成這項工作。 1.1 目前主流的大模型分布式訓(xùn)練主要包

    2024年02月08日
    瀏覽(20)
  • AI:DeepSpeed Chat(一款幫用戶訓(xùn)練自己模型的工具且簡單/低成本/快 RLHF 訓(xùn)練類ChatGPT高質(zhì)量大模型)的簡介、安裝、使用方法之詳細攻略

    AI:DeepSpeed Chat(一款幫用戶訓(xùn)練自己模型的工具且簡單/低成本/快 RLHF 訓(xùn)練類ChatGPT高質(zhì)量大模型)的簡介、安裝、使用方法之詳細攻略

    AI:DeepSpeed Chat(一款幫用戶訓(xùn)練自己模型的工具且簡單/低成本/快 RLHF 訓(xùn)練類ChatGPT高質(zhì)量大模型)的簡介、安裝、使用方法之詳細攻略 目錄 DeepSpeed Chat的簡介 DeepSpeed-Chat的產(chǎn)生背景 DeepSpeed-Chat的簡介 DeepSpeed-Chat的三大功能 DeepSpeed-RLHF 系統(tǒng)三大優(yōu)勢 DeepSpeed Chat的安裝和使用方法

    2023年04月22日
    瀏覽(37)
  • 分布式并行訓(xùn)練(DP、DDP、DeepSpeed)

    分布式并行訓(xùn)練(DP、DDP、DeepSpeed)

    [pytorch distributed] 01 nn.DataParallel 數(shù)據(jù)并行初步 數(shù)據(jù)并行 vs. 模型并行 數(shù)據(jù)并行 :模型拷貝(per device),數(shù)據(jù) split/chunk(對batch切分) 每個device上都拷貝一份完整模型,每個device分別處理1個batch的一部分(如batch_size=64, 2個device, 每device處理32個樣本) 梯度反向傳播時,每個設(shè)備上

    2024年02月07日
    瀏覽(33)
  • [論文筆記] PAI-Megatron 1、Qwen continuing pretrain(CT)千問預(yù)訓(xùn)練

    通義千問開源模型在PAI靈駿的最佳實踐 - 知乎 https://github.com/alibaba/Pai-Megatron-Patch/blob/main/examples/megatron.md ? ? ? ? 目標(biāo):使用qwen基座來做CT。 ? ? ? ? 數(shù)據(jù)情況:預(yù)訓(xùn)練數(shù)據(jù)已經(jīng)用qwen-tokenizer分過詞。所以不需要準(zhǔn)備數(shù)據(jù)。如果需沒有數(shù)據(jù),也可以從Pai-Megatron上拉數(shù)據(jù)。 ?

    2024年01月20日
    瀏覽(12)
  • rwkv模型lora微調(diào)之a(chǎn)ccelerate和deepspeed訓(xùn)練加速

    rwkv模型lora微調(diào)之a(chǎn)ccelerate和deepspeed訓(xùn)練加速

    ? ? ? ? 目錄 一、rwkv模型簡介 二、lora原理簡介 三、rwkv-lora微調(diào) 1、數(shù)據(jù)整理 2、環(huán)境搭建 a、Dockerfile編寫 b、制造鏡像 c、容器啟動 3、訓(xùn)練代碼修改 四、模型推理 1、模型推理 2、lora權(quán)重合并 3、推理web服務(wù) 五、總結(jié) ????????由于業(yè)務(wù)采用的ChatGLM模型推理成本太大了,

    2024年02月06日
    瀏覽(21)
  • deepspeed訓(xùn)練報錯torch.distributed.elastic.multiprocessing.errors.ChildFailedError

    deepspeed訓(xùn)練報錯torch.distributed.elastic.multiprocessing.errors.ChildFailedError

    測試場景:使用deepspeed框架訓(xùn)練gpt模型 問題: 報錯torch.distributed.elastic.multiprocessing.errors.ChildFailedError 具體見截圖: 解決辦法: 含義:表明在運行 train.py 腳本時,傳遞了一個未被識別的參數(shù) --local-rank=1 這里我在train.py腳本文件中果然沒有找到–local-rank參數(shù),在很多的parser

    2024年02月08日
    瀏覽(33)
  • 解決deepspeed框架的bug:不保存調(diào)度器狀態(tài),模型訓(xùn)練重啟時學(xué)習(xí)率從頭開始

    解決deepspeed框架的bug:不保存調(diào)度器狀態(tài),模型訓(xùn)練重啟時學(xué)習(xí)率從頭開始

    deepspeed存在一個bug,即在訓(xùn)練時不保存調(diào)度器狀態(tài),因此如果訓(xùn)練中斷后再重新開始訓(xùn)練,調(diào)度器還是會從頭開始而不是接著上一個checkpoint的調(diào)度器狀態(tài)來訓(xùn)練。這個bug在deepspeed的github中也有其他人提出:https://github.com/microsoft/DeepSpeed/issues/3875 因此我們需要寫一個保存調(diào)度器

    2024年02月09日
    瀏覽(17)
  • 阿里云X森馬 AIGC T恤設(shè)計大賽;SD新手入門完全指南;揭秘LLM訓(xùn)練中的數(shù)學(xué);LLM高質(zhì)量閱讀清單 | ShowMeAI日報

    阿里云X森馬 AIGC T恤設(shè)計大賽;SD新手入門完全指南;揭秘LLM訓(xùn)練中的數(shù)學(xué);LLM高質(zhì)量閱讀清單 | ShowMeAI日報

    ?? 日報周刊合集 | ?? 生產(chǎn)力工具與行業(yè)應(yīng)用大全 | ?? 點贊關(guān)注評論拜托啦! 比賽官網(wǎng):https://developer.aliyun.com/adc/series/activity/aigc_design 阿里云攜手服裝品牌森馬,推出了本次 AIGC T 恤設(shè)計大賽。開發(fā)者、設(shè)計師、AI繪畫愛好者,都可以使用阿里云函數(shù)計算快速部署 Stable D

    2024年02月11日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包