一文讀懂 AI

  • 2022年11月30日,OpenAI發布了ChatGPT,2023年3月15日,GPT-4引發全球轟動,讓世界上很多人認識了ai這個詞。如今已過去快兩年半,AI產品層出不窮,如GPT-4、DeepSeek、Cursor、自動駕駛等,但很多人仍對AI知之甚少,尤其是“NLP”,“大模型”、“機器學習”和“深度學習”等術語讓人困惑🤔。
  • 對于普通人來說,AI是否會取代工作😨?網絡上說除雙一流以外學校搞不了AI又是什么情況😩?AI產業是否像以前一樣互聯網程序員一樣?看一些科普視頻,上來就是一頓“Attention”、“神經元”、“涌現現象”等術語,讓人感覺是在介紹AI某個領域中的一個名詞,本文將通俗易懂地解釋AI,讓什么都不懂的小白也能變成AI概念的糕手,糕手,糕糕手😎

一:區分AI技術與AI應用

image-20250412213505504

神經網絡是機器學習的一部分,這里作例子
  • AI 的應用有:自然語言處理(NLP)、計算機視覺、自動駕駛、語音識別等。而機器學習、大語言模型等是實現這些應用的技術手段。

  • AI 的應用 就像是 餐館的菜單,上面有不同的菜肴(如自然語言處理、計算機視覺等),這些菜肴是顧客需要的服務或產品。

    而 **機器學習、大模型就像是 廚師的烹飪方法和工具,它們是實現這些菜肴所用的手段。**你可以用機器來完成 NLP 任務,也可以用神經網做。

二:ChatGPT、DeepSeek是什么東西?

  • 我們已經知道AI有不同的應用,而ChatGPT與DeepSeek都是NLP領域的大型語言模型(Large Language Model, LLM)。(NLP中文意思:自然語言處理。不要忘了哦)

  • 這又引出了新問題:NLP是什么?大型語言模型又是什么?

NLP是什么?

  • 翻譯人類語言讓計算機聽懂就是NLP,其中重點是聽懂,而不是你說“吃飯了嘛”,計算機也說“吃飯了嘛”。計算機明白了你在問它吃沒吃飯,于是計算機回答:我是機器不需要吃飯😅,或者我打算過一會兒再吃(充電)🔋。

    很難想象,沒思想的計算機怎么能聽懂有思想的人說的話🤔,這其實是個困擾了幾十年的問題。

階段時間范圍技術特點代表方法/模型應用舉例
規則驅動階段1950s–1980s基于人工編寫規則,語言學為主句法規則、詞典匹配早期機器翻譯、圖靈測試
統計學習階段1990s–2010依賴大規模語料,采用統計與概率模型N-gram、HMM、CRF情感分析、搜索引擎、拼寫糾正
神經網絡階段2010–2017引入深度學習,提升語言理解建模能力Word2Vec、RNN、LSTM、Seq2Seq智能問答、語音識別
預訓練大模型階段2018至今采用Transformer架構,模型參數大規模增長BERT、GPT、T5、ChatGPT、DeepSeek等多任務通用語言處理、對話系統
上面這表AI做的,時間范圍可能有問題,但階段沒問題
  • 規則驅動階段:意思就是讓機器明白主謂賓定狀補、什么名詞動詞名詞短語……但很顯然,套一萬個規則也難以讓一臺只會010101的機器明白你在說什么。

  • 統計學習階段:這時候,科學家們將統計學引入來解決問題。將人們日常對話收集成庫(語料庫),通過統計發現對話數據中的規律來實現計算機“理解”人說的話。

    • 在第三小結,會構建一個簡單的N-Gram模型,讓你大概知道什么是模型與統計學習階段是在干什么。所以先別急。
  • 神經網絡階段:科學家們發現統計效果很好后,擴大了語料庫,加入了矩陣、向量計算(這不是本文重點,但可以是下一篇)和人工設計特征(早期有,后期減少),計算機硬件發展為該階段的提供算力支持。

  • 預訓練大模型階段

    • 先說大模型,大模型就是有參數量大(億級甚至千億級)、數據量大、算力需求高特點的神經網絡模型。
    • 預訓練:就像是一個體育比賽的人,不管這個人參與什么體育項目,先把體能練好了,再訓練具體項目。
階段目的數據類型示例任務
預訓練學通用語言能力無標注語料預測遮蓋詞、下一個詞等
微調學任務特定能力有標注數據分類、翻譯、問答等

image-20250413162855671

大型語言模型是什么?

  • 你應該已經知道了,大型語言模型是一種大模型。

三:一個基礎NLP模型實現:N-Gram模型

  • -Gram 模型是一種基于統計的語言模型,其核心思想是:一個詞(或字)出現的概率,只依賴于它前面的 n?1n-1n?1 個詞(或字),用來解決已知的上下文生成合理的文本問題。

  • 工作原理:

    • 將文本序列拆分為連續的 N 個詞(或字)的組合,稱為“N-Gram”。
    • 通過統計語料中各個 N-Gram 出現的頻率,估計下一個詞(或字)出現的概率。
  • 計算公式

    • image-20250413174639644
  • 模型流程

    • 收集語料
    • 切分為 N-Gram
    • 統計每種 N-Gram 出現頻率
    • 根據頻率計算概率
    • 根據歷史詞語預測下一個詞
from collections import defaultdict, Counter
import random
# 第一步:創建語料庫
corpus = ["我早上去了圖書館","我早上聽了一節英語課","我中午看了一部電影","我中午睡了一會兒","我晚上寫了一篇作文","我晚上復習了功課",
]# 第二步:分詞函數(按字分詞,這里只是按照字符分詞)
def split_words(text):return [char for char in text]# 第三步:統計Bigram詞頻(Bigram 是一個N-Gram 模型中的特例,其中N=2,即考慮連續的兩個詞或字符的組合。) 
bigram_freq = defaultdict(Counter)
for sentence in corpus:words = split_words(sentence)for i in range(len(words) - 1):first, second = words[i], words[i+1]bigram_freq[first][second] += 1
# 打印詞頻率
# print("打印詞頻率")
# for first, counter in bigram_freq.items():
#     freq_list = [f"{second}:{freq}" for second, freq in counter.items()]
#     print(f"{first}: [{', '.join(freq_list)}]")# 第四步:計算Bigram概率(轉為概率分布)
bigram_prob = {}
for first, counter in bigram_freq.items():total = sum(counter.values())bigram_prob[first] = {second: count / total for second, count in counter.items()}
# print("詞頻概率為:", bigram_prob)# 第五步:根據前綴生成下一個字
def predict_next_char(prev_char):if prev_char not in bigram_prob:return Nonecandidates = list(bigram_prob[prev_char].items())chars, probs = zip(*candidates)return random.choices(chars, probs)[0]# 第六步:輸入前綴,生成文本
def generate_text(start_char, length=10):result = [start_char]current = start_charfor _ in range(length - 1):next_char = predict_next_char(current)if not next_char:breakresult.append(next_char)current = next_charreturn ''.join(result)# 示例
print(generate_text("我"))
  • 代碼不難,不懂問AI就好了。
  • https://github.com/Qiuner/HelloAI ,這里會陸續復現幾個ai發展的經典模型
    image-20250413173945647
每個詞后面出現詞次數

image-20250413174052485

出現詞次數轉化為概率與給定一個詞后生成的連續文本
  • 可以看到,出現了我早晨去了功課這樣不存在詞庫的句子
  • 實際要做的更多

尾與推薦

  • N-Gram模型是不是讓你覺得非常簡單?簡單就對了,**這是1913年提出的模型,在1950年被引入NLP。**而現在是2025年,AI已經過Word2Vec 、RNN、 HMM、Transformer、BERT、GPT……等模型,且上面這些只是AI中NLP領域的。

  • 推薦:

  • 本文的一些術語并列,因根據我日常看到的詞頻率而并列,可能其并非并列關系。

img

你好,我是Qiuner. 為幫助別人少走彎路而寫博客 這是我的 github https://github.com/Qiuner? gitee https://gitee.com/Qiuner 🌹

如果本篇文章幫到了你 不妨點個吧~ 我會很高興的 😄 (^ ~ ^) 。想看更多 那就點個關注吧 我會盡力帶來有趣的內容 😎。

代碼都在github或gitee上,如有需要可以去上面自行下載。記得給我點星星哦😍

如果你遇到了問題,自己沒法解決,可以去我掘金評論區問。私信看不完,CSDN評論區可能會漏看 掘金賬號 https://juejin.cn/user/1942157160101860 掘金賬號

更多專欄:
  • 📊 一圖讀懂系列
  • 📝 一文讀懂系列
  • 🌟 持續更新
  • 🎯 人生經驗

掘金賬號 CSDN賬號

感謝訂閱專欄 三連文章

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77119.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77119.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77119.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【教程】檢查RDMA網卡狀態和測試帶寬 | 附測試腳本

轉載請注明出處:小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你,歡迎[點贊、收藏、關注]哦~ 目錄 檢查硬件和驅動狀態 測試RDMA通信 報錯修復 對于交換機的配置,可以看這篇: 【教程】詳解配置多臺主機通過交換機實現互…

計算機網絡 - TCP協議

通過一些問題來討論 TCP 協議 什么是 TCP ?舉幾個應用了 TCP 協議的例子TCP協議如何保證可靠性?tcp如何保證不會接受重復的報文?Tcp粘包拆包問題了解嗎?介紹一下,如何解決?TCP擁塞控制與流量控制區別&…

Fiddler 進行斷點測試:調試網絡請求

目錄 一、什么是斷點測試? 二、Fiddler 的斷點功能 三、如何在 Fiddler 中設置斷點? 步驟 1:啟動 Fiddler 步驟 2:啟用斷點 步驟 3:捕獲請求 步驟 4:修改請求或響應 四、案例:模擬登錄失…

OpenCv高階(三)——圖像的直方圖、圖像直方圖的均衡化

目錄 一、直方圖 1、計算并顯示直方圖 2、使用matplotlib方法繪制直方圖(不劃分小的子區間) 3、使用opencv的方法繪制直方圖 (劃分16個小的子亮度區間) 4、繪制彩色圖像的直方圖,將各個通道的直方圖值都畫出來 二、…

Flutter 與原生通信

Flutter 與原生之間的通信主要基于通道機制,包括 MethodChannel、EventChannel 和 BasicMessageChannel。 MethodChannel:用于 Flutter 與原生之間的方法調用,實現雙向通信,適合一次性的方法調用并獲取返回值,如 Flut…

前端面試-Vue篇

核心概念 Vue 3的響應式原理與Vue 2有何本質區別?Vue中虛擬DOM的diff算法優化策略有哪些?Vue組件間通信方式有哪些?適用場景分別是什么?Vue的生命周期鉤子在Composition API中如何替代?Vue的模板編譯過程是怎樣的&…

光刻機研發與市場現狀分析報告

1. 引言 光刻機(Lithography Machine)是半導體制造的核心設備,其技術水平和市場供應能力直接影響全球芯片產業的發展。隨著人工智能(AI)、5G、高性能計算(HPC)和自動駕駛等技術的興起&#xff0…

Missashe考研日記-day21

Missashe考研日記-day21 1 專業課408 學習時間:4h學習內容: 今天先把昨天學的內容的課后習題做了,整整75道啊,然后學了OS第二章關于CPU調度部分的內容,這第二章太重要了,以至于每一小節的內容都比較多&am…

【玩轉全棧】—— Django+vue3+訊飛星火API 實現前端頁面實時AI答復

技術棧:vue3 element-plus axios pinia router Django5 websocket 訊飛星火API 本文將實現一個 AI 聊天對話功能,將前端用戶輸入問題以及之前對話發送給后端,通過 api 訪問大模型,返回前端實時對話數據。 調用 訊飛星火API…

廣東廣州一家IPO資產重組疑點重重,信息披露真實性存疑

作者:Eric 來源:IPO魔女 4月18日,廣州瑞立科密汽車電子股份有限公司(簡稱“瑞立科密”)將接受深交所主板IPO上會審核。公司保薦機構為中信證券,擬募集資金為15.2162億元。 瑞立科密過往資產重組疑點重重&a…

銀河麒麟(Kylin) - V10 SP1桌面操作系統ARM64編譯QT-5.15.12版本

銀河麒麟(Kylin) - V10 SP1桌面操作系統ARM64編譯QT-5.15.12版本 原因 測試Kylin-Desktop-V10-SP1-General-Release-2303-arm64系統下,編譯QT-5.15.12版本已做測試。 測試環境 測試板配置 型號:LM-D2000-NONE-1w-V01-pc_A2150 CPU:飛騰D20…

查看前端項目依賴樹型結構關系圖的詳細方法,涵蓋 命令行工具 和 可視化工

以下是查看前端項目依賴樹型結構關系圖的詳細方法&#xff0c;涵蓋 命令行工具 和 可視化工具&#xff1a; 一、命令行工具生成依賴樹 1. npm # 查看項目依賴樹&#xff08;文本形式&#xff09; npm ls# 查看指定包的依賴樹 npm ls <package-name># 生成JSON格式的依…

Ollama高并發測試

本文主要來測試一下ollama的高并發能力。 具體配置如下&#xff1a; 一、Ollama默認參數執行 我們打開4個窗口&#xff0c;然后分別讓DeepSeek “給我講一個笑話” &#xff0c;看下不同窗口的答題順序。 通過答題順序可以看到&#xff0c;在不進行參數設置時&#xff0c;模…

資源管理與HPA:讓Kubernetes應用自動伸縮

引言&#xff1a;從“手動擋”到“自動駕駛” 想象我們駕駛一輛汽車&#xff0c;手動調節油門和換擋不僅費力&#xff0c;還難以應對突發狀況。我們的應用服務也一樣&#xff0c;在面對突然的流量增長&#xff0c;內存使用暴漲該如何應對。HPA&#xff08;Horizontal Pod Auto…

Windows 下 MongoDB ZIP 版本安裝指南

在開發和生產環境中&#xff0c;MongoDB 是一種非常流行的 NoSQL 數據庫&#xff0c;以其靈活性和高性能而受到開發者的青睞。對于 Windows 用戶來說&#xff0c;MongoDB 提供了多種安裝方式&#xff0c;其中 ZIP 版本因其靈活性和輕量級的特點&#xff0c;成為很多開發者的首選…

【Linux網絡與網絡編程】11.數據鏈路層mac幀協議ARP協議

前面在介紹網絡層時我們提出來過一個問題&#xff1a;主機是怎么把數據交給路由器的&#xff1f;那里我們說這是由數據鏈路層來做的。 網絡上的報文在物理結構上是以mac幀的形式流動的&#xff0c;但在邏輯上是以IP流動的&#xff0c;IP的流動是需要mac幀支持的。 數據鏈路層解…

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案

多模態思維鏈AI醫療編程:從計算可持續性到開放域推理的系統性解決方案 醫療AI領域的多模態思維鏈技術正在重塑臨床決策支持、醫學影像分析和醫療流程優化的范式。本指南從計算可持續性、錯誤傳播控制、倫理安全防護和通用性擴展四大維度,系統解析醫療大模型落地落地的關鍵要…

代理模式深度解析

目錄 一 靜態代理 1.1 優點 1.2 缺點 1.3 適用場景 二 JDK動態代理 1 JDK動態代理的工作原理 1.1 創建代理類 1.2 加載代理類 1.3 實現方法調用 2. Proxy.newProxyInstance() 的核心工作流程 方法簽名 工作步驟 3. 代理類的生成與加載 3.1 代理類生成的關鍵方法 …

Spring Cache與Redis集成原理

一、核心架構圖解 #mermaid-svg-aiWGQLhmWx7kOfLz {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aiWGQLhmWx7kOfLz .error-icon{fill:#552222;}#mermaid-svg-aiWGQLhmWx7kOfLz .error-text{fill:#552222;stroke:#5…

編程技能:調試02,設置斷點與刪除斷點

專欄導航 本節文章分別屬于《Win32 學習筆記》和《MFC 學習筆記》兩個專欄&#xff0c;故劃分為兩個專欄導航。讀者可以自行選擇前往哪個專欄。 &#xff08;一&#xff09;WIn32 專欄導航 上一篇&#xff1a;編程技能&#xff1a;調試01&#xff0c;調試介紹 回到目錄 下…