精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

chatglm2-6b在P40上做LORA微調

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-08-13 17:12 ? 次閱讀

背景:

目前,大模型的技術應用已經遍地開花。最快的應用方式無非是利用自有垂直領域的數據進行模型微調。chatglm2-6b在國內開源的大模型上,效果比較突出。本文章分享的內容是用chatglm2-6b模型在集團EA的P40機器上進行垂直領域的LORA微調。

一、chatglm2-6b介紹

github: https://github.com/THUDM/ChatGLM2-6B

chatglm2-6b相比于chatglm有幾方面的提升:

1. 性能提升: 相比初代模型,升級了 ChatGLM2-6B 的基座模型,同時在各項數據集評測上取得了不錯的成績;

2. 更長的上下文: 我們將基座模型的上下文長度(Context Length)由 ChatGLM-6B 的 2K 擴展到了 32K,并在對話階段使用 8K 的上下文長度訓練;

3. 更高效的推理: 基于 Multi-Query Attention 技術,ChatGLM2-6B 有更高效的推理速度和更低的顯存占用:在官方的模型實現下,推理速度相比初代提升了 42%;

4. 更開放的協議:ChatGLM2-6B 權重對學術研究完全開放,在填寫問卷進行登記后亦允許免費商業使用。

二、微調環境介紹

2.1 性能要求

推理這塊,chatglm2-6b在精度是fp16上只需要14G的顯存,所以P40是可以cover的。

wKgaoma7I3aASvk2AADHmpxfTLQ074.png

EA上P40顯卡的配置如下:

wKgZoma7I3iAM9EbAAQus7i5EGI540.png

2.2 鏡像環境

做微調之前,需要編譯環境進行配置,我這塊用的是docker鏡像的方式來加載鏡像環境,具體配置如下:

FROM base-clone-mamba-py37-cuda11.0-gpu

# mpich
RUN yum install mpich  

# create my own environment
RUN conda create -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ --override --yes --name py39 python=3.9
# display my own environment in Launcher
RUN source activate py39 
    && conda install --yes --quiet ipykernel 
    && python -m ipykernel install --name py39 --display-name "py39"

# install your own requirement package
RUN source activate py39 
    && conda install -y -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ 
    pytorch  torchvision torchaudio faiss-gpu 
    && pip install --no-cache-dir  --ignore-installed -i https://pypi.tuna.tsinghua.edu.cn/simple 
    protobuf 
    streamlit 
    transformers==4.29.1 
    cpm_kernels 
    mdtex2html 
    gradio==3.28.3 
	sentencepiece 
	accelerate 
	langchain 
    pymupdf 
	unstructured[local-inference] 
	layoutparser[layoutmodels,tesseract] 
	nltk~=3.8.1 
	sentence-transformers 
	beautifulsoup4 
	icetk 
	fastapi~=0.95.0 
	uvicorn~=0.21.1 
	pypinyin~=0.48.0 
    click~=8.1.3 
    tabulate 
    feedparser 
    azure-core 
    openai 
    pydantic~=1.10.7 
    starlette~=0.26.1 
    numpy~=1.23.5 
    tqdm~=4.65.0 
    requests~=2.28.2 
    rouge_chinese 
    jieba 
    datasets 
    deepspeed 
	pdf2image 
	urllib3==1.26.15 
    tenacity~=8.2.2 
    autopep8 
    paddleocr 
    mpi4py 
    tiktoken

如果需要使用deepspeed方式來訓練, EA上缺少mpich信息傳遞工具包,需要自己手動安裝。

2.3 模型下載

huggingface地址: https://huggingface.co/THUDM/chatglm2-6b/tree/main

三、LORA微調

3.1 LORA介紹

paper: https://arxiv.org/pdf/2106.09685.pdf

LORA(Low-Rank Adaptation of Large Language Models)微調方法: 凍結預訓練好的模型權重參數,在凍結原模型參數的情況下,通過往模型中加入額外的網絡層,并只訓練這些新增的網絡層參數。

chaijie_default.png

LoRA 的思想:

?在原始 PLM (Pre-trained Language Model) 旁邊增加一個旁路,做一個降維再升維的操作。

