Select Page

Rain AI – RISC-V

在AI界,省電與高速的雙重追求像是試圖在馬路上賽車同時省油一樣。Rain AI(是的,這名字聽起來像我的AI)正在迎接這一挑戰,並且邀請上了「省電至尊」晶心科技來助陣。這兩家公司攜手合作,誓要打造出最能省電的AI加速器產品,好讓您的AI設備不僅聰明,還非常環保!

簡單來說,Rain AI獲得了晶心科技的「AX45MPV」RISC-V向量處理器授權。晶心的這款處理器像個肌肉緊實的小夥子,負責幫助Rain AI把原本AI運算所需的超大電量轉變成極低電量消耗。為什麼?因為它使用了一種叫「記憶體內運算」的神奇技術(CIM),這就好比在記憶體裡安裝小腦袋,讓運算不必再跑到CPU那兒去。換句話說,Rain AI的硬體等於是告別了「加速等於高能耗」的老傳統。

Rain AI的CEO William Passo表示:「遇到晶心科技這樣的夥伴,真是緣分啊!我們不僅獲得他們的處理器支援,還能獲得他們客制指令的技術支援!晶心的工程師簡直像是技術版的私人教練,協助我們實現省電大夢。」

而晶心的老闆林志明則稱:「Rain AI是一家希望AI可以在所有設備上運行的公司,從超小型感應器到超大規模資料中心。跟他們合作,等於讓我們的AX45MPV處理器變成一個全球知名的節能大使!」

Rain AI預計於2025年初推出他們的「環保AI加速器」。到時候,或許我們的智能家居可以更輕鬆地算出您冰箱裡還有多少菜可以煮,甚至幫助您養成節能減碳的新習慣——無論是幫助世界還是幫助您的電費單,Rain AI和晶心科技正在為您鋪路!

OmniParser-微軟的開源螢幕解析工具

OmniParser-微軟的開源螢幕解析工具

繼之前提到的 Ahthropic Computer Use ,那時候超級驚豔的,馬上就看到MS也有推出自己的版本,雖然沒有自動執行功能,但可以配合 pyautogui 達成,雖然不支援中文,但可以透過中文OCR 或是 tesseract 處理

安裝到本地端

先建立一個虛擬環境起來

conda create -n omni python=3.12 -y
conda activate omni

選項:有GPU的,先把CUDA安裝起來

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

整個安裝也很簡單,就五個步驟

git clone https://github.com/microsoft/OmniParser.git && cd OmniParser
pip install -r requirements.txt
huggingface-cli download --repo-type model microsoft/OmniParser --local-dir weights --include "icon_detect/*" "icon_caption_blip2/*" "icon_caption_florence/*"
python /home/Ubuntu/OmniParser/weights/convert_safetensor_to_pt.py
python gradio_demo.py

OmniParser 2.0 更新

OmniParser V2 的主要改進與優勢

1. 更大、更乾淨的訓練資料集

OmniParser V2 採用了規模更大且模型已經清洗良好的「icon caption + grounding」資料集,涵蓋更豐富的 UI 標記與功能描述,進而提升模型對互動區域的識別能力。

2. 顯著降低推理延遲

V2 在推理速度上較 V1 快了 60%,平均延遲為每畫面 0.6 秒(A100 GPU)或 0.8 秒(RTX 4090),適合即時 GUI 解讀與互動場景。

3. Grounding 準確度大幅提升

在「ScreenSpot Pro」這項標註小型 UI 元素的基準上,搭配 GPT-4o,V2 的平均精準度達到 39.6%,遠高於 GPT-4o 原本只有 0.8% 的表現。

4. 整合 OmniTool,打造完整 AI GUI Agent 流程

V2 支援搭配 OmniTool,形成一個即插即用的環境,可控制 Windows 11 VM 並搭配各家大型語言模型,如 OpenAI (4o, o1, o3-mini)、DeepSeek R1、Qwen 2.5VL 甚至 Anthropic,使建構 GUI Agent 更簡單。

5. 擴大使用場景與穩定性

除了支援 PC 與手機螢幕截圖外,V2 的架構更穩定、更泛用,適合建構可解讀 GUI 的多種應用。


V1 vs V2 功能比較表

