1. 文本任务 (Text / NLP / LLM)
在 AI 能力中,文字任务是最基础的功能。无论我们最终想做的是内容审核、搜索推荐、知识问答,还是写作助手、代码 Copilot,本质上都绕不开一个问题:机器如何真正看懂文字。
1.1 基础语言建模与表示
让我们从最底层的基础语言建模与表示讲起。它的作用是让机器先在统计意义上熟悉语言,并在此基础上为词、句子、文档找到一个稳定的向量矩阵表示,以便于后面的分类、匹配、抽取、生成等任务。不管未来要做什么文本相关任务,都或多或少需要先回答同一个问题:我怎么用一串数字,把这一段话表示出来?
我们可以简单从场景、原理、模型三个角度来看这个问题的相关内容:
- 场景
- 检索搜索相关
- 通用搜索引擎:用户随便输入一句话,得到含义相关的文档,而不是只做关键词精确匹配。
- 站内搜索 / 电商搜索:用户用口语化的描述(比如“适合夏天通勤的白衬衫”),找到含义对应的商品。
- 文档库 / 知识库检索:在技术文档、政策法规、企业知识库里,直接输入一句话获得相关条目。
- 推荐排序相关
- 信息流 / 内容推荐:根据用户最近看过、点过的内容,自动找出内容相近的其他内容继续推荐,而不是只靠人工规则或标签。
- 电商 / 商品推荐:根据用户看过、买过、收藏过的商品描述,找到风格或用途相近的商品,做个性化推荐。
- 用户兴趣建模:根据用户看过的标题、搜索过的词等,总结出几个主要兴趣方向,用来提升推荐和排序效果。
- 问答助手相关
- FAQ 问答:用户用不同说法问同一个问题(“怎么开发票?” vs “发票在哪里开?”),系统能跳到同一个答案。
- 知识库问答 / 企业助手:用户用自然语言提问,系统到内部文档里按含义去匹配,找出最相关的段落回答。
- 文本理解分析相关
- 评论舆情分析:把大量评论、帖子按“在说什么 / 情绪怎样”大致分成几类。
- 文本去重 / 相似检测:用于发现改写稿、伪原创文章。
- 文档聚类 / 分组:把很多文章、报告按照内容相近分成几组,方便做导航、推荐或抽样检查。
- 作为下游任务通用特征 (下游任务指的是用模型的基础能力,去实现更具体的文字处理任务)
- 文本分类:情感分类、意图识别、垃圾内容识别等下游模型直接复用这一层的表示。
- 信息抽取:实体识别、关系抽取在词 / 句子表示的基础上进行微调,而不是从头训练。
- 文本生成:为摘要、改写、续写等生成任务提供语义表征输入,提升生成质量与可控性。
- 检索搜索相关
- 原理 学习词、句子、文档的表示,为后续更复杂的任务作为基底。
- 语言建模
- 自回归语言模型:预测下一个 token(GPT 系列、LLaMA、Qwen 等)
- 掩码语言模型 (Masked LM):预测被遮盖 token(BERT、RoBERTa、ERNIE)
- 词 / 句子 / 段落表示
- 静态词向量:Word2Vec、GloVe、FastText
- 上下文表征:BERT embedding、Sentence‑BERT 等
- 文档级向量:用于语义检索、相似度匹配
- 语言建模
- 模型 BERT / RoBERTa / ERNIE、GPT 家族、LLaMA / Qwen / Yi 等 LLM;各类 Embedding 模型(OpenAI text‑embedding‑3 系列、bge、E5、SimCSE 等)。
1.1.1 语言建模:通过“猜下一个词”学会语言
这一层的第一步,是先让模型在大量文本里 熟悉语言规律 。做法可以简单理解为:给模型出无数道“猜词题”,在看到一段话的上下文后,让它填上最合理的词(token)。练习题足够多、语料足够广,模型就会逐渐学会:一句自然的句子长什么样,哪些词经常一起出现,什么表达读起来别扭。这个过程叫“语言建模”,本质就是一套统一的 猜词训练机制 。
常见有两种出题方式,每种用一句话举个简单例子:
- 往后接(自回归) :只给前面的内容,让模型猜“后面会怎么说”。
- 输入前缀:
今天下雨了,所以我 - 模型任务:猜下一个词,比如“ 带 (伞)”“ 没 (出去)”“ 打算 (在家)”等,然后再继续往后接。 这种方式主要锻炼模型对续写、连贯性、常见表达的把握。
- 挖空填词(掩码) :把中间挖个洞,让模型利用前后文一起填空。
- 原句:
今天下雨了,所以我带了雨伞 - 训练句:
今天 [MASK] 了,所以我带了雨伞 - 模型任务:把
[MASK]补成“ 下雨 ”这类合理的词。 这里模型必须同时看左边的“今天”“了”和右边的“所以我带了雨伞”,才能决定该填什么,更有利于学习 整句语义 。
通过在海量语料上反复做这两类“猜词题”,模型会逐渐积累起对语言的 语感和统计常识 。在此基础上,下一步我们再把这种能力显式地变成 词、句子和文档的向量表示 ,为后续的检索、推荐和问答等任务打底。
1.1.2 词、句子与文档表示:把离散符号映射到语义空间
构建文本向量最早一代的方法是静态词向量 :为每个词分配一份固定向量,训练好后不随上下文变化,直观、简单,但 无法区分多义词在不同语境下的含义。 为了解决这个问题,后来出现了基于上下文的动态表示方法:同一个词在不同句子中会生成不同的向量,完全由它所在的上下文决定。比如“苹果”在“苹果发布了新手机”中会更靠近“科技公司”的语义方向,而在“苹果富含维生素”中则更接近“水果”概念。
这种机制不仅提升了词层面的表达能力,也为句子和文档的向量化铺平了道路。对于句子,可以生成句向量;对于文档,可以整篇输入编码(如果长度允许),或分段编码后再通过注意力机制、层次化池化、对比学习等方式聚合出一个全局向量。近年来的专用 embedding 模型(如 bge、E5、text-embedding 系列)正是围绕“让语义相近的文本在向量空间中更近”这一目标持续优化,尤其在语义检索、相似匹配等任务上表现突出。
这套从上下文建模到句/文档向量生成的流程,已经成为搜索、推荐、问答等系统背后的核心基础设施,让我们回到前面提到的各类场景:
- 检索搜索场景(通用搜索、电商搜索、知识库检索)都需要把用户输入和候选文档都编码成向量,然后在向量空间里做相似度匹配,找出语义最接近的结果,而不是只靠关键词精确匹配。
- 推荐排序场景(信息流推荐、商品推荐、用户兴趣建模)需要把用户历史行为对应的内容转成向量,然后找到向量相近的新内容推荐给用户,实现"看过 A 推荐 B"的个性化效果。
- 问答助手场景(FAQ 问答、知识库问答)需要把用户的提问和知识库里的问题或段落都编码成向量,通过向量相似度找到最匹配的答案。
- 文本理解分析场景(评论舆情、去重、聚类)需要先把每条文本转成向量,再基于向量做聚类、相似度计算或分类。
- 下游任务场景(文本分类、信息抽取、文本生成)则是直接把这一层的向量表示作为输入特征,喂给后续的分类器、抽取器或生成器,避免从头学习语义。
工程上,常见做法是封装成统一的"文本向量服务":输入任意一段文本,输出一串固定维度的向量,供搜索、推荐、问答等多个系统共享使用。在产品层面,这一层的能力主要体现在:搜索和推荐中的语义召回(不再只依赖关键词,而是通过向量相似度召回"说法不同但意思相近"的内容),以及面向企业知识库、FAQ、案例库的统一 embedding / 向量检索服务。
1.2 文本分类与文本匹配(Classification & Matching)
在上一节中,我们通过基础语言建模与表示,为每一段文本找到了在语义空间中的“坐标”。但仅有坐标还不够,业务真正关心的问题往往是:这段文本属于哪一类?和另一段文本是不是讲同一件事?两句话之间在逻辑上是相互支持还是互相矛盾?你可以把它理解为:用分类和匹配这两个能力,把底层的向量表示转化为可以直接驱动业务决策的标签与相关性信号。我们仍然从场景、原理和模型三个角度来梳理这一层:
- 场景
- 内容理解与审核:给评论、帖子、文章打上主题、情感、风险等标签,用于审核、推荐、统计分析。
- 推荐与排序:根据“用户兴趣标签”和“内容标签”的匹配程度,决定展示哪些内容、排在多前。
- 搜索与 FAQ:用户随便输入一句自然语言问题,系统能够自动找到最相关的问题‑答案对或文档片段。
- 相似内容识别:在大量文本中找到“内容相近”的条目,用于去重、合并统计、推荐“相关内容”。
- 逻辑关系判断:判断两句话之间是互相支持、互相矛盾,还是无关,用于事实核查、多轮对话一致性检查等。
- 原理 在语义表示的基础上,对整段文本或文本对进行整体判断:
- 文本分类:给单条文本打标签(如情感、主题、风险类型等);
- 文本匹配:判断两段文本之间的相似度、相关性,或“问题–答案”是否匹配;
- 模型 以预训练 encoder 为基础,接上简单的分类 / 匹配结构:
- 单文本分类:BERT / RoBERTa / DeBERTa + 全连接分类层;
- 文本匹配:Sentence‑BERT、SimCSE、双塔(Bi‑Encoder)、交叉编码器(Cross‑Encoder);
- 复杂判断:在 LLM 上通过指令微调,让模型直接输出标签或逻辑关系。
1.2.1 文本分类:从“懂内容”到“给内容定性”
借助上一层的语义表示,我们可以非常自然地在其上方接一个简单的分类头,通过少量标注数据,让模型学会回答一个问题: “这段文本属于哪一类?” 。
最经典的是 情感分类 。用户的一句评价,可能是认可、抱怨,也可能只是陈述事实。模型在拿到这句话的向量表示之后,只需要再接一个 softmax 分类层,就能输出“正向 / 负向 / 中立”的概率。这类能力在电商、社交平台、应用市场等场景中,都已经非常成熟。
另一大类是 主题 / 行业分类 。新闻推荐里,我们希望知道一篇文章是体育、财经还是娱乐;企业内部的客服 / 工单系统,则更关心这是产品咨询、功能异常还是投诉建议。这些标签既可以帮助内容被更精准地路由到合适的流程中,也可以作为推荐排序阶段的重要特征。
更进一步,风险 / 合规分类则直接与平台安全相关。我们会针对广告导流、谩骂攻击、涉政敏感、低俗色情等类别设置专门的分类模型,配合人工审核,对高风险内容进行拦截或降权。可以说,绝大部分内容安全策略的第一道闸门,都是由这类分类器构成的。
可以看到,到这一层为止,我们已经能够把“抽象的语义表示”转化为若干业务可用的标签。接下来,我们要讨论的是:当文本之间产生关系时,我们又如何进行 匹配与推断 。
1.2.2 文本匹配:为一句话“找到最合适的另一句”
与分类对“单个文本定性”不同,文本匹配关注的是“两段文本之间的相关性”。在很多产品里,这往往是实现“智能”的关键一环:用户说了一句话,系统能不能找到知识库里最合适的一条进行回应,完全取决于匹配质量。
最基础的是 语义相似度计算 。我们会先用上一层的 embedding 模型,把两个句子编码成向量,再通过余弦相似度、点积等方式,判断它们在语义空间里的距离。像 SimCSE、Sentence‑BERT 这类模型,就是通过对比学习的方式,专门把“相似的句子对”拉近,把“不相似的句子对”推远。
在此之上,复述检测和抄袭检测只是特定应用场景的匹配任务。前者用于内容去重,避免平台充斥着重复表达;后者则在教育、知识社区等场景中,用来识别高度相似的回答或文章。技术上,它们本质都是根据文本相似度来做二分类或排序。
一个非常重要的下游应用是 问答匹配 。当用户提出一个自然语言问题时,我们不会直接用关键词去匹配 FAQ,而是通过语义向量先做召回,再用更精细的匹配模型(如交叉编码器 Cross‑Encoder)对若干候选进行重排序,选出最可能对应的那一条。这一链路构成了 FAQ 机器人和文档问答系统的基础。
在这一层,我们已经具备了对“整段文本”进行分类和关系判断的能力。但在很多场景里,业务并不满足于此,而是进一步希望知道: 这段文本中具体提到了哪些实体、发生了什么事件 。这就自然引出了下一节的主题—— 序列标注与信息抽取 。
1.3 序列标注与信息抽取(Sequence Labeling & Information Extraction)
在完成了对文本整体的分类和匹配之后,我们往往会遇到一个更细致的诉求:不仅要知道“这篇文章是关于什么的、风险高不高”,还要进一步知道“它具体提到了谁、在哪儿、什么时候、金额是多少”。这一节,就是在整体判断之上向“细粒度结构化”迈出的关键一步。你可以把它理解为:在已经知道“应该看哪一类文本、它大概讲什么”的前提下,从文本内部挖掘实体、关系、事件和各类字段,让非结构化文本可以直接被业务系统消费。我们同样从目标、原理、模型和产品四个方面来看这一层:
- 场景
- 行业文本结构化:从合同、报告、公告、病历、政策等文档中,抽取出人名、机构、金额、时间、条款等关键字段,用于入库和检索。
- 知识图谱与关系网:从新闻、论文、问答中识别实体及其关系,构建“谁和谁有什么关系”的图谱,用于搜索、推荐和分析。
- 票据与单据处理:对发票、对账单、报销单等,自动提取抬头、税号、金额、日期等字段,减少人工录入。
- 舆情与事件分析:从海量文本中抽取“谁在什么时候在哪儿做了什么”,用于事件跟踪、风险预警与统计报表。
- 日志与工单结构化:把客服对话、工单、系统日志等非结构化文本里的关键信息抽出来,方便统计、监控和自动化处理。
- 原理 在 token / 短语层面,对文本进行细粒度标注与结构化:
- 序列标注:对每个 token 贴标签(如人名、地名、机构名、产品名等),实现命名实体识别、词性标注、短语切分等;
- 关系与事件抽取:在实体之上识别“实体‑实体”之间的关系,以及“谁在何时何地做了什么”的事件结构;
- 业务字段抽取:围绕具体业务 schema(如合同字段、票据字段),将长文档转成标准化的 key‑value 或记录表。
- 模型 在预训练表示的基础上,通过序列标注或 span 抽取等结构完成信息提取:
- 序列标注模型:BiLSTM‑CRF、BERT + CRF / Softmax 等;
- Span‑based 抽取:直接预测实体 / 关系片段的起止位置;
- 文档级抽取:结合版式、布局的 DocIE 类模型;
- 基于 LLM 的抽取:通过 Prompt / Few‑shot,让大模型按指定格式抽取所需字段。
1.3.1 序列标注:给每个 token 和短语贴上语义“标签”
在文本分类阶段,我们只关心整段文本属于哪一类;而在序列标注阶段,我们要对文本中的每一个 token、每一段短语进行标记。最典型的任务是命名实体识别(NER):识别人名、机构名、地名、产品名、疾病名等特定类型的实体。
- 例如,在句子“张三在北京加入某科技公司”中,把“张三”标为人名、“北京”标为地名、“某科技公司”标为机构。
从建模方式上看,传统的做法是使用 BiLSTM + CRF 这类序列标注结构,后续则更多采用 BERT + CRF 或 BERT + Softmax,利用预训练 encoder 的上下文表征能力,来判断每个 token 的标签(如 B‑ORG、I‑ORG、O 等)。在实践中,NER 模型往往是后续知识图谱、关系抽取的第一道“预处理”。
除了 NER 外,词性标注、短语切分也属于典型的序列标注任务。它们更多服务于底层语言分析,为后续更复杂的语法 / 语义任务提供基础结构。
- 比如对“快速 提升 模型 性能”标出“快速”为副词,“提升”为动词,“性能”为名词,用于下游分析。
1.3.2 关系与事件抽取:把“点”连成“线”和“故事”
当我们通过序列标注识别出文本中的实体之后,一个顺理成章的问题是:这些实体之间到底是什么关系,它们共同构成了什么样的事件?
关系抽取关注的是“实体对 + 关系类型”。例如,在一句“张三于 2024 年加入某科技公司担任 CTO”中,我们不仅要识别“张三”和“某科技公司”这两个实体,还要抽取它们之间的“就职于”关系。
- 简单来说,就是从“张三 – 某科技公司”这对实体上,贴上“任职”这类关系标签。
在关系之上,事件抽取则试图重建“谁在什么时候、什么地点,做了什么事情”。以一则新闻为例,一个标准的事件模板可能包含:事件类型(收购、合作、事故)、时间、地点、参与方、金额、后果等多个槽位。事件抽取模型需要从冗长的文本中自动填充这些槽位,从而构建出可被检索、统计和推理的“事件表”。
- 比如从“某公司以 5 亿元收购另一家公司”中抽出:事件类型=收购,金额=5 亿元,参与方=两家公司。
在建模方法上,除了传统的序列标注式抽取,我们还会采用 Span‑based IE(直接预测实体 / 关系 span 的起止位置)以及近年来兴起的 Prompt‑based IE 和基于 LLM 的 Few‑shot 抽取。后者的优势在于可以通过自然语言提示,快速适配新的 schema,减少大量重新标注和训练的成本。
从工程角度看,成熟的抽取系统往往会形成一条管线:
- 上游 NER / 序列标注识别实体;
- 中间层做关系和事件结构建模;
- 下游把结果写入数据库或知识图谱,供搜索、分析和风控系统消费。
1.4 文本生成与编辑(Text Generation & Editing)
在前面几节中,我们已经依次构建了“表示 → 分类匹配 → 序列标注与抽取”这条理解链路:模型不仅能把文本映射到语义空间,还能对整段文本做判断,并从中抽取出结构化信息。这一节要做的,是把这条理解链路“反向”再走一遍:在充分理解的基础上,让模型主动去生产、改写、压缩和润色文本。你可以把它理解为:在语义空间中进行“反向编码”,把内部表示重新变成高质量的自然语言输出,是整条文字模态能力链里最贴近用户感知的一层。我们依旧从目标、原理、模型和产品四个维度来拆解:
- 场景
- 日常写作与办公:生成邮件、通知、方案初稿,或对现有文本进行扩写、改写和润色。
- 知识管理与总结:对长文档、报告、会议记录进行自动摘要,帮助快速抓住重点。
- 客服与问答:根据用户问题和检索到的资料,自动生成结构清晰、口吻统一的回答。
- 营销与创意内容:生成广告文案、社交媒体帖子、活动介绍、脚本等。
- 多语言场景:在保持原意的基础上,完成翻译、本地化改写,适配不同语言和场景。
- 原理 在语言建模的基础上,对文本进行“从无到有”和“基于已有内容的修改”:
- 自由生成:根据意图、提示词或大纲,从头生成一段完整的文本;
- 受控改写:在保持核心信息不变的前提下,调整风格、长度、结构(如摘要、扩写、风格转换);
- 纠错与润色:修正错别字、语法问题,优化表达顺序和逻辑结构。
- 模型 以大规模预训练 + 指令微调的生成模型为主:
- 指令微调 LLM:GPT 系列、LLaMA / Qwen / GLM 等,用于通用生成与编辑;
- Seq2Seq 模型:T5、BART、mT5 等,用于摘要、翻译、格式转换等任务;
- 对齐与安全:通过 RLHF / RLAIF 等手段,让生成内容更加符合指令和安全要求。
由于这个部分基本等于提示词工程,故不再过多阐述,可以自行查看提示词工程部分的教程。