https://huggingface.co/DeepLearning101
手把手帶你一起踩AI坑:https://reurl.cc/g6GlZX
自然語言處理(英語:Natural Language Processing,縮寫作 NLP)是人工智慧和語言學領域的分支學科。此領域探討如何處理及運用自然語言;自然語言處理包括多方面和步驟,基本有認知、理解、生成等部分。 自然語言認知和理解是讓電腦把輸入的語言變成有意思的符號和關係,然後根據目的再處理。自然語言生成系統則是把計算機數據轉化為自然語言。最後,放眼望去想入門 Attention、Transformer、Bert 和 李宏毅老師的教學影片等,絕對不能錯過。 雖然分享這些踩過的坑還有免費DEMO跟API其實我想不到有啥好處,但至少不用為了要營利而去亂喊口號也更不用畫大餅,能做多少就是說多少;如同搞 Deep Learning 101 搞那麼久,搬桌椅、直播場佈其實比想像中麻煩,只希望讓想投入的知道 AI 這個坑其實很深,多分享總是比較好 !
Transformer - Attention is all you need
關於自然語言處理,如果你在臺灣,那你第一時間應該會想到俗稱Chatbot的聊天機器人 (就是要人工維運關鍵字跟正規表示式的機器人)吧?從最早的中英文的情感分析,陸續接觸過文本糾錯(校正)、文本分類、文本相似度、命名實體識別、文本摘要、機器閱讀理解等,當然自然語言處理其實博大精深,還有像是分詞、詞性標註、句法分析、語言生成等,傳說中的知識圖譜 (Ontology?) 更是大魔王了;這邊僅先匯整接觸過的做說明,當然在深度學習還未爆紅前,已經有非常多的演算法,未來也盡量針對各個項目與領域持續更新簡單介紹,就當近幾次專題演講的摘要,也算是這幾年跟小夥伴們奮鬥NLP充滿血與淚的回憶;另外,根據經驗,論文當然要追,更要實作跟實驗,但算法模型其實效果已經都差不多,如果你想將算法實際落地,別懷疑,請好好的處理你的數據,這會是蠻關鍵的地方。另外,你一定也要知道 BERT家族,早在2018年11月,Google 大神釋出 BERT 後,就差不多屌打各種自然語言處理應用 (在這之前,你想搞自然語言處理,勢必用到騰訊所開源需要16GB記憶體的Tencent_ChineseEmbedding),再後來還有像 transformer 跟 huggingface,所以你一定要花點時間瞭解;當然,如果你真的沒太多時間投入去換跟處理數據然後重新訓練,那歡迎聯絡一下,用我們還持續迭代開發的臺灣深度大師啦,不然公開數據都是對岸用語或簡體跟英文還要擠GPU計算資源,你會很頭痛 ! 對啦,你也可以試試 NVIDIA GTC 2021 介紹的Javis等對話式AI等東西,但我想你還是會覺得不容易上手就是,除非你想自己從頭硬幹去瘋狂的標註適合自己場景的數據,然後瞭解怎樣重新訓練模型。
Information/Event Extraction (資訊/事件擷取)
- HugNLP
- DeepKE
- Ningyu Zhang, Xin Xu, Liankuan Tao, Haiyang Yu, Hongbin Ye, Shuofei Qiao, Xin Xie, Xiang Chen, Zhoubo Li, Lei Li, Xiaozhuan Liang, Yunzhi Yao, Shumin Deng, Peng Wang, Wen Zhang, Zhenru Zhang, Chuanqi Tan, Qiang Chen, Feiyu Xiong, Fei Huang, Guozhou Zheng, Huajun Chen, "DeepKE: A Deep Learning Based Knowledge Extraction Toolkit for Knowledge Base Population", arXiv preprint, arXiv:2201.03335, 2022
- 基於深度學習的開源中文知識圖譜抽取框架
- DeepKE-LLM: A Large Language Model Based Knowledge Extraction Toolkit
- 知識增強的開源語言大模型框架
- ERINE-Layout
- UIE @ PaddleNLP
投入約120天,早期想上線需要不少計算資源 (沒有昂貴的GPU想上線簡直是難如登天,好險時代在進步,現在CPU就能搞定)。記得我2018從老闆口中第一次聽到新項目是機器閱讀理解時,一頭霧水不知道是在幹麼,Google後突然發現這還真是它X的超級難的東西,而當時落地場景是要解決機器人在博物館或者展場的Q&A,不想再預先建一堆關鍵字與正規表示式來幫相似度和分類做前處理。 但機器閱讀理解坑真的不小,首先當然是數據,公開數據有SQuAD 1.0和2.0,但這是英文,你想用在中文 ? 你可以自己試試啦,再來有了個中文的CMRC,但用得是對岸用語跟簡體中文,而且數據格式不太一樣;後來台達電放出了DRCD還有科技部辦的科技大擂台,依然有格式不同的問題,數據量真的不太夠,所以想要落地你真的得要自己標註。 為了解決像是多文章還有問非文章內問題,還有公開數據要嘛英文不然就是簡體中文或對岸用語,然後本地化用語的數據實在不足的狀況,小夥伴們真的很給力,我們也用機器翻譯SQuAD 1.0和2.0還有自己手工爬維基百科跟開發了數據標註系統自己標註 ! 不得不說小夥伴們真的是投入超多精神在機器閱讀理解,更在Deep Learning 101做了分享。
Machine Reading Comprehension (機器閱讀理解)
記得前後兩次陸續投入總計約100天。或許有人會發現為何在分享這幾篇自然語言會強調中文數據?最好理解的說法就是中文是基於字表示再加上中文斷詞的效果,比起每個單詞只需空格來表示的英文硬是麻煩點。命名實體識別 (Named Entity Recognition, NER) 是指將語句中的元素分成預先定義的類別 (開放域來說包括實體、時間和數字3個大類,人名、地名、組織名、機構名、時間、日期、數量和名字等7個小類,特定領域就像是藥名、疾病等類別)。要應用在那方面?像是關係抽取、對話意圖理解、輿情分析、對話NLU任務等等都用得上,更廣義的就屬填槽 (Slot-Filling) 了。 最早 (2019/08時) 我們需處理的場景是針對電話助理的對話內容 (就是APP幫你接電話跟對方對話) 在語音識別後跟語音合成前的處理,印像中沒做到非常深入;後來剛好招聘到熟悉NER這部份的小夥伴們,剛好一直想把聊天對話做個流程處理 (多輪對話的概念) ,就再花了點時間當做上手,因為不想依賴大量關鍵字和正規表示式做前處理,中間試了不少數據集,還做了像是用拼音、注音等,或者品牌定義等超多的實驗,甚至還一度想硬整合 RASA 等等的開源套件,也嘗試用了 "改寫" 來修正對話內容,去識別出語句中的重點字。至於這個的數據標據就真的更累人,意外找到一個蠻好用的標註系統 ChineseAnnotator,然後我們就瘋狂開始標註 !
Named Entity Recognition (命名實體識別)
投入約100天,早期上線成本資源頗高,現在就沒這問題;這個項目堪稱是在NLP這個坑裡投入第二多的,記得當時的場景是機器人在商場裡回答問題所顯示出來的文字會有一些ASR的錯字,但是問題一樣卡在數據集,還因此讓小夥伴們花了好長時間辛苦去標註 XD,但看看現在效果,我想這是值得的 ! 記得一開始是先依賴 pycorrector,然後再換 ConvSeq2Seq,當然 bert 也做了相關優化實驗,中間一度被那三番二次很愛嗆我多讀書,從RD轉職覺得自己很懂做產品的PM拿跟百度對幹,從一開始的看實驗結果輸,到後來贏了,卻又自己亂測說還是不夠好之類的叭啦叭啦,說實話,你最後不也人設垮了然後閃人 ~ 攤手 ~ 現在看看這截圖效果,不是蠻勵害的嗎 ? 真的想說這社會真的充滿一堆人設嚇死人的人,無敵愛嘴砲 ! 搞的為了滿足那位人設比天高的需求,真的是想了像是用拼音還兼NER來整合的好幾種方法 ! 那文本糾錯會有什麼坑呢?:數據啊、格式啊 !!! 還有幾個套件所要處理的目標不太一樣,有的可以處理疊字有的可以處理連錯三個字,還有最麻煩的就是斷字了,因為現有公開大家最愛用的仍舊是Jieba,即便它是有繁中版,當然也能試試 pkuseg,但就是差了點感覺。
Correction (糾錯)
最早我們是透過 Hierarchical Attention Networks for Document Classification (HAN) 的實作,來修正並且以自有數據進行訓練;但是這都需要使用到騰訊放出來的近16 GB 的 embedding:Tencent_AILab_ChineseEmbedding_20190926.txt,如果做推論,這會是個非常龐大需載入的檔案,直到後來 Huggingface 橫空出世,解決了 bert 剛出來時,很難將其當做推論時做 embedding 的 service (最早出現的是 bert-as-service);同時再接上 BiLSTM 跟 Attention。CPU (Macbook pro):平均速度:約 0.1 sec/sample,總記憶體消耗:約 954 MB (以 BiLSTM + Attention 為使用模型)。 引用 Huggingface transformers 套件 bert-base-chinese 模型作為模型 word2vec (embedding) 取代騰訊 pre-trained embedding 優點:API 上線時無須保留龐大的 Embedding 辭典,避免消耗大量記憶體空間,但BERT 相較於傳統辭典法能更有效處理同詞異義情況,更簡單且明確的使用 BERT 或其他 Transformers-based 模型 缺點:Embedding後的結果不可控制,BERT Embedding 維度較大,在某些情況下可能造成麻煩
Classification (分類)
投入約45天,那時剛好遇到 albert,但最後還是被蒸溜給幹掉;會做文本相似度主要是要解決當機器人收到ASR識別後的問句,在進到關鍵字或正規表示式甚至閱讀理解前,藉由80/20從已存在的Q&A比對,然後直接解答;簡單來說就是直接比對兩個文句是否雷同,這需要準備一些經典/常見的問題以及其對應的答案,如果有問題和經典/常見問題很相似,需要可以回答其經典/常見問題的答案;畢竟中文博大精深,想要認真探討其實非常難,像是廁所在那裡跟洗手間在那,兩句話的意思真的一樣,但字卻完全不同;至於像是我不喜歡你跟你是個好人,這就是另一種相似度了 ~ xDDD ! 那關於訓練數據資料,需要將相類似的做為集合,這部份就需要依賴文本分類;你可能也聽過 TF-IDF 或者 n-gram 等,這邊就不多加解釋,建議也多查查,現在 github 上可以找到非常的範例程式碼,建議一定要先自己動手試試看 !
Similarity (相似度)
人工智慧大語言模型微調技術:SFT 監督微調、LoRA 微調方法、P-tuning v2 微調方法、Freeze 監督微調方法
工具名稱 | 功能範疇 | 集成能力 | 適用場景 | 建議選擇 |
---|---|---|---|---|
Flowise | 簡單可視化流程建構 | 支持 LangChain 和 GPT,多平台部署 | 快速構建簡單 LLM 流程應用 | 適合需要快速構建和部署 LLM 應用的用戶 |
Langflow | 多智能體與 RAG 應用構建 | 外部工具、API 與資料庫集成 | 複雜任務鏈與多智能體應用開發 | 適合構建複雜任務鏈的技術型開發者 |
Dify | 全面應用開發與管理 | 多模型支持,全面工作流與模型管理 | 全生命周期管理與複雜應用開發 | 適合需要全面管理 LLM 應用的開發者或企業 |
New API | 模型接口統一與分發 | OpenAI 格式統一,支持多支付協議與分發管理 | 多模型接口管理與分發 | 適合需要統一管理多種 AI 模型接口的用戶 |
XORBITS Inference | 分散式推理與部署 | 與 Hugging Face 等模型相容,支援雲端及本地等多種部署環境 | 大規模模型推理與雲端部署,需快速搭建可擴展的推理服務時 | 適合需要高效擴展能力、進行大規模模型推理的團隊或企業 |
Ollama | 本地模型推理與管理 | 提供命令列介面,支援多種 Llama 模型於本地運行 | 在有隱私或離線需求的場景下進行本地推理 | 適合想在本地快速配置 Llama 系列模型的個人或中小型團隊 |
- 2025-01-03:smolagents:新年禮物,Huggingface捲了一個Agent專案開源
- 2024-12-15:markitdown
- 2024-11-21: IBM開源一站式文件解析工具!輕鬆解析PDF、PPT、圖片及網頁等多種格式文檔
- 2024-11-11:LoRA、完全微調到底有何不同? MIT 21頁論文講懂了
- 2024-09-23:STORM: Synthesis of Topic Outlines through Retrieval and Multi-perspective Question Asking
- torchtune:https://github.com/pytorch/torchtune
- LLaMA Factory:https://huggingface.co/spaces/hiyouga/LLaMA-Board
- PyMuPDF :PyMuPDF的安裝與使用
- 開源不限學術用,ten-agent:又一款王炸級的開源端對端語音模型
- 開源不限學術用,pipecat
- 開源不限學術用,HuggingFace Speech-to-Speech
- 開源不限學術用,bailing
- 開源不限學術用,OmAgent:OmAgent框架強勢開源!業界應用已全面開花
- 開源不限學術用,2024-12-11:Ultravox
- 開源學術用,商用需申請,GLM-4-Voice:嚐鮮評量:智譜AI語音大模型GLM-4-Voice好用不
- 開源限學術用,2024-12-06:Freeze-Omni
- 2024-12-13:DeepSeek-VL2:DeepSeek-VL2開源,VLM邁入MoE時代,DeepSeek-VL2 先進視覺語言模型,在多模態理解方面取得了顯著進展
- 騰訊混元:騰訊混元又來開源,一出手就是最大MoE大模型
- 2024-12-13:Phi-4:以小博大,微軟Phi-4正式發表~
- 2024-11-18:MobileLLM-1.5B:Meta MobileLLM:深度架構與最佳化技術打造的行動裝置超強語言模型
- 2024-11-04:SmolLM2:https://github.com/hiyouga/LLaMA-Factory
- 2024-09-25:Llama 3.2 90b, 11b, 3b, 1b: Revolutionizing edge AI and vision with open, customizable models
- 2024-12-05:InternVL2.5
- 2024-11-23:Ai2 Tülu 3:這才是真・開源模型!公開「後訓練」一切,性能超越Llama 3.1 Instruct
- 2024-11-9:Ai2 OpenScholar:https://openscholar.allen.ai/
- 2024-09-25:Llama 3.2 90b, 11b, 3b, 1b: Revolutionizing edge AI and vision with open, customizable models
- 2024-09-19:阿里國際發表最新開源多模態模型Ovis,多模態能力再升級:https://huggingface.co/AIDC-AI/Ovis1.6-Gemma2-9B
- 2024-09-20:Reader-LM:用於清理和將 HTML 轉換為 Markdown 的小型語言模型
- 2024-06-28:谷歌最新Gemma 2 模型來了
- 2024-04-11:視覺語言模型詳解
- 2024-09-26:Llama 3.2:開源可自訂視覺模型:Ollama
- 2024-09-20:LLaMA-Omni:Llama 3.1 Omni:顛覆性的文字與語音雙輸出模型
- Mistral AI Pixtral
- 2024-09-14:Pixtral 12B / DEMO:本地部署、映像分析和OCR功能全解析
- 2024-09-12:Mistral AI推出多模態模型Pixtral 12B
- MiniCPM:https://github.com/OpenBMB
- 2024-09-12:微軟AI發布Phi 3.5 mini、MoE 和Vision
- 2024-09-12:LLaVA-OneVision 震撼登場!字節跳動:https://cloud.tencent.com/developer/article/2444463
- 2024-06-24:微調Florence-2 - 微軟的尖端視覺語言模型
過往資訊
-
UnIVAL: Unified Model for Image, Video, Audio and Language Tasks:https://arxiv.org/pdf/2307.16184.pdf
-
Revisiting Relation Extraction in the era of Large Language Models:https://arxiv.org/abs/2305.05003
- LangChain 入門:構建LLM 支持的應用程序的初學者指南
- LangChain中文入門教程
- 大語言模型集成工具LangChain
- LangChain-ChatGLM-Webui
- Langchain-Chatchat/Langchain-ChatGLM
- 基於本地知識的問答機器人langchain-ChatGLM
- LlamaIndex:輕鬆構建索引查詢本地文檔的神器
- LlamaIndex——与LangChain类似但更专注于数据处理的LLM框架
- langchain大模型外掛知識庫問答系統核心部件:如何更好地解析、分割複雜非結構化文本
- 一文詳解最熱的LLM 應用框架LangChain
- LangChain:打造自己的LLM 落地場景實作!
- langchain+xray,好玩起来了
- 利用LangSmith和Lilac微調你的大模型
- AutoGen / AutoGen Studio
- https://microsoft.github.io/autogen/blog/2023/12/01/AutoGenStudio/
- 微軟Agent框架AutoGen論文及原理解讀
- AutoGen Studio 與本機Mistral AI 模型
- AutoGen Studio UI 2.0 : Step By Step Installation Guide
- 體驗AutoGen Studio - 微軟推出的友善多智能體協作框架
- 逐步掌握最佳Ai Agents框架-AutoGen:https://github.com/sugarforever/AutoGen-Tutorials
- 微軟AutoGen框架太火了,智能體聊聊天就把問題解決了
- autogen-ui:https://github.com/victordibia/autogen-ui
- 我打通了Autogen和Bing搜尋| AutoGen系列第二篇
- Streamlit + AutoGen = 基於LLM的多代理網頁應用開發
- 使用Streamlit建立AutoGen使用者介面
- AnythingLLM:https://github.com/Mintplex-Labs/anything-llm
- ollama:https://ollama.ai
- Flowise ——通過拖放界面構建定制的LLM流程
- QAnything, Question and Answer based on Anything:https://github.com/netease-youdao/QAnything
- CrewAI:CrewAI與AutoGen相比
- Phidata:Phidata補齊大模型短板,輕鬆建構RAG AI助理!
- NVIDIA AI Foundation Models
- TensorRT-LLM
- FastGPT
- XAgent:https://github.com/OpenBMB/XAgent
- Dify
- HuggingChat:Powered by Open Assistant's latest model – the best open source chat model right now – and Hugging Face Inference API.
- JittorLLMs:計圖大模型推理庫-沒有顯示卡也能跑大模型:https://github.com/Jittor/JittorLLMs
- PromptFlow — 微軟最新開源的基於LLM的開發工具集:https://github.com/microsoft/promptflow
- 用bitsandbytes、4 位元量化和QLoRA 打造親民的LLM
- 用LLaMA 2.0, FAISS and LangChain實現基於知識問答
- LMDeploy:使用LMDeploy 輕鬆部署Llama-2 系列模型!
- LLMStack:一個用於構建生成式AI 應用、聊天機器人、智能體的無代碼平台
- LLaMA2-Accessory
- AutoChain : LangChain 的替代品
- LangFlow:一款可輕鬆實驗和原型化 LangChain 模擬的 AI 項目
- 大型語言模型綜述全新出爐:從T5到GPT-4最全盤點!
- 現有開源中文LLM整理
- 大模型LLM-微調經驗分享&總結
- Hugging Face 的文本生成和大語言模型的開源生態
- 構建能夠使用CPU 運行的MetaAI LLaMA2 中文大模型
- 復旦NLP團隊發表80頁大模型Agent綜述,一文綜觀AI智能體的現況與未來
- 個人程式設計助理: 訓練你自己的編碼助手
- Code Llama:https://github.com/facebookresearch/codellama
- DeepSeek Coder:https://huggingface.co/deepseek-ai
- CodeShell:https://huggingface.co/WisdomShell
- Gemma: Google 最新推出開放大語言模型
- Mistral
- Xwin-LM
- Zephyr
- neural-chat-7b-v3@INTEL
- Baichuan:https://huggingface.co/baichuan-inc
- 01-ai/Yi
- Fengshenbang-LM(封神榜大模型):https://huggingface.co/IDEA-CCNL
- Chat GLM
- Falcon 180B Demo
- 天工@崑崙萬維
- Meta Llama 2:https://github.com/facebookresearch/llama
- MOSS
- Bloom:
- Dolly
- XVERSE
- MPT-7B:A New Standard for Open-Source, Commercially Usable LLMs
- [OpenBMB]
- Open Assistant
- Cerebras-GPT
- OpenBuddy
- h2oGPT:https://github.com/h2oai/h2ogpt
- 文心@百度:
- 混元@騰訊:
- 通義千問(QWEN)@阿里: