# 開發場論語言模型之路 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 對標。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up