首先先說,這篇文章有點長,紀錄安裝過程中的各種失敗。

最近AI實在太火了,昨天在gitHub看到微軟推出microsoft/visual-chatgpt 就想來試試看,也不知道自己弱弱的12GB顯卡是否跑得動
根據網上的說法低顯卡也是跑得動的。(實測後也確實可以) 


環境:

作業系統:Windows 10

顯卡: NV RTX 3060 12GB

安裝流程

安裝anaconda

第一步去下載Anaconda,為什麼要用這個,不直接在cmd用pip。主要用這個是因為可以用它建立多種不同版本的python跟套件,這樣可以避免不同專案要求的python版本跟其他套件版本不同造成的衝突。


下載 Anaconda ,下載以後就照一般安裝就可以(也就是打開安裝檔,一直下一步)

https://www.anaconda.com/products/distribution

安裝好以後,可以在工具列的搜尋,輸入anaconda,這邊我們用Anaconda Prompt(anaconda3)這個

解說:

Anaconda Prompt(anaconda3) : 類似CMD
Anaconda Navigator(anaconda3) : 是一個可視化管理工具,可以查看我們建立的anaconda環境跟這些環境裝了什麼版本的套件

SS.PNG



打開後,長這樣,基本上跟CMD差不多,就差在可以使用conda指令,切換各種環境

不過它有個奇怪的地方,就是切換目錄沒法直接 cd 指定的路徑 ,解決方式要先一路回到c槽根目錄才能切到其他地方

可以參考

Anaconda Prompt(Anaconda3)切換目錄

666.PNG

切換目錄到你的專案位置,這邊假設專案放在 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>

接下來照著官方指示

https://github.com/microsoft/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

到這個網站查了一下

https://pytorch.org/get-started/previous-versions/

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 就能開始使用了

667.PNG


小提示:

終端中運行 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額度嗎?(是需要付費的?)查了老半天沒看到說明


實測

一開始,我跟它說「你好」,它很官腔的回覆了

接著,跟他說「畫一隻貓給我」,確實給我一張貓的圖

668.PNG

接著,跟它說「我要黑貓,可愛一點的」,也確實畫了一隻黑貓給我

669.PNG

到這邊為止,我都覺得還行。但後面我上傳了一張圖片,它寫收到(Received),我要它說它看到了什麼

結果它說看到了Windows XP7 ,這是什麼鬼...

670.PNG

後來我還傳了一些圖其它有文字的圖,基本上它都認不出來,全都是在亂回答

又嘗試叫它寫一些文案,寫出來的程度普通....

671.PNG

對比使用chatGPT (model GPT3.5)
677.PNG

使用chatGPT (model GPT-4)

678.PNG


體驗下來,覺得它的回答能力,大概等同於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