小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

LLMs之InternLM:InternLM/InternLM-7B模型的簡(jiǎn)介、安裝、使用方法之詳細(xì)攻略

 處女座的程序猿 2023-07-14 發(fā)布于上海

LLMs之InternLM:InternLM/InternLM-7B模型的簡(jiǎn)介、安裝、使用方法之詳細(xì)攻略

導(dǎo)讀:InternLM有?1040億參數(shù),是在包含1.6萬(wàn)億token的多語(yǔ)種高質(zhì)量數(shù)據(jù)集上訓(xùn)練而成。同時(shí),InternLM-7B完全可商用,支持8k語(yǔ)境窗口長(zhǎng)度,中文超ChatGPT,訓(xùn)練和評(píng)估動(dòng)態(tài)反饋調(diào)整基于ML deploy部署(基于Fast?Transform研發(fā))快速加載大模型,比Transform快到2~3倍Hybrid?Zero提速?,開放OpenCompass?評(píng)測(cè)標(biāo)準(zhǔn)


InternLM模型的簡(jiǎn)介

? ? ? ? ?2023年6月7日,上海人工智能實(shí)驗(yàn)室(上海AI實(shí)驗(yàn)室)、商湯科技聯(lián)合香港中文大學(xué)、復(fù)旦大學(xué)及上海交通大學(xué)發(fā)布千億級(jí)參數(shù)大語(yǔ)言模型“書生·浦語(yǔ)”(InternLM)?!皶て终Z(yǔ)”具有?1040億參數(shù),是在包含1.6萬(wàn)億token的多語(yǔ)種高質(zhì)量數(shù)據(jù)集上訓(xùn)練而成。全面評(píng)測(cè)結(jié)果顯示,“書生·浦語(yǔ)”不僅在知識(shí)掌握、閱讀理解、數(shù)學(xué)推理、多語(yǔ)翻譯等多個(gè)測(cè)試任務(wù)上表現(xiàn)優(yōu)秀,而且具備很強(qiáng)的綜合能力,因而在綜合性考試中表現(xiàn)突出,在多項(xiàng)中文考試中取得超越ChatGPT的成績(jī),其中就包括中國(guó)高考各科目的數(shù)據(jù)集(GaoKao)。
? ? ? ? ?2023年7月6日,在2023世界人工智能大會(huì)(WAIC)科學(xué)前沿全體會(huì)議上,深度學(xué)習(xí)與計(jì)算機(jī)專家、上海人工智能實(shí)驗(yàn)室教授、香港中文大學(xué)教授林達(dá)華,發(fā)布了“書生通用大模型體系”(以下簡(jiǎn)稱“書生大模型”),包括書生·多模態(tài)、書生·浦語(yǔ)InternLM和書生·天際LandMark等三大基礎(chǔ)模型,以及首個(gè)面向大模型研發(fā)與應(yīng)用的全鏈條開源體系。當(dāng)天,正式開源的版本為一個(gè)70億參數(shù)的輕量級(jí)InternLM-7B,在包含40個(gè)評(píng)測(cè)集的全維度評(píng)測(cè)中展現(xiàn)出卓越且平衡的性能,全面領(lǐng)先現(xiàn)有開源模型。
? ? ? ? ?InternLM ,即書生·浦語(yǔ)大模型,包含面向?qū)嵱脠?chǎng)景的70億參數(shù)基礎(chǔ)模型與對(duì)話模型 (InternLM-7B)。模型具有以下特點(diǎn):

  • 使用上萬(wàn)億高質(zhì)量預(yù)料,建立模型超強(qiáng)知識(shí)體系;
  • 支持8k語(yǔ)境窗口長(zhǎng)度,實(shí)現(xiàn)更長(zhǎng)輸入與更強(qiáng)推理體驗(yàn);
  • 通用工具調(diào)用能力,支持用戶靈活自助搭建流程;

? ? ? ? ?提供了支持模型預(yù)訓(xùn)練的輕量級(jí)訓(xùn)練框架,無(wú)需安裝大量依賴包,一套代碼支持千卡預(yù)訓(xùn)練和單卡人類偏好對(duì)齊訓(xùn)練,同時(shí)實(shí)現(xiàn)了極致的性能優(yōu)化,實(shí)現(xiàn)千卡訓(xùn)練下近90%加速效率。

GitHub地址GitHub - InternLM/InternLM: InternLM has open-sourced a 7 billion parameter base model, a chat model tailored for practical scenarios and the training system.

論文地址https://github.com/InternLM/InternLM-techreport/blob/main/InternLM.pdf

InternLM-techreportGitHub - InternLM/InternLM-techreport

1、InternLM的techreport

? ? ? ? 我們推出了InternLM,一個(gè)具有1,040億參數(shù)的多語(yǔ)言基礎(chǔ)語(yǔ)言模型。InternLM使用多階段漸進(jìn)式的過(guò)程,在1.6T個(gè)標(biāo)記的大型語(yǔ)料庫(kù)上進(jìn)行預(yù)訓(xùn)練,然后通過(guò)微調(diào)來(lái)與人類喜好相匹配。我們還開發(fā)了一個(gè)名為Uniscale-LLM的訓(xùn)練系統(tǒng),用于高效的大型語(yǔ)言模型訓(xùn)練。在多個(gè)基準(zhǔn)測(cè)試上的評(píng)估表明,InternLM在多個(gè)方面,包括知識(shí)理解、閱讀理解、數(shù)學(xué)和編碼方面,均實(shí)現(xiàn)了最先進(jìn)的性能。憑借如此全面的能力,InternLM在包括MMLU、AGIEval、C-Eval和GAOKAO-Bench在內(nèi)的綜合考試中取得了出色的表現(xiàn),而無(wú)需使用外部工具。在這些基準(zhǔn)測(cè)試中,InternLM不僅表現(xiàn)優(yōu)于開源模型,而且相對(duì)于ChatGPT也獲得了更優(yōu)異的性能。此外,InternLM展示了出色的理解中文語(yǔ)言和中華文化的能力,這使得它成為支持面向中文語(yǔ)言應(yīng)用的基礎(chǔ)模型的合適選擇。本文詳細(xì)介紹了我們的結(jié)果,包括跨越各種知識(shí)領(lǐng)域和任務(wù)的基準(zhǔn)測(cè)試和示例。

(1)、主要結(jié)果

? ? ? ? 隨著最新的大型語(yǔ)言模型開始展現(xiàn)人類級(jí)別的智能,針對(duì)人類設(shè)計(jì)的考試,如中國(guó)的高考、美國(guó)的SAT和GRE,被視為評(píng)估語(yǔ)言模型的重要手段。值得注意的是,在其關(guān)于GPT-4的技術(shù)報(bào)告中,OpenAI通過(guò)跨多個(gè)領(lǐng)域的考試對(duì)GPT-4進(jìn)行了測(cè)試,并將考試成績(jī)作為關(guān)鍵結(jié)果。
? ? ? ? 我們?cè)谝韵滤膫€(gè)綜合考試基準(zhǔn)測(cè)試中,將InternLM與其他模型進(jìn)行了比較:

MMLU:基于各種美國(guó)考試構(gòu)建的多任務(wù)基準(zhǔn)測(cè)試,涵蓋了小學(xué)數(shù)學(xué)、物理、化學(xué)、計(jì)算機(jī)科學(xué)、美國(guó)歷史、法律、經(jīng)濟(jì)、外交等多個(gè)學(xué)科。

AGIEval:由微軟研究開發(fā)的基準(zhǔn)測(cè)試,用于評(píng)估語(yǔ)言模型通過(guò)人類導(dǎo)向的考試的能力,包括19個(gè)任務(wù)集,派生自中國(guó)和美國(guó)的各種考試,例如中國(guó)的高考和律師資格考試,以及美國(guó)的SAT、LSAT、GRE和GMAT。在這19個(gè)任務(wù)集中,有9個(gè)基于中國(guó)的高考(Gaokao),我們將其單獨(dú)列為一個(gè)重要的集合,稱為AGIEval(GK)。