?訓練的時候固定 PLM 的參數,只訓練降維矩陣A與升維矩B。而模型的輸入輸出維度不變,輸出時將BA與 PLM 的參數疊加。

?用隨機高斯分布初始化A,用 0 矩陣初始化B,保證訓練的開始此旁路矩陣依然是 0 矩陣。

3.2 微調

huggingface提供的peft工具可以方便微調PLM模型,這里也是采用的peft工具來創建LORA。

peft的github: https://gitcode.net/mirrors/huggingface/peft?utm_source=csdn_github_accelerator

加載模型和lora微調:

    # load model
    tokenizer = AutoTokenizer.from_pretrained(args.model_dir, trust_remote_code=True)
    model = AutoModel.from_pretrained(args.model_dir, trust_remote_code=True)
    
    print("tokenizer:", tokenizer)
    
    # get LoRA model
    config = LoraConfig(
        r=args.lora_r,
        lora_alpha=32,
        lora_dropout=0.1,
        bias="none",)
    
    # 加載lora模型
    model = get_peft_model(model, config)
    # 半精度方式
    model = model.half().to(device)

這里需要注意的是,用huggingface加載本地模型,需要創建work文件,EA上沒有權限在沒有在.cache創建,這里需要自己先制定work路徑。

import os
os.environ['TRANSFORMERS_CACHE'] = os.path.dirname(os.path.abspath(__file__))+"/work/"
os.environ['HF_MODULES_CACHE'] = os.path.dirname(os.path.abspath(__file__))+"/work/"

如果需要用deepspeed方式訓練,選擇你需要的zero-stage方式:

    conf = {"train_micro_batch_size_per_gpu": args.train_batch_size,
            "gradient_accumulation_steps": args.gradient_accumulation_steps,
            "optimizer": {
                "type": "Adam",
                "params": {
                    "lr": 1e-5,
                    "betas": [
                        0.9,
                        0.95
                    ],
                    "eps": 1e-8,
                    "weight_decay": 5e-4
                }
            },
            "fp16": {
                "enabled": True
            },
            "zero_optimization": {
                "stage": 1,
                "offload_optimizer": {
                    "device": "cpu",
                    "pin_memory": True
                },
                "allgather_partitions": True,
                "allgather_bucket_size": 2e8,
                "overlap_comm": True,
                "reduce_scatter": True,
                "reduce_bucket_size": 2e8,
                "contiguous_gradients": True
            },
            "steps_per_print": args.log_steps
            }

其他都是數據處理處理方面的工作,需要關注的就是怎么去構建prompt,個人認為在領域內做微調構建prompt非常重要,最終對模型的影響也比較大。

四、微調結果

目前模型還在finetune中,batch=1,epoch=3,已經迭代一輪。

wKgaoma7I3qAVUBDAAW1M1mXOuk426.png

?審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LoRa
    +關注

    關注

    348

    文章

    1639

    瀏覽量

    231358
  • 大模型
    +關注

    關注

    2

    文章

    2126

    瀏覽量

    1965
