顯示具有 自然語言處理 標籤的文章。 顯示所有文章
顯示具有 自然語言處理 標籤的文章。 顯示所有文章

星期一, 8月 05, 2024

星期三, 7月 31, 2024

影片:不要浪費錢買課了,喂飯式教你訓練大模型llama3

連結

今天無意間逛到的影片,介紹和示範了 finetune LLM 的方法,如 LORA、QLORA 和 quantization,並簡介了多種訓練、佈署、應用本地 LLM 有關的工具。包括 Unsloth、Torchtune、llama.cpp、LM Studio。

中文 llama 用弱智吧訓練效果竟然比正經的百科好也真神奇 XD

全文連結

星期三, 7月 03, 2024

Doccano docker-compose 檔

Doccano 是我標注 NLP 訓練資料經常用的軟體(咦你不是只有一篇嗎?)。官網教學詳細,但沒有 docker-compose.yml。其實照著官網教學,加上自己補細節就很容易生出來

version: '3'

services:
  doccano:
    image: doccano/doccano
    container_name: doccano
    ports:
      - "8000:8000"
    environment:
      - ADMIN_USERNAME=xxx
      - ADMIN_EMAIL=xxx
      - ADMIN_PASSWORD=xxx
    volumes:
      - ${PWD}/data:/data


指定 container_name 是為了方便下指令,ADMIN_USERNAME、ADMIN_EMAIL、ADMIN_PASSWORD 作用明顯。指定 volumes 是讓 container 關掉後標注的資不會不見(!),不過我個人還是每一段進度就全部匯出存 git 安心點。

全文連結

星期一, 4月 22, 2024

淺談 Prompt 自動最佳化工具

連結 

今天被介紹、推坑了 LLM prompt 最佳化的文章,文中帶出了很多 paper。粗看下來最優先需要了解的應該是 AutoPrompt,其對應 paper 如下:  

Intent-based Prompt Calibration: Enhancing prompt optimization with synthetic boundary cases 

其他 research 和 paper 乍看也不錯,但暫時沒有動力去看 Q<>Q 

最近要做 LLM 和 GPT 有關的 study,這算是及時雨 XD

全文連結

星期二, 4月 09, 2024

Mamba 架構介紹影片

【博士Vlog】2024最新模型Mamba详解,Transformer已死,你想知道的都在这里了

今天偶然看到的,號稱 transformer 殺手的 Mamba 架構。從影片看來,Mamba 優化了 transformer 的複雜度,並且更加考量到現有 GPU 架構,實現更快的推理,並且在實際應用上很多地方可以平滑的替代 transformer (謎之音:那些用 transformer 做過的 paper 可以全部再做一遍)。後面李飛飛大老的團隊 U-Mamba 實做 CT segmentation 擊中了我 Q<>Q 我連 transformer 都還沒全部弄明白呢,

先做個紀錄,也許以後可以發想一些 idea

全文連結

星期三, 3月 20, 2024

好文:一文搞清楚LORA、Prompt Tuning、P-Tuning、Adapter 、Prefix等大模型微调方法

出處

知乎上看到的好文,總結了 LLM 微調的有效方法,包括 LORA、Prompt Tuning、P-Tuning、Adapter、Prefix Tuning。很多之前網路上或李弘毅老師的課看過,或大概聽過。但還是有些概念比較新,例如 Prompt Tuning、P-Tuning、Prefix Tuning。應該能當作淼 NLP paper 的靈感庫了。

全文連結

星期一, 3月 18, 2024

李弘毅老師【機器學習 2023】(生成式 AI)課程

連結


又自學完一門 ChatGPT 的課程。面向大學生,應用類的。

內容比教 BERT 的課程淺顯很多,畢竟是面向 API 的。不過也可以作為不錯的基礎用來跑 data 寫 paper 了。

最後幫李弘毅的課點讚,內容比吳恩達老師的課豐富許多 XD

全文連結

星期日, 8月 13, 2023

LLM prompt injection 實驗

