Local LLM

因為這幾天比較有空, 花了點時間弄 local LLM, 有點小小的心得.

千萬不要自己搞, 要跑 inference 就下載 ollama, 裝好之後再去他的 Library 看喜歡哪個, 就pull/run哪個.

手頭是MAC的真心建議先跑上面的方法, 快又無腦, 有空想自己搞再自己搞.

然後 vscode 的 extension 請用 continue, 方便設定 local LLM.

上面就先求有, 有空再求好.

MISC

>>> 密碼管理的另類思考

這篇 講得很清楚. (作者一堆Emacs的文)

外面商業化的產品真的有比較安全嗎?

pass - the standard unix password manager

>>> Rust寫的Console檔案管理

yazi

>>> 開源的Spotify Client (可惜了, 我想轉Apple了)

spotube, 用Dart寫的

>>> Incentives and the Cobra Effect

source

激勵措施和眼鏡蛇效應

當德里處於殖民統治下時,它遭受了大量有毒眼鏡蛇的困擾。為了控制眼鏡蛇的數量,政府對死亡的眼鏡蛇給予賞金。這促使企業家開始飼養眼鏡蛇以收集賞金。當政府發現這一情況時,他們停止了賞金計畫,這意味著所有飼養的眼鏡蛇變得毫無價值,因此被釋放了出去,從而顯著增加了眼鏡蛇的數量。

眼鏡蛇效應是指解決問題的方案無意中使問題變得更糟的情況。而這種情況比你可能想的要常見。類似的故事還包括在河內殺鼠的激勵措施、減少溫室氣體的激勵措施、減少麻醉品生產的激勵措施等等。

我也被一個想法所吸引,那就是聽起來很糟糕的激勵措施實際上可能產生好的結果。我聽一位南非的朋友講述了他們的城鎮合法化了瀕危犀牛的狩獵。這聽起來是一個令人震驚的壞主意。但他們設立了一個非常高的狩獵費用,獵人必須支付,這筆費用將與犀牛所在地的農場主分攤。過去會向偷獵者透露信息以便將犀牛趕出他們土地的農場主,現在會積極地保護犀牛免受偷獵者的侵害。我不知道這個計畫的普及程度如何,但我的朋友建議,至少在最初幾年內,犀牛的數量有了有意義的增加。

還有更多這樣的例子。將動物困於動物園和水族館的不受歡迎做法增加了保護野生動物的熱情。安全注射點減少了非法吸毒的負面外部效應。性教育減少了青少年懷孕的事件。

作為消費者,我們經常陷入這些陷阱。我最喜歡的例子是不限數據的手機套餐。每個人都認為他們想要一個不限數據的計畫。但在激勵層面,運營商的目標是提供剛好足以讓你不轉移運營商的最低服務水平。相反,如果你有一個按數據量付費的計畫,他們的激勵是使你使用數據的體驗盡可能快速和優秀,以便你傾向於使用更多。

我在經營公司的背景下一直在思考這個問題。人們提出看似常識的解決方案,最終卻在下游創造了大量的濫用激勵。例如:

“每個人都應該直接分享反饋,而不是通過經理”導致人們要么為了維護關係而隱瞞有價值的反饋,要么如果他們不能優雅地分享這種反饋就會破壞關係。這是經理接受訓練要做的事情。 “讓我們創建一個詳盡描述每個職位在每個級別所需做什麼的文檔”導致人們只做那些被寫下來的事情,而不是那些在該級別的人理所當然會理解的常識性事物。你試圖使其更加全面,就越被它困住。這些事情之所以含糊,是因為所有有意義的工作都包含大量的自由裁量權,人們往往只有在不確定性中運作得很好時才能證明他們處於某個水平。幾乎可以肯定地說,如果你需要告訴某人具體的工作內容,那麼他們還沒有達到那個水平,除了最初級的角色之外。 “讓我們與其他很多團隊進行跨校準”當這些團隊不深入理解彼此的工作時,會導致對價值創造的最低公分母理解。組織規模或某事獲得的媒體關注成為重要特徵,而實際上,用小團隊創造大影響或做沒有人看到的重要工作可能更應該被強調。

正如Sam Altman在最近的博客文章中寫道:“激勵是超能力; 謹慎設置它們。”

Noted

Cook

rogrammer's guide about how to cook at home (Simplified Chinese only), 簡中, 但是很不錯用.

Rust

演算法大集

All Algorithms implemented in Rust

Development

Remove downloaded tensorflow and pytorch(Hugging face) models]

from transformers import file_utils print(file_utils.default_cache_path) 然後手動砍

TTS/STT

>>(TTS) Bert 系列

>> GPT-SoVITS

repo

1 min voice data can also be used to train a good TTS model! (few shot voice cloning)

ML

MLflow

MLflow是一個開源平台,專為協助機器學習從業者和團隊處理機器學習過程中的複雜性而設計. MLflow專注於機器學習項目的全生命週期,確保每個階段都是可管理的,可追蹤的,和可重現的.

看起來很美好, 不過 Hacker News 上面的討論就真的見仁見智了.

annotated_deep_learning_paper_implementations

🧑‍🏫 60 Implementations/tutorials of deep learning papers with side-by-side notes 📝; including transformers (original, xl, switch, feedback, vit, ...), optimizers (adam, adabelief, sophia, ...), gans(cyclegan, stylegan2, ...), 🎮 reinforcement learning (ppo, dqn), capsnet, distillation, ... 🧠

只能說 佛心來的

LLM

Machine Learning Compilation for Large Language Models (MLC LLM)

