# 開發場論語言模型之路 part2 接下來會比較偏研究日記型式 而不是第一篇的結論 ## 資料的整理 因為我想看到資料正常的輸出 前面為了IME極致的追求速度 把資料過度的壓壞 只剩下bias是我認可的檔案大小 且效果不錯 我開始做資料的整理歸納 網路上的資料蠻多的 但真正能丟給機器還需要分類 這樣在呼出某些方面的內容 能有個依據 不會忘記這資料源原本要做什麼 所以挖了中文圖書分類法 github: [ChineseBookClassificationSystem](https://github.com/galaxy4552/ChineseBookClassificationSystem/) 原則上我做的東西還是避免造一樣的輪子 github沒有 就照維基做了個資料分類 ## microgpt的出現 原本寫的引擎 隨著專案不斷變大 內容越來越多 但因為30+的模組 已經把語意熵拉到幾乎動不了 engine的重構非常多次 每次都是100~200行的換 只專心在自己會不會Enshittification microgpt給了我很多啟發 以下是跑result的結果: ```python --- inference (new, hallucinated names) --- sample 1: kamon sample 2: ann sample 3: karai sample 4: jaire sample 5: vialan sample 6: karia sample 7: yeran sample 8: anna sample 9: areli sample 10: kaina sample 11: konna sample 12: keylen sample 13: liole sample 14: alerin sample 15: earan sample 16: lenne sample 17: kana sample 18: lara sample 19: alela sample 20: anton ``` 我認為很適合做為研究引擎 之後會結合pipowl(minimal-sbert結構) ## 訓練模型的一些細節 ### contrastive-axis-projection github: [contrastive-axis-projection](https://github.com/galaxy4552/contrastive-axis-projection) ### 我認為訓模型有3個階段 #### 最低階:1維npy 只知道怎麼說話哲學 沒有任何腦 (類bias格式) #### 中階:多維npy 就是目前我打算做的哲學model 是個知道很多哲學意義跟甚麼最靠近 #### 最高階:把script寫進多維npy 讓多維語意空間能承載可執行的轉移模板 要做往上抽象的事 還需要在工程面想得更清楚 以及通用 而非隨著幻覺作夢 這是中階工程 在input_text階段就可以管控哲學面語意靠近的定義 ## 語意幾何學語言模型 pipeowl 是從 pipowl(minimal SBERT)延伸出來的幾何式語言模型: 它不以「生成長句」為主要目標 而是以 可觀測的語意定位、可控的選詞 作為核心 ```python pipeowl/ │ ├─ README.md ├─ LICENSE │ ├─ engine.py ├─ quickstart.py │ └─ data/ ├─ L1_base_embeddings.npy ├─ delta_base_scalar.npy └─ L1_base_vocab.json ``` - 非生成式(或弱生成式):優先透過查表、語意幾何與梯度偏移來選詞 - 可觀測:每一步的向量與分數都可以被檢查、攔截、調參 - 可拆解:base(語意地形)與 gradient(偏折/重力井)分開存放與部署 目前我對成果還不算有信心 但還是照實放出來 結果好就當作另一條路線 不好也希望能提供一個可參考的 baseline 讓其他人少走一些彎路 --- ### 模型資源 HuggingFace: [Pipeowl](https://huggingface.co/WangKaiLin/PipeOwl) --- ### Scoring(核心) 系統最終以 base 與梯度訊號的線性組合決定候選詞排序: 核心公式: **score=α⋅base+β⋅Δfield** --- ### 空間位置 「八」的空間位置  「八」與「九」的空間位置  這裡展示的是 token 在語義空間中的幾何分布位置 可以觀察到相鄰數字在向量空間中呈現連續性 --- PCA 2D分布  --- ### 類比測試 測試1 第八藝術+九-八  測試2 八卦拳-八卦+八旗  測試3 男人-男+女  測試4 國王-男+女  上述測試展示向量空間中的線性可加性與語義轉換能力 --- ### Benchmark 此處比較的是推論速度與載入時間,不包含模型訓練成本。 --- *pipeowl*(不使用sentence-transformers) 載入時間約<1秒 運算時間約0.03秒  不需要GPU --- 一般embedding模型(使用sentence-transformers) 載入約10秒 運算時間約0.1秒  幾乎必須GPU --- eval測試1 corpus size=15 eval size=12  eval測試2 corpus size = 1200 eval size = 200 ood ratio = 0.28  本測試為小規模語料驗證,主要展示幾何語義結構與運算效率特性,尚未進行大規模 benchmark 對標。 --- ### 是否再壓縮成512dim 做overlap 順便測β 文章: [負空間的由來](https://www.ptt.cc/bbs/AI_Art/M.1771662379.A.B19.html) 損失過多不再壓縮
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.