目录
一、文本分类的核心定义与核心价值
1.1 核心定义
1.2 核心价值
二、文本分类的任务类型与典型应用场景
2.1 按类别数量分类
2.2 按文本粒度分类
2.3 典型应用场景汇总
三、文本分类的核心流程(基于语言模型)
3.1 第一步:数据预处理
3.2 第二步:文本表示(核心环节)
3.2.1 静态文本表示(基于传统语言模型)
3.2.2 动态文本表示(基于现代预训练语言模型)
3.3 第三步:模型训练
3.4 第四步:评估优化
3.5 第五步:预测部署
四、基于不同语言模型的文本分类实现
4.1 传统语言模型:静态文本分类
4.1.1 Word2Vec/GloVe + 传统分类器
4.1.2 FastText文本分类
4.2 预训练语言模型:动态文本分类
4.2.1 BERT及其变体:双向语义捕捉(最常用)
4.2.2 GPT系列:单向生成式文本分类
4.2.3 TextCNN:基于CNN的文本分类
五、文本分类的核心评估指标
5.1 核心基础指标
5.1.1 准确率(Accuracy)
5.1.2 精准率(Precision)
5.1.3 召回率(Recall)
5.1.4 F1值(F1-Score)
5.2 多分类与多标签分类专用指标
5.3 评估流程建议
六、文本分类的常见问题与工程优化技巧
6.1 常见问题及解决方案
6.1.1 类别不平衡问题
6.1.2 过拟合问题
6.1.3 未登录词(OOV)问题
6.1.4 推理速度慢问题
文本分类是自然语言处理(NLP)领域最基础、最核心的任务之一,其本质是让计算机根据文本的语义信息,自动将一段非结构化文本划分到预先定义的类别集合中。从早期的规则匹配、传统机器学习,到如今的大型语言模型(LLM),文本分类的技术路径不断演进,而语言模型的介入,彻底解决了传统方法语义捕捉不足、泛化能力弱的痛点,让文本分类实现了从“浅层匹配”到“深层理解”的跨越。本文将从语言模型的视角,全面解析文本分类的核心原理、实现流程、主流方法、评估标准及工程优化技巧,帮助读者深入理解两者的结合逻辑与实践落地思路。
一、文本分类的核心定义与核心价值
1.1 核心定义
文本分类,又称文本归类,是指给定一段输入文本(如句子、段落、文档)和一组预定义类别(如“正面/负面”“科技/体育/财经”“垃圾邮件/正常邮件”),通过算法模型学习文本特征与类别标签之间的映射关系,最终自动为输入文本分配一个或多个类别标签的任务。从机器学习视角来看,文本分类本质上是一个监督学习任务——需要依赖标注好类别标签的训练数据,让模型学习“文本特征→类别”的对应规律,训练完成后可对未标注的新文本进行预测;在少量标注数据或无标注数据场景下,也可通过半监督学习、无监督学习或零样本、少样本学习完成分类任务。
语言模型与文本分类的结合,核心是利用语言模型强大的语义表示能力,将文本转换为富含语义信息的数值向量,再结合分类器完成类别预测。与传统文本分类方法相比,基于语言模型的文本分类无需人工设计特征,能自动捕捉文本的深层语义、语法关联和上下文依赖,大幅提升分类准确率和泛化能力,尤其适用于复杂文本场景。
1.2 核心价值
文本分类是NLP技术落地的核心载体,广泛应用于各类场景,其价值主要体现在三个方面:
实现文本的结构化管理:将海量非结构化文本(如新闻、评论、邮件、文书)转化为结构化的类别标签,便于检索、筛选和分析,降低人工处理成本。例如,新闻平台将新闻自动分类为科技、体育、娱乐等栏目,方便用户快速获取感兴趣的内容;
支撑自动化业务场景:替代人工完成重复性分类工作,提升效率和准确性。例如,企业客服系统自动识别用户咨询意图(咨询/投诉/购买),智能分流;邮件系统自动过滤垃圾邮件,减少无效信息干扰;
为复杂NLP任务提供基础:文本分类是问答系统、机器翻译、情感分析、舆情监测等高级NLP任务的基础模块。例如,情感分析本质是二分类或三分类任务(正面/负面/中性),舆情监测需要先对文本进行主题分类,再分析情感倾向。
二、文本分类的任务类型与典型应用场景
根据分类目标、类别数量和文本类型的不同,文本分类可分为多种任务类型,不同类型对应不同的应用场景,适配不同的语言模型实现方式。
2.1 按类别数量分类
二分类:最基础的文本分类任务,类别集合仅包含两个互斥类别,核心是判断文本“是”或“否”属于某一类别。典型应用场景:情感分析(正面/负面)、垃圾邮件识别(垃圾/正常)、谣言检测(谣言/真实)、恶意评论识别(恶意/正常)。例如,“这部电影剧情紧凑,演员表现出色”属于正面情感,“这个产品质量极差,完全不值”属于负面情感;
多分类:类别集合包含三个及以上互斥类别,核心是从多个类别中选择一个最匹配的类别。典型应用场景:新闻分类(科技/体育/财经/娱乐)、文本主题分类(教育/医疗/法律)、文档类型识别(合同/报告/邮件)。例如,“苹果发布最新款芯片,性能提升50%”属于科技类新闻,“国足击败对手,晋级世界杯预选赛”属于体育类新闻;
多标签分类:类别集合包含多个可共存的类别,核心是为文本分配一个或多个符合的类别标签。典型应用场景:文本标注(如一篇文章可同时标注“科技”“人工智能”“深度学习”)、电影类型分类(一部电影可同时属于“动作”“悬疑”“科幻”)、用户兴趣分类(用户可同时关注“美食”“旅行”“摄影”)。
2.2 按文本粒度分类
句子级分类:以单个句子为分类单位,适用于短文本场景。例如,句子“今天天气真好”的情感分类为正面,句子“交通拥堵严重”的情感分类为负面;
段落级分类:以段落为分类单位,需要捕捉段落内多个句子的语义关联。例如,一段产品评价包含多个句子,需综合整体语义判断其情感倾向;
文档级分类:以完整文档为分类单位,适用于长文本场景,需要捕捉文档的整体主题和核心思想。例如,一篇学术论文的领域分类(计算机/数学/物理)、一本图书的类别分类(小说/历史/科普)。
2.3 典型应用场景汇总
基于语言模型的文本分类,已广泛渗透到互联网、企业服务、政务、医疗等多个领域,典型场景包括:
情感分析:电商评论、电影评论、社交媒体评论的情感倾向判断,帮助企业了解用户反馈,优化产品和服务;
内容审核:社交平台、短视频平台的恶意评论、违规内容(色情、暴力、谣言)识别,维护平台生态;
智能客服:识别用户咨询意图(查询订单、投诉问题、咨询产品),自动分流至对应客服或触发智能回复;
新闻与资讯分类:新闻APP、资讯平台的内容分类,实现个性化推荐;
医疗文本分类:病历、医嘱、医学文献的分类,帮助医护人员快速检索和分析医疗信息;
法律文本分类:法律文书、案件材料的分类,辅助律师和法官高效处理案件。
三、文本分类的核心流程(基于语言模型)
无论采用哪种语言模型,文本分类的核心流程均围绕“数据预处理→文本表示→模型训练→评估优化→预测部署”五个环节展开,其中“文本表示”和“模型训练”是核心,也是语言模型发挥作用的关键。
3.1 第一步:数据预处理
原始文本通常包含大量噪声信息(如特殊字符、无意义词汇、冗余内容),无法直接输入语言模型,需先进行清洗和标准化处理,核心目标是去除噪声、统一格式,为后续文本表示和模型训练奠定基础。基于语言模型的文本预处理,无需复杂的人工特征工程,核心步骤包括:
文本清洗:去除特殊字符(如标点符号、表情符号、数字、网址)、无用内容(如广告、水印、重复句子),统一文本大小写(英文场景);
分词处理:将连续文本拆分为语言模型可识别的词元(Token),中文常用工具包括jieba、HanLP、哈工大LTP,英文可直接按空格分词,或采用BPE、WordPiece等子词分词策略(适配预训练模型);
停用词去除:删除对语义表达无帮助的词汇(如中文“的、地、得、很”,英文“the、a、an”),减少无关特征干扰,降低模型计算成本;
序列标准化:将文本序列调整为固定长度(语言模型通常有最大序列长度限制,如BERT最大为512),过长则截断,过短则补齐(使用<pad>特殊词元);
标签编码:将文本类别标签转换为模型可处理的数值形式(如二分类用0/1表示,多分类用独热编码或标签ID表示)。
需要注意的是,与传统文本分类不同,基于预训练语言模型的预处理无需手动提取特征(如TF-IDF、词袋模型),仅需完成文本清洗和序列标准化,后续由语言模型自动提取语义特征。
3.2 第二步:文本表示(核心环节)
文本表示是文本分类的核心,其目标是将预处理后的文本序列,转换为机器可处理的连续数值向量,也就是“语义向量”。语言模型的核心价值的就是实现高效的文本表示,将离散的文本符号转换为富含语义信息的稠密向量,捕捉文本的深层语义和上下文依赖。根据语言模型的类型,文本表示主要分为两种方式:
3.2.1 静态文本表示(基于传统语言模型)
传统语言模型(如Word2Vec、GloVe、FastText)采用静态词嵌入方式,将每个词元映射为固定的向量,再通过平均、拼接等方式,将词元向量聚合为句子或文档的向量表示。例如,FastText的文本表示流程为:将文本分词后,获取每个词元的词向量,对所有词向量进行平均池化,得到整个文本的全局向量表示,再输入分类器进行分类。
这种方式的优势是计算简单、速度快,适用于小规模文本场景;缺点是无法处理一词多义(同一词元在不同上下文下的语义不同,但向量固定),且无法捕捉复杂的上下文语义关联,分类准确率有限。
3.2.2 动态文本表示(基于现代预训练语言模型)
现代预训练语言模型(如BERT、GPT、RoBERTa)采用动态词嵌入方式,通过Transformer架构的自注意力机制,根据文本的上下文动态调整每个词元的向量表示,同一个词元在不同上下文下会得到不同的语义向量,能更精准地捕捉文本的深层语义。
基于预训练语言模型的文本表示,核心流程为:将预处理后的文本序列(包含特殊词元,如[CLS]、[SEP])输入语言模型,获取模型输出的语义向量——对于句子级或段落级分类,通常取[CLS]词元的输出向量(该向量聚合了整个序列的语义特征);对于文档级分类,可对所有词元的输出向量进行平均或池化,得到文档的语义向量。例如,BERT在文本分类中的表示方式:输入文本经过分词、编码后,通过12层Transformer编码器,输出[CLS]词元的768维向量,作为文本的语义表示。
3.3 第三步:模型训练
模型训练的核心是学习“文本语义向量→类别标签”的映射关系,基于语言模型的文本分类,训练过程主要分为“预训练”和“微调”两个阶段,这也是“预训练+微调”范式的核心体现:
预训练阶段:在海量无标注文本上,对语言模型进行自监督训练,让模型学习通用的语言表示能力(如语义、语法、上下文关联)。例如,BERT通过掩码语言模型(MLM)和下一句预测(NSP)任务预训练,GPT通过自回归语言模型预训练,预训练完成后,模型已具备强大的语义捕捉能力;
微调阶段:将预训练语言模型作为特征提取器,在下游文本分类任务的标注数据上,对模型进行微调,适配具体的分类任务。微调的核心是:冻结预训练模型的大部分参数(或微调所有参数),在语言模型的输出层添加一个分类头(如全连接层+Softmax函数),通过监督学习优化分类头和部分预训练参数,最小化分类损失(如交叉熵损失)。
训练过程中的核心参数包括:批量大小(batch size,通常为16、32)、学习率(微调学习率通常为2e-5~5e-5,远小于预训练学习率)、训练轮次(epochs,通常为3~10)、优化器(AdamW、SGD)、正则化策略(dropout、权重衰减)等,这些参数的选择直接影响模型的训练效果和泛化能力。
3.4 第四步:评估优化
模型训练完成后,需要在测试集上进行评估,判断模型的分类性能,再根据评估结果进行优化。评估的核心是通过一系列指标,衡量模型预测结果与真实标签的一致性,优化则是针对评估中发现的问题(如过拟合、类别不平衡),调整模型参数或数据处理方式。
3.5 第五步:预测部署
模型经过评估优化后,即可用于实际文本的分类预测。部署流程为:将新的未标注文本,按照训练阶段的预处理方式进行清洗、分词、编码,输入训练好的模型,模型输出类别概率,根据概率大小确定文本的类别标签(如二分类中,概率大于0.5为正类,否则为负类)。实际部署中,通常会对模型进行量化、剪枝等优化,提升推理速度,适配实时分类场景(如在线客服、内容审核)。
四、基于不同语言模型的文本分类实现
随着语言模型的发展,不同类型的语言模型在文本分类中的实现方式和适用场景存在显著差异,从传统静态语言模型到现代预训练语言模型,分类性能和适用场景不断拓展。以下是主流语言模型的文本分类实现细节:
4.1 传统语言模型:静态文本分类
传统语言模型以静态词嵌入为核心,无需复杂的Transformer架构,计算简单、速度快,适用于小规模、简单文本分类场景,常见代表有Word2Vec、GloVe、FastText。
4.1.1 Word2Vec/GloVe + 传统分类器
Word2Vec和GloVe是经典的静态词嵌入模型,其文本分类实现流程为:
使用Word2Vec或GloVe训练词嵌入矩阵,将文本中的每个词元映射为固定维度的词向量;
通过平均池化、最大池化或拼接的方式,将词元向量聚合为文本的全局向量表示;
将文本向量输入传统分类器(如逻辑回归、SVM、随机森林),进行模型训练和分类预测。
这种方式的优势是实现简单、计算成本低,在小规模文本分类任务上能达到较好的基线效果;缺点是无法处理一词多义,语义捕捉能力有限,不适用于复杂文本场景。例如,使用Word2Vec提取文本向量,结合逻辑回归,可实现简单的情感分类任务,但对于语义模糊、上下文复杂的文本,分类准确率较低。
4.1.2 FastText文本分类
FastText是Facebook提出的快速文本分类算法,结合了静态词嵌入和线性分类器的优势,专门针对大规模文本分类场景优化,其核心实现流程为:
文本分词:采用子词分词策略(字符级n-gram),将词元拆分为子词单元,捕捉词的形态特征,解决未登录词(OOV)问题;
词向量学习:在分类任务训练过程中,自动训练词向量和子词向量,无需单独预训练词嵌入;
文本表示:对所有词向量和子词向量进行平均池化,得到文本的全局向量;
分类输出:将文本向量输入线性分类器,通过层级Softmax(Hierarchical Softmax)优化多分类计算,输出类别概率。
FastText的核心优势是训练速度快、内存占用低,能高效处理大规模文本数据,且对未登录词的处理效果较好,适用于新闻分类、垃圾邮件识别等大规模简单文本分类场景;缺点是同样属于静态文本表示,无法捕捉上下文依赖和一词多义。
4.2 预训练语言模型:动态文本分类
预训练语言模型(基于Transformer架构)是目前文本分类的主流选择,其动态语义表示能力能大幅提升分类准确率,适用于复杂文本、多场景分类任务,常见代表有BERT、GPT、RoBERTa、TextCNN(基于CNN的深度学习模型,常与词嵌入结合)。
4.2.1 BERT及其变体:双向语义捕捉(最常用)
BERT采用双向Transformer编码器,通过双向上下文建模,能精准捕捉文本的深层语义,是文本分类任务中最常用的预训练语言模型,其核心实现流程为:
输入编码:将预处理后的文本序列,添加[CLS](分类标记)和[SEP](句子分隔标记),转换为词元ID序列、注意力掩码(Attention Mask)和段ID序列(单句分类可省略);
语义提取:将编码后的序列输入BERT模型,通过多头自注意力层和前馈神经网络层,提取文本的动态语义向量,取[CLS]标记的输出向量作为文本的全局语义表示;
分类头设计:在BERT输出层添加全连接层和Softmax函数(二分类用Sigmoid函数),将语义向量映射为类别概率;
微调训练:在分类任务的标注数据上,微调BERT模型和分类头参数,最小化交叉熵损失,优化分类性能。
BERT的变体(如RoBERTa、ALBERT、ERNIE)在原始BERT的基础上进行了优化,进一步提升了文本分类性能。例如,RoBERTa取消了NSP任务,增加了训练数据量和训练轮次,提升了语义捕捉能力;ALBERT通过参数共享,减少了参数量,提升了训练速度;ERNIE引入知识图谱,增强了语义理解能力。BERT及其变体适用于情感分析、问答意图识别、复杂文本分类等场景,是目前工业界应用最广泛的文本分类方案。
4.2.2 GPT系列:单向生成式文本分类
GPT系列模型采用单向Transformer解码器,核心优势是文本生成,但也可适配文本分类任务,其实现方式与BERT不同,核心流程为:
输入构造:将文本序列与分类提示(如“这段文本的情感是:”)拼接,形成生成式输入;
语义提取:通过单向自注意力层,捕捉从左到右的上下文语义,输出文本的语义向量;
分类生成:模型通过自回归生成方式,输出分类标签(如“正面”“负面”),或通过输出层映射为类别概率;
微调训练:在分类任务数据上,微调GPT模型参数,适配分类任务的生成逻辑。
GPT系列模型(如GPT-3、GPT-4)在零样本、少样本文本分类场景中表现出色,无需大量标注数据,仅通过提示工程(Prompt Engineering)即可实现较好的分类效果,适用于标注数据稀缺的场景;缺点是单向上下文建模,在需要双向语义理解的分类任务中,性能略逊于BERT及其变体。
4.2.3 TextCNN:基于CNN的文本分类
TextCNN是将卷积神经网络(CNN)与词嵌入结合的深度学习模型,核心优势是捕捉文本中的局部语义特征(如n-gram特征),适用于短文本分类场景,其实现流程为:
输入层:将预处理后的文本转换为词向量矩阵(句子长度×词向量维度),可采用预训练词嵌入(Word2Vec、GloVe)或随机初始化词嵌入;
卷积层:使用不同尺寸的一维卷积核(如2、3、4),滑动卷积提取文本的局部语义特征,每个尺寸的卷积核对应多个输出通道;
池化层:采用1-max pooling(取每个特征图的最大值),将不同长度的卷积输出转换为定长向量,保留最关键的局部特征;
分类输出:将池化后的特征向量拼接,输入全连接层和Softmax函数,输出类别概率。
TextCNN的优势是计算速度快、对短文本分类效果好,适用于情感分析、短评论分类等场景;缺点是无法捕捉长文本的上下文依赖,语义捕捉能力不如基于Transformer的预训练模型。
五、文本分类的核心评估指标
评估指标是衡量文本分类模型性能的核心标准,不同类型的文本分类任务(二分类、多分类、多标签分类),适用的评估指标有所差异,但核心指标均围绕“预测准确性”“完整性”和“平衡性”展开。以下是常用的核心评估指标,结合类级评估和模型级评估的差异,详细说明其定义和计算方式:
5.1 核心基础指标
首先明确四个基础统计量(针对二分类任务):
真正例(TP):实际为正类,模型预测为正类的样本数;
假正例(FP):实际为负类,模型预测为正类的样本数;
真负例(TN):实际为负类,模型预测为负类的样本数;
假负例(FN):实际为正类,模型预测为负类的样本数。
基于这四个统计量,衍生出以下核心评估指标,且这些指标可分别用于类级评估(针对单个类别)和模型级评估(针对整个模型),计算定义一致,但统计的TP、FP、FN数量不同——模型级评估需汇总所有类别的统计量,类级评估仅统计单个类别的统计量。
5.1.1 准确率(Accuracy)
准确率是最直观的评估指标,衡量模型预测正确的样本数占总样本数的比例,公式为:$$\text{Accuracy} = \frac{TP + TN}{TP + FP + TN + FN}$$。
优势:计算简单、易于理解,适用于类别分布均衡的场景;缺点:在类别不平衡场景下(如正类样本占比10%,负类占比90%),模型仅预测负类即可达到90%的准确率,无法反映模型的真实性能,此时需结合其他指标。
5.1.2 精准率(Precision)
精准率衡量模型预测为正类的样本中,实际为正类的比例,反映模型预测的“精确度”,公式为:$$\text{Precision} = \frac{TP}{TP + FP}$$。
例如,精准率为0.9,说明模型预测的100个正类样本中,有90个是真正的正类,10个是误判的负类。精准率适用于对“误判正类”敏感的场景,如垃圾邮件识别——误将正常邮件判为垃圾邮件(FP),会影响用户体验,因此需优先保证高精准率。
5.1.3 召回率(Recall)
召回率衡量实际为正类的样本中,被模型预测为正类的比例,反映模型预测的“完整性”,公式为:$$\text{Recall} = \frac{TP}{TP + FN}$$。
例如,召回率为0.8,说明实际有100个正类样本,模型仅识别出80个,有20个被误判为负类。召回率适用于对“漏判正类”敏感的场景,如恶意评论识别——漏判恶意评论(FN),会导致平台违规内容泛滥,因此需优先保证高召回率。
5.1.4 F1值(F1-Score)
F1值是精准率和召回率的调和平均数,用于平衡精准率和召回率,解决两者相互矛盾的问题(如提高精准率会降低召回率,反之亦然),公式为:$$\text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$。
F1值的取值范围为0~1,越接近1,说明模型的分类性能越好,是文本分类中最常用的综合评估指标,尤其适用于类别不平衡场景。
5.2 多分类与多标签分类专用指标
多分类任务:由于存在多个互斥类别,需计算每个类别的精准率、召回率和F1值,再通过宏观平均(Macro-average)或微观平均(Micro-average)得到模型的整体评估指标。宏观平均是先计算每个类别的指标,再取平均值;微观平均是先汇总所有类别的TP、FP、FN,再计算指标,适用于类别分布不均衡的场景;
多标签分类任务:每个样本可对应多个类别,常用指标包括汉明损失(Hamming Loss,衡量预测标签与真实标签的差异)、精确匹配率(Exact Match,衡量预测标签与真实标签完全一致的样本比例)、多标签F1值(综合每个类别的F1值)。
5.3 评估流程建议
实际评估中,建议遵循“分层评估+场景适配”的原则:
先在验证集上调整模型参数(如学习率、批量大小),监控F1值、精准率、召回率的变化,避免过拟合;
在测试集上进行最终评估,结合任务场景选择核心指标(如垃圾邮件识别重点看精准率,恶意评论识别重点看召回率);
对类别不平衡场景,需额外分析每个类别的评估指标,避免因整体准确率掩盖个别类别的低召回率或低精准率。
六、文本分类的常见问题与工程优化技巧
在基于语言模型的文本分类实践中,常遇到数据不平衡、过拟合、OOV、推理速度慢等问题,这些问题会直接影响模型的性能和部署效果,以下是常见问题及对应的工程优化技巧:
6.1 常见问题及解决方案
6.1.1 类别不平衡问题
问题描述:训练数据中不同类别的样本数量差异较大(如正类样本占10%,负类占90%),导致模型偏向于预测样本数量多的类别,忽略少数类样本,降低少数类的召回率。
解决方案:
数据层面:采用过采样(增加少数类样本数量,如SMOTE算法、随机复制少数类样本)、欠采样(减少多数类样本数量,如随机删除多数类样本)、合成样本(通过语言模型生成少数类样本,如使用GPT生成正面评论);
模型层面:使用加权损失函数(为少数类样本分配更高的损失权重,如在交叉熵损失中,少数类权重设为多数类样本占比的倒数)、采用Focal Loss损失函数,降低多数类样本的损失贡献,聚焦少数类样本;
评估层面:重点关注少数类的召回率和F1值,避免仅通过准确率判断模型性能。
6.1.2 过拟合问题
问题描述:模型在训练集上表现优异,但在测试集上表现较差,说明模型过度拟合训练数据,泛化能力弱。常见原因包括:训练数据量少、模型参数量大(如BERT-Large)、训练轮次过多。
解决方案:
数据层面:增加训练数据量、进行数据增强(如同义词替换、句子重排序、文本摘要),扩充数据的多样性;
模型层面:增加dropout概率(如将嵌入层、Transformer层的dropout设为0.1~0.2)、使用权重衰减(Weight Decay),抑制参数过度拟合;冻结预训练模型的部分参数(如冻结前6层Transformer,仅微调后6层和分类头),减少可训练参数;
训练层面:减少训练轮次、采用早停策略(Early Stopping),当验证集的F1值连续多轮不提升时,停止训练,避免过度拟合。
6.1.3 未登录词(OOV)问题
问题描述:测试文本中出现的词元未出现在语言模型的词汇表中,无法进行语义表示,导致分类准确率下降。
解决方案:
分词层面:采用子词分词策略(BPE、WordPiece),将未登录词拆分为已有的子词单元,实现语义迁移;
词表层面:扩充词汇表,将训练数据和测试数据中的高频未登录词加入词表,重新训练词嵌入或微调预训练模型;
应急方案:将未登录词映射为<unk>特殊词元,使用<unk>的嵌入向量作为其语义表示,兜底处理未登录词。
6.1.4 推理速度慢问题
问题描述:预训练语言模型(如BERT-Large、GPT-3)参数量大,推理速度慢,无法适配实时分类场景(如在线客服、实时内容审核)。
解决方案:
模型优化:使用轻量化模型(如DistilBERT、ALBERT),在保证分类性能的前提下,减少参数量和计算量;对模型进行量化(如将FP32转为FP16、INT8),减少显存占用,提升推理速度;
工程优化:采用批量推理(将多个文本批量输入模型,减少推理次数)、梯度检查点(Gradient Checkpointing),牺牲少量计算量换取速度提升;使用GPU/TPU加速推理,部署时采用TensorRT、ONNX等推理框架优化;
文本优化:缩短文本长度(仅保留核心内容),减少模型的输入序列长度,降低计算成本。