使用Claude Code將Moebius 0.2B影像修復模型移植到瀏覽器中執行
西蒙·威利森使用Claude Code將Moebius 0.2B影像修復模型從PyTorch/CUDA移植到使用WebGPU的瀏覽器中。整個過程涉及模型轉換、部署和快取最佳化,最終實現了可線上執行的演示版本。
西蒙·威利森(Simon Willison)近日成功將Moebius 0.2B影像修復模型移植到了瀏覽器中,並分享了他的整個過程。Moebius是一個輕量級但效果出色的影像修復模型,能夠智慧填充影像中被標記的缺失區域。該模型最初依賴PyTorch和NVIDIA CUDA,主要面向伺服器端執行。威利森受到其小引數量的啟發,決定嘗試將其遷移到WebGPU上,實現純瀏覽器端的執行。
專案的起點是Hacker News上的一篇帖子,威利森隨後使用Claude.ai進行了初步可行性研究。研究建議使用ONNX Runtime Web作為WebGPU後端,而非他最初設想的Transformers.js。在確認可行後,他啟動了Claude Code來實際執行程式碼工作。
威利森在本地建立了專案目錄,並準備了必要的資源,包括Moebius的原始碼、模型權重以及ONNX Runtime和Transformers.js的倉庫。隨後,他讓Claude Code開始工作,並指示其頻繁提交程式碼和記錄notes.md檔案。整個過程他幾乎未檢視任何程式碼行,而是將時間花在測試和提出改進建議上。
在Claude Code的努力下,模型被成功轉換為ONNX格式,併發布了約1.24GB的權重到Hugging Face上的simonw/Moebius-ONNX倉庫。隨後,前端程式碼被部署到GitHub Pages,使用者可以透過simonw.github.io/moebius-web/訪問演示。
早期版本存在一個顯著問題:每次頁面重新整理都會重新下載約1.3GB的模型權重。為解決此問題,威利森參考了Whisper Web演示的實現,指示Claude Code使用CacheStorage API(caches.open("transformers-cache"))來快取權重,從而避免了重複下載。
最終,該模型在Chrome、Firefox和Safari上均能正常工作。威利森強調,這次經歷讓他認識到幾個關鍵點:Claude Opus 4.8能夠獨立完成從模型轉換到Web應用的全流程;主要瀏覽器已具備執行此類模型的能力;CacheStorage API可以處理大檔案快取;以及最重要的是,客戶端純Web應用的影像修復功能已成為可能。
威利森還分享了他從該專案中學到的技術細節,特別是關於ONNX的理解:ONNX是一種與框架無關的神經網路檔案格式,包含計算圖和權重,僅描述計算內容而不指定硬體,透過opset版本控制運算元語義。PyTorch內建的torch.onnx.export函式可用於匯出ONNX模型。
該專案的完整Claude Code對話記錄也已公開,供有興趣的開發者參考。