收藏 人收藏

    評論

    相關推薦

    P40能像P2那樣擁有FRL嗎

    VDI運行一個工程團隊,其中3個主機具有K2,并且剛剛獲得了帶有P40的新服務器。到目前為止,我沒有體驗到P40的任何優點。如果有什么
    發表于 09-12 15:52

    怎么P40看到cinebench性能

    我想在P40看到cinebench性能,4GB RAM和3vCPU以及不同的P40配置文件P40-24Q,P40-12Q,
    發表于 09-12 15:55

    P40置于圖形模式是否無法進行遠程渲染?

    試圖Windows Server Azure VM使用P40獲取圖形模式(WDDM)并收到“不支持”消息。是否無法將P40置于圖形模式以進行遠程渲染?我們目前正在使用M60,它運行
    發表于 09-12 16:13

    NVIDIA Tesla P40動態GPU內存分配可能嗎?

    你好是由VM分配的P40修復的GPU內存還是動態的? p40有24GB gpu ram所以讓我們采取以下的配置文件p40-1q1024 mb幀緩沖2個虛擬顯示器頭最大分辨率4096x2
    發表于 09-25 17:27

    華為P40系列曝光P40采用了平面設計P40 Pro采用了曲面設計

    整體來看,華為P40P40 Pro采用了相似的設計語言,當然細微之處還是有差異的。比如屏幕,P40采用平面設計,P40 Pro則采用曲面設計,而且從特寫圖來看是四曲面屏幕,這一點和數
    發表于 12-19 13:48 ?4071次閱讀

    華為P40帶殼渲染圖曬出,設計風格與華為P40 Pro類似

    今日早間,消息報道稱,華為P40和華為P40 Pro的設計風格類似,但是有一些細節是不一樣的。華為P40顯示屏為6.1英寸到6.2英寸,平面設計;華為P40 Pro顯示屏尺寸為6.5英
    的頭像 發表于 12-20 14:33 ?2879次閱讀

    p40怎么升級鴻蒙系統 華為p40現在可以更新鴻蒙系統嗎?

    自從華為62號的鴻蒙發布會之后,有很多小伙伴都在問華為p40現在可以更新鴻蒙系統嗎?
    的頭像 發表于 06-07 11:35 ?1.1w次閱讀

    四川移動發布:將采購華為P40P40 PRO公開版手機63000臺

    11月2日消息,近日,四川移動終端公司發布公告稱,將采購華為P40P40 PRO公開版手機。 公告顯示,本次四川移動采購的華為手機型號為P40(ANA-AN00
    的頭像 發表于 11-02 16:03 ?2200次閱讀

    華為p40如何升級鴻蒙系統 操作步驟如下

    華為62日召開了鴻蒙系統發布會,華為官方正式發布了鴻蒙系統,也公布了第一批支持更新的機型,當然華為p40升級鴻蒙系統的隊里,華為
    的頭像 發表于 06-15 09:44 ?8555次閱讀

    華為p40鴻蒙系統怎么升級

    大家都知道華為鴻蒙HarmonyOS 2發布會已于62日開啟,目前華為P40也是支持鴻蒙系統全新升級的。那么華為P40如何升級鴻蒙系統呢?
    的頭像 發表于 06-16 15:20 ?4897次閱讀

    p40怎么更新鴻蒙系統

    p40怎么更新鴻蒙系統?p40可以更新鴻蒙系統嗎?下面小編就為大家簡單介紹一下!
    的頭像 發表于 07-08 10:07 ?4150次閱讀

    ChatGLM-6B的局限和不足

    ;ChatGLM-6B 參考了 ChatGPT 的設計思路,千 億基座模型 GLM-130B 中注入了代碼預訓練,通過有監督微調等技術實現與人類意圖對齊(即讓機 器的回答符合人類的期
    的頭像 發表于 06-25 11:50 ?5268次閱讀
    <b class='flag-5'>ChatGLM-6B</b>的局限和不足

    ChatGLM2-6B:性能大幅提升,8-32k上下文,推理提速42%,中文榜單位列榜首

    主要評估LLM模型中文能力的 C-Eval 榜單中,截至6月25日 ChatGLM2 模型以 71.1 的分數位居 Rank 0 ,ChatGLM2-6B 模型以 51.7 的分數位
    的頭像 發表于 06-26 14:30 ?877次閱讀
    <b class='flag-5'>ChatGLM2-6B</b>:性能大幅提升,8-32k上下文,推理提速42%,<b class='flag-5'>在</b>中文榜單位列榜首

    ChatGLM2-6B解析與TPU部署

    ChatGLM2-6B解析與TPU部署
    的頭像 發表于 08-18 11:28 ?687次閱讀
    <b class='flag-5'>ChatGLM2-6B</b>解析與TPU部署

    探索ChatGLM2算能BM1684XINT8量化部署,加速大模型商業落地

    1.背景介紹2023年7月時我們已通過靜態設計方案完成了ChatGLM2-6B單顆BM1684X的部署工作,量化模式F16,模型大小12GB,平均速度約為3token/s,詳見《
    的頭像 發表于 10-10 10:18 ?3270次閱讀
    探索<b class='flag-5'>ChatGLM2</b><b class='flag-5'>在</b>算能BM1684X<b class='flag-5'>上</b>INT8量化部署,加速大模型商業落地