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

科技分類資訊推薦

微信將迎史詩級更新! - 天天要聞

微信將迎史詩級更新!

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

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

全球最大、上海首個智慧停車庫上海靜安大寧EUP豎井智慧車庫正式開啟認籌時間:6月21日15:00地點:中鐵十五局上海靜安大寧EUP豎井智慧車庫(廣延路1055號)精彩內容,智慧與樂趣並存活動分區設置滿足全家需求宣傳區:專業講解員通過展板和視頻,科普車庫、車輛相關知識,倡導安全和諧停車。演示區:專業人員不間斷演示停車場...
喜馬拉雅忙碌4年身價跌逾1/3 這家在線音頻獨角獸為何「折價賣」 - 天天要聞

喜馬拉雅忙碌4年身價跌逾1/3 這家在線音頻獨角獸為何「折價賣」

羊城晚報全媒體記者 王丹陽俗話說,世上武功,唯快不破。但在互聯網科技的浪潮中,走得快遠不如走得穩。對一路創業、殺出重圍,終於坐穩在線音頻賽道市場佔有率第一的喜馬拉雅來說,事實也並不如此。近日,一紙公告讓喜馬拉雅被放在聚光燈下。騰訊音樂娛樂集
亞馬遜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...