2024/11/20

AI toolkit for VSCode: config to use ollama

這個雖然現在好像還沒有什麼功能,但是好像是唯一不用付錢的 ai assistant.
最新的更新支援 local ollama 了,所以來試試看。

原來 這個 extension 的說明文件都在github : doc: overview
要使用 ollama 的話,首先當然要 setup 好自己的 ollama service (ref:ollama run llama locally)
記得要對 local ip 開放。

ai toolkit 設定部分,在安裝完後,VS Code 左邊 panel 會多一個 item,ai toolkit item,
最上面,My Models 右邊的 "+" 按下去,會出現 Add remote model (1/4),意思是有四個步驟,現在做第一步。
第一步是設定 ollama url,我的就是
http://192.168.145.64:11434/v1/chat/completions
Enter 後,第二步,要 load 的 model name。
這部分,到 ollama sever 上,用 ollama list 列出,挑出要load 的 model name,要全名。
qwen2.5-coder:14b
Enter 後第三步是名子,給這格 model setup 的name,隨便。
最後一步是authetication key,ollama 不需要,所以 Enter w就可以。

2024/11/19

Try Web front end for whisper

先來試試 他是用Grandio 做 whisper 的 web front end
python 用 3.11,然後 clone source ans install requirements
git clone https://github.com/jhj0517/Whisper-WebUI.git
cd Whisper-WeUI
pip install -r requirements.txt
因為我用 conda ,所以把 start-webui.sh的 venc/bin/activate comment 掉。
然後用 public serv:
./start-webui.sh --server_name=0.0.0.0b --inbrowser=false
把影片拖到網頁,選 large-v2,輸出 srt,開始...
看 console output 是開始下載model...所以網頁的 progress bar 沒有動作。
model download 完,開始轉換....
結果出現 Error:
Unable to load any of {libcudnn_ops.so.9.1.0, libcudnn_ops.so.9.1, libcudnn_ops.so.9, libcudnn_ops.so}
參考 Downgrade ctranslate2:
pip install ctranslate2==4.4.0
之後,就沒 Error 了。

實際測試各個 model,發現並不是越大就越好。
在轉換長影片(2:30)時,越 1:00 後的文字出現問題,一直重復。

2024/11/7

Stable Diffusion and ControlNet

stable diffusion 用 webui 他會自己Download and install,雖然script 是用 VENV,但是還是用 conda create 一個python==3.8.10 的環境來run
跟平時依樣,但是第一次 run, 他會發現是第一次,然後自動 download and install
./webui.sh --listen
model checkpoint 要自己去 huggingface download.
比較多文件說明,還有沒有 license 問題的是 v 1.5 download 整個 project/file 下來,放到 models/Stable-diffusion 目錄下


安裝 ControlNet:

用 webui 來裝:
因為是在 headless server 上 run,所以要加上 --listen 允許在 lan 上access,這樣要 install extension 就會出現錯誤
 AssertionError: extension access disabled because of command line flags
