這是簡介用 PyTorch 進行 BERT fine tuning 做 downstream task 的很簡單入門文章。亮點是簡單、圖漂亮、有程式可參考。可以當作 cheatsheet,適合已經了解重要概念後(例如何為 transformer)要寫程式時回頭參考,用來入門則太簡略。
因為自架業務部門搜尋引擎,需要處理 negation 等問題的原因,未來跟 NLP、BERT 打交道的機會應該不少,收錄這篇供自己回頭參考 XD
星期二, 3月 29, 2022
星期二, 3月 22, 2022
Unsupervised Text Classification with Lbl2Vec
介紹文
今天被 Medium 演算法推薦,蠻有趣的思路。
這個庫的功用是做 text classification。特點是對每個 category 設定至少一個關鍵字後,就可以用 unsupervised 的方式對文本進行分類。
整體原理其實接近人類分類的方式。人類大量分類文章的時候,可能看文章出現特定關鍵字就歸類到特定分類了。
而 Lbl2Vec 如果我理解沒錯(錯了再改 XD),則是先將 word 和 text 在同樣的 feature space 做 embedding,先將 text 依據對 keyword 的「距離」先分類一次,去掉 outlier 後求每個分類的 centroid,再根據新算出的分類 centroid 正式分類所有 text。
這樣分類的方法可以不用標註部分資料,只要每個分類都能找出至少一個 keyword 就好。之前研究的地址分區里問題感覺或許可以用,也許未來有緣就當作備案試試看。
負面範例:Predicting Tesla Stocks (TSLA) using Python & PyCaret
難得 Medium 的演算法會推薦辣眼睛的文章,放在腦海裡越想後勁越強 XD
文章標題很吸引人,利用 python 和 PyCaret 來預測特斯拉股價。但看到一半,作者吹噓「用了 PyCaret,模型不調參 R square 也就是正確率有 99%」就喉頭一甜,差點吐血。
網頁下拉,細看 test data 的 feature,赫然看到 feature 裡面有今日高低價。已知今日高低價,用模型求收盤價???如果投資者買賣股票的時候能預知今日高低價,又何需機器學習?
有這種條件,模型乾脆再簡化點,直接高低價相加取平均當模型輸出就好,連 linear regresser 都不用,拿來有漲跌幅限制的國家使用 performance 會更好 XD
另外作者選用的所有模型都只是拿單日開盤資訊 fit 收盤價,完全不參考過去行情。模型不用參考過去行情,僅憑單日資料就有 99% 「正確率」,作者不覺得哪裡不對?
討論區反而有亮點,PyCaret 開發者親自回應,指出文章 technical flaw 很多,這種文章只會傷害 PyCaret。很遺憾我調包俠無法看出全部問題就是了 QQ
----
結果作者還來回應我的吐槽,作者指出「可以用 API 做更細的時間粒度,例如以 5min 為單位預測股價」。
問題根本不在這裡好吧?看起來就是作者隨便拿了 data,就隨便丟給模型去 fit,對 feature 完全不理解,連常識等級的 domain knowledge 都沒有。看到結果也無法反思。
這種派大星都可以當 data scientist 在 Medium 寫文章教人,我忽然覺得我也可以學好 XD
----
結果我 Medium 第一個 follower 就是被我吐槽的作者 XD
星期四, 3月 03, 2022
DuckDNS
VPS 買的 noip 域名到期了。noip 免費版每個月就要手動更新一次不然域名會失效。每年 24.95 美金也覺得不值得。我只是要連到自己的 VPS 而已。隨手搜尋一下免費 DNS 就換到 DuckDNS。
DuckDNS 官網看起來簡陋,看起來像小團隊自架的免費服務,但使用起來很簡單。直接用 Google account 登入,頁面填想要的域名,照著 install 頁面設定 crontab 定時執行 HTTP update API,不到 10 分鐘新域名就可以用了。install 頁面還很貼心的會根據實際使用者自動修改頁面中的教學,自動帶入正確的域名和 API key。只要 curl 和 crontab 有裝,直接一步步複製貼上頁面的指令就好。
應該會改用這家了,只要把一些工作用腳本指向新域名就好 XD