阿里雲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

科技分類資訊推薦

亞馬遜CEO告知員工:未來幾年裡 你們中的一些人會被AI搶走飯碗 - 天天要聞

亞馬遜CEO告知員工:未來幾年裡 你們中的一些人會被AI搶走飯碗

財聯社6月18日訊(編輯 史正丞)當地時間周二,全球最大電商和雲計算平台亞馬遜的CEO安迪·賈西公開撰文,談論了他對生成式AI的一些思考。(來源:亞馬遜官網)對於「吃瓜群眾」而言,這封信最特別的一點,是科技巨頭CEO直白地表示部分員工可能會因為AI失去工作。賈西表示,隨着公司推出更多生成式AI和智能代理,工作方式也...
國泰重返全球最佳航空三甲!蟬聯最佳經濟艙,再獲最佳機上娛樂 - 天天要聞

國泰重返全球最佳航空三甲!蟬聯最佳經濟艙,再獲最佳機上娛樂

國泰航空於享負盛名的2025年Skytrax《全球航空公司大獎》中榮獲「全球最佳航空公司」第三名,同時更贏得兩項傑出榮譽:連續兩年蟬聯「全球最佳經濟艙航空公司」以及在三年內第二次獲頒「全球最佳機上娛樂」殊榮。行政總裁林紹波表示:「國泰航空晉身『全球最佳航空公司『三甲,較去年躍升兩位,以及再次被評選為』全球最佳...
REDMI K80至尊版配備7410mAh大電池 小米手機史上最強 - 天天要聞

REDMI K80至尊版配備7410mAh大電池 小米手機史上最強

站長之家(ChinaZ.com) 6月17日 消息:今日,REDMI官方微博透露了REDMI K80至尊版的諸多關鍵信息。在續航方面,REDMI K80至尊版表現堪稱驚艷。它配備了一塊7410mAh的大容量電池,這一配置在小米手機中堪稱史上最強。同時,該機還搭配了微架構級性能調優技術,有效降低了功耗,讓用戶能夠持久暢玩。其DOU續航成績達到了2.26天...
特朗普正式進軍手機市場 T1 Phone手機發佈: 售價約3582元 - 天天要聞

特朗普正式進軍手機市場 T1 Phone手機發佈: 售價約3582元

站長之家(ChinaZ.com)6月17日 消息:特朗普集團正式宣布進軍移動通信市場,推出自有品牌移動網絡服務特朗普移動(Trump Mobile),並同步發佈旗下首款智能手機T1Phone。T1Phone將於9月正式上市,該機將在美國本土製造,售價定為499美元,摺合人民幣約3582元。消費者若想預購,需先支付100美元的首付。在外觀設計上,T1Pho..
印度民航總局:未發現印航波音 787 機隊存在重大安全問題 - 天天要聞

印度民航總局:未發現印航波音 787 機隊存在重大安全問題

IT之家 6 月 18 日消息,當地時間 12 日,印度古吉拉特邦艾哈邁達巴德機場附近發生墜機事故。目前墜機事故遇難人數已升至 279 人,僅一名乘客倖存。遇難者包括 241 名機上人員和 38 名地面人員。據央視新聞,當地時間 17 日晚,印度民航總局發表了審查印度航空和印度航空快運運營情況的公告。公告稱,近期對印度航空波音 7...
REDMI K80 至尊版新預熱,豪華性能旗艦 - 天天要聞

REDMI K80 至尊版新預熱,豪華性能旗艦

目前,REDMI紅米手機已經確認,K80 至尊版、K Pad下平板將在本月發佈。隨着發佈時間的接近,REDMI官方也陸續公布了不少新機細節信息來進行預熱。今天,REDMI品牌總經理王騰重點介紹了REDMI K80 至尊版,並稱其為「豪華性能
消息稱微軟下一代Xbox主機為定製PC,遊戲會向下兼容 - 天天要聞

消息稱微軟下一代Xbox主機為定製PC,遊戲會向下兼容

對於微軟下一代Xbox主機的具體形態,近期出現了多種猜測。其中有消息源表示,下一代 Xbox 主機可能是經過重新包裝的 PC,而非採用定製芯片的傳統主機。不過無論何種情況,最新消息稱新主機都將原生支持運行 Xbox 360 及更新主機的遊戲
飛利浦 Hue Play 洗牆燈發佈:1035 流明,顯色指數大於 80 - 天天要聞

飛利浦 Hue Play 洗牆燈發佈:1035 流明,顯色指數大於 80

IT之家 6 月 17 日消息,飛利浦推出 Hue Play 洗牆燈,作為提升家庭影音娛樂體驗設計的氛圍燈具,產品能夠將多彩光效投射到牆面上。Hue Play 洗牆燈採用 ColorCast 技術,可呈現高度飽和的色彩漸變效果,其 120 度廣角光束可覆蓋大面積牆面。新品亮度為 1035 流明,飛利浦宣稱該數值是普通洗牆燈亮度的兩倍。產品支持 2000...