大概在兩天前,阿里做了一件大事兒。
就是開源了一個低配版的通義千問模型--通義千問-7B-Chat。
這應(yīng)該是國內(nèi)第一個大廠開源的大語言模型吧。
雖然是低配版,但是在各類測試里面都非常能打。
官方介紹:
Qwen-7B是基于Transformer的大語言模型, 在超大規(guī)模的預(yù)訓(xùn)練數(shù)據(jù)上進行訓(xùn)練得到。預(yù)訓(xùn)練數(shù)據(jù)類型多樣,覆蓋廣泛,包括大量網(wǎng)絡(luò)文本、專業(yè)書籍、代碼等。同時,在Qwen-7B的基礎(chǔ)上,我們使用對齊機制打造了基于大語言模型的AI助手Qwen-7B-Chat。本倉庫為Qwen-7B-Chat的倉庫。
同時官方也給出了很多測試結(jié)果。
比如中文評測。
在C-Eval驗證集上得分對比:
Model | Avg. Acc. |
LLaMA2-7B-Chat | 31.9 |
LLaMA2-13B-Chat | 40.6 |
Chinese-Alpaca-2-7B | 41.3 |
Chinese-Alpaca-Plus-13B | 43.3 |
Baichuan-13B-Chat | 50.4 |
ChatGLM2-6B-Chat | 50.7 |
InternLM-7B-Chat | 53.2 |
Qwen-7B-Chat | 54.2 |
如果單看這個數(shù)據(jù)。說“吊打”同級別羊駝模型一點不夸張吧。比起熱門的開源模型ChatGLM2也高出了不少。
除此之外還有:
英文測評(南玻王)
代碼測評(南玻王)
數(shù)學(xué)測評(南玻王)
長序列測評(南玻王)
工具使用能力測評
全方位碾壓同類70億參數(shù)模型,在即將開源的、用于評估工具使用能力的自建評測基準上,居然K·O了GPT-4 哈哈。
Model | Tool Selection (Acc.↑) | Tool Input (Rouge-L↑) | False Positive Error↓ |
GPT-4 | 95% | 0.90 | 15% |
GPT-3.5 | 85% | 0.88 | 75% |
Qwen-7B-Chat | 99% | 0.89 | 8.5% |
我也不太懂,沒研究過這個基準測試,反正就是看起來很厲害的樣子。
不管怎么樣,大廠開源的東西總不會太差。有可能真的是最好的小型中文大語言模型了。
阿里已經(jīng)亮出態(tài)度了,接下來壓力給到百度,訊飛,華為... 哈哈~~
既然阿里都開源了,那我們自然就笑納了,接下就在本機跑一個試試。
下面是我在Win11 RTX3060 12G 上完整的安裝記錄。玩過的可以跳過,沒玩過的可以當個參考。
我的安裝思路完全來自官網(wǎng)指引:
官方的安裝指引看起來非常簡單。只要安裝一下modelscope這個包,然后運行一段Python代碼就可以了。當然,這個世界上看起來簡單的東西,做起來往往都不那么簡單。一步一坑是常態(tài),踩過了,就簡單了。
常規(guī)流程
1.創(chuàng)建并激活虛擬環(huán)境。
我們還是用常用的MiniConda來創(chuàng)建一個虛擬的Python環(huán)境。
conda create -n models python=3.10.6
激活激活虛擬環(huán)境:
conda activate models
2. 安裝modescope基礎(chǔ)庫
pip install modelscope
3. 編寫Python代碼
不需要自己編寫啊,直接抄官方代碼。
創(chuàng)建一個test.py文件,然后將代碼粘貼到里面,Ctrl+S 保存代碼。
4.運行代碼
運行代碼也非常簡單。上面已經(jīng)激活了虛擬環(huán)境。然后用cd命令,進入到代碼所在目錄。然后用Python運行就可以了。
E:cd
E:\DEV\qwen
python test.py
運行代碼之后,會自動聯(lián)網(wǎng)下載一個14G的模型文件。
阿里畢竟是做服務(wù)器的,我又在杭州,這速度真的是真是相當給力。不用魔法,就能飛起,這是搞國外項目,永遠享受不到的待遇啊。
按正常的節(jié)奏來說,下載完大模型,然后運行代碼。通義千問大模型就會乖乖的回答我預(yù)設(shè)的兩個問題了。
但是...不可能這么順利。
其實還有很多包還沒裝完,我就按我出錯的順序和解決方法,一個個來記錄吧。
踩坑記錄
1.缺少transformers包
提示信息如下:
ImportError:modelscope.pipelines.nlp.text_generation_pipeline requires the transformers library but it was not found in your environment. You can install it with pip:pip install transformers
解決方法很簡答,運行提示中的命令即可:
pip install transformers
2. 缺少tiktoken包
提示信息如下:
modelscope.models.nlp.qwen.tokenization requires the tiktoken library but it was not found in your environment. You can install it with pip:
pip install tiktoken
解決方法:
pip install tiktoken
3.缺少accelerate包
提示信息如下:
ImportError: QWenChatPipeline: QWenForTextGeneration: Using low_cpu_mem_usage=True or a device_map requires Accelerate: pip install accelerate
解決方法:
pip install accelerate
4.爆顯存了OutOfMemory
終于所有包都裝完了。
再次運行test.py
軟件有條不紊的運行,好像有戲。可惜,最終還是卡在硬件配置上了。
見到了熟悉的OutOfMemory。
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 1.16 GiB (GPU 0; 12.00 GiB total capacity; 9.99 GiB already allocated; 200.79 MiB free; 9.99 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
在大語言模型面前,12G顯存,啥都不是。
查了一下資料,BF16需要16.2G顯存才可以運行...
Precision | MMLU | Memory |
BF16 | 56.7 | 16.2G |
Int8 | 52.8 | 10.1G |
NF4 | 48.9 | 7.4G |
遇到這種情況,沒啥辦法,只能用量化。官方也提供了4bit量化的代碼,直接拷貝過來,搞了一個test2.py文件。
5. 運行4bit量化代碼出錯
錯誤提示如下:
importlib.metadata.PackageNotFoundError: No package metadata was found for bitsandbytes
大概就是量化的時候需要用到一個叫bitsandbytes的依賴包。
那就安裝一下唄:
pip install bitsandbytes
安裝非常簡單快速,沒有任何問題。
6. 量化包不支持Windows
安裝完依賴之后運行test2.py 很快就收到了如下錯誤:
CUDA Setup failed despite GPU being available. Please run the following command to get more information:
python -m bitsandbytes
Inspect the output of the command and see if you can locate CUDA libraries. You might need to add them
to your LD_LIBRARY_PATH. If you suspect a bug, please take the information from python -m bitsandbytes
and open an issue at: https://github.com/TimDettmers/bitsandbytes/issues
這句話對于對于一個英語只過了4級的人有點難度啊。什么叫盡管有可用的GPU但是CUDA設(shè)置失敗.... 你這句式是不是等價于,你有一個女朋友,但是不能用!
查了一下資料,bitsandbytes庫目前僅支持Linux發(fā)行版,Windows目前不受支持。。。
還好上面的資料已經(jīng)過時了,其實已經(jīng)有大佬做了Windows版本。
7. Windows版量化包版本太低
為了解決上面一個的問題,找到了一個Windows版本的依賴包。
安裝命令如下:
pip install git+https://github.com/Keith-Hon/bitsandbytes-windows.git
安裝完成之后,本以為完事大吉了。
還是太年輕...
錯誤提示如下:
ValueError: 4 bit quantization requires bitsandbytes>=0.39.0 - please upgrade your bitsandbytes version
這個問題出在兩個方面,一個是這個包好像只支持8bit量化,而我代碼里有用的是4bit。另外一個問題就是錯誤日志中提到的版本太低。
沒辦法,又是一頓亂找,狂開N個網(wǎng)頁。
最后最終找到了可以用的版本。
安裝命令:
python -m pip install bitsandbytes --prefer-binary --extra-index-url=https://jllllll.github.io/bitsandbytes-windows-webui
終于安裝成功0.41版本
8 缺少transformers_stream_generator包
習(xí)慣了,習(xí)慣了。上面的都搞完了,又出現(xiàn)缺包提示。
ImportError: This modeling file requires the following packages that were not found in your environment: transformers_stream_generator. Run `pip install transformers_stream_generator`
解決方法:
pip install transformers_stream_generator
9. Numpy不可用。
所有包裝完之后,運行test2.py,眼看這要成功了,又跳出一個“Numpy is not available” 。
Traceback (most recent call last):
File "e:\DEV\qwen\test2.py", line 12, in <module>
response, history = model.chat(tokenizer, "你好", history=None)
File "C:\Users\tony/.cache\huggingface\modules\transformers_modules\Qwen-7B-Chat\modeling_qwen.py", line 1003, in chat
response = decode_tokens(
File "C:\Users\tony/.cache\huggingface\modules\transformers_modules\Qwen-7B-Chat\qwen_generation_utils.py", line 269, in decode_tokens
tokens = tokens.cpu().numpy().tolist()
RuntimeError: Numpy is not available
用pip list 查看了一下包列表,明明有這個包,怎么就不能用呢?
不管了,直接更新有一把看看。
把Numpy升級到最新版 :
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy --upgrade
安裝過程出現(xiàn)紅色提示:
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
modelscope 1.8.1 requires numpy<=1.22.0, but you have numpy 1.25.2 which is incompatible.
Successfully installed numpy-1.25.2
內(nèi)心涼了一半。
提示里面說modelscope需要的是1.22, 但是我裝了1.25.2... 最怕就是這種版本問題了...
我也不知道該怎么排查,想著就死馬當活馬醫(yī)了。
最后...居然成功了,這是~~什么道理~~!
通過日志可以看到,AI已經(jīng)做出了回答。答案也正確且通順。幸福來的太突然...
到這里,我就成功的在我的Rtx3060 12G上面把“通義千問”給跑起來了。理論上所有的8G N卡也能跑起來!
成功后,心態(tài)就平穩(wěn)很多了,半天功夫沒白費,美滋滋。
趁熱打鐵,抽個幾分鐘來測試一下運行速度。
start:2023-08-05 11:06:54.399781;
loaded:2023-08-05 11:09:05.583479;
hello:2023-08-05 11:09:21.236158;
where:2023-08-05 11:09:22.543629;
goood:2023-08-05 11:09:28.565053
加載模型用了好幾分鐘,回答問題大概只用了幾秒鐘。還不錯啊,這速度基本能用了。
按上面的方式運行代碼,AI只能回答預(yù)設(shè)的幾個問題。這樣搞起來就有點不爽,每次提問,還得改源代碼,重新加載模型...
所以我又花了幾分鐘,寫了一個WebUI。
界面如下:
寫這個界面和功能,大概只用了23行Python代碼。Gradio這東西用起來確實爽,怪不得那么多開源項目都用這個來做界面。
心滿意足了?。?!
有沒有看到這里,還是一頭霧水的人?哈哈!
那么我就提供一個無需配置,無需登錄,直接可以體驗的網(wǎng)址把:
https://modelscope.cn/studios/qwen/Qwen-7B-Chat-Demo/summary
通義千問官方主頁:
https://modelscope.cn/models/qwen/Qwen-7B-Chat/summary
有興趣的可以去玩一玩!文章來源:http://www.zghlxwxcb.cn/news/detail-637252.html
收工!文章來源地址http://www.zghlxwxcb.cn/news/detail-637252.html
到了這里,關(guān)于玩一玩通義千問Qwen開源版,Win11 RTX3060本地安裝記錄!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!