Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /opt/bitnami/wordpress/wp-includes/functions.php on line 6114 八寶周的研究小屋
>> p. 81 「您很清楚我愛的是您,牧師 …… 哦!為什麼您把手抽走了?… 那我們為什麼不能相愛?您說,牧師,您認為這是惡嗎?」 「愛中從來沒有惡。」
>> p. 85 我不得不把這本筆記擱置了一段時間。雪已經化了 … 直到昨天,我方才得到了一絲空閒。
>> p. 85 今天我對於自己心中長久未被言明的感情直呼其名,我幾乎無法解釋我如何能把他誤認到現在 … 當時我絕不認同在婚姻之外允許存在愛情 …
本書位於此處分為兩個部分,巧妙的在於吉特呂德的告白與牧師的自我告解,此處的日期跨動也耐人尋味,唯一一次超過整個月的時長,而其他的大概都在兩周以內。在開端牧師提到雪日過後的閒暇時刻,但相對來說大雪封山的期間為何沒有紀錄?或者更是對於吉特呂德的無盡思念,由於當時已經寄住於 M 小姐的莊園中,使兩人長期無法會面,只能倚靠寫作闡述。
接著輸入以下指令進入檔案,接著按下 Ctrl + W 並搜尋 smtp,接著敲下 Enter 應該就會到該區塊之設定。
Bash
nano./grafana.ini
我們修改以下幾個項目,過程記得刪除開頭的 ; 符號,那關於 SSL 與 TLS 安全協議的部分這邊從簡就先略過。確認完成後我們就透過 Ctrl + X >> Y >> Enter 儲存並重新啟動容器。
Bash
[smtp]# 啟用信箱功能 enabled=true# SMTP 伺服端口 host=smtp.gmail.com:587# SMTP 所屬用戶 user=${YOUR_OWN_EMAIL}# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""# 應用程式金鑰 password=${YOUR_APP_PASSWORD}# 略過憑證檢查 (SSL/TLS) skip_verify=true# 信件顯示信箱 from_address=admin@grafana.localhost# 信件顯示名稱 from_name=Grafana
這邊我會建議使用其他信箱作為來源寄送到常用信箱,若使用與 user 相同的信箱在總攬會看到 me 的字樣。
from diffusers import AutoPipelineForText2Imageimport torchpipeline_text2image = AutoPipelineForText2Image.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0",torch_dtype=torch.float16,variant="fp16",use_safetensors=True,).to("cuda")# The positive promptpos_prompt ="Futuristic city skyline with flying cars, cutting-edge AI technology, holographic interfaces, sleek designs, vibrant and glowing, 8k, highly detailed"# The negative promptneg_prompt ="dystopian, dark, old technology, broken machines, messy environment"# The number of denoising stepsnum_inference_steps =20#guidance_scale =7.0# The size of the resultwidth =768height =768# The number of images generatednum_images_per_prompt =1image =pipeline_text2image(prompt=pos_prompt,negative_prompt=neg_prompt,guidance_scale=guidance_scale,width=width,height=height,num_inference_steps=num_inference_steps,num_images_per_prompt=num_images_per_prompt,).images[0]image.save("result.png")
此時我們需要另外安裝 diffusers 套件,在專案 Terminal 內輸入以下指令進行安裝 or 更新。
在 AI 萌發的世代越來越多組織投入到模型的訓練,不只企業專用還有免費開源。相對於使用網頁產品受到代幣或會費的限制,在擁有夠力的設備下,我們也能夠自己運行略為遜色但免費的服務。
趕緊來看看如何在本地設置環境準備運行開源模型吧!
1. 重點
CUDA 版本建議較新版本,涉及到系統與外部程式支援的程度
PyTorch 相容的 CUDA 稍晚於 NVIDIA 最新發布的版本
PyTorch 不同的套件版本兼容不同的 CUDA 版本
2. 內容
2.1. 檢查 CUDA
針對所使用的 NVIDIA GPU 設備,我們必須另外安裝 CUDA Toolkit 讓電腦知道顯卡的位置以進行使用,若沒有經過正確的流程則沒法正確驅動,變相使用 CPU 而非 GPU 導致很多人抱怨執行時間過長。
關於如何選擇 CUDA 版本,我們首先到【顯卡與運算兼容】找到自己顯卡的 Compute Capability 數值,如我的設備在下圖標註處而其數值為 8.6 ,相對屬於較新的資源(本篇完成時最新為 9.0)。
接著我們到【架構與對應版本】看到表格,找到對應的 Compute Capability 以及其支援的 CUDA 版本間距。可以看到較舊的型號不再維護,而目前多數則支援到最新的版本,但最低的支援版本各不相同。
Architecture
CUDA Capabilities
First CUDA Toolkit Support
Last CUDA Toolkit Support
Last Driver Support
Fermi
2.0
CUDA 3.0
CUDA 8.0
R390
Kepler
3.03.2
CUDA 6.0
CUDA 10.2
R470
Kepler
3.53.7
CUDA 6.0
CUDA 11.x
R470
Maxwell
5.05.25.3
CUDA 6.5
Ongoing
Ongoing
Pascal
6.06.1
CUDA 8.0
Ongoing
Ongoing
Volta
7.0
CUDA 9.0
Ongoing
Ongoing
Turing
7.5
CUDA 10.0
Ongoing
Ongoing
Ampere
8.08.6
CUDA 11.0
Ongoing
Ongoing
Ada
8.9
CUDA 11.8
Ongoing
Ongoing
Hopper
9.0
CUDA 11.8 CUDA 12.0
Ongoing
Ongoing
版本差距不只在於系統的變動,同時有包括外部程式的兼容性,因此還是建議安裝較新的版本。比如【此篇詢問】也是我所遇到的議題,本來 CUDA 11.7 跑得好好的,由於其他程式需要更新 Visual Studio 2022 結果就導致專案錯誤,加上 Community 版沒法回朔,只好加裝新的 CUDA,順道就寫下這篇記錄。
2.2. 匹配 PyTorch
確認完 CUDA 版本後別急著下載最新版,畢竟涉及 CUDA 的系統變動與套件維護,PyTorch 支援的版本與 NVIDIA 最新的版本難免形成差距。
我們複製在 2.2 取得的指令並開始進行漫長的安裝,在等待期間我們先建立一個 Python 檔案等會用來檢測系統設備。簡單解釋一下邏輯,當 CUDA 支援時則會使用 GPU 並回報首個設備的資訊,否則使用 CPU 。
Python
import torchimport logging# Set up logging configuration with a prettier formatlogging.basicConfig(level=logging.INFO,format="%(asctime)s | %(levelname)s | %(message)s",datefmt="%Y-%m-%d %H:%M:%S",)logger = logging.getLogger()# Define the dashboard borderborder ="="*60section_divider ="-"*60# Check if GPU is available and set the devicedevice = torch.device("cuda"if torch.cuda.is_available()else"cpu")# Print device type (GPU/CPU)logger.info(border)logger.info(f"⚙️ Using Device: {device.type.upper()}")logger.info(border)# Additional info when using CUDA (GPU)if device.type =="cuda": gpu_name = torch.cuda.get_device_name(0) total_memory =round( torch.cuda.get_device_properties(0).total_memory /1024**3,1)# Total GPU memory logger.info(f"🖥️ GPU Name: {gpu_name}") logger.info(f"📊 Total GPU Memory: {total_memory} GB") logger.info(border)
確認 PyTorch 安裝結束,我們就來測試看看是否能讀取到顯卡資訊。
Python
python <上述 .py 路徑>
3. 後話
當我們確認好正確安裝與配置後,就可以安心地進入模型開發與探索的階段了。
無論是進行深度學習的訓練,還是處理其他複雜的計算任務,擁有良好的驅動環境將確保你的工作流程順暢無礙。未來就讓我們一起探索模型的潛力,開啟 AI 領域的全新旅程吧!