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

科技分類資訊推薦

最暢銷國產高端旗艦易主!華為Mate 70系列超越小米15系列 - 天天要聞

最暢銷國產高端旗艦易主!華為Mate 70系列超越小米15系列

快科技7月11日消息,博主數碼閑聊站今天公布了截止W27/7月6日的國產四大旗艦系列累積激活銷量。數據顯示,華為Mate 70系列銷量達到589.6萬,反超小米15系列,成為最暢銷的國產旗艦系列。小米15系列銷量則是以586.1萬位列第二,此前曾長期霸榜第一。這兩大旗艦目前是國產頂樑柱,其他兩款差距被明顯拉大,vivo X200系列409....
影馳出擊BW2025:從顯卡編年史到AI未來,一場科技×二次元的夢幻聯動 - 天天要聞

影馳出擊BW2025:從顯卡編年史到AI未來,一場科技×二次元的夢幻聯動

玩家和二次元愛好者們一年一度的盛典終於來了。2025年7月11日至13日, Bilibili World(簡稱BW)在上海國家會展中心盛大開幕。在這場融合ACGN文化與科技數碼潮流的盛會中,影馳(GALAX)攜旗下全系列產品震撼登場。以極具科技感的展台設計、豐富的互動活動和強勁的產品陣列,為參加BW的玩家打造了一個吸引力拉滿的科技數碼...
從遊戲到生產力,藍戟攜Intel全系顯卡亮相Bilibili World 2025 - 天天要聞

從遊戲到生產力,藍戟攜Intel全系顯卡亮相Bilibili World 2025

Bilibili World 2025如期而至,作為一年中二次元和科技玩家的頂級盛會,這次展會依舊群星璀璨。不僅有眾多遊戲廠商,許多數碼硬件廠商也來湊熱鬧,而在此次眾多的硬件廠商中,藍戟(GUNNIR)作為Intel顯卡中國大陸核心合作夥伴,憑藉著Intel消費級與企業級顯卡的雙線陣容,以及別出心裁的「遊戲集章」互動機制,成功成為BW...
地平線總裁陳黎明:高階智能輔助駕駛的拐點已經到來,將會快速增長 - 天天要聞

地平線總裁陳黎明:高階智能輔助駕駛的拐點已經到來,將會快速增長

紅星資本局7月11日消息,今日,地平線(09660.HK)總裁陳黎明在2025中國汽車論壇上表示,高階智能輔助駕駛的拐點已經到來,後面會有比較快速的增長。對此,他表示依據有三:第一,智能駕駛是我國智能網聯新能源汽車發展戰略的一個重要組成部分,政府工作報告對智能汽車的發展做出了規劃和行動方向。在電動化上,地平線可以...
洛斐發佈Flow2矮軸三模無線機械鍵盤 - 天天要聞

洛斐發佈Flow2矮軸三模無線機械鍵盤

沒想到,洛斐Flow系列這麼快就進入迭代了,發佈全新Flow2。引入了全新的設計語言,依然是全鋁金屬外殼機身,邊框像蘋果手機那樣的直板機身。其中,右側部分加長,側面則是增加了Touch Bar觸控滑動條,支持調節燈光亮度或系統音量。另一方面,鍵盤背面增加了同樣極具辨識度的撐腳模塊,支持兩種角度調節。 同時還全新升級了...
大爺寫《我的母親》火爆全網!視頻發佈者最新發聲 - 天天要聞

大爺寫《我的母親》火爆全網!視頻發佈者最新發聲

連日來,一段關於大爺挑戰寫作1957年高考同題作文《我的母親》的視頻火爆全網。不少網民表示,文字質樸,催人淚下,深深被打動。7月11日,大皖新聞記者聯繫上了視頻發佈者連文傑。對方表示,視頻中展示的作文內容由大爺獨立寫作,產生的版權收入也全給大爺。大爺寫作文視頻走紅網絡。大爺寫的作文在網上爆火大皖新聞記者注...