該踩或不該踩的坑都踩完,大型語言模型直接就打完收工?

2024/10/12 更新:OPEN AI 終於 OPEN 了 !!! https://github.com/openai/swarm
但早在之前被整天想當網紅給蹧踏的工作項目時,就已經測試驗證過相關的 Agent 項目
初步看了一下文檔,感覺上還不成熟,就是用來表達Agent 如何工作以及將不擅長的工作移交,但是目前已經有很多開源工具,都具備類似的編排功能組合,且能夠完美解決用戶需求,貌似找不到要特別改變的必要,估計再觀察看看  swarm?

應該是從2016的 AlphaGo 跟 Deep Learning 101 開始後吧,就這樣以資安與深度學習整合研究應用為主,差不多就是那幾年,陸續做了些項目整合到服務型機器人,也陸續做了幾篇踩坑筆記。

但是到底因為大語言模型的出現,有多少相關基礎技術好像都打完收工了 ? 首先就來給這幾篇文章做個摘要

手把手帶你學 Pytorch、CUDA、cuDNN、Ubuntu、NGC、NVIDIA-Docker 的安裝與設定
  • Ubuntu安裝與設定:講解如何設定Ubuntu作業系統為深度學習開發環境的基礎。 
  • CUDA與cuDNN的安裝:介紹CUDA與cuDNN的版本匹配和正確安裝步驟。 
  • NVIDIA驅動程式與NVIDIA-SMI:討論如何安裝和檢查NVIDIA GPU的正確運作。
  • TensorFlow與PyTorch安裝:針對這兩大深度學習框架,提供安裝和配置的指導。
  • Docker與NVIDIA-Docker:說明如何使用Docker進行深度學習環境的隔離和管理。
那些自然語言處理踩的坑:記得這篇講了一些關鍵問題與挑戰,2021/04的筆記。
  • 語料與數據前處理:強調數據質量對NLP的影響,指出繁體中文語料的稀缺性是主要難點之一。
  • 文本校正與分類:討論文本分類與校正中常見的問題,並分享了如何透過標註數據來改進模型。
  • 命名實體識別(NER):提到NER的挑戰,尤其是對繁體中文資料的處理。
  • 模型選擇與應用:介紹了BERT與Seq2Seq等技術的優劣,並分享使用這些模型的實踐經驗。
那些語音處理 踩的坑:這篇一樣是2021/04的文章,都是在大型語言模型火起來前做的筆記了 !
  • 語音識別(ASR):強調數據集的準備,如AISHELL和VoxCeleb,並討論ASR的挑戰。 
  • 聲紋識別(Speaker Recognition):介紹語者辨識的挑戰及其應用場景。 
  • 語音去噪:說明如何應對噪音問題,討論了噪聲處理的關鍵技術。 
  • 語者分離(Speaker Diarization):闡述如何將多語者聲音分離的技術難點。 
  • 模型選擇與工具:討論了Kaldi等工具的應用經驗。
那些ASR和TTS可能會踩的坑:ASR跟TTS其實也做了不少,但直到2024才很認真的玩了 whisper
  • Whisper模型的應用:討論Whisper在中文語音識別中的應用與最佳化。
  • 開源工具介紹:介紹了如WhisperX、faster-whisper等工具的使用。
  • 微調與優化:描述如何利用微調和其他技術來改進ASR和TTS的效果。
  • 數據處理與訓練:強調數據質量的重要性,並分享了處理與訓練數據的工具與技巧。
就在以為深度學習可能快要泡沫化時,突然 ChatGPT 橫空出世,GenAI 紅得一發不可收拾;很努力的跟上時代用力踩坑並做了記錄

大型語言模型要踩的坑:一開始很努力在搜集一些文章,後來便動手2024/02記錄了一下
  • AutoGen與Ollama:介紹這些工具的應用場景,並強調模型的擴展性和配置的重要性。
  • Dify與RAGFlow:討論如何結合檢索增強生成(RAG)技術來提升模型的回答準確性。
  • AnythingLLM與CrewAI:說明多代理模型合作的應用,並探討如何通過這些工具實現更好的模型性能。
那些檢索增強生成要踩的坑:再後來,我想大家也知道 RAG 多火了,記錄在2024/07 !
  • RAG的概述與應用:介紹如何利用RAG將文本分割成片段並進行嵌入,用於向量檢索與回答生成。
  • 嵌入模型與重排序器:說明檢索的兩個步驟,包括向量檢索和重排序的應用。
  • GraphRAG與知識圖譜:討論知識圖譜如何增強RAG性能,並提到GraphRAG的應用挑戰。
  • 工具與實作:介紹了相關的工具如FAISS、Milvus,以及數據處理的技巧。
白話文手把手帶你科普 GenAI:這篇則是很近的 2024/08 整理的坑
  • LLM與Prompt:介紹大型語言模型與提示工程的基礎概念及應用範例。
  • RAG技術:討論如何透過檢索增強生成來提升語言模型的準確性。
  • 微調(Fine-Tuning)與函數調用:強調微調模型與函數調用在特定應用中的重要性。
  • 多代理與多模態系統:探討如何結合多代理和多模態技術來增強生成能力。
2023/08 公司添購 RTX 6000 Ada 48 GB * 2 和 A 100 80GB * 4
2024/05 公司添購RTX 6000 Ada 48 GB * 8 * 2

應該有發現,好多事變的簡單了?有種褲子都脫了你卻跟我說收工了 ? 
然後發現在 Google  的搜尋曝光量,發現這幾個排名特別前面;基於取之於網路用之於網路,感覺是該要再更新一下技術現在已經進步到那了 ? 免得人家都已經上太空,你卻還在殺豬公 ? 喊著技術迭代太快很難跟上 ? 但是讀資訊的,不就早都知道這是條學習不歸路嗎 ? 所以就順手給幾年前陸續做過的項目也再來個摘要吧 !

中文文本分類:首先就從所謂的情感分析也就是文本分類來聊聊,文本分類是 NLP 中最早取得顯著進展的領域且之一。從垃圾郵件分類、新聞分類到社交媒體評論的情感分析,文本分類技術都有著關鍵作用。
一開始還得依靠人工制定的規則,例如關鍵詞匹配、正則表達式等。這些方法需要大量的人工干預,且難以應對複雜的語義和多變的語言現象。接著就是依賴於人工設計的特徵和傳統的機器學習方法,如支持向量機 (SVM)和隨機森林(Random Forest)。這些模型的效果在一定程度上取決於特徵的選取,如詞袋模型(Bag of Words)或 TF-IDF,方法雖然簡單但在語言結構複雜的中文文本上往往捉襟見肘。 
隨著深度學習的興起,卷積神經網絡(CNN)和長短期記憶網絡(LSTM)等方法在文本分類中的應用開始流行。這些模型能夠自動學習文本的語義表示,顯著提高了分類的準確性。
而在最近幾年,大型預訓練模型如BERT、RoBERTa和XLNet等的出現,徹底改變了文本分類的格局。這些模型可以理解上下文中的語義關係,並通過微調來適應各種特定任務,顯著提升了中文文本分類的性能。
上下2個截圖就是先爬網、再解析關鍵字做相似度、接著再做分類判斷正負面的 WorkFlow 啦
更讓人意外的則是GPT等大型語言模型的問世,進一步推動了文本分類的進步。這些模型具有極強的生成能力,能夠基於大量未標註的文本數據進行預訓練,再通過少量標註數據進行任務微調,實現精確分類。與早期的特徵工程相比,這些模型不僅簡化了流程,還提高了分類的精確度和適應性。另外,通過微調 (Fine-tuning) 即可在特定任務上更好地處理複雜的分類場景。回頭想想那些你得先想辦法做爬蟲,從Facebook、Twitter及Telegram上搜集用戶評論,是不是連最麻煩的是爬蟲的開發跟數據的清洗都不用了呢?

中文文本糾錯:主要應用於拼寫錯誤、語法錯誤及語義錯誤的檢測與糾正 (像是在 ASR後的一些改錯糾正)。早期的糾錯系統多基於規則的方法,如詞典比對和簡單的語法規則,這些方法對簡單的拼寫錯誤有效,但覆蓋面有限,難以處理多樣的錯誤類型無法處理語境依賴的錯誤。 
統計語言模型和基於機器學習的方法隨後出現,將上下文納入考量,學習錯誤模式和上下文信息,通過學習大量文本數據中的共現模式來提高糾錯能力。然而,中文具有高度靈活的語序和詞彙組合,這讓糾錯成為一個更為複雜的問題。
再來是Seq2Seq 模型、Transformer 模型等深度學習模型在文本糾錯任務中取得了顯著進展。這些模型可以學習更複雜的錯誤模式,並生成更準確的糾正結果。
而基於預訓練語言模型,例如,BERT的遮罩語言模型(Masked Language Model)可以預測缺失或錯誤的詞,從而實現高效的糾錯效果。 
大型語言模型的生成能力更是賦予了中文文本糾錯全新的發展方向,作為文本糾錯的生成模型,直接生成糾正後的文本;可以更好地處理多種錯誤類型,例如拼寫錯誤、語法錯誤、語義錯誤等。這些模型能夠根據上下文語義進行更加智能的糾正,結合上下文信息,生成更符合語境的糾正結果;並且大幅減少了對人工標註數據的依賴。但認真來說,中文字總是有些特定領域的同音異字的案例,目前感覺上,大模型對於文本糾錯總是還不夠完善就是 ! DeepLearning101/Corrector101zhTW