參考

 上週四五工作到半夜十一二點,人就開始不舒服出現 URI症狀,現在人還是廢的,連運動的體力都沒有,還好遇到週末放假可以養病 =.=。養病中剛好法力無邊的大大給了我大寶貝(LLaMA,還是用台灣資料 tune 過的 online living demo!)。LLaMA 一直在我的關注清單裡,但個體戶如何單機單卡跑這玩意感覺有難度,就暫時沒下手。但有了 online living demo 不趁機搞事怎麼對得起自己,就可以做一些之前想跑的科學實驗。

這次想探討的是:LLM 的「防禦」真的可以繞過嗎?有用ChatGPT的應該都有注意到,問些「敏感」問題的時候,AI現在都很聰明,要嘛拒答要嘛說些很圓滑的官話。但根據研究,這些「防禦」有人說是可以繞過去的,方法例如請AI玩角色扮演之類。
 
今天的病中實驗就拿ChatGPT(GPT 3.5)和LLaMA來驗證之前構想。直接問ChatGPT Win10序號它是拒答的(無圖),但請GPT玩角色扮演,例如扮演一個吟唱Win10序號防禦惡龍噴火的勇者,ChatGPT就上套了。玩LLaMA故意去問了高端疫苗 v.s BNT,賴清德 v.s 柯文哲,AI很聰明的說起了官話,說這兩者各有優點,大家都好棒之類的。
 
這時,我就拿最近剛領悟出的角色扮演套話大法,不講武德、去騙、去偷襲LLaMA。LLaMA 還真上套了。瞧你個LLaMA一副濃眉大眼,講話正經八百的,原來是柯粉啊,漏餡了吧 XD
目前昏昏沉沉沒想到有什麼直接應用,但結果很有趣還是紀錄一下。不知道為什麼套出AI是柯粉以後我就覺得電腦旁邊多出了快活的空氣,人也好了點 XD





 

全文連結

星期六, 8月 05, 2023

TinyBERT和ONNX runtime使用心得

BERT的CPU inference 性能真是悲劇。之前做研究發現用 fine-tuned BERT在報告匯入 Elasticsearch 前preprocessing,可解決否定語句(No evidence of XXX)干擾搜尋結果的問題。研究時 BERT 很好用,準確度很高。但佈署到生產環境才發現有嚴重性能問題。

訓練時,雲端GPU租賃有RTX 3090、4090吃到飽。訓練樣本量(幾千份)很小,沒發現問題。做staging(no CUDA)和推到生產環境(Intel Core I3-9100,Intel 內顯)問題就來了。

在 staging 機器上,加了DistilBERT模型做 preprocessing 之後,文本索引速度暴跌到一小時幾千份。而目前要索引的報告量接近800萬份。生產環境基本不能用。

後來找網路攻略。發現三個解決思路:換輕量化模型、換Runtime、模型瘦身(做 INT8 quantization或pruning等,「據說」對CPU架構會友善點)。

輕量化模型找到了:華為的 TinyBERT。原始論文號稱推理速度比BERT快接近10倍。實際把DistilBERT換成TinyBERT後,索引速度在staging和生產環境就暴增到一小時2萬份,F1 score (0.94)和原本用DistilBERT差不多。但雖然性能有很大提升,一次完整索引迭代還是要超過2個禮拜。做到一半發現有問題需要重新索引又是另一個迭代。

後來繼續查,照著網路攻略把INT8 quantization弄了出來,但staging的時候跟我說沒GPU不能開quantization!功力不夠找不到問題就先放棄了。再試了換Runtime。Runtime換到ONNX以後。Jupyter notebook上推理的 wall time 直接變1/3(68000+ 測資 14min -> 5min)。於是再熱火朝天改code佈署。結果性能提升比三倍更多(原因不清楚,權當神秘學XD),索引速度爆增到每小時15萬份,一次索引迭代只要兩三天。已可接受了。

結論而言。如果未來服務要更進一步,還是要想辦法搞 GPU。用CPU跑BERT根本自虐,還好這次有找到解法,不然就得關feature然後說研究成果落地有困難QQ

全文連結

星期六, 6月 17, 2023

人生第一篇 SCI

連結


人生第一次發 SCI 竟然忘了寫日記 XDDD,把當時的臉書動態重整後記下來。4/25 正式發表,現在記一下也不算太晚 XD

