Qwen2.5:13個新模型來襲!開源通用、編碼、數學模型全解讀,72B超越Llama 405B - 本地安裝測試 精華
Qwen 發布了 13 個新模型,這些新模型被稱為 Qwen 2.5。這次發布有三種類型的模型:通用任務模型、編碼模型和數學模型。通用任務模型有七種尺寸:0.5B 模型、1.5B 模型、3B 模型、7B 模型、14B 模型、32B 模型和 72B 模型。
編碼模型有 1.5B 和 7B 尺寸,未來還會推出 32B 版本,但目前尚未提供。與此同時,數學模型有 1.5B、7B 和 72B 尺寸。這些模型都是開源的,并根據 Apache 2.0 許可發布,除了 3B 和 72B 版本。
他們還發布了 Qwen 2.5 Plus 和 Turbo 版本,這些是閉源的,僅通過他們的 API 提供,表現非常好,一次性發布這么多模型真是太酷了。
無論如何,讓我們仔細看看這些模型。這些新模型是基于最多 18 萬億個 tokens 訓練的,而編碼模型則是基于大約 5.5 萬億個與代碼相關的數據進行訓練的。
除此之外,這些模型還支持 Chain of Thought(思維鏈)和其他功能,這也很不錯。總體上來說,這些模型比 Qwen 2 表現得更好,Qwen 2 已經給人留下了深刻印象,而這些新模型更是進一步提升。
他們聲稱這些新模型具有更多的知識,并在編碼和數學方面有了顯著改進。這些新模型在指令遵循、生成長文本、理解結構化數據和生成結構化輸出(特別是 JSON 格式)方面取得了顯著的進步。
這些新模型支持的上下文長度可以達到 128K tokens,且能生成大約 8K tokens 的輸出,這非常不錯。這些新模型還保留了對 29 種語言的多語言支持。
此外,期待已久的 Qwen 2.5 編碼模型終于來了,上一個編碼模型 Qwen 1.5 是大約一年前發布的,而現在他們發布了新版本,該版本基于 5.5 萬億個與代碼相關的數據進行訓練,使得更小的編碼特定模型能夠在編碼評估基準上與更大的語言模型展開競爭。
現在讓我們來看看基準測試結果。
72B 模型在幾乎所有基準測試中都超過了之前的 Qwen 2 模型和 Llama 3.1,甚至在一些基準中超過了更高參數的模型,這非常令人印象深刻。
他們還發布了一個 Qwen Plus 模型,
只能通過他們的 API 使用,并且不公開發布,但在與閉源模型的比較中表現非常出色。
除此之外,Qwen 2.5 32B 模型在與其他開源模型(如 Gemma)以及閉源模型 GPT 4o Mini 的比較中也展現了令人印象深刻的表現,這也非常酷。
它僅在 ieval Arena Hard 和 aLine Bench 上稍遜一籌。18B 模型也表現優異,在幾乎所有基準測試中都非常接近 GPT 40 Mini,看到這一點真的很酷。
他們還分享了一張圖表,顯示了模型的 MMLU 分數隨著模型尺寸的縮小而提升。
3B 模型現在的 MMLU 分數與之前的 72B 模型相似,看到這一點非常令人驚喜。此外,所有這些模型現在都支持生成最多 8K tokens 的長文本,并且能夠生成更好的結構化輸出。
現在讓我們談談 Qwen 2.5 的編碼模型。
根據他們的說法,Qwen 2.5 編碼模型現在是最好的編碼模型之一。7B 編碼模型在幾乎所有基準測試中都擊敗了其他模型,包括 Cod Astral 和 Deep Seek V2 Coder Light,而這些模型的尺寸是 7B 模型的三倍,看到這一點真是令人驚嘆。
如果我們具體看看基準測試結果,Human Eval 基準測試的表現相當出色,而 MBPP 也展現了相似的結果,其他基準測試也大體相似,除了 BigCode Bench,Deep Seek 的得分略高一些,但 Qwen 也非常接近,指令調優的模型也顯示了類似的結果,這很棒。
他們還用多種編程語言對其進行了測試,Qwen 在大多數語言中都表現出色,看到這一點非常驚人。
除此之外,在 CRUXEval
它還在數學推理基準測試中擊敗了 Deep Seek,在基本功能方面也展現了相似的結果,這同樣令人印象深刻。
目前他們的編碼模型陣容包括 1.5B 和 7B 模型,但未來他們計劃推出 32B 模型,令人期待。
現在我們聊聊數學模型,因為它有一些有趣的功能。數學模型現在有 Chain of Thought(思維鏈),這意味著它可以像 o1 一樣使用逐步推理來更有效地解決復雜問題。
他們建議不要將這一系列模型用于其他任務,因為它是為特定用例進行了微調的。他們已經將其與同類范圍內的其他模型進行了測試,通常表現優于其他模型,得益于它的新推理方法。
他們還添加了 Python 解釋器支持,有時會生成代碼來更好地解決問題并找到答案,這非常酷。
▲ https://github.com/QwenLM/Qwen-Agent
我不是數學天才,但如果你是,你可以嘗試一下。
所以這些就是關于這些模型的基本信息。這些模型現在可以在 Ollama 上本地使用,他們還在 Hugging Face 上推出了一個空間供大家試用。
我不會在這篇文章中測試這些模型,因為測試這么多模型文章會很長。我會用一篇單獨文章來測試,盡情期待。
huggingface 部署
快速創建一個虛擬環境,我將它命名為 Qwen。
接下來我要安裝所有的前置需求,包括 Torch 和 Transformers。
現在我們要做的是安裝這個系列中的一個小型模型,它只有 5 億參數。
它是 Qwen 2.5 的一個因果語言模型(Causal Language Models),參數總數為 5 億 49 百萬,其中 36 百萬參數是不參與訓練的。
它有 24 層,并且使用了 GQA(分組查詢注意力)。它的上下文窗口為 32K,也就是說,它一次可以處理 32K 大小的數據,并且能夠一次生成 8000 個 token,即使是這個小模型,真的非常令人印象深刻。
讓我啟動 Jupyter Notebook,這樣我們可以在瀏覽器環境中下載并測試這個模型。
讓我導入相關的庫,然后下載這個新模型及其分詞器。
你可以看到這個模型只有 988MB,等待下載完成。
模型下載完了,讓我們進行一些推理測試。
在第一個測試中,我問了一個經典的問題:“草莓里面有多少個r?” 大多數模型會回答錯誤。
但是我們來試試看。這個過程非常標準,我們提供提示,指定系統和用戶角色,使用分詞器將文本轉換為 token,生成輸出,然后解碼并打印響應。
看到了嗎?這個小模型竟然回答正確了!
接下來我做了另一個測試,要求模型寫 10 個以“美麗”結尾的句子。
好吧,這一次模型失敗了,它沒有做到。
我們知道它可以一次生成 8000 個 token,所以接下來我讓它寫一篇關于數據集準備的研究論文,嘗試提出一些新的想法,并盡可能詳細地描述。這里我設置了 8000 個 token 的生成上限。
好的,論文已經生成了一部分。我檢查了我的 GPU 使用情況,顯存消耗大約是 1.3GB,表現不錯。雖然它沒有生成完整的 8000 字論文,但寫的內容還是相當不錯的。
vLMM部署
建議使用最新版本的 vLLM 來構建兼容 OpenAI 的 API 服務,支持工具使用。以下是使用聊天模型啟動服務器的步驟,以 ??Qwen2.5-7B-Instruct?
? 為例:
vllm serve Qwen/Qwen2.5-7B-Instruct
啟動服務器后,你可以通過如下的聊天 API 與模型進行交互:
curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "Qwen/Qwen2.5-7B-Instruct",
"messages": [
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"role": "user", "content": "Tell me something about large language models."}
],
"temperature": 0.7,
"top_p": 0.8,
"repetition_penalty": 1.05,
"max_tokens": 512 }'
Python 客戶端示例
使用 OpenAI Python 客戶端調用 vLLM API 服務。您可以按照以下步驟配置并發送聊天請求:
from openai import OpenAI
# 設置 OpenAI 的 API 密鑰和 API 基地址,使用 vLLM 提供的 API 服務
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model="Qwen2.5-7B-Instruct",
messages=[
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."},
{"role": "user", "content": "Tell me something about large language models."},
],
temperature=0.7,
top_p=0.8,
max_tokens=512,
extra_body={
"repetition_penalty": 1.05,
},
)
print("Chat response:", chat_response)
Qwen2.5 博客后面的這個歸納還挺有用的:
本文轉載自 ??AI進修生??,作者: Aitrainee