特性OmniParser V1OmniParser V2
訓練資料集標準 icon caption+grounding 少量更大、更乾淨的訓練資料集
推理速度較慢快了約 60%,平均延遲 0.6s–0.8s
Grounding 準確度基準低,難以處理小 UI 元素搭配 GPT-4o 平均達 39.6% 準確率
操作流程整合性需手動整合模型與 LLM支援 OmniTool,快速與多款 LLM 串接
適用場景廣度較狹窄更廣泛,包含各種 GUI 互動與截圖輸入

下載新的模型

for f in icon_detect/{train_args.yaml,model.pt,model.yaml} icon_caption/{config.json,generation_config.json,model.safetensors}; do huggingface-cli download microsoft/OmniParser-v2.0 "$f" --local-dir weights; done
   mv weights/icon_caption weights/icon_caption_florence

如果你是 Windows 可以去 Hugginface 下載模型後,並且在目錄下建立 weights\icon_caption_florence ,把下載來的模型放在目錄中即可

https://huggingface.co/microsoft/OmniParser-v2.0/tree/main

OmniParser 1.5 更新

先下載模型

python weights/convert_safetensor_to_pt.py

For v1.5: 
download 'model_v1_5.pt' from https://huggingface.co/microsoft/OmniParser/tree/main/icon_detect_v1_5, make a new dir: weights/icon_detect_v1_5, and put it inside the folder. No weight conversion is needed. 

執行指令要改成 1.5 版本

python gradio_demo.py --icon_detect_model weights/icon_detect_v1_5/model_v1_5.pt --icon_caption_model florence2

支援其他的語言

舉例來說,要改成中文,請找到專案下的 utils.py ,將 en 改成 ch

reader = easyocr.Reader(['en'])
paddle_ocr = PaddleOCR(
#    lang='en',  # other lang also available
    lang='ch',  # other lang also available
    use_angle_cls=False,
    use_gpu=False,  # using cuda will conflict with pytorch in the same process
    show_log=False,
    max_batch_size=1024,
    use_dilation=True,  # improves accuracy
    det_db_score_mode='slow',  # improves accuracy
    rec_batch_num=1024)

在介面中選取使用 PaddleOCR

相關資源

OmniParser 原始碼

OmniParser 官網

OmniParser 模型

https://blog.stoeng.site/20241030.html

Open Canvas-本地使用 OpenAI Canvas功能

Open Canvas-本地使用 OpenAI Canvas功能

最近 OpenAI 推出了 Canvas ,開始流行在 ChatGPT 上頭寫程式、寫郵件等等,馬上就有人推出本地端一樣的服務 Open Canvas ,解放了你只能在 OpenAI 上使用的困境,除了 Git 以外,也馬上有了 docker 版本,可以快速體驗

Open Canvas 架構圖
Open Canvas Workflow

相關資源

Open Canvas 原始檔

Open Canvas Docker

LangGraph Studio

LangSmith

PyAutoGUI-自動控制你的電腦

可以在 windows, mac, Linux 上使用,自動地透過滑鼠鍵盤來控制你的電腦畫面,還支援螢幕截圖

簡易使用方法

安裝 pyautogui

pip install pyautogui

使用 pyautogui

import pyautogui

螢幕截圖

pyautogui.screenshot('screenshot.png')

滑鼠控制

pyautogui.moveTo(100, 100, duration = 1.5) #用1.5秒移動到x=100,y=100的位置
pyautogui.dragTo(100, 100, duration=2, button='right') #用2秒按住滑鼠右鍵到x=100,y=100的位置
pyautogui.click(clicks=2, interval=0.5, button='right') #雙擊左鍵並且中途間隔0.5秒

鍵盤控制

pyautogui.keyDown('ctrl')
pyautogui.press('a')
pyautogui.keyUp('ctrl') #全選的功能鍵效果
pyautogui.hotkey('ctrl', 'shift', 'esc') #開啟工作管理員的快捷鍵

資源

PyAutoGUI 說明文件

PyAutoGUI 原始碼

中文說明檔

相關資源

Windows下如何釋放被占用的port

Windows下如何釋放被占用的port

使用 docker 時候,常常遇到被占用的 port 要處理,這邊記錄下正確的處理方法

找到占用port的程式

netstat -ano | findstr 8080

會得到下面的輸出,最後面一個是 PID

查詢程式資訊

tasklist | findstr 8080

刪除占用的程式行程

舉例來說,我要刪除佔用了 port 50912 的程式,由上圖知道他的 PID 是 6664,那就輸入以下指令即可

taskkill /T /F /PID 6664