所以要增加 options:
$ ./webui.sh --listen --enable-insecure-extension-access
download and install 完,console command 會出現
/mnt/hdd8t/charles-chang/stablediffusion/stable-diffusion-webui/venv/lib/python3.10/site-packages/huggingface_hub/file_download.py:797:
FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. 
If you want to force a new download, use `force_download=True`.
  warnings.warn(
Applying attention optimization: Doggettx... done.
Model loaded in 3.9s (load weights from disk: 2.8s, create model: 0.2s, apply weights to model: 0.8s).
Installing sd-webui-controlnet requirement: fvcore
Installing sd-webui-controlnet requirement: mediapipe
Installing sd-webui-controlnet requirement: svglib
Installing sd-webui-controlnet requirement: addict
Installing sd-webui-controlnet requirement: yapf
Installing sd-webui-controlnet requirement: changing albumentations version from None to 1.4.3
Installing sd-webui-controlnet requirement: changing timm version from 1.0.11 to 0.9.5
Installing sd-webui-controlnet requirement: changing pydantic version from 1.10.19 to 1.10.17
Installing sd-webui-controlnet requirement: changing controlnet_aux version from None to 0.0.9
Installing sd-webui-controlnet requirement: onnxruntime-gpu
ControlNet init warning: Unable to install insightface automatically. Please try run `pip install insightface` manually.
Installing sd-webui-controlnet requirement: handrefinerportable
Installing sd-webui-controlnet requirement: depth_anything
Installing sd-webui-controlnet requirement: depth_anything_v2
Installing sd-webui-controlnet requirement: dsine
等好久,完成,webui 會出現小字:
Installed into /mnt/hdd8t/charles-chang/stablediffusion/stable-diffusion-webui/extensions/sd-webui-controlnet. Use Installed tab to restart.
然後在 Installed 的表格最後會有:
-----------------------------------------------------------------------------------------------------------------------
|sd-webui-controlnet	| https://github.com/Mikubill/sd-webui-controlnet |	main | 56cec5b2	| 2024-07-26 04:52:52 | unknown |
ControlNet 也是一個model,所以也要 download checkpoint.

2024/10/25

install pytorch with mcp support

開啟 ssh server 後就可以用 ssh 登入。
下載 Miniconda3-latest-MacOSX-arm64.sh, 執行。
最後一樣會修改 .zshrc
一樣刪掉,放到 condaenv.sh

一樣, 但是default python 好像是 3.13 太新。torchvision 安裝會有問題。
所以要指定
conda create -n pytorch python==3.11
完成後,進入 pytorch env, follow apple support的說明 (要用 nightly channel):
conda install pytorch torchvision torchaudio -c pytorch-nightly
測試:
>> import torch
>> torch.backends.mps.is_available()
True
所以有 support metal GPU

另外,mps 是 metal GPU
Neural Engine 是 pytorch-lightning

2024/10/23

SSD 筆記 (Single-Shot Detector)

ref: 和yolov1 一樣,重點在設計最後的 output label.

把 yolov1 的最後 NxN 格換成預先定義好的框
框的大小固定的話,要怎麼fit 到不同大小的 object ?
就把不同大小的 featuremap 來用。

經過 CNN, 和 stride=2 之後的 feature map 會縮小。
在縮小的 feature map 上,同樣大小的眶,框住的比例就變大了。

所以 SSD 會把多個 layer 的 fearture map 拿出來做 CNN, 都做出該層的 框框 location 和 confidence.

好複雜

和 Yolov1 一樣,就是在設計 output label 的解釋和格式,

conv.relu - conv.relu - maxpool - ...

這樣的 network 中的某幾層,讓 stride = 2,output feature map 的 size 就會變 1/2.
(所有的 conv 都會加 padding,讓stride=2 時,output size 不變)

在末端的幾層 feature 做 object detection

2024/10/20

Set battery charge limit in ubuntu 24.04

ref: 上次買的 lenovo legion 在 windows 7 下有電池充到 80% 的功能。
覺得這樣電池好像活得比較久,所以想在ubuntu 看看有沒有一樣的功能。

看起來是 tlp 這個 package
follow 說明
sudo apt install tlp tlp-rdw
sudo systemctl enable tlp
syudo systemctl start tlp
然後修改 /etc/tlp.conf
# Battery charge level below which charging will begin.
START_CHARGE_THRESH_BAT0=65
# Battery charge level above which charging will stop.
STOP_CHARGE_THRESH_BAT0=80
然後再啟動
$sudo tlp start
TLP started in battery mode (auto).

$ sudo tlp-stat -b
--- TLP 1.6.1 --------------------------------------------

+++ Battery Care
Plugin: asus
Supported features: none available
Driver usage:
* natacpi (asus_wmi) = inactive (laptop not supported)

+++ Battery Status: BAT1
/sys/class/power_supply/BAT1/manufacturer                   = GIGABYTE
/sys/class/power_supply/BAT1/model_name                     = Aorus 15
/sys/class/power_supply/BAT1/cycle_count                    =      0 (or not supported)
/sys/class/power_supply/BAT1/charge_full_design             =   6514 [mAh]
/sys/class/power_supply/BAT1/charge_full                    =   6514 [mAh]
/sys/class/power_supply/BAT1/charge_now                     =   6258 [mAh]
/sys/class/power_supply/BAT1/current_now                    =   1066 [mA]
/sys/class/power_supply/BAT1/status                         = Discharging

Charge                                                      =   96.1 [%]
Capacity                                                    =  100.0 [%]

看來沒效,因為 laptop not supported
NB 是 Gigabyte AORUS 15X, i9RTX4090
看來還是買 lenovo 還是 asus 比較保險。

不然就要參考:優化 Ubuntu 電池壽命
另外,這邊 有 support list: ASUS, MSI, LG,Lenovo, Samsung, SONY, Toshiba. Apple
--- 所以沒有 Acer 跟 Gigabyte,要用 ubuntu 的話,記得不要買這兩家的 NB