C-Eval:用于評(píng)估中文語(yǔ)言模型的綜合基準(zhǔn)測(cè)試,包含52個(gè)學(xué)科的近14,000道問(wèn)題,涵蓋數(shù)學(xué)、物理、化學(xué)、生物、歷史、政治、計(jì)算機(jī)和其他學(xué)科,以及公務(wù)員、注冊(cè)會(huì)計(jì)師、律師和醫(yī)生的專業(yè)考試。
排行榜地址https:///static/leaderboard.html

GAOKAO-Bench:基于中國(guó)的高考的綜合基準(zhǔn)測(cè)試,包括高考的所有科目。它提供不同類型的問(wèn)題,包括多項(xiàng)選擇、填空和問(wèn)答。為了簡(jiǎn)潔起見(jiàn),我們將這個(gè)基準(zhǔn)測(cè)試簡(jiǎn)稱為高考。

2、InternLM-7B模型的簡(jiǎn)介

? ? ?InternLM ,即書生·浦語(yǔ)大模型,包含面向?qū)嵱脠?chǎng)景的70億參數(shù)基礎(chǔ)模型 (InternLM-7B)。模型具有以下特點(diǎn):

  • 使用上萬(wàn)億高質(zhì)量預(yù)料,建立模型超強(qiáng)知識(shí)體系;
  • 通用工具調(diào)用能力,支持用戶靈活自助搭建流程;

官網(wǎng)internlm/internlm-7b · Hugging Face

3、InternLM、InternLM-7B模型的性能評(píng)測(cè)

? ? ?我們使用開源評(píng)測(cè)工具?OpenCompass?從學(xué)科綜合能力、語(yǔ)言能力、知識(shí)能力、推理能力、理解能力五大能力維度對(duì)InternLM開展全面評(píng)測(cè),部分評(píng)測(cè)結(jié)果如下表所示,歡迎訪問(wèn)?OpenCompass 榜單?獲取更多的評(píng)測(cè)結(jié)果。

數(shù)據(jù)集\模型InternLM-Chat-7BInternLM-7BLLaMA-7BBaichuan-7BChatGLM2-6BAlpaca-7BVicuna-7B
C-Eval(Val)53.253.424.242.750.928.931.2
MMLU50.851.035.2*41.546.039.747.3
AGIEval42.537.620.824.639.024.126.4
CommonSenseQA75.259.565.058.860.068.766.7
BUSTM74.350.648.551.355.048.862.5
CLUEWSC78.659.150.352.859.850.352.2
MATH6.47.12.83.06.62.22.8
GSM8K34.531.210.19.729.26.015.3
HumanEval14.010.414.09.29.29.211.0
RACE(High)76.357.446.9*28.166.340.754.0
  • 以上評(píng)測(cè)結(jié)果基于?OpenCompass 20230706?獲得(部分?jǐn)?shù)據(jù)標(biāo)注*代表數(shù)據(jù)來(lái)自原始論文),具體測(cè)試細(xì)節(jié)可參見(jiàn)?OpenCompass?中提供的配置文件。
  • 評(píng)測(cè)數(shù)據(jù)會(huì)因?OpenCompass?的版本迭代而存在數(shù)值差異,請(qǐng)以?OpenCompass?最新版的評(píng)測(cè)結(jié)果為主。

4、InternLM-7B模型的局限性

? ? ? ? 盡管在訓(xùn)練過(guò)程中我們非常注重模型的安全性,盡力促使模型輸出符合倫理和法律要求的文本,但受限于模型大小以及概率生成范式,模型可能會(huì)產(chǎn)生各種不符合預(yù)期的輸出,例如回復(fù)內(nèi)容包含偏見(jiàn)、歧視等有害內(nèi)容,請(qǐng)勿傳播這些內(nèi)容。由于傳播不良信息導(dǎo)致的任何后果,本項(xiàng)目不承擔(dān)責(zé)任。

InternLM-7B模型的安裝

1、Model Zoo

當(dāng)前通過(guò) InternLM 訓(xùn)練的 InternLM 7B 和 InternLM 7B Chat 已經(jīng)開源,我們提供兩種格式的模型權(quán)重以供使用。除了使用 Transformers 格式加載模型之外,還可以通過(guò) InternLM 加載以下格式的權(quán)重直接進(jìn)行繼續(xù)預(yù)訓(xùn)練或人類偏好對(duì)齊訓(xùn)練

模型InternLM 格式權(quán)重下載地址Transformers 格式權(quán)重下載地址
InternLM 7B?編輯🤗internlm/intern-7b
InternLM Chat 7B?編輯🤗internlm/intern-chat-7b
InternLM Chat 7B 8k?編輯🤗internlm/intern-chat-7b-8k

2、InternLM 7B下載地址

下載地址https:///internlm/internlm-7b/tree/main

InternLM模型的高性能部署

1、使用?LMDeploy?完成 InternLM 的一鍵部署。

首先安裝 LMDeploy:

python3 -m pip install lmdeploy

快速的部署命令如下:

python3 -m lmdeploy.serve.turbomind.deploy InternLM-7B /path/to/internlm-7b/model hf

在導(dǎo)出模型后,你可以直接通過(guò)如下命令啟動(dòng)服務(wù)一個(gè)服務(wù)并和部署后的模型對(duì)話

python3 -m lmdeploy.serve.client {server_ip_addresss}:33337

完整部署教程GitHub - InternLM/lmdeploy: LMDeploy is a toolkit for compressing, deploying, and serving LLM

2、微調(diào)&訓(xùn)練

預(yù)訓(xùn)練與微調(diào)使用教程

請(qǐng)參考使用教程開始InternLM的安裝、數(shù)據(jù)處理、預(yù)訓(xùn)練與微調(diào)。

轉(zhuǎn)換為 Transformers 格式使用

通過(guò) InternLM 進(jìn)行訓(xùn)練的模型可以很輕松地轉(zhuǎn)換為 HuggingFace Transformers 格式,方便與社區(qū)各種開源項(xiàng)目無(wú)縫對(duì)接。借助?tools/convert2hf.py?可以將訓(xùn)練保存的權(quán)重一鍵轉(zhuǎn)換為 transformers 格式

python convert2hf.py --src_folder origin_ckpt/ --tgt_folder hf_ckpt/ --tokenizer tokenizes/tokenizer.model

轉(zhuǎn)換之后可以通過(guò)以下的代碼加載為 transformers

from transformers import AutoTokenizer, AutoModel
model = AutoModel.from_pretrained("hf_ckpt/", trust_remote_code=True).cuda()

3、訓(xùn)練系統(tǒng)

InternLM系統(tǒng)結(jié)構(gòu)代碼文件結(jié)構(gòu)


InternLM系統(tǒng)結(jié)構(gòu)本項(xiàng)目系統(tǒng)代碼文件結(jié)構(gòu)如下所示:

├── configs                                  # 配置模塊,管理模型和訓(xùn)練相關(guān)參數(shù)
│   └── 7B_sft.py                            # 7B_sft.py 是系統(tǒng) demo 的配置文件樣例
├── internlm                                 # 系統(tǒng)代碼的主目錄
│   ├── apis                                 # 接口模塊,包含一些關(guān)于推理等的接口函數(shù)
│   ├── core                                 # 核心模塊,管理用于訓(xùn)練和推理的 parallel context 和訓(xùn)練調(diào)度引擎
│   │   ├── context                          # context 模塊,主要負(fù)責(zé)初始化并行進(jìn)程組,并管理 parallel context
│   │   │   ├── parallel_context.py
│   │   │   └── process_group_initializer.py
│   │   ├── engine.py                        # 負(fù)責(zé)管理模型的訓(xùn)練和評(píng)估過(guò)程
│   │   ├── no_pipeline_scheduler.py         # 并行訓(xùn)練的調(diào)度器
│   │   └── trainer.py                       # 負(fù)責(zé)管理訓(xùn)練引擎和調(diào)度器
│   ├── data                                 # 數(shù)據(jù)模塊,負(fù)責(zé)管理數(shù)據(jù)集生成和處理
│   ├── initialize                           # 初始化模塊,負(fù)責(zé)管理分布式環(huán)境啟動(dòng)和訓(xùn)練器初始化
│   ├── model                                # 模型模塊,負(fù)責(zé)管理模型結(jié)構(gòu)定義和實(shí)現(xiàn)
│   ├── solver                               # 負(fù)責(zé)管理 optimizer 和 lr_scheduler 等的實(shí)現(xiàn)
│   └── utils                                # 輔助模塊,負(fù)責(zé)管理日志、存儲(chǔ)、模型注冊(cè)等
├── train.py                                 # 模型訓(xùn)練的主函數(shù)入口文件
├── requirements                             # 系統(tǒng)運(yùn)行的依賴包列表
├── third_party                              # 系統(tǒng)所依賴的第三方模塊,包括 apex 和 flash-attention 等
├── tools                                    # 一些腳本工具,用于原始數(shù)據(jù)集處理和轉(zhuǎn)換,模型 checkpoint 轉(zhuǎn)換等
└── version.txt                              # 系統(tǒng)版本號(hào)

訓(xùn)練性能

InternLM 深度整合了 Flash-Attention, Apex 等高性能模型算子,提高了訓(xùn)練效率。通過(guò)構(gòu)建 Hybrid Zero 技術(shù),實(shí)現(xiàn)計(jì)算和通信的高效重疊,大幅降低了訓(xùn)練過(guò)程中的跨節(jié)點(diǎn)通信流量。InternLM 支持 7B 模型從 8 卡擴(kuò)展到 1024 卡,千卡規(guī)模下加速效率可高達(dá) 90%,訓(xùn)練吞吐超過(guò) 180TFLOPS,平均單卡每秒處理的 token 數(shù)量超過(guò)3600。下表為 InternLM 在不同配置下的擴(kuò)展性測(cè)試數(shù)據(jù):

GPU Number81632641282565121024
TGS40783939391939443928392038353625
TFLOPS193191188188187185186184

TGS 代表平均每GPU每秒可以處理的 Token 數(shù)量。更多的性能測(cè)試數(shù)據(jù)可參考訓(xùn)練性能文檔進(jìn)一步了解。

InternLM-7B模型的使用方法

1、通過(guò)以下的代碼加載 InternLM 7B Chat 模型

from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm-7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm-7b", trust_remote_code=True).cuda()
model = model.eval()
inputs = tokenizer(["來(lái)到美麗的大自然,我們發(fā)現(xiàn)"], return_tensors="pt")
for k,v in inputs.items():
gen_kwargs = {"max_length": 128, "top_p": 0.8, "temperature": 0.8, "do_sample": True, "repetition_penalty": 1.1}
output = model.generate(**inputs, **gen_kwargs)
print(output)

2、InternLM 7B Chat 模型的使用方法

(1)、通過(guò)以下的代碼加載 InternLM 7B Chat 模型

from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("internlm/internlm-chat-7b", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("internlm/internlm-chat-7b", trust_remote_code=True).cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)
response, history = model.chat(tokenizer, "請(qǐng)?zhí)峁┤齻€(gè)管理時(shí)間的建議。", history=history)
print(response)

(2)、通過(guò)前端網(wǎng)頁(yè)對(duì)話

可以通過(guò)以下代碼啟動(dòng)一個(gè)前端的界面來(lái)與 InternLM Chat 7B 模型進(jìn)行交互

pip install streamlit==1.24.0
pip install transformers==4.30.2
streamlit run web_demo.py

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多