首先先說,這篇文章有點長,紀錄安裝過程中的各種失敗。
最近AI實在太火了,昨天在gitHub看到微軟推出microsoft/visual-chatgpt 就想來試試看,也不知道自己弱弱的12GB顯卡是否跑得動
根據網上的說法低顯卡也是跑得動的。(實測後也確實可以)
環境:
作業系統:Windows 10
顯卡: NV RTX 3060 12GB
安裝流程
安裝anaconda
第一步去下載Anaconda,為什麼要用這個,不直接在cmd用pip。主要用這個是因為可以用它建立多種不同版本的python跟套件,這樣可以避免不同專案要求的python版本跟其他套件版本不同造成的衝突。
下載 Anaconda ,下載以後就照一般安裝就可以(也就是打開安裝檔,一直下一步)
安裝好以後,可以在工具列的搜尋,輸入anaconda,這邊我們用Anaconda Prompt(anaconda3)這個
解說:
Anaconda Prompt(anaconda3) : 類似CMD
Anaconda Navigator(anaconda3) : 是一個可視化管理工具,可以查看我們建立的anaconda環境跟這些環境裝了什麼版本的套件
打開後,長這樣,基本上跟CMD差不多,就差在可以使用conda指令,切換各種環境
不過它有個奇怪的地方,就是切換目錄沒法直接 cd 指定的路徑 ,解決方式要先一路回到c槽根目錄才能切到其他地方
可以參考
切換目錄到你的專案位置,這邊假設專案放在 P:\project\visual-chatgpt
#切換到專案目錄 #要先切換到上一層 (base) C:\WINDOWS\system32>cd .. #再切到上一層 (base) C:\Windows>cd .. #跳去其它槽 (base) C:\>P: #切換到指定目錄 (base) P:\>cd P:\project\visual-chatgpt #成功切換 (base) P:\project\visual-chatgpt>
接下來照著官方指示
#這邊就不演示git的安裝流程了 # clone the repo 用git clone這個專案(直接從github下載也是可以) git clone https://github.com/microsoft/visual-chatgpt.git # create a new environment 建立新環境(第一次安裝時需要) 名稱叫做 visgpt(可以自行改名) conda create -n visgpt python=3.8 # activate the new environment(下次進入,就直接用這個載入環境,不用重新建立新環境) conda activate visgpt # prepare the basic environments (裝requirements.txt內所需套件) pip install -r requirements.txt # prepare your private OpenAI key (for Linux) 這個Linux才需要,這邊以windows為例,所以這個略過 export OPENAI_API_KEY={Your_Private_Openai_Key} # prepare your private OpenAI key (for Windows)(輸入你的OpenAI key) # 可以到https://platform.openai.com/ 註冊帳號 產生API SECRET KEY set OPENAI_API_KEY=sk-.................. # Advice for CPU Users (這個是給只用CPU跑的,本次主要用GPU跑,所以沒試過這個) python visual_chatgpt.py --load ImageCaptioning_cpu,Text2Image_cpu # Advice for GPU (GPU用這個指令) (本次主要用這個指令) python visual_chatgpt.py --load "ImageCaptioning_cuda:0,Text2Image_cuda:0" # Advice for 4 Tesla V100 32GB (假如你的顯卡超級威,可以用這個,跟上面的差異,估計是載入比較多?) python visual_chatgpt.py --load "ImageCaptioning_cuda:0,ImageEditing_cuda:0, Text2Image_cuda:1,Image2Canny_cpu,CannyText2Image_cuda:1, Image2Depth_cpu,DepthText2Image_cuda:1,VisualQuestionAnswering_cuda:2, InstructPix2Pix_cuda:2,Image2Scribble_cpu,ScribbleText2Image_cuda:2, Image2Seg_cpu,SegText2Image_cuda:2,Image2Pose_cpu,PoseText2Image_cuda:2, Image2Hed_cpu,HedText2Image_cuda:3,Image2Normal_cpu, NormalText2Image_cuda:3,Image2Line_cpu,LineText2Image_cuda:3"
假如一切都很順利的話,執行這個,就可以用了
python visual_chatgpt.py --load "ImageCaptioning_cuda:0,Text2Image_cuda:0"
但通常不會這麼順利,下面開始說說我遇到的問題,以及解決方式。
主要會遇到的問題是 AssertionError: Torch not compiled with CUDA enabled
跟你說Torch沒法用CUDA,主要原因是沒裝CUDA。所以我就跑去下載了最新的CUDA並安裝了(千萬不要學我這樣)
通常最新版的CUDA都因為太新了,根本都不支援。像是
conda install pytorch torchvision torchaudio cudatoolkit=12.1 -c pytorch
會出現PackagesNotFoundError: The following packages are not available from current channels:- cudatoolkit=12.1
上面的錯誤是在說,anaconda 找不到這個版本的包
後來,我在這個站查詢,上面寫Conda可以使用CUDA11.7的版本(以目前來說)
https://pytorch.org/get-started/locally/
使用這個仍然會寫找不到這個包
conda install pytorch torchvision torchaudio cudatoolkit=11.7 -c pytorch
改用這個,發現可以跑,但跑了好幾十分鐘後,又出現跟原本一樣的問題 AssertionError: Torch not compiled with CUDA enabled
conda install pytorch torchvision torchaudio cudatoolkit=11.7 -c pytorch -c conda-forge
(題外話,安裝CUDA,記得要先去安裝Visual Studio,說這樣才能發揮CUDA全部實力 ,CUDA11.7似乎要用Visual Studio2022,但更舊的要用Visual Studio2019)
後來我去看了一下 requirements.txt 這個裡面的套件清單,裡面是使用
pytorch==1.12.1
torchvision==0.13.1
torchaudio==0.12.1
到這個網站查了一下
1.12.1版對應11.6 或 11.3版,我就先嘗試了11.6版
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
但還是不行,只好再嘗試11.3版
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
仍然不行....,後來寫了一個小程式判斷torch是否能用cuda
#t.py import torch print(torch.__version__) print(torch.cuda.is_available())
執行的結果是false,猜測是conda裝的pytorch是CPU版的,所以裝什麼版本的CUDA都會出錯(已經裝了3~4個不同版本的CUDA...)
但實在找不到用conda的pytorch GPU版本,後來網上查了一波
#網路上說conda只會裝CPU版的pytorch,可以用pip裝看看
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio===0.12.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
總算,裝了這個,再次檢查torch.cuda.is_available()
,有顯示true了
接著,再執行,就順利跑過了。(會下載一些檔案,等它一下)
python visual_chatgpt.py --load "ImageCaptioning_cuda:0,Text2Image_cuda:0"
成功的畫面,如下圖,會有一個Running on local URL : http://0.0.0.0:7868
到瀏覽器輸入, http://localhost:7868 就能開始使用了
小提示:
終端中運行 nvcc --version 查找 CUDA 版本
輸入 nvidia-smi 可以查看驅動的版本
實測起來,nvidia-smi 會顯示正在用新的驅動(我這邊一開始裝了12.1,所以會顯示12.1),我同時也裝了11.3,這邊還是會寫12.1
但只要nvcc --version 顯示的是正確的 11.3版就OK了,不必管nvidia-smi寫的版本。(據網上說法是驅動跟使用的API可以分開來用)
上面的反覆安裝CUDA,重開機了3次,共花費了5個多小時,總算將它部屬起來了。
不過還是有一些疑問,像是上面要求要輸入openai的key,難道它會算api額度嗎?(是需要付費的?)查了老半天沒看到說明
實測
一開始,我跟它說「你好」,它很官腔的回覆了
接著,跟他說「畫一隻貓給我」,確實給我一張貓的圖
接著,跟它說「我要黑貓,可愛一點的」,也確實畫了一隻黑貓給我
到這邊為止,我都覺得還行。但後面我上傳了一張圖片,它寫收到(Received),我要它說它看到了什麼
結果它說看到了Windows XP7 ,這是什麼鬼...
後來我還傳了一些圖其它有文字的圖,基本上它都認不出來,全都是在亂回答
又嘗試叫它寫一些文案,寫出來的程度普通....
對比使用chatGPT (model GPT3.5)
使用chatGPT (model GPT-4)
體驗下來,覺得它的回答能力,大概等同於openai當中的Ada或者是Curie等級的回覆,只有GPT3的水準,沒有GPT3.5,更別說GPT4了
它就像是一個搭載了chatGPT3 + 一個陽春版的stable diffusion 的融合版本,主要就是讓人看看,未來的走向,還沒辦法真的拿來用
實測起來bug挺多的,隨便說個幾句就遇到超過最大token4097,得全部清掉內容才能用
感覺上真的會消耗api token,到openai看使用額度,確實會使用token還耗費的很兇,才產生6~7張圖,問大概15次,總共花費了$1.75美金
之前串gpt-3.5-turbo api問了大概20多次,也才消耗$0.2美金左右
看來還是乖乖用chatGPT或者是gpt-3.5-turbo api 在搭配stable diffusion 還比較划算
好吧~ 感覺花了5個多小時,結果沒想像中的厲害,也可能是load的模型太少,或者是對中文的能力有限,有空再來試試看
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/microsoft-visual-chatgpt-win10
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記