Machine Learning Compilation for Large Language Models (MLC LLM) is a high-performance universal deployment solution that allows native deployment of any large language models with native APIs with compiler acceleration. The mission of this project is to enable everyone to develop, optimize and deploy AI models natively on everyone's devices with ML compilation techniques.

這個主打相容的 devices, AMD GPU, Metal, WebGPU 都吃. doc

PowerInfer

High-speed Large Language Model Serving on PCs with Consumer-grade GPUs.

Demo 的影片: PowerInfer v.s. llama.cpp on a single RTX 4090(24G) running Falcon(ReLU)-40B-FP16 with a 11x speedup!

這個玩法蠻奇妙的:

這個分佈顯示,一小部分神經元,被稱為熱神經元,跨不同輸入時持續被激活,而大多數的神經元,稱為冷神經元,則根據特定輸入變化。PowerInfer利用這樣的洞察設計了一個GPU-CPU混合推論引擎:熱激活神經元預先加載到GPU上以快速訪問,而冷激活神經元則在CPU上計算,這樣顯著減少了GPU內存需求和CPU-GPU數據轉移。PowerInfer進一步整合了適應性預測器和神經元感知的稀疏操作符,優化了神經元激活的效率和計算的稀疏性。

評估顯示,在單個NVIDIA RTX 4090 GPU上,PowerInfer實現了平均每秒生成13.20個標記的速率,峰值達到29.08個標記/秒,跨越多種LLMs(包括OPT-175B),僅比頂級服務器級A100 GPU低18%。這顯著超過了llama.cpp最多11.69倍,同時保持了模型的準確性。

Vanna

這個很有趣,有想過想要弄在自己的環境

只做中介, 這感覺好像是個很不錯的出路. repo.

中介

Stable Code 3B

Hacker News上面的討論

是有用M2 Max Macbook跑過, 不過卡在pytorch mps, 慢得要死, 弄了半天先放著.

也有試過 deepseek, 不過也是超慢, 要找一下原因.

下個目標是magicoder, 希望三月份能抽時間搞一下. 不行再認真去找pytorch mps 的問題點在哪.

下面記錄一下用的相關資訊跟遇到mps issue然後去找到的資訊

20240220 UPDATE

幹 https://github.com/ollama/ollama 真好用

我之前自己搞真浪費時間

建議mac 使用者 下載這個就對了

真香

>> ComfyUI

The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface.

看起來很炫, 現在真心沒空玩, 記錄一下.

20240220 update

Comfyui 官方又對 Stable Cascade進行了更新,原來需要下載 7 個模型現在開源社區將其整合為了兩個,只需要選擇 C 階段和 B 階段的模型檔案就行。

同時Comfyui官方還放出了多種Stable Cascade玩法的示例工作流,包括文生圖、圖生圖、圖片融合。這次更新之後用合併的模型生成圖片質量和美觀度上都很不錯,我都是直接用的 Midjourney的提示詞。

就是還有個問題,生成的圖片都有偽影,這個比較離譜,非常影響畫面效果。希望過段時間可以修復一下。

工作流及模型下載

source

>> Web LLM

WebLLM是一個模組化、可自訂的JavaScript套件,能直接在網頁瀏覽器上帶來語言模型聊天功能,並支援硬體加速。所有操作完全在瀏覽器內完成,不需伺服器支持,利用WebGPU實現加速。這讓我們有機會為每個人建立AI助理,同時在享受GPU加速的優勢時,還能保障隱私。

應該試試看能做到什麼程度

>> ml mgie

Apple 放出來 open source 的 Guiding Instruction-based Image Editing via Multimodal Large Language Models / 影像編輯.

demo

introduce

基於指令的圖像編輯通過自然語言指令提高了圖像操作的可控性和靈活性,無需繁複描述或區域遮罩。然而,人類指令有時對現有方法來說過於簡略,難以捕捉和遵循。多模態大型語言模型(MLLMs)在跨模態理解和視覺感知回應生成方面顯示出有希望的能力。我們探討了MLLMs如何促進編輯指令,並介紹了MLLM引導的圖像編輯(MGIE)。MGIE學習衍生表達性指令並提供明確指導。編輯模型通過端到端訓練共同捕捉這種視覺想象並進行操作。

注意 版權是 CC-BY-NC 不能商用.

>> transformer-from-scratch

兩年前的 repo 了, 找出來的原因是因為有想找個light weight的試試看.

相關的:

>> Diffusion-Model

>> OpenAI compatibility

doc

一個殼 介面就OpenAI API format, 後面你想接啥都可以

Hacker News 的討論

ref:

>> exllamav2

repo

A fast inference library for running LLMs locally on modern consumer-class GPUs

看完列表 深深覺得我是不是該買張4090了

Open AI

>> openai-translator

基于 ChatGPT API 的划词翻译浏览器插件和跨平台桌面端应用 - Browser extension and cross-platform desktop application for translation based on ChatGPT API.

簡中說明書

>> gpt-crawler

這個挺貼合需求的, 間單來說就是把整個目標網站爬下來縮成json, 方便塞給OpenGPT用.

>> sketch

repo

簡單來說就一個殼 裡面幫你分析資料 然後往外呼叫 OpenAI API 把兩者串起來.

不過 repo 最後的 commit 在 2024 Jan 19, 我猜應該停了.

System

Nginx 的 log

現在是用 google analytics, 不過現在都更新到這邊了.

前一陣子有想自己弄HTML, 那時候在找的 log 分析工作, 結果發現這個. goaccess, 很符合線下的概念, repo.

介紹是說 GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

可以是 console realtime, html generated, 也可以用 docker 跑, 相對來說就不用埋 JS, 這點是我最想要的.

想買