中文機器閱讀理解:要求模型理解文本並回答問題的技術。早期的閱讀理解系統多基於模板匹配或關鍵字檢索,這種方法在處理簡單的事實性問題上有一定效果,但無法應對更加複雜的語義分析及推理。
至於,統計機器學習的方法如 SVM、邏輯回歸等統計模型被應用於機器閱讀理解,可以學習文本特徵和答案模式;但我自己是沒這樣用過就是
隨著深度學習技術的進展,特別是自注意力機制和Transformer架構的出現,MRC領域得到了顯著提升;更好地捕捉文本中的關鍵信息,並進行更準確的推理。這些模型可以將文本轉化為密集的語義向量表示,並使用注意力機制在上下文中尋找相關信息來回答問題。例如,BERT模型已經成為MRC的主流模型之一,它通過雙向Transformer結構理解文本上下文,並在多個中文MRC數據集上取得了優異的表現。
結果,大型預訓練模型大幅提升了中文閱讀理解的效果,它們能夠理解複雜的上下文並進行推理,在閱讀理解任務中,這些模型已經接近甚至超越了人類水平。更別說更為火紅的 RAG 甚至是 GraphRAG等了。(那些檢索增強生成 (Retrieval-Augmented Generation, RAG) 要踩的坑?)

中文實體識別:目標是在文本中自動識別出命名實體,如人名、地名、組織機構等。早期的實體識別主要依賴於規則系統和標注語料庫,這些方法雖然能夠識別常見的實體,但對於新詞或模糊詞的識別效果有限。
 隨著統計模型和機器學習方法的引入,條件隨機場(CRF)、隱馬爾可夫模型 (HMM) 等技術在實體識別中開始廣泛應用。這些模型通過學習文本特徵之間的關聯來進行實體識別,學習實體的上下文特徵和標註規律。
隨後,深度學習模型如LSTM和BERT的出現,能做到自動學習實體特徵,減少了人工干預的需求,並且能夠更好地捕捉上下文信息。進一步提升了NER的性能。 
再來是基於Transformer的BERT等,顯著提升了中文實體識別的準確度。這些模型可以處理長距離依賴問題,並通過上下文捕捉更豐富的語義信息,從而在實體識別任務中表現出色。
最後則是大型語言模型了,能做到更精準的實體表示,並且結合上下文信息,更準確地識別實體,特別是處理歧義現象和新興實體。基於機器閱讀理解和指令微調的統一信息抽取框架之診斷書醫囑資訊擷取分析

中文文本相似度:早期的相似度計算方法大多基於詞語重疊率、詞向量或編碼模型(如TF-IDF)來評估兩段文本之間的相似性。然而,這些方法無法充分理解文本的語義結構,特別是在中文這樣結構複雜的語言中。 
隨著深度學習的發展,句子編碼模型(如BERT、Siamese-BERT)逐漸成為計算文本相似度的主流技術。這些模型能夠將文本轉化為高維語義向量,並通過向量距離來衡量文本之間的相似度。
大型語言模型的影響:GPT等生成式模型在文本相似度計算中也展現了潛力,特別是在多語言場景下,它們能夠有效地捕捉語義相似性,並應用於各種文本比較任務中;更令人意外的就是,已經能瞭解文本的深層語義,例如隱喻、反諷等,從而更準確地判斷文本相似度。

中文語音識別:早期發展主要基於隱馬爾可夫模型(HMM)和高斯混合模型(GMM),這些統計模型雖然在處理連續語音上有所突破,但受限於模型容量,難以應對中文的多樣性。
深度學習的崛起,基於端到端的模型,Transformer逐漸成為語音識別的主流技術。Whisper已經能夠在中文語音識別領域取得非常優異的表現;這些模型能夠直接從原始語音數據中學習特徵,並進行語音到文本的轉換。
在語音識別中,GPT和其他大規模模型正在被探索應用。這些模型的多模態能力(如語音和文本的融合)使它們有可能在語音識別和文本生成中實現更加自然的交互。那些ASR和TTS可能會踩的坑

中文語音去噪:早期的去噪方法主要基於頻譜減法和信號處理技術,這些方法在處理簡單背景噪聲時效果不錯,但在複雜的噪聲環境下,表現有所局限。深度學習技術的引入,特別是生成對抗網絡(GAN)和自編碼器(Autoencoder)等模型,為語音去噪提供了新的解決方案。這些模型可以在更複雜的噪聲環境中進行語音還原,顯著提升語音質量。大型語言模型的影響:大型模型的多模態學習能力也可能應用於語音去噪領域,通過結合語音和文本信息進行更智能的去噪處理。

中文聲紋識別:聲紋識別是根據說話者的聲音特徵來進行身份認證的一種技術。早期的聲紋識別技術主要依賴於基於頻譜的特徵提取和統計學模型。隨著深度學習技術的發展,基於深度神經網絡(DNN)的聲紋識別模型已經能夠自動提取更高級的聲音特徵,並顯著提高了識別準確率。

中文語者分離:語者分離則是指在多個說話者混合的語音信號中,分離出每個說話者的語音。語者分離技術同樣受益於深度學習的進步,特別是基於時間頻譜和序列建模的技術,如LSTM和Transformer,能夠在複雜的語音混合信號中準確分離出每個說話者的聲音。