欢迎光临
我们一直在努力

AI入门教程(二十四):NLP进阶技术完全指南:从词向量到大语言模型

前言:NLP是什么?

我们其实每天都在与NLP打交道:

  • 用手机输入法打字时的联想词

  • 邮件应用自动过滤的垃圾邮件

  • 翻译软件帮你看懂的外文网站

在ChatGPT出现之前,NLP技术门槛很高——你需要了解分词、词性标注、句法分析、语义角色标注等一长串概念,还要手工设计特征,才能让机器"懂"一点语言。

今天,大语言模型让这一切变得简单,但理解NLP的技术脉络,能让你更透彻地理解为什么大模型能做到这些事,以及它的局限性在哪里。

本模块学习路径:词向量 → 预训练模型 → BERT/GPT/T5三大范式 → 下游任务(分类、NER、翻译、摘要)


一、预训练语言模型演进史

NLP的发展可以清晰地划分为几个阶段,每个阶段都有标志性的技术突破。

1.1 Word2Vec:词向量的革命

在2013年之前,计算机处理文字的方式很原始——独热编码(One-Hot Encoding):每个词对应一个超长向量,只有一个位置是1,其他都是0。

这种方式的问题:向量里没有语义信息,"猫"和"狗"的距离,跟"猫"和"桌子"一样远。

Word2Vec的核心思想:一个词的含义,由它周围的词来定义。

python

复制

下载

# 安装:pip install gensim
from gensim.models import Word2Vec

sentences = [
["我", "喜欢", "吃", "苹果"],
["我", "喜欢", "吃", "香蕉"],
["猫", "喜欢", "吃", "鱼"],
["狗", "喜欢", "吃", "肉"],
["苹果", "是", "一种", "水果"],
["香蕉", "是", "一种", "水果"],
["RUNOOB", "是", "一个", "编程", "网站"],
]

# 训练Word2Vec
model = Word2Vec(sentences, vector_size=50, window=3, min_count=1, epochs=100)

# 词向量运算:国王 – 男人 + 女人 ≈ 女王
print(f"'苹果'和'香蕉'的相似度:{model.wv.similarity('苹果', '香蕉'):.4f}")
print(f"与'猫'最相似的词:{model.wv.most_similar('猫', topn=3)}")

Word2Vec的局限:每个词只有一个固定向量,不管上下文。比如"打"在"打电话"和"打游戏"里意思不同,但向量相同。

1.2 ELMo:上下文相关词向量

2018年,ELMo解决了"一词多义"问题——看整个句子后再给词生成向量。同样是"打"字,在不同句子里是不同的向量。

1.3 GPT-1:单向预训练

2018年,OpenAI发布GPT-1:

  • 使用Transformer解码器(不是LSTM)

  • 单向:只看前面的词,预测下一个词

  • 生成式:可以续写文本

1.4 BERT:双向预训练

2018年底,Google发布BERT,彻底改变NLP领域:

