部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一文读懂 AI

一文读懂 AI

原创
作者头像
Qiuner
发布2025-04-14 08:48:27
发布2025-04-14 08:48:27
26800
代码可运行
举报
文章被收录于专栏:一文读懂一文读懂
运行总次数:0
代码可运行
  • 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
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
image-20250413162855671

大型语言模型是什么?

  • 你应该已经知道了,大型语言模型是一种大模型。

三:一个基础NLP模型实现:N-Gram模型

  • -Gram 模型是一种基于统计的语言模型,其核心思想是:一个词(或字)出现的概率,只依赖于它前面的 n−1n-1n−1 个词(或字),用来解决已知的上下文生成合理的文本问题。
  • 工作原理:
    • 将文本序列拆分为连续的 N 个词(或字)的组合,称为“N-Gram”。
    • 通过统计语料中各个 N-Gram 出现的频率,估计下一个词(或字)出现的概率。
  • 计算公式
    image-20250413174639644
    image-20250413174639644
  • 模型流程
    • 收集语料
    • 切分为 N-Gram
    • 统计每种 N-Gram 出现频率
    • 根据频率计算概率
    • 根据历史词语预测下一个词
代码语言:javascript
代码运行次数:0
运行
复制
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 None
    candidates = 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_char
    for _ in range(length - 1):
        next_char = predict_next_char(current)
        if not next_char:
            break
        result.append(next_char)
        current = next_char
    return ''.join(result)
​
# 示例
print(generate_text("我"))
​
  • 代码不难,不懂问AI就好了。
image-20250413173945647
image-20250413173945647

每个词后面出现词次数

image-20250413174052485
image-20250413174052485

出现词次数转化为概率与给定一个词后生成的连续文本

  • 可以看到,出现了我早晨去了功课这样不存在词库的句子
  • 实际要做的更多

尾与推荐

  • 本文的一些术语并列,因根据我日常看到的词频率而并列,可能其并非并列关系。
img
img

你好,我是Qiuner. 为帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiunergitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个吧~ 我会很高兴的 😄 (^ ~ ^) 。想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎。 代码都在github或gitee上,如有需要可以去上面自行下载。记得给我点星星哦😍 如果你遇到了问题,自己没法解决,可以去我掘金评论区问。私信看不完,CSDN评论区可能会漏看 掘金账号 https://juejin.cn/user/1942157160101860 掘金账号

更多专栏:

掘金账号 CSDN账号 ​感谢订阅专栏 三连文章 ​

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:区分AI技术与AI应用
  • 二:ChatGPT、DeepSeek是什么东西?
    • NLP是什么?
    • 大型语言模型是什么?
  • 三:一个基础NLP模型实现:N-Gram模型
  • 尾与推荐
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档