---
成功發表人生第一篇 SCI original article,預計再一兩個月內正式 publish。作為人生第一篇有分數(IF=3.23)的文章,值得發廢文慶祝 XD
寫作動機是想用 NLP 解掉搜尋引擎結果不精確的問題,讀 paper 查別人解法時,發現了研究機會。剛好公司其他系統也有類似問題,就從最有賣點的角度切入,成功淼了出來。
過程中寫 code 不難,PyTorch 的封裝非常完善。資料標註(n=6000)花了些時間。最難還是寫文章本身,文字反覆修改,中間穿插補實驗,從 11 月跌跌撞撞補到現在。幸運的是剛好趕上 ChatGPT 神器現世,可以幫我把零散、片段文字瞬間轉成通順的英文,文字拆分、縮減、重排也不在話下,作者只要優化細節和確保正確就好。
這篇是「搜尋引擎土炮」系列事件的最輝煌成就了。搜尋引擎出 bug 要解,自己弄 AI 流水線。AI 流水線需要的實驗和模型,自己包,再請前輩指導投稿。AI 需要的資料,從自己土炮的搜尋引擎撈的,資料標注,自己弄的。應該可自稱一聲,苦工之王。
不過爆肝還是值得的,以六千鉛汞,配九九八十一 epoch 練就 BERT 大還丹,服用後白日飛昇,WoS 天榜題名,值了 XDDDD
---

本以為 accept 後天下太平。結果 publish 又一波爆肝。

為了確保準時 publish,期刊所有 copyediting 和 proof reading request 都有時限,都要求 2~3 工作天內回覆。下班和週末又沒了,都在看自己文章,首刷、二刷、三刷、四刷、 N 刷解 issue。當初「應用 paper 可以寫三十頁」多得意,現在解 bug 就多噁心。現在吞下肚的淚,都是當初灌的水。

期刊 copyediting 是找外包編輯,體驗普,有時對期刊最新規定還不清楚。跟外包對線,還要花時間詳閱期刊最新 guideline 引經據典打官司 。deadline 很緊的結果,就是進 proofreading 後又發現一波 bug。趁著期刊週末沒上班沒辦法把稿件鎖起來,Author final confirmation  硬是厚著臉皮連更好幾輪,刷到 editor 客氣寫信建議別再更,否則 publish 來不及 XDDD
整體而言,對 JMIR 的投稿體驗還是很好。付快速通關費後,JMIR 所有的決定都非常快。2/08 送件,3/11 給 revision。3/21 回 revision,3/24 accept。從 11/15 開始做實驗動筆到 4/25 publish,快半年的煎熬順利結束,很幸運沒演變成凌遲。終於可以把資料夾封存,去做些別的事情。發表時間剛好靠近生日,就當生日禮物了(X)。
最後感謝本院 AI 中心,在過程中忍受某沒見過世面的菜逼新人不分晝夜詢問智障問題,幫忙解答疑問還有對稿件提供建議,讓新手順利避過雷區,最終人生第一篇 SCI 得以順利完成 (完結灑花)
----


其實事情還不算全部完結,這次忽然急著半年生 SCI 是有些職涯規劃的原因。只能說壓力使人成長。以前當 R 固定時間 meeting 然後給教授指導連一篇都弄不出來,現在被逼急就從無到有半年就一篇。長輩應該覺得驚喜(?)

全文連結

星期三, 5月 18, 2022

系列文章:Step by step guide to master natural language processing

Part 1
Part 2
Part 3
Part 4
Part 5
Part 6
Part 7
Part 8
Part 9
Part 10
Part 11
Part 12
Part 13
Part 14
Part 15
Part 16
Part 17
Part 18
Part 19
Part 20
簡介 NLP 的一系列文章,深入淺出,涵蓋面夠廣。裡面的 python 代碼不是重點,對概念的簡單說明和範例才是 XD。TutorialsPoint 也有簡介 NLP 的文章但寫的太 formal。缺點大概就是寫到 Topic modeling 以後「筆力」就不大夠了。但整個系列作為讀書前的導讀應該還是不錯的。 全文連結