核心创新:

  • 双向:同时看前后文

  • MLM(Masked Language Model):随机遮住15%的词,让模型预测

  • NSP(Next Sentence Prediction):判断两个句子是否连续

  • 1.5 GPT-3到ChatGPT

    2020年,GPT-3发布(1750亿参数),出现涌现能力——模型突然具备了小模型没有的能力(少样本学习、复杂推理)。

    2022年底,ChatGPT通过RLHF(人类反馈强化学习)让AI真正走向大众。

    1.6 演进总结

    年份模型核心思想历史地位
    2013 Word2Vec 词周围的词定义含义 词向量革命
    2018 ELMo 上下文相关词向量 一词多义表示
    2018 GPT-1 Transformer解码器 证明Transformer潜力
    2018 BERT 双向预训练 NLP进入预训练时代
    2020 GPT-3 1750亿参数 展示大模型可能
    2022 ChatGPT RLHF+对话 AI走向大众

    二、BERT深度解析

    BERT是NLP发展史上的里程碑,值得深入理解。

    2.1 MLM(掩码语言模型)

    随机把句子中15%的词替换成[MASK],让模型预测原来的词。

    这15%的词:80%换[MASK],10%换随机词,10%保持不变

    这样模型不能确定某个词是否被替换,必须真正理解上下文才能预测。

    2.2 NSP(下句预测)

    给两个句子A和B,判断B是不是A后面真正的下一句。帮助模型理解句子间的关系。

    2.3 微调BERT实战

    python

    复制

    下载

    # 安装:pip install transformers datasets torch
    from transformers import BertTokenizer, BertForSequenceClassification, Trainer, TrainingArguments
    from datasets import Dataset

    # 1. 准备数据
    texts = ["这个产品很好用", "质量太差了", "RUNOOB教程很清晰"]
    labels = [1, 0, 1] # 1=积极,0=消极
    dataset = Dataset.from_dict({"text": texts, "label": labels})

    # 2. 加载模型
    tokenizer = BertTokenizer.from_pretrained("bert-base-chinese")
    model = BertForSequenceClassification.from_pretrained("bert-base-chinese", num_labels=2)

    # 3. 预处理
    def tokenize(examples):
    return tokenizer(examples["text"], padding="max_length", truncation=True, max_length=64)

    tokenized_dataset = dataset.map(tokenize, batched=True)

    # 4. 训练
    training_args = TrainingArguments(
    output_dir="./results",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    learning_rate=2e-5,
    )

    trainer = Trainer(model=model, args=training_args, train_dataset=tokenized_dataset)
    # trainer.train() # 需要GPU


    三、三大范式对比

    特性BERTGPTT5
    架构 Encoder-only Decoder-only Encoder-Decoder
    注意力 双向(看前后) 单向(只看前) 编码器双向,解码器单向
    预训练任务 MLM(掩码预测) 自回归语言建模 Span Corruption
    擅长任务 理解类(分类、NER) 生成类(对话、续写) 转换类(翻译、摘要)
    代表模型 BERT、RoBERTa GPT系列、ChatGPT T5、BART

    今天的大模型大多采用Decoder-only架构(GPT路线),因为生成能力强,且通过Scaling Law可持续提升。


    四、文本分类

    4.1 三种方案对比

    方案适用场景优点缺点
    传统ML+TF-IDF 小数据集 可解释性强 泛化能力弱
    微调BERT 大数据集 效果好 需要GPU
    大模型Prompt 快速验证 零样本/少样本 成本高

    python

    复制

    下载

    # 方案一:传统ML + TF-IDF
    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.naive_bayes import MultinomialNB
    from sklearn.pipeline import Pipeline

    pipeline = Pipeline([
    ("tfidf", TfidfVectorizer()),
    ("classifier", MultinomialNB())
    ])
    pipeline.fit(texts, labels)

    # 方案二:大模型分类(少样本)
    def classify_with_llm(text):
    # prompt = f"请对以下文本分类:{text},类别:积极/消极"
    # 调用LLM API…
    pass

    4.2 决策指南

    场景推荐方案
    数据量小(<1000条) 大模型少样本学习
    数据量大(>10000条) 微调BERT
    快速验证 大模型API
    生产环境高吞吐 微调小模型+蒸馏
    类别经常变化 大模型Prompt工程

    五、命名实体识别(NER)

    NER从文本中找出特定实体:人名、地名、组织机构等。

    5.1 BIO标注格式

    text

    复制

    下载

    王 → B-PER (人名开始)
    小 → I-PER (人名内部)
    明 → I-PER
    在 → O (非实体)
    北 → B-LOC (地点开始)
    京 → I-LOC

    5.2 NER实战

    python

    复制

    下载

    # 使用Hugging Face NER pipeline
    from transformers import pipeline

    ner = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english", grouped_entities=True)
    results = ner("John Smith works at Google in New York.")

    for entity in results:
    print(f"{entity['word']}: {entity['entity_group']} (置信度: {entity['score']:.2f})")


    六、机器翻译

    6.1 神经机器翻译(NMT)

    采用Encoder-Decoder架构:

  • Encoder读取源语言,生成语义表示

  • Decoder根据语义表示,生成目标语言

  • Attention机制让Decoder在生成每个词时"关注"源语言不同位置

  • 6.2 BLEU评估指标

    BLEU衡量机器翻译与人工翻译的n-gram重合度:

    BLEU分数质量
    <0.1 基本不通
    0.1-0.3 能看懂大概
    0.3-0.5 翻译质量不错
    >0.5 接近人工翻译

    6.3 大模型翻译优势

  • 上下文理解更好:处理歧义、多义词

  • 风格控制:指定语气、风格

  • 术语一致性:给定术语表保证翻译一致

  • 多语言能力:一个模型做几十上百种语言互译


  • 七、文本摘要

    7.1 两种摘要方式

    方式原理优点缺点
    抽取式 挑选原文重要句子 信息准确,不编造 不够流畅,有冗余
    生成式 理解后自己写摘要 流畅简洁 可能"幻觉"

    python

    复制

    下载

    # 抽取式摘要:基于词频选重要句子
    def extractive_summary(text, num_sentences=2):
    # 分句 → 算词频 → 句子打分 → 选TopK
    pass

    7.2 ROUGE评估指标

    指标含义
    ROUGE-1 unigram匹配
    ROUGE-2 bigram匹配
    ROUGE-L 最长公共子序列

    总结

    技术核心任务代表模型应用
    词向量 语义向量化 Word2Vec、GloVe 语义计算基础
    预训练 学习通用知识 BERT、GPT NLP范式的根基
    文本分类 打标签 BERT、LLM 情感分析、垃圾过滤
    NER 实体识别 BERT、SpaCy 信息抽取
    机器翻译 语言转换 T5、LLM 跨语言沟通
    文本摘要 内容压缩 BART、LLM 文档提炼
    赞(0)
    未经允许不得转载:171主机测评 » AI入门教程(二十四):NLP进阶技术完全指南:从词向量到大语言模型
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址