阿里雲Qwen-7B:通義千問超大規模70億參數語言模型!

2023年08月08日08:12:02 科技 1894

阿里雲Qwen-7B:通義千問超大規模70億參數語言模型! - 天天要聞

通義千問-7B(Qwen-7B) 是阿里雲研發的通義千問大模型系列的 70 億參數規模的模型。Qwen-7B 是基於 Transformer 的大語言模型, 在超大規模的預訓練數據上進行訓練得到。預訓練數據類型多樣,覆蓋廣泛,包括大量網絡文本、專業書籍、代碼等。同時,在 Qwen-7B 的基礎上,我們使用對齊機制打造了基於大語言模型的 AI 助手 Qwen-7B-Chat。Qwen-7B 系列模型的特點包括:

  1. 大規模高質量預訓練數據:我們使用了超過 2.2 萬億 token 的自建大規模預訓練數據集進行語言模型的預訓練。數據集包括文本和代碼等多種數據類型,覆蓋通用領域和專業領域。
  2. 優秀的模型性能:相比同規模的開源模型,Qwen-7B 在多個評測數據集上具有顯著優勢,甚至超出 12-13B 等更大規模的模型。評測評估的能力範圍包括自然語言理解與生成、數學運算解題、代碼生成等。
  3. 更好地支持多語言:基於更大詞表的分詞器在分詞上更高效,同時它對其他語言表現更加友好。用戶可以在 Qwen-7B 的基礎上更方便地訓練特定語言的 7B 語言模型。
  4. 8K的上下文長度:Qwen-7B 及 Qwen-7B-Chat 均能支持 8K 的上下文長度, 允許用戶輸入更長的 prompt。
  5. 支持插件調用:Qwen-7B-Chat 針對插件調用相關的對齊數據做了特定優化,當前模型能有效調用插件以及升級為 Agent。

評測表現

Qwen-7B 在多個全面評估自然語言理解與生成、數學運算解題、代碼生成等能力的評測數據集上,包括 MMLU、C-Eval、GSM8K、HumanEval、WMT22 等,均超出了同規模大語言模型的表現,甚至超出了如 12-13B 參數等更大規模的語言模型。

阿里雲Qwen-7B:通義千問超大規模70億參數語言模型! - 天天要聞

阿里雲Qwen-7B:通義千問超大規模70億參數語言模型! - 天天要聞

要求

  • python 3.8 及以上版本
  • pytorch 1.12 及以上版本,推薦 2.0 及以上版本
  • 建議使用 CUDA 11.4 及以上(GPU 用戶、flash-attention 用戶等需考慮此選項)

快速使用

下面是簡單的示例來說明如何利用 ModelScope 和 Transformers 快速使用 Qwen-7B 和 Qwen-7B-Chat。

在開始前,請確保你已經配置好環境並安裝好相關的代碼包。最重要的是,確保你滿足上述要求,然後安裝相關的依賴庫。

pip install -r requirements.txt

如果你的顯卡支持 fp16 或 bf16 精度,我們還推薦安裝flash-attention(https://github.com/Dao-AILab/flash-attention)來提高你的運行效率以及降低顯存佔用。(flash-attention 只是可選項,不安裝也可正常運行該項目)。

git clone -b v1.0.8 https://github.com/Dao-AILab/flash-attention
cd flash-attention && pip install .
pip install csrc/layer_norm
pip install csrc/rotary

接下來你可以開始使用 Transformers 或者 ModelScope 來使用模型。

Transformers

如希望使用 Qwen-7B-chat 進行推理,所需要寫的只是如下所示的數行代碼:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig

# 請注意:分詞器默認行為已更改為默認關閉特殊token攻擊防護。相關使用指引,請見examples/tokenizer_showcase.ipynb
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)

# 打開bf16精度,A100、H100、RTX3060、RTX3070等顯卡建議啟用以節省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 打開fp16精度,V100、P100、T4等顯卡建議啟用以節省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 使用CPU進行推理,需要約32GB內存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="cpu", trust_remote_code=True).eval()
# 默認使用自動模式,根據設備自動選擇精度
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B-Chat", device_map="auto", trust_remote_code=True).eval()

# 可指定不同的生成長度、top_p等相關超參
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B-Chat", trust_remote_code=True)

# 第一輪對話 1st dialogue turn
response, history = model.chat(tokenizer, "你好", history=None)
print(response)
# 你好!很高興為你提供幫助。

# 第二輪對話 2nd dialogue turn
response, history = model.chat(tokenizer, "給我講一個年輕人奮鬥創業最終取得成功的故事。", history=history)
print(response)
# 這是一個關於一個年輕人奮鬥創業最終取得成功的故事。
# 故事的主人公叫李明,他來自一個普通的家庭,父母都是普通的工人。從小,李明就立下了一個目標:要成為一名成功的企業家。
# 為了實現這個目標,李明勤奮學習,考上了大學。在大學期間,他積极參加各種創業比賽,獲得了不少獎項。他還利用課餘時間去實習,積累了寶貴的經驗。
# 畢業後,李明決定開始自己的創業之路。他開始尋找投資機會,但多次都被拒絕了。然而,他並沒有放棄。他繼續努力,不斷改進自己的創業計劃,並尋找新的投資機會。
# 最終,李明成功地獲得了一筆投資,開始了自己的創業之路。他成立了一家科技公司,專註於開發新型軟件。在他的領導下,公司迅速發展起來,成為了一家成功的科技企業。
# 李明的成功並不是偶然的。他勤奮、堅韌、勇於冒險,不斷學習和改進自己。他的成功也證明了,只要努力奮鬥,任何人都有可能取得成功。

# 第三輪對話 3rd dialogue turn
response, history = model.chat(tokenizer, "給這個故事起一個標題", history=history)
print(response)
# 《奮鬥創業:一個年輕人的成功之路》

運行 Qwen-7B 同樣非常簡單。運行 Qwen-7B:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation import GenerationConfig

tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)

# 打開bf16精度,A100、H100、RTX3060、RTX3070等顯卡建議啟用以節省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True, bf16=True).eval()
# 打開fp16精度,V100、P100、T4等顯卡建議啟用以節省顯存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True, fp16=True).eval()
# 使用CPU進行推理,需要約32GB內存
# model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="cpu", trust_remote_code=True).eval()
# 默認使用自動模式,根據設備自動選擇精度
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen-7B", device_map="auto", trust_remote_code=True).eval()

# 可指定不同的生成長度、top_p等相關超參
model.generation_config = GenerationConfig.from_pretrained("Qwen/Qwen-7B", trust_remote_code=True)

inputs = tokenizer('蒙古國的首都是烏蘭巴托Ulaanbaatar)\n冰島的首都是雷克雅未克(Reykjavik)\n埃塞俄比亞的首都是', return_tensors='pt')
inputs = inputs.to('cuda:0')
pred = model.generate(**inputs)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
# 蒙古國的首都是烏蘭巴托(Ulaanbaatar)\n冰島的首都是雷克雅未克(Reykjavik)\n埃塞俄比亞的首都是亞的斯亞貝巴Addis Ababa)...

ModelScope

魔搭(ModelScope)是開源的模型即服務共享平台,為泛 AI 開發者提供靈活、易用、低成本的一站式模型服務產品。使用 ModelScope 同樣非常簡單,代碼如下所示:

import os
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
from modelscope import snapshot_download

model_id = 'QWen/qwen-7b-chat'
revision = 'v1.0.0'

model_dir = snapshot_download(model_id, revision)

pipe = pipeline(
task=Tasks.chat, model=model_dir, device_map='auto')
history = None

text = '浙江的省會在哪裡?'
results = pipe(text, history=history)
response, history = results['response'], results['history']
print(f'Response: {response}')
text = '它有什麼好玩的地方呢?'
results = pipe(text, history=history)
response, history = results['response'], results['history']
print(f'Response: {response}')

交互式 Demo

Qwen-7B 提供了一個簡單的交互式 Demo 示例,請查看cli_demo.py。當前模型已經支持流式輸出,用戶可通過輸入文字的方式和 Qwen-7B-Chat 交互,模型將流式輸出返回結果。

https://github.com/QwenLM/Qwen-7B/blob/main/cli_demo.py

傳送門

開源協議:Tongyi Qianwen LICENSE

開源地址:https://github.com/QwenLM/Qwen-7B

項目合集:https://github.com/RepositorySheet

科技分類資訊推薦

快手關停短劇小程序,背後有何深意 - 天天要聞

快手關停短劇小程序,背後有何深意

短劇圈突發大消息!新腕兒短劇社群通知顯示,快手將於 6 月 17 日關停短劇小程序業務,所有任務同步下架。經官方證實,這一決策引發行業熱議,背後實則藏着多重考量。政策高壓下,短劇行業正經歷強監管風暴。
全球最大沙電池投產:100兆瓦時系統減少70%二氧化碳排放 - 天天要聞

全球最大沙電池投產:100兆瓦時系統減少70%二氧化碳排放

該電池預計將使波爾奈寧市(Pornainen)的區域供暖排放減少近70%,每年減少約160噸二氧化碳當量的排放。一家能源公司在芬蘭的一個城鎮啟用了世界上首個工業規模的沙電池。該電池將利用多餘的可再生能源產生熱能,然後供應給當地的區域供暖網絡。該裝置由芬蘭初創公司極夜能源(Polar Night Energy)開發,據報道現已在波爾...
618倒計時!蘇寧易購家電3C迎來核心爆發 - 天天要聞

618倒計時!蘇寧易購家電3C迎來核心爆發

618大促進入最後衝刺階段,家電3C消費勢頭強勁。即日起至6月18日,蘇寧易購正式開啟618巔峰狂歡,在“國補廠補蘇寧補,不止5折”優惠基礎上,加碼推出200款爆款家電“無套路一口價”,價格做到歷史最低、行業最低。線上渠道同步開啟“618元搶空調、5折尖貨家電專場、1元搶生活百貨”等讓利活動。雙線聯動,讓消費者“買得更...
Rokid 上線全球第一個智能眼鏡支付 內置支付寶 - 天天要聞

Rokid 上線全球第一個智能眼鏡支付 內置支付寶

當你戴着智能眼鏡走進商店,挑選好心儀商品後,在收銀台“看一下”就能完成支付,這是什麼體驗?6月17日,Rokid 宣布實現全球第一個可支付的智能眼鏡,Rokid Glasses 內置支付寶“看一下支付”,方便用戶在忙碌或不便操作手機時可直接
京東CEO:京東外賣一線城市騎手人均月收入1.3萬元 - 天天要聞

京東CEO:京東外賣一線城市騎手人均月收入1.3萬元

【CNMO科技消息】6月17日,京東集團SEC副主席、京東集團CEO許冉在接受新浪科技等媒體採訪時透露,京東外賣業務上線三個月以來發展迅猛,全職騎手規模持續擴大,一線城市騎手人均月收入已接近1.3萬元。京東集團CEO許冉 許冉表示,京東外賣業務自上線以來,日單量已突破2500萬單,遠超管理層預期。這一成績的取得,得益於京東...
煙台競速新材料和低空經濟創新賽道 - 天天要聞

煙台競速新材料和低空經濟創新賽道

在黃渤海新區的創新版圖上,一場靜悄悄的產業革命正在上演。芳綸紙薄如蟬翼,卻能承受高壓電流的衝擊;大型無人機振翅騰空,托起噸級貨物直上雲霄。這兩個看似不相關的領域,正在這裡發生着奇妙的化學反應——當新材料為飛行器插上輕量化的翅膀,低空經濟又為
微信將迎史詩級更新! - 天天要聞

微信將迎史詩級更新!

近日有消息稱,微信正在優化聊天記錄備份的功能,支持U盤等多種存儲設備。對此,微信方面回應稱,正小範圍測試聊天記錄備份功能優化。
全球最大直徑靜安EUP豎井智慧車庫認籌啟動 - 天天要聞

全球最大直徑靜安EUP豎井智慧車庫認籌啟動

全球最大、上海首個智慧停車庫上海靜安大寧EUP豎井智慧車庫正式開啟認籌時間:6月21日15:00地點:中鐵十五局上海靜安大寧EUP豎井智慧車庫(廣延路1055號)精彩內容,智慧與樂趣並存活動分區設置滿足全家需求宣傳區:專業講解員通過展板和視頻,科普車庫、車輛相關知識,倡導安全和諧停車。演示區:專業人員不間斷演示停車場...