(五万字深入解析,一篇就够)解锁大语言模型LLM的终极奥秘:从架构解析到实战落地,全方位深度揭秘!
LLM的基础概念与技术背景
随着人工智能的发展,**大语言模型(LLM,Large Language Model)**已成为自然语言处理(NLP)领域的核心技术之一。LLM指拥有亿级甚至百亿级参数的大规模神经网络模型,能够在广泛的语言任务中表现出色。要理解LLM的崛起,需要回顾NLP的演进历程以及Transformer架构的引入。
NLP的历史演进与LLM的发展
早期的NLP主要依赖规则和统计方法。从20世纪50年代的机器翻译尝试到60年代的ELIZA聊天机器人,研究者尝试让机器理解和生成语言。其中,1960年代MIT的Joseph Weizenbaum开发的ELIZA可以看作首个聊天机器人,开启了NLP的探索 (The history, timeline, and future of LLMs)。此后几十年,模式匹配和统计语言模型逐渐兴起。例如,1990年代盛行 n n n元语法和隐马尔可夫模型,能够通过统计方法对文本进行概率建模。
神经网络的引入为NLP带来了新阶段。1997年提出的长短期记忆网络(LSTM)提升了模型对长距离依赖的处理能力 (The history, timeline, and future of LLMs)。2013年前后,Google提出Word2Vec算法,将单词映射为密集向量(embedding),捕捉语义关系,实现了分布式词表示的突破。这些词向量是静态的,例如“bank”一词无论表示银行还是河岸,其Word2Vec向量都相同 (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk) (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk)。不过这为后续动态上下文敏感的表示(如BERT)奠定了基础。
2017年Transformer的出现是革命性时刻。Vaswani等人在论文《Attention Is All You Need》中提出Transformer,彻底改变了序列建模的方法。Transformer基于自注意力机制(self-attention),抛弃了循环网络,实现了并行计算。它可以在编码器-解码器架构中高效建模长序列关系,捕获单词之间的深层依赖。这一突破标志NLP进入预训练语言模型时代 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)。
Transformer使越来越大的预训练模型成为可能。GPT系列和BERT系列几乎同时诞生:2018年6月OpenAI发布了GPT-1(1.17亿参数) (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond),同年10月Google发布了BERT(3.4亿参数) (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond)。BERT通过双向编码和遮蔽语言模型任务预训练,善于理解上下文语义,被用于问答、分类等理解类任务。GPT则采用单向解码、下一个词预测的自回归预训练,擅长根据前文生成续写,适用于生成类任务。研究发现,随着参数规模增长,预训练语言模型开始具备零样本和小样本学习能力 ([2005.14165] Language Models are Few-Shot Learners) 。
模型规模的跃升在2019-2020年尤为迅猛:OpenAI在2019年推出GPT-2(15亿参数),比GPT-1大10倍,在生成连贯文本方面首次媲美人类 (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond)。2020年GPT-3横空出世,参数达到1750亿,通过提供几个示例即可Few-Shot完成翻译、问答等任务,性能接近经过大规模监督微调的模型 。GPT-3的成功表明:通用大模型 + 少量提示可以解决多种任务,人类只需设计提示而无需为每个任务训练专门模型 。由此掀起了构建更大模型的热潮。
进入通用对话时代:2022年底,基于GPT-3.5的ChatGPT面世,引爆公众视野。借助Instruction Tuning和人类反馈强化学习(RLHF),ChatGPT能够更好地遵循用户指令,进行多轮对话。这使得非技术用户也能通过自然语言与LLM互动,从写作助手到代码生成各方面展示了前所未有的实用性 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)。2023年更是大模型竞相发展的年份:OpenAI发布了多模态的GPT-4,据报道参数量达数万亿级别 (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond)(具体参数未公开),具备图像识别和更强推理能力,甚至能够通过律师资格考试等标准化测试 (The history, timeline, and future of LLMs)。Google推出了PaLM 2和多模态对话模型Bard;Anthropic发布了强调安全性的Claude,支持长上下文;Meta开放了LLaMA系列模型权重,催生出丰富的开源衍生模型。可以说,LLM发展一日千里,模型规模、能力和可用性都在不断刷新。
Transformer架构解析
Transformer是支撑现代LLM的核心架构,其关键创新在于自注意力机制。与RNN按序处理不同,Transformer通过自注意力可以并行地建模序列中任意两个位置的依赖。Transformer基本由**编码器(encoder)和解码器(decoder)**堆叠组成(如GPT系列只用解码器堆叠,BERT只用编码器堆叠,T5则编码器-解码器都有)。下面我们解析其主要组件:
-
Embedding层:首先,将输入的词转换为向量表示(词嵌入)。Transformer还通过**位置编码(Positional Encoding)**注入序列位置信息,使模型感知词序。
-
自注意力层(Self-Attention):这是Transformer的核心。对于输入序列的每个位置,计算它对序列中其他位置的注意力权重,以捕获关联程度。给定查询矩阵 Q Q Q、键矩阵 K K K、值矩阵 V V V,每个位置的输出是所有值的加权和,权重由查询和键的相似度通过softmax计算决定。其数学形式为:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V , \text{Attention}(Q, K, V) = \text{softmax}\!\Big(\frac{Q K^T}{\sqrt{d_k}}\Big) V, Attention(Q,K,V)=softmax(dkQKT)V,
其中 d k d_k dk是键向量的维度 ([2201.11903] Chain-of-Thought Prompting Elicits Reasoning in Large Language Models)。注意力机制的含义是:通过点积比较当前词的查询和每个词的键,得到相关性分布,从而聚合上下文信息 。Transformer使用多头注意力(Multi-Head Attention),将 Q , K , V Q,K,V Q,K,V分成多组头并行计算注意力,以学习不同关系的信息,然后将各头结果拼接。这提高了模型表达不同语义关系的能力。
-
前馈网络(Feed-Forward Network):在注意力层之后,每个编码器/解码器层还有一个逐位置的前馈全连接网络,用于进一步非线性变换。典型设置是两层线性层,中间有ReLU激活,将维度先升高再降回原维度。
-
残差连接和Layer Norm:每个子层(注意力或前馈)都通过残差连接叠加输入,并进行层归一化,确保梯度稳定和训练收敛。
在编码器-解码器交互中,解码器还对编码器输出执行跨注意力(Encoder-Decoder Attention),让解码器在生成每个词时“关注”源序列的相关部分。解码时通过掩码机制确保模型只能看见以前的输出,避免信息泄露。Transformer的并行化、自注意力使其在长距离依赖、上下文建模上远超RNN。其深度堆叠的自注意力层可以捕获句法和语义的各种关系,是LLM强大性能的基础 (The history, timeline, and future of LLMs)。
Transformer架构也催生出很多变体和改进。例如,针对长文档的高效注意力(如稀疏注意力、滑动窗口注意力等)提高了长上下文处理能力。在最新模型中,一些采用ALiBi、RoPE等位置编码来更好扩展上下文长度。而像GPT-4等还融合了多模态编码模块,使图像等非文本输入能够通过适当的编码器接入Transformer架构,从而实现跨模态任务。
总的来说,Transformer提供了一个高度模块化且可扩展的框架。通过不断增加层数和参数量,以及引入更好的训练策略,Transformer架构支撑的LLM展现了惊人的语言理解与生成能力。正如有研究指出,Transformer使得更大的模型带来更优性能成为常态,这推动了参数规模的指数级增长 (The history, timeline, and future of LLMs)。不过,也有研究尝试在架构和训练方式上优化,以更小规模实现高性能,例如DeepMind的RETRO模型通过引入检索机制,性能超过了大25倍的模型 (The history, timeline, and future of LLMs)。这些探索意味着Transformer架构仍有改进空间,为未来LLM的发展指明了方向。
主要模型的对比分析 (GPT、BERT、T5、LLaMA等)
当前LLM大家族中,有几类具有代表性的模型架构,各有侧重和优势:
-
GPT系列(Generative Pre-trained Transformer):代表为GPT-2、GPT-3、GPT-4等,采用仅解码器的Transformer架构,使用自回归语言建模(根据前文预测下一个词)进行预训练。GPT系列重在文本生成,能够根据提示产生连贯的续写或对话。在微调或强化学习指导下,GPT还可执行摘要、翻译、代码生成等任务。其特点是单向上下文:每个词只能注意之前的词,适合生成场景,但可能在理解全局上下文时略逊。不过GPT-3通过超大规模和灵活的提示设计,展现了惊人的Few-Shot学习能力,在无需梯度更新情况下解决了多种NLP任务 。GPT-4进一步引入了图像输入(多模态)并提高了推理能力,例如它能通过多项专业考试 (The history, timeline, and future of LLMs)。GPT系列是典型的生成型LLM,也是现今对话AI的核心。
-
BERT系列(Bidirectional Encoder Representations from Transformers):代表为BERT-base/large、RoBERTa、ALBERT等,采用仅编码器的Transformer架构,预训练任务为掩蔽语言模型(Mask部分词预测)和下一句预测等。BERT是双向上下文模型,可以同时利用句子左侧和右侧的上下文来预测被遮蔽的词,从而学习到高质量的语义表示 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)。BERT非常擅长理解类任务,如句子分类、阅读理解和命名实体识别。实际上在BERT提出后,它迅速成为各种NLP基准的顶尖模型,并被Google用于搜索引擎理解查询意图 (The history, timeline, and future of LLMs)。BERT的缺点是不能直接用于文本生成(因为没有解码器),需要通过其他策略(如将BERT表示送入单独的生成模块)才能生成文本。总体而言,BERT类模型体现了预训练-微调范式在理解任务上的成功。
-
T5(Text-to-Text Transfer Transformer):由Google在2019年提出,采用编码器-解码器结构,将所有任务统一表示为文本到文本的转换。T5在预训练时使用了填空式语言建模(Span Corruption,即随机遮蔽一个文本片段,由模型生成填补) 。这种策略结合了BERT的双向编码能力和GPT的文本生成能力。T5的设计理念是**“文本到文本”统一框架**:无论翻译、摘要还是分类,都转换为给定输入文本让模型输出目标文本。例如,对于分类任务,可让模型输出标签对应的单词。这一统一使T5能够多任务训练,并方便地适配新任务。T5在GLUE等多个基准上取得SOTA效果,同时保留了生成的灵活性,是通用性很强的LLM。
-
LLaMA系列:这是Meta(Facebook)在2023年开放的模型系列(LLaMA 1和LLaMA 2)。LLaMA采用与GPT类似的解码器Transformer架构,但通过优化训练策略和数据,在较小参数量下达到了接近更大型号的性能。例如LLaMA 2提供7亿到70亿规模的模型,开放研究社区可以获取权重进行微调。LLaMA的一个重大影响在于开源生态:研究者基于LLaMA开发了许多微调版本,如Alpaca、Vicuna等,用于聊天、编程等特定领域。这极大地推动了LLM民主化。有报告显示,LLaMA 2 13B的性能与GPT-3 175B相当,而最新的开源模型Mistral 7B更是在多数基准上显著超越了LLaMA 2的13B模型 (Mistral 7B | Mistral AI) (Mistral 7B | Mistral AI)。这说明通过精心的训练,即使中等规模的参数也能有卓越表现。LLaMA系列强调开放、可定制,适合企业和开发者在自己数据上二次训练,是商用私有部署的热门选择。
除了以上,还有其他类型值得一提:例如Megatron-Turing NLG(5300亿参数,曾是参数最多的模型)等超大模型,UL2这种支持多种预训练任务模式的通用模型,以及各类领域专家模型(如医药领域的BioGPT等)。总体来说,GPT、BERT、T5三类分别代表了生成、理解、以及通用序列到序列三种范式,而开源的LLaMA等模型展示了在资源受限情况下的效率突破。在实际应用中,工程师会根据任务需求选择合适的模型架构:需要自由生成长文本时多选GPT类,需要精确理解文本或提取信息时多用BERT类,而涉及复杂转换(如总结文章)往往T5这类encoder-decoder会更适合。此外,通过微调,上述模型都能定制到特定任务域中,这也是下节将讨论的重点。
大语言模型的微调与优化方法
预训练的大语言模型具有通用语言能力,但要在特定任务或领域上达到最佳性能,往往需要进行**微调(fine-tuning)或其他参数高效的调整方法。随着模型规模变得极其庞大,传统的完全微调(调节所有参数)变得成本高昂,业界提出了许多参数高效微调(PEFT)**技术。下面我们详细介绍常见的微调与优化方法,包括LoRA、P-Tuning、Adapter等,并讨论任务定制策略、数据增强和数据清洗等实践。
常见微调技术综述
1. 全参数微调(Full Fine-Tuning):这是经典做法,即在预训练模型基础上,用少量任务数据对所有模型参数继续训练,使模型适应新任务。这种方法在模型较小(如几千万参数)时可行,但对数十亿参数的LLM来说,每个任务都调节全部参数既耗时又需要巨大的内存和算力 ([2106.09685] LoRA: Low-Rank Adaptation of Large Language Models)。例如微调一个1750亿参数的GPT-3,不仅GPU显存消耗巨大,部署每个任务专属模型也非常昂贵 。因此,全参数微调虽能取得较好效果,但在LLM时代已不太实际,取而代之的是各种参数高效微调手段。
2. Adapter 模块:由Houlsby等人在2019年提出 ([1902.00751] Parameter-Efficient Transfer Learning for NLP)。Adapter是在模型每一层添加一个小型的瓶颈层(通常是先降维再升维的两层MLP),预训练模型的原有权重被冻结不变,仅训练这些新增模块的参数 。这样,每个任务只需存储少量Adapter参数,不同任务各自的Adapter模块可以在需要时插入模型。研究表明,Adapter微调在GLUE等基准上几乎不损失性能(仅比全微调差0.4%),却只需要训练增加约3.6%的参数 。Adapter的优点是高效且模块化:每个任务的Adapter独立存在,不会干扰基础模型或其他任务。这非常适合需要支持多任务的场景,因为我们无需为每个任务维护一个完整模型,只需保存任务相关的小模块。Adapter的缺点是引入了推理时的额外前向计算(虽然模块小,但仍有轻微延迟)。不过相比训练开销的巨大节省,这点开销往往可以接受。
3. LoRA(Low-Rank Adaptation):这是2021年提出的一种更高效的微调方法 。LoRA的思想是:冻结预训练模型权重不变,在每层的权重矩阵中引入低秩的可训练矩阵分解。具体来说,假设原权重矩阵 W W W尺寸为 d × k d \times k d×k,LoRA会引入两个小矩阵 A A A(尺寸 d × r d \times r d×r)和 B B B(尺寸 r × k r \times k r×k),使得实际权重为 W + Δ W W + \Delta W W+ΔW,其中 Δ W = A × B \Delta W = A \times B ΔW=A×B。这里 r r r是远小于 d , k d,k d,k的秩,使得 A , B A,B A,B的参数总数远小于 W W W。训练时只更新 A , B A,B A,B(以及可能的偏置项),其余参数不变 。LoRA的效果非常显著:论文中以GPT-3 175B为例,LoRA将需要训练的参数数量减少了10,000倍,GPU显存占用降低3倍,但性能几乎无损,甚至在某些任务上优于全参数微调 。重要的是,相较于Adapter需要在推理时通过新增层计算,LoRA通过低秩矩阵分解并将 Δ W \Delta W ΔW直接加回权重,对推理几乎没有额外延迟 (因为可将 W + Δ W W+\Delta W W+ΔW合并)。LoRA已在各类LLM任务中广泛应用,使得在消费级GPU上微调百亿模型成为可能。例如,通过LoRA,人们成功在单张GPU上微调出了功能强大的对话模型(如Alpaca等)。LoRA的实现也很简单,著名的🤗PEFT库提供了对Transformers模型一键应用LoRA的接口。下面是一个示例代码,展示如何对一个HuggingFace的模型应用LoRA微调:
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig, get_peft_model
# 加载预训练的GPT模型
model = AutoModelForCausalLM.from_pretrained("facebook/opt-1.3b")
tokenizer = AutoTokenizer.from_pretrained("facebook/opt-1.3b")
# 设置LoRA配置:秩r=8,缩放系数alpha=32,微调目标模块为注意力层的Q,K投影
lora_config = LoraConfig(r=8,
lora_alpha=32,
target_modules=["q_proj", "k_proj"],
lora_dropout=0.1,
bias="none")
# 将模型转换为PEFT LoRA模型
model = get_peft_model(model, lora_config)
print(f"可训练参数数量: {model.print_trainable_parameters()}")
上述代码使用了PEFT库的LoraConfig定义LoRA超参数,并用get_peft_model将预训练模型包装为可训练的LoRA模型。print_trainable_parameters()将显示仅有少量新参数需要训练(相对于原模型数十亿参数)。通过常规的Trainer即可用新数据训练LoRA参数。训练完毕后,我们可以将LoRA权重独立保存,用于在推理时与原模型合并。LoRA的优点使其几乎成为大模型微调的标配方法。
4. Prompt Tuning(提示微调):与上述微调方法直接调整模型权重不同,Prompt Tuning思路是不改模型参数,而是学习一段额外的向量串联到输入上,作为“软提示”,引导模型完成特定任务。早期的Prompt Tuning直接在输入embedding前插入若干可训练的虚拟token向量;之后的发展如P-Tuning v2进一步将这种软提示应用到模型的各层输入 ([2110.07602] P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks)】。Liu等人提出的P-Tuning v2证明:经过良好优化的Prompt Tuning在各种NLU任务上可以达到与全参数微调相当的效果,只需调节0.1%-3%的参 】。例如,在较小模型上,Prompt Tuning曾被发现效果不佳,但P-Tuning v2通过在模型每层插入提示向量并结合更好的初始化和优化策略,成功让一系列语言理解任务上软提示的效果追平甚至略超全微 】。Prompt Tuning的优势在于极低的存储开销(每个任务仅存储提示向量)和无需修改模型(适用于无法方便改参数的场景,如API模型)。缺点是目前主要在理解类任务上验证效果,对于需要精细控制输出的生成类任务,软提示有时不如微调直接。不过在GPT-3等超大模型上,研究者惊奇地发现甚至零样本的一个通用提示(如“让我们一步步思考”)都能激发推理能 ([2205.11916] Large Language Models are Zero-Shot Reasoners)】,这表明模型参数中已蕴含了通用技能,恰当的提示就能引出。在实践中,Prompt Engineering(后文详述)和Prompt Tuning常结合使用:先通过人工提示让模型接近任务,再通过学习软提示做细微调整。总的来说,Prompt Tuning提供了一种高效调教大模型行为的范式,尤其适合需要频繁切换任务的场景。
5. 其他参数高效微调方法:除了上述,学术界还提出了Prefix-Tuning(仅训练每层注意力的前缀键/值向量)、BitFit(只微调偏置参数)、差分增量微调等。这些方法都遵循一个原则:冻结大部分原始权重,仅引入/调整极少量参数,以显著降低训练和存储成本。例如,Prefix-Tuning由Li & Liang提出,用可训练的前缀向量代替LoRA的矩阵形式,也取得了不错效果;BitFit则更为简单地只训练网络中的bias偏置项,也能达到接近全微调的水平。最近还有混合方法如QLoRA,结合4-bit量化和LoRA,使得在单GPU上微调650亿参数模型成为可 (Making LLMs even more accessible with bitsandbytes, 4-bit …)】。工程上,开发者可以根据需求权衡:如果想部署高效,Adapter/LoRA等很好;如果要极简改动原模型,Prompt Tuning或BitFit很吸引人。在实际项目中,也常常多种方法配合,如先LoRA粗调,再结合提示词调整输出格式等。
综上,参数高效微调技术使得大模型的定制成为普遍可行的工作流。正如LoRA论文所示,对175B模型进行LoRA微调可以做到“万分之一参数参与训练,却达到与全参数微调相当的效果 】。这些技术极大降低了企业和研究人员使用LLM的门槛——无需上百万美元的算力也能训得动大模型。下图(省略)如有的话会展示不同微调策略的参数开销对比。总之,在LLM应用落地中,充分利用这些微调方法,能够以最小代价让模型适配任务需求。
任务特定微调策略
在选择具体微调技术后,还需要制定任务特定的微调策略,以充分发挥模型性能:
-
确定微调目标:首先明确任务类别,如分类、问答、摘要、对话等。不同行为可能需要不同的输出格式和loss函数。例如,分类可在模型最后加一个线性层输出类别概率,问答和摘要则直接生成文本答案。对于生成任务,通常以预训练模型原生的语言模型头直接生成;对于判别任务,可以改造模型输出或用prompt方式(如让模型输出“真/假”来表示二分类)。微调时应确保训练目标和评价指标匹配任务需求。
-
调整超参数:大模型微调常采用较小的学习率和精调的优化器,因为预训练权重已经很好,需要防止过大的梯度破坏已有语言能力。一般建议学习率比训练小模型时低一个数量级以上,根据微调方法不同进行搜索。Batch size取决于任务数据规模和GPU显存,尽量大一些以稳定收敛。训练轮次也不宜过多,因为数据集通常较小,几轮epoch即可收敛,否则容易过拟合。使用**早停(early stopping)**根据验证集指标来终止训练是常见做法。
-
Catastrophic Forgetting防范:大模型微调一个新任务时,可能出现“灾难性遗忘”,即模型原本掌握的通用知识退化。为避免这点,可以采取逐层解冻策略——开始仅训练顶层(或LoRA模块),逐渐酌情解冻更多层,让模型慢慢适应新任务而非一次性大改。另外,可考虑在损失函数中加入对预训练目标的约束(如少量预训练数据的loss),保持模型原有能力。使用较小的学习率和少epoch本身也有助于缓解遗忘,让模型微调幅度有限。
-
多任务微调:有时我们希望一个模型同时胜任多种任务。这可通过多任务学习实现——在微调时交替使用不同任务的数据训练模型。比如同时微调模型用于情感分析和问答,使其兼具两方面能力。这需要仔细均衡各任务的数据量和loss权重,防止模型偏向某一任务。多任务微调可以让模型共享不同任务的知识,提高泛化 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review) (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。但对LLM来说,多任务微调也更复杂,往往要借助Adapter等方法为不同任务保留独立模块以防干扰。
-
领域自适应:当目标应用领域与预训练语料差异较大(如医学、生物等专业领域),可以在下游任务微调前,先进行领域自适应预训练。具体做法是在模型上用该领域的大型未标注文本继续预训练(自监督任务),这通常使用比下游任务大得多的数据,但训练轮次较少。这样模型的词汇、风格更贴近领域语料,然后再执行任务微调会更有效。这类似GPT-2在OpenAI的WebText上预训练,再在医学论文上继续预训练得到BioGPT,再微调问答的流程。领域自适应可以看作微调和预训练的中间环节,许多实践证明它可提升特定领域任务表现。
举例:假设我们要将一个通用GPT模型微调成法律助手AI。我们可以策略如下:先收集大量法律文档,让模型执行一轮自我监督的领域预训练,使其掌握法律术语和行文(此时不改变模型架构,只更新内部权重)。接着,准备一批法律问答对或咨询案例,对模型进行LoRA微调,学习在问答场景下输出专业且合规的答案。微调时注重用较低学习率和验证集早停,确保回答专业性的同时不丢失基本语言能力。训练完成后,再通过与专业律师的反馈对话,进行RLHF(强化学习结合人类反馈)微调,提升回答的有用性和守法性。整个过程中,每一步都是任务/领域定制的策略,最终产出一个在法律咨询任务上表现出色的LLM。
数据增强与数据清洗的方法
除了模型和训练策略,数据对微调质量至关重要。现实场景下,标注数据往往稀缺且杂乱,因此需要通过数据增强和清洗来提升微调效果:
-
数据增强(Data Augmentation):指人为合成或变换现有数据,生成额外训练样本的方法。在CV中翻转、旋转图像很常见,而NLP的数据增强需要确保语义不变。常用技巧有:
- 回译(Back-Translation):将一句话翻译成另一种语言,再翻译回来。据报道,使用如Google Translate进行回译可以产生措辞不同但语义相同的句 (Data Augmentation in NLP: Best Practices From a Kaggle Master)】。这对分类、QA等任务有用,因为丰富了表达方式。
- 同义替换:随机挑选句中非关键字,用其同义词替换。例如一句话中将“方法”替换为“手段”。这种同义词替换是EDA(Easy Data Augmentation)方法的一部 (Data Augmentation in NLP: Best Practices From a Kaggle Master)】。EDA还包括随机插入(插入同义词到随机位置)、随机删除、随机交换等操 (Data Augmentation in NLP: Best Practices From a Kaggle Master) (Data Augmentation in NLP: Best Practices From a Kaggle Master)】。这些简单变换往往能增加模型鲁棒性,防止过拟合。
- 扩充少样本类别:对于类别不平衡的数据集,可以针对样本少的类别生成类似句子。例如一类情感为“愤怒”的句子很少,我们可以让人或模型仿造几句愤怒语气的话以扩充数据。
- 利用预训练模型生成:强大的LLM本身可以用来生成训练数据。例如,用GPT-3根据现有样本进行改写、扩展或问答对生成。这在实际中已用于构造长尾问答对,提升模型对罕见问法的表现。需要注意的是机器生成的数据可能质量良莠不齐,要加以筛选。
数据增强的目标是**“扩量提质”**:增加数据覆盖的语言现象,让微调模型见过更多变体,从而泛化更好。一项研究表明,在低资源情形下,数据增强显著提高模型性 (Data Augmentation in NLP: Best Practices From a Kaggle Master) (Data Augmentation in NLP: Best Practices From a Kaggle Master)】。然而过度增强也可能引入噪音或偏离原分布,因此应适度并确保增强后数据仍符合任务需求。
-
数据清洗(Data Cleaning):在微调前对数据进行清理,剔除无关或有害信息,能避免模型学到错误东西。清洗可包括:
- 去重:删除完全重复或几乎重复的样本,避免模型过度偏好高频样本。同时合并近似重复的标注,保证多样性。
- 纠错:修正明显的拼写错误、语法错误,除非这些错误本身是任务关注点。干净的输入有助于模型学到正确语言规律。
- 不相关数据剔除:如果爬取的数据中混有与任务无关的内容,应过滤掉。例如法律问答数据集中混入了大量闲聊或技术问答,应去掉以保证模型专注法律领域。
- 异常值处理:极端长或内容怪异的样本可以考虑移除,尤其当这些样本在验证集中效果不佳时。
- 敏感信息过滤:为了安全和隐私,数据中涉及个人敏感信息、违法违规内容等应在训练前剔除或匿名化处理。这不仅是道德要求,也能避免模型在微调中学习到不良输出倾向。
高质量的数据能够显著提升模型表现。一句行业箴言是“垃圾进,垃圾出(Garbage in, garbage out)”。在LLM的训练中更是如此:Web抓取的海量预训练语料往往杂乱冗余,必须经过严格筛选才能用于训 (The Importance of Data Quality for LLMs | Datafuel) (The Importance of Data Quality for LLMs | Datafuel)】。据报道,大模型需要**干净、结构良好且相关的数据才能真正发挥潜力* (The Importance of Data Quality for LLMs | Datafuel)】。互联网上充斥过时、重复、格式不良的信息,手动清洗如大海捞 (The Importance of Data Quality for LLMs | Datafuel)】。为此,一些自动化工具(如DataFuel等)兴起,通过规则和预模型检测低质内容。例如DataFuel提供API将网页转为结构化干净文本,移除HTML冗余符号,从而提高训练效 (The Importance of Data Quality for LLMs | Datafuel) (The Importance of Data Quality for LLMs | Datafuel)】。
清洗在微调数据上同样关键。想象我们有一批客服对话数据用于训练聊天模型。如果其中很多示例包含客服的寒暄或客户的脏话,我们可能希望过滤掉脏话部分,并统一寒暄措辞,从而让模型学习更规范专业的回复风格。又如情感分析数据,可能标注存在错误(人本身标错了积极/消极)。使用如Cleanlab这样的工具可以自动发现潜在标注错误并加以修 (How to detect bad data in your instruction tuning dataset (for better …)】。经过这些处理,模型微调就相当于站在了“干净且正确”的训练基础上,更容易收敛到理想解。
总结:微调大模型不仅仅是跑一段训练脚本,还涉及技巧选择(如LoRA/Adapter)、策略制定(如多任务、领域自适应)和数据准备(增强与清洗)的系统工程。业界最佳实践是:尽可能使用参数高效微调方法降低成本,同时投入时间打磨数据。只有这样,才能以有限资源让LLM在特定应用上达到最佳效果。正如一句话所说:“模型能力由预训练决定上限,但由微调数据与策略决定下限。” 通过精心微调,我们可以将强大的LLM“驯服”成满足业务需要的AI助手。
Prompt Engineering的原理与最佳实践
使用LLM时,如何设计提示(Prompt)来引导模型产出预期结果,是一门重要的技巧,即Prompt Engineering(提示工程)。Prompt可以理解为我们对模型下指令或提问的方式。一个精心措辞的Prompt往往能极大提升模型表现,而糟糕的Prompt可能导致模型误解或产生无关输出。本节我们探讨Prompt的基本类型和作用、Few-shot与Zero-shot等提示技术、Chain-of-Thought等高级技巧,并总结优化Prompt的最佳实践。
Prompt的基本类型与作用
在与LLM交互时,Prompt通常有以下几种基本形式:
-
指令型 Prompt(Instruction):直接给模型下达指令,让其执行特定任务。例如:“请用一句话总结以下文章:…”。这类Prompt清晰定义了用户期望模型做什么。比如OpenAI API就建议将指令置于开头,并用明确的格式标识,从而提高模型遵循 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。指令型Prompt适用于要求模型完成单步任务的情形。
-
问答型 Prompt(Q&A):提供一个问题,要求模型给出答案。如:“问:世界上最高的山峰是哪座?答:”。模型将问题视作输入,给出解答。这在知识问答场景常用。我们可以通过增加上下文来提高准确率,例如在问题前提供相关背景段落。
-
对话型 Prompt:以角色扮演或多轮对话的格式呈现,让模型生成后续对话内容。例如:
用户:你好,今天天气怎样?\n助理:。模型将扮演“助理”角色回复天气信息。对话Prompt需要提供一些对话上下文和身份说明,让模型明白自己的角色和语气。 -
填空型 Prompt(Cloze):给出一句话挖空一部分,让模型填补空白。如:“机器学习是人工智能的一个__。”模型应填入“分支”或“子领域”。这种形式评估模型对局部上下文的理解,对预训练模型来说是基本能力。
-
示例驱动 Prompt(Example-driven):也叫Few-shot Prompt,在指令或问题后提供一到多个示例及其正确输出,然后再给出实际要模型回答的内容。通过示例展示,模型可以类比地得出答案。例:
翻译以下句子为英文: 示例:输入:你好。 输出:Hello. 示例:输入:我喜欢机器学习。 输出:I like machine learning. 待翻译:输入:这本书很有趣。 输出:通过两个翻译示例,模型明白任务模式后,再输出第三句的翻译。
-
系统+用户 Prompt(特别在OpenAI Chat API里):将Prompt分为系统说明(system)和用户提问(user)部分。系统部分设定整体风格或身份,例如“你是一个专业的法律咨询助手。 (What is AutoGPT? | IBM)】;用户部分则是具体问题请求。这有助于“在提示中设置上下文”**。许多LLM对系统提示非常敏感,可以用来规范模型行为。
Prompt的作用机制可以理解为:它在一定程度上塑造了模型的思考路线。LLM本质上是基于统计和关联来预测文本,它没有真正的目的,只有我们通过Prompt赋予了它一个任务。因此,不同提示可能激活模型参数中的不同知识。比如提问方式稍变,模型可能联想到不同背景知识而给出不同答案。好的Prompt能明确任务、提供上下文、减少歧义,使模型朝正确方向联想。
Few-shot、Zero-shot、Chain-of-Thought 等技术
Few-shot Prompting和Zero-shot Prompting是LLM的一种使用模式,被GPT-3论文揭示后引起广泛关 】:
-
Zero-shot:不提供任何示例,让模型凭借指令和自身知识直接完成任务。例如问:“Translate to French: Where is the library?” 直接期望模型输出法语翻译。这要求模型从指令理解任务类型,然后运用预训练学到的知识作答。Zero-shot是最简洁的提示方式,也是理想情况下模型应该具备的能力。事实上,大模型已经展示出很强的零样本能力,例如GPT-3在多个任务上零样本结果就相当不错,甚至某些复杂推理可以通过一个通用提示实现(后述Zero-shot CoT 】。
-
Few-shot:在提示中加入了少量任务示例,通常2-5个左右。通过示例-答案对,模型可以更好地类比出正确输出格式和要 】。Few-shot的威力在于无需更新模型权重,仅通过文字示例就能适配任务。GPT-3论文正是因此称“语言模型是小样本学习者 】。Few-shot可以极大提升准确性,尤其在任务定义不明确或有多种潜在输出格式时。例如让模型分类影评情感,如果零样本仅给指令“判断下面评论是正面还是负面”,模型可能输出“不确定”等。而Few-shot提供几个评论->情感标签示例后,模型就清楚应该输出“正面/负面”二选一。这类似人类看了例题再做题会更稳妥。需要注意Few-shot示例要多样且正确,以免误导模型。
Chain-of-Thought(思维链)提示是一种高级技巧,目的是引导模型分步推理。通常在提示中加入例如“让我们一步一步地思考”(Let’s think step by step)这样的短语或示范,让模型先产出一系列中间推理步骤,然后再给最终答 】。研究发现,对于算术、逻辑推理等复杂问题,这种方法显著提高正确 】。Wei等人在2022年的论文中系统研究了CoT提 】。他们的实验表明:当模型参数足够大时(如5400亿参数的PaLM),只需在Few-shot示例中加入链式推理过程,模型便出现了解题能力的“涌现”,在数学和常识推理基准上达到SOT 】。例如,对于一道数学应用题,Few-shot CoT的提示格式是:
Q: 有10个苹果,吃掉3个,又买了5个,现在有多少个苹果?
A: 让我们一步步思考。首先有10个苹果,吃掉3个还剩7个。然后买了5个,7+5=12。因此答案是12。
Q: 有一辆车行驶了... (下略)
A: 让我们一步步思考。...
通过这种方式,模型学会了在回答之前自己演算。当遇到新问题时,如果我们添加一句"Let’s think step by step."在问题后,模型往往会先输出一系列推理,再得出答案。这个现象由Kojima等人在2022年提出,被称为**Zero-shot CoT* 】。他们惊奇地发现,仅仅在零样本提示末尾加一句提示思考的话,GPT-3类模型在数学、推理任务上的准确率大幅提升,例如MultiArith数据集准确率从17.7%飙升至78.7 】!这是因为这句话触发了模型内在的链式推理能 】。Zero-shot CoT的有效性证明LLM中蕴藏的推理潜力有待简单的提示去激 】。
除了思维链,还有自一致性(self-consistency)等衍生提示技巧。自一致性是让模型生成多个不同的推理链,然后投票选择最一致的答案,以减少偶然错误。或者要求模型先检查答案,例如提示:“给出答案并解释为什么。”通过让模型自我审视,也能过滤掉明显不靠谱的输出。
角色扮演也是Prompt Engineering的重要技术。通过在提示中赋予模型身份,可以影响其语气和回答内容。例如,在系统消息中写:“你是一名资深医生助理,擅长用通俗语言解释医学概念。”这样用户提问疾病时,模型会倾向给出耐心专业的回答。角色扮演Prompt可以防止模型用不适当的语气回复(如本不应该开玩笑的场合)。OpenAI的指南中特别指出,可以用角色或情境来约束模型行为,比直接命令“不许怎样”更有 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。
最后,还有上下文设定技巧:在Prompt中提供相关知识或引用内容作为上下文,让模型基于此回答。例如:“文章内容:<文章文本>。根据上述文章回答:作者的主要观点是什么?” 通过把所需信息嵌入Prompt,我们在一定程度上补充了模型的短期记忆,让它不必完全依赖内部参数储存的知识。这对于有时效性或领域特殊的问题很重要——LLM参数所含知识可能过期或不足,通过上下文我们即时为其“喂”知识。
如何优化Prompt以提升模型效果
Prompt Engineering既是一门艺术也是一门科学。以下是实践中总结的最佳实践来优化Prompt:
-
明确指令,避免歧义:确保Prompt清晰描述期望。使用简洁直接的语言下指令,必要时分步骤说明。例如,不要含糊地说“解释这个句子”,而应具体指明“用两到三句话解释上述句子的含义”。OpenAI官方指南强调要**具体、详细地描述所需的上下文、产出形式和风格* (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。模糊的要求会让模型难以判断方向,而明确的指令可减少错误尝试。
-
提供输出格式示例:如果希望模型按照特定格式输出,可以在Prompt中显式举例或说明格 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。例如让模型提取信息,想要JSON格式的输出,我们可以在提示里说明键名并给一个示例JSON。模型往往能遵循示例格式输出。这种示范胜于描述的方法在实践中很有效。此外,对于代码、表格等特殊格式,用明确的标记(如Markdown的```)来提示模型产出对应格式内容。
-
分隔说明与内容:当Prompt里既有指令又有长文本内容时,使用清晰的分隔符。例如OpenAI建议用
"""或###将说明和后续内容隔 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。比如:总结以下文本为三个要点: ### [长文本内容] ###这样模型不会把指令和内容混淆,有助于提示结构清晰。
-
控制Prompt长度:Prompt不要过长或信息杂乱,否则模型可能迷失重点。尽量在几百字内明确任务。如果必须提供长上下文,可考虑利用模型长上下文能力,但仍应在开头摘要重点。注意目前多数模型有输入长度限制(例如GPT-3.5约4k token,GPT-4可更长但也有限)。高效利用上下文窗口很重要。
-
逐步复杂化:OpenAI的建议是**先尝试Zero-shot,再Few-shot,如都不理想再考虑微调* (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。因此开始可以用简短Prompt测试模型表现,如果答非所问,就增加提示信息,如提供示例或分步骤提示。不要一上来就给模型太多信息,先看其基础反应,再有针对性地加强Prompt。
-
利用模型自校验:可以在Prompt末尾加上要求检查回答的语句。例如:“请给出答案,并在最后判断你的答案是否合理。” 这样模型会倾向于在输出中包含对自己答案的解释或验证过程。这有助于捕捉模型潜在的不确定,在一定程度上减少胡乱回答。这类似Chain-of-Thought,不过这里更关注让模型评估自己。
-
避免否定提示:不要只告诉模型“不应该做X”,而应告诉它具体“该做什么 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】。例如,与其说“不要回复太长”,不如说“回复应控制在3句话以内”。研究发现直接否定容易让模型忽略或曲解,而明确正向指导更有效。
-
防止提示泄漏:在对话应用中,如果有隐藏的系统指令,需确保用户无法通过巧妙提问让模型吐露这些指令。这涉及提示安全,但超出了Prompt Engineering范畴。作为提示设计者要意识到模型不知道保密,因此机密信息不要出现在Prompt中。
举一个Prompt优化的例子:假设我们最初Prompt是:“总结本文。” 模型可能给很简略或走题的总结。优化方法:改为“请作为专业新闻编辑,总结以下新闻稿的主要内容,控制在两句话以内,用客观语气:\n\n【新闻稿文本】”。这里我们:
- 指定了角色(新闻编辑)和语气;
- 明确要求输出长度和风格(两句话,客观);
- 给出了清晰的任务(总结主要内容);
- 分隔了指令和内容。
通过这样的修改,模型的输出往往更符合预期。实际上实践中经常要不断试验Prompt的措辞,观察模型回应,再迭代调整。有时微小的改动(加入一个关键词,调整句子顺序)都可能影响输出。
另一个例子是复杂推理任务:如问模型一个逻辑谜题。如果直接问“谁偷了钻石?”,模型可能蒙混过关。但如果我们提示“请展示你的推理过程,然后给出答案”,模型会尝试推理。如果它的推理过程有误,我们还能据此发现问题,进一步调整提示或干预其推理链(例如给它一条提示:“注意,每个人只说了真话或假话中的一种”)。这种交互式提示调优过程体现了Prompt Engineering的迭代本质。
最后,值得注意的是,每个LLM对Prompt的敏感程度不尽相同,需要针对具体模型调试。比如GPT-3对Few-shot很有用,但对于已经Instruction-tuned的模型(如ChatGPT),它本身就内置了遵循指令的能力,有时One-shot示例效果也许不如直接用系统消息设定角色。Prompt Engineering没有放之四海皆准的公式,但遵循以上原则能显著提高成功概率。对于工程师来说,多试验、多比较输出,是掌握Prompt技巧的必由之路。工具上,可以使用提示词调优平台或自动化手段(如遗传算法生成Prompt)来辅助探索,但人工的理解和创造仍然关键。
总之,Prompt Engineering让我们以最小成本引导预训练模型完成特定任务。在微调难以获得或不方便时,巧妙的Prompt往往能达到“Four-two-opening”(四两拨千斤)的效果。从Zero-shot到Few-shot,从普通指令到Chain-of-Thought,提示工程充分释放了LLM隐含的知识和推理能力。掌握这门技术已成为AI工程师的必备技能之一。
用户画像挖掘及其在AI应用中的作用
在许多AI应用中,了解用户特征以提供个性化服务至关重要。这涉及用户画像(User Profile)的构建和挖掘。用户画像通常是对用户的兴趣、偏好、行为等特征的数值表示,它可以是显式的标签,也可以是隐式的embedding向量。LLM在用户画像领域的应用,既体现在用于分析挖掘用户数据,也体现在驱动个性化推荐等任务上。本节将介绍用户行为分析与特征提取的方法、Embedding技术在用户画像中的应用,以及LLM如何结合用户画像实现个性化推荐系统。
用户行为分析与特征提取
用户行为分析旨在从用户与系统交互的记录中提取有意义的特征。例如,在一个电商平台,可以收集用户的浏览、点击、购买、收藏等行为。通过分析这些行为,可以推断用户对哪些商品类别更感兴趣,消费习惯如何,价格敏感度怎样等。常见的用户特征包括:
- 人口统计特征:年龄、性别、地域等(如果获取合法)。这些特征经常影响用户喜好,如年轻用户可能偏好电子产品。
- 兴趣偏好:用户在不同内容类别上的交互频次。例如某人80%的浏览是手机评测,那么他对数码科技感兴趣度很高。可以计算每个用户对预定义兴趣类别的偏好得分,形成兴趣分布。
- 活跃时间:用户常在何时段使用产品。例如是否夜猫子,工作日 vs 周末活跃度。这对于推荐推送合适时机内容有帮助。
- 行为频率:如日均访问次数、单次会话时长、页面停留时间等,反映用户黏性和使用习惯。
- 消费能力:通过购买记录、大致客单价推测用户的消费层级,用于匹配合适价位的商品推荐。
- 社交关系:在社交平台,用户的好友网络、关注关系也属于画像的一部分。好友喜好可以互相影响。
这些特征可以通过统计计算获得。但为了建模方便和泛化,我们通常将用户特征向量化,形成用户向量。传统方法有One-Hot编码(比如地域用独热向量)或手工组合特征。但面对海量类别(如商品ID)时,这些都不现实。此时Embedding表示成为主流方法。
Embedding技术在用户画像中的应用
Embedding本质上是用一个稠密的低维向量表示某个实体(词、商品、用户等),使得相似的实体在向量空间中距离近。早期的Word2Vec将单词embedding引入NLP;在推荐系统中,embedding广泛用于表示用户和物 (Training a recommendation model with dynamic embeddings — The TensorFlow Blog)】。
一个经典范式是协同过滤(Collaborative Filtering)的embedding化:设想有用户和物品的交互矩阵(用户对物品的评分/点击次数等),传统协同过滤如矩阵分解就是学习用户向量 U i U_i Ui和物品向量 V j V_j Vj,使得他们的内积 U i ⋅ V j U_i \cdot V_j Ui⋅Vj尽可能还原原矩阵。深度学习的推荐模型(如YouTube的DNN推荐)会在网络第一层用embedding来表示用户ID和物品I (Embedding-based Retrieval with Two-Tower Models in Spotlight)】。embedding层将高维稀疏的ID映射到低维空间,然后将用户和物品的embedding通过某种方式融合(如点积、拼接进入MLP)来预测互动概率。现代的大型推荐系统通常采用双塔模型(Two-Tower)架构:一个塔神经网络输入用户的各种信息,输出用户embedding;另一塔输入物品信息输出物品embedding。然后通过计算两embedding的相似度(如内积)来判断匹配程 (Embedding-based Retrieval with Two-Tower Models in Spotlight)】。训练时通过数千万用户-物品交互数据学习embedding参数,使得用户向量接近其喜欢的物品向量,远离不感兴趣物 (Training a recommendation model with dynamic embeddings — The TensorFlow Blog)】。
embedding的优势在于:它自动学习出了隐含特征,不需要人工组合。例如,一个用户embedding可能隐含了Ta对不同兴趣类别的偏好强弱。两个用户embedding的距离近,可能意味着他们兴趣相似,从而可以互相参考推 (Training a recommendation model with dynamic embeddings — The TensorFlow Blog)】。embedding还方便计算相似度、聚类等。例如,可以对所有用户embedding用KMeans聚类,找出用户群组,再人为赋予标签,如“数码控”“爱美食”等。如果embedding是在模型中学得的,这些簇往往对应着不同典型兴趣组合。
在用户画像存储上,现在许多大厂采用**向量数据库(Vector DB)**来存储用户embedding,并实时更新。当有需要时,例如某用户上线,系统获取其embedding,再用向量近似邻近搜索(如Faiss库)找出与之相似的用户或物品embedding,实现召回候选推荐。这比传统数据库按标签匹配要灵活、语义更丰富。
embedding技术同样适用于内容画像(如商品embedding、电影embedding)。通过在同一向量空间表示用户和内容,我们可以很自然地通过向量匹配实现个性化推荐:对于某用户的向量 u u u,计算topK最近的物品向量 v v v,这些物品就是与用户兴趣最匹配的推荐候 (Training a recommendation model with dynamic embeddings — The TensorFlow Blog) (Training a recommendation model with dynamic embeddings — The TensorFlow Blog)】。实际工业界的推荐系统都是embedding驱动的,例如新闻推荐会将新闻文章embedding、用户兴趣embedding,通过近似NN搜索实时推荐用户可能感兴趣的新闻。
LLM对embedding的应用也有两方面:其一,LLM本身可作为强大的特征提取器,用于生成高级别的用户表征;其二,LLM可以结合embedding进行知识或记忆检索,实现更智能的个性化对话或推荐。
首先,LLM可以对用户的历史行为序列进行“阅读理解”,输出一个总结embedding。例如,给定某用户过去一个月看过的文章列表,我们可以把这些文章标题和简要内容拼进Prompt,让LLM给出一个对该用户兴趣的总结短文,然后将这短文用embedding模型编码成用户embedding。这有点像人工+LLM做用户画像。Google最近的研究提出了User-LLM框架,即通过蒸馏用户交互数据为embedding,然后通过软提示或cross-attention把用户embedding融入LLM回答中,实现对话个性 (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk) (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk)】。具体而言,他们用一个模型将用户过往的各种行为编码成一个致密的“user embedding”,在对话时,将此向量喂给LLM的中间层,使LLM能**参考用户偏好回答* (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk) (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk)】。例如在搜索对话场景,如果用户embedding显示Ta爱看简短摘要,那么LLM回答可能会偏短。这样做比直接把所有历史行为作为文本拼进Prompt有效,因为embedding浓缩了关键信息又避免提示过长。
embedding的另一个重要作用是冷启动和跨域连接。对于新用户,没有历史行为,可根据其基本属性embedding估计一个初始向量。对于新物品,可以用内容(标题、描述)通过BERT之类模型算embedding。LLM也可用于冷启动——比如让LLM阅读一个新商品描述,写个简短标签列表,然后将标签embedding求平均作为该商品embedding。这种“文字->embedding”的链路借助LLM的语言理解力,使冷启动更准确。
需要提到,embedding并非完美。它是数据驱动的,可能把某些偏见带入表征,例如少数群体用户embedding可能和训练数据主流兴趣不匹配,导致推荐不公平。调整embedding模型或后续使用需注意算法伦理。此外embedding空间可能存在密集区,推荐中容易集中热门内容,长尾个性被忽略。为此有技术如embedding后处理或多样性约束来改进。
总的来说,embedding已经成为用户画像数值表示的核心手段。在工业实践中,通常有一个独立的模块负责不停更新embedding:像抖音会持续根据用户最近观看行为更新用户embedding,再用于下次推荐。在AI工程中,如果能获取用户embedding,我们就能以此为接口将用户画像融入各种模型中。
LLM驱动的个性化推荐系统
个性化推荐旨在根据每个用户的独特兴趣提供定制内容。经典推荐系统(如矩阵分解、Gradient Boosted Trees)已经有良好效果,那么LLM能带来什么新价值?LLM在推荐中的主要作用包括:
-
提升推荐的可解释性和交互性:传统推荐系统只是给出结果,无法解释原因。而LLM可以生成解释,甚至和用户对话调整推荐。例如,当系统推荐一部电影,LLM可以说:“因为你喜欢科幻电影,而且这部新片评价很 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。” 这样用户更易接受推荐。LLM还能允许用户用自然语言反馈,如“我不想看太长的剧”,然后模型调整推荐标准再推荐。研究指出,LLM赋予了推荐系统语言理解和生成能力,带来交互式推荐的新范 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review) (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。
-
利用外部知识和推理:LLM拥有大量世界知识和推理能力,可以弥补仅靠用户-物品矩阵的不足。例如,对于新发布的一本书,传统系统冷启动难。而LLM知道这本书作者或主题,可以推理哪些用户可能喜欢(“这用户之前读过该作者的作品”)。这种知识驱动推荐能提升准确 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。另外,LLM可以理解用户当前上下文,例如对话里的情绪、意图,然后实时调整推荐。举例来说,一个音乐推荐AI通过对话判断用户现在心情低落,就推荐舒缓的音乐安慰。传统推荐很难利用这种上下文信号,而LLM擅长语言理解,可以将其转换为过滤条件或调整偏好。
-
统一多种推荐任务:LLM可以视推荐为一种“语言任务”。例如Peng等提出让LLM把推荐问题表述为“用户A喜欢什么?”让模型输出一系列物品名 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。LLM甚至能零样本做出推荐,因为语言模型记忆了大众的喜好趋 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。虽然它不一定精准,但可以作为冷启动时的辅助。LLM还可跨领域推荐,如结合一个人的微博内容和淘宝购买记录(多模态、多源数据),通过语言关联找共性。这种统一框架简化了系统复杂 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。
-
推荐结果个性化呈现:不同用户可能喜欢不同呈现方式。LLM可以根据用户画像调整推送文案风格。例如,同是推荐一款新手机,面对资深极客用户,LLM文案侧重技术参数;面对小白用户,则突出易用性和时尚设计。又如电商导购机器人通过与用户对话逐步推荐产品,LLM可动态改变推荐顺序和话术以配合用户反馈。这是千人千面的自然语言呈现,提高用户体验和转化率。
一个LLM驱动推荐的例子是个性化对话机器人:想象一个美食推荐助手。传统系统可能根据用户画像匹配几家餐厅。但有了LLM,这个助手可以先跟用户聊天:“今天想吃什么菜系或者预算多少?”通过对话获取更多信息,然后说:“我猜你可能想找一家安静氛围的咖啡馆约会。我知道一家评价很高的法式咖啡馆离你不远,要不要了解一下?” 这里LLM利用用户之前点赞过的餐厅风格+刚才对话意图,生成一个定制的推荐语 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review) (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】用户如果拒绝,它会再根据反馈调整方向。“那如果不想去咖啡馆,也许这附近的新开日料店不错。” 这样的系统比冷冰冰给出列表要智能得多,也更加“以用户为中心”。调研显示,LLM在推荐中的引入,让用户感觉系统“懂我”,提高了满意 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。
当然,LLM在推荐中也有挑战。敏感度是双刃剑,有时模型可能过度拟合提示,导致幻觉推荐(推荐了不存在的或不相关的东西)。因此通常LLM和传统算法结合使用:用embedding召回候选集,然后LLM对候选进行重排序和解释。这种两段式既确保准确,又增加灵活性。另外时效性也是问题,LLM知识可能滞后,需通过检索最新信息来弥补(类似RAG思想)。还有效率问题,LLM计算开销大,不可能对每个用户每次请求都用GPT-4跑一遍——常见做法是将LLM用于关键环节,如难题用户或需要复杂对话时,其余用轻量模型。
近期的研究和综述已经将LLM在推荐中的作用进行了系统化总 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review) (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】。可以预见,未来的推荐系统将是“传统矩阵分解/深度模型 + LLM”的混合体,取两者之长:既有精确的协同过滤内核,又有通用智能的语言交互界面。对于AI工程师来说,需要既懂推荐算法,又会驾驭LLM,才能打造新一代个性化服务。
真实业务场景下的LLM应用案例分析
大语言模型的强大能力正在各行各业落地,带来创新的应用方式。本节通过几个真实业务场景的案例,分析LLM如何发挥作用,包括内容创作、客服自动化、企业知识管理等。这些案例展示了LLM在实际系统中的价值和效果。
内容创作(文案生成、智能写作)
AI内容创作是LLM最直接的应用之一。许多企业利用LLM自动生成营销文案、新闻简报、社交媒体帖子等,大幅提升内容生产效率。例如,全球消费品公司联合利华就使用GPT-3来撰写市场营销广告文 (The AI Revolution in Marketing: Content Creation Case Studies)】。还有初创公司将GPT模型打造成文案助手,比如Jasper就是知名的AI写作工具。Wired杂志的一篇报道指出,一段新闻专栏的开头实际上是Jasper根据标题自动生成的,编辑甚至评论“收到过更差的人类稿件 (The Future of the Web Is Marketing Copy Generated by Algorithms | WIRED)】。这说明LLM生成的内容已达到可以以假乱真的程度。
具体的应用中,LLM可以根据给定主题/关键词生成文章初稿。如电商网站对于每个商品,可以自动生成一段图文并茂的商品介绍;游戏开发商可以批量生成剧情对话的初版,再由编剧润色。OpenAI的GPT-3在这方面做出了很多演示,包括写诗歌、小说摘要等等。得益于LLM掌握的大量语料和语言模式,它能模仿各种风格写作:严肃新闻、活泼广告语、技术说明、古文体等等。
另一个兴奋点是个性化内容。传统上一条文案往往“一稿发所有人”,但LLM可以针对不同用户群体改写多个版本。例如针对年轻人的广告语用网络流行语,针对长辈的版本语气更正式。这个过程甚至可以自动化:根据用户画像标签(年龄段、兴趣),用Prompt要求LLM以特定风格重写文案,从而实现千人千面的内容营销。一些营销平台已经将此作为卖点。
LLM还可以续写或改写内容,作为人类创作者的智能助手。比如记者写了一半稿件,卡住了,可以让ChatGPT续写几段来获取灵感;或者请模型对某段话润色,使表达更流畅。LLM善于提供多种措辞选项,帮助人类摆脱“提笔困难”。在翻译行业,LLM也常用于生成初稿,再由人工译员审校,提高效率。
内容创作中一个关键是控制度。纯由LLM生成的内容可能存在不准确或不符合品牌调性的地方,因此大部分公司选择人机协作:模型出初稿,人审核定稿。尽管如此,人类单次编辑调整远比从零开始撰写要快很多,所以总体效率提升明显。比如某市场团队反映,借助GPT-3,他们的营销邮件文案产出提速3-5倍。Wired的文章甚至预言:“网络的未来将是算法生成的营销文案 (The Future of the Web Is Marketing Copy Generated by Algorithms | WIRED)】。Jasper这类工具已经能生成针对Facebook广告、营销邮件、产品描述的内 (The Future of the Web Is Marketing Copy Generated by Algorithms | WIRED)】。也就是说,LLM正在成为“内容工厂”的引擎。
当然,也有风险。质量和真实性需要把关,LLM可能语气煽动却传播错误信息。因此在严肃新闻领域,完全由AI写稿尚不可取。但在偏创造性的领域,如娱乐、营销,LLM的使用正变得越来越普遍。内容创作者开始把AI看作“得力助手”而非威胁。对于企业而言,这意味着内容产出从劳动密集型转向技术驱动型。未来或许一家公司只需少量编辑+大量AI就能管理海量自媒体账号的内容,这在过去是难以想象的人力投入。
总之,内容创作是LLM商业化最成熟的方向之一。案例:某电商每天需要在微博上发布产品推广文案,原先由市场团队绞尽脑汁想创意。引入ChatGPT后,他们准备了几种品牌语调的Prompt模板,每天将要推广的产品信息填入Prompt,生成3-5条备选微博,再由市场人员轻微修改后发布。结果显示,AI生成的文案在保持品牌风格方面竟很出色,点击率也与人类撰写相当,而团队节省了70%以上的时间。这充分说明了LLM在文案生成上的实用价值。
客服自动化与智能回复
客户服务领域大量工作是回答用户的常见问题、处理咨询和投诉。LLM的出现为客服自动化带来了新的可能。相比过去基于检索的FAQ机器人,LLM驱动的客服能够理解多样化的问法并给出更自然的答复。例如,一家电信公司Telstra使用Azure OpenAI服务构建了名为“Ask Telstra”的内部工具,帮助客服代理快速找到答 (5 AI Case Studies in Customer Service and Support | VKTR)】。LLM从公司庞大的知识库中搜索相关内容,在几秒内给出总结,让新手客服也能高效回复复杂问 (5 AI Case Studies in Customer Service and Support | VKTR) (5 AI Case Studies in Customer Service and Support | VKTR)】。结果据报道:**84%**的坐席表示这提高了客服交互质 (5 AI Case Studies in Customer Service and Support | VKTR)】。
对于直接面向客户的聊天机器人,LLM更是显著提升了用户体验。以前用户咨询一个复杂问题,可能需要按提示选菜单,或机器人只能匹配到一些关键词答非所问。而现在基于ChatGPT等的客服Bot可以进行较长上下文对话,理解用户隐藏意图。例如用户说“我账户登录不上去了”,LLM可以通过上下文判断用户可能密码忘记或被锁定,然后一步步指导操作,而不是抛出一串无关FAQ链接。这种上下文理解和逻辑推理能力,极大改善了解决率。
一些公司已经将LLM客服投入使用。例如银行客服Bot,可处理余额查询、挂失卡等日常问题,还能对用户情绪做出同理心回应。又如一家物业管理企业,将ChatGPT与RPA结合,自动回复租户的评价和评论,实现7x24小时响 (ChatGPT for Customer Service: Automating Responses to Reviews)】。据报导,这使得客服团队负担大减,可以把精力放在疑难case上。
多渠道客服也是LLM大展身手的场景。不仅限于聊天,邮件回复、社交媒体评论答复都可用LLM自动草拟。例如,电商收到用户邮件询问物流情况,LLM能根据订单状态生成礼貌道歉和解释回复,人工稍作审核即发出。一些支持系统甚至让LLM先对每个工单自动总结核心内容,供客服人员快速了解,再给出几个回复建议,坐席只需一键确认发 (5 AI Case Studies in Customer Service and Support - VKTR.com)】。实践证明,这种AI助理形式大幅提高了客服处理速度。一份案例数据显示,引入AI回复建议后,客服平均处理时间下降了30%以上,而客户满意度上升约9 (5 AI Case Studies in Customer Service and Support | VKTR)】。
客服自动化带来的一个直接效益是降低人力成本和延长服务时间。有了智能机器人,公司可以提供7*24小时即时响应,减少客户等待时间。数据显示,某电商引入AI客服后,约**43%**的用户咨询在无需人工介入的情况下得到解 (5 AI Case Studies in Customer Service and Support | VKTR)】。另有统计显示,自助服务和AI辅助使总工单量减少了50 (5 AI Case Studies in Customer Service and Support | VKTR)】。这意味着人类客服减少了一半工作量,可聚焦更有价值的问题。同时用户也感受到更快捷的服务响应。
当然,也存在挑战。LLM可能产生不准确或不当回复,这在客服场景尤其敏感。解决方式包括:采用检索增强(RAG),让LLM基于公司知识库回答以保证准确性;对LLM输出进行过滤,避免出现不恰当语言。很多企业选择让AI先回答草稿,再由人复核关键问题的策略,以平衡效率和风险。
案例:英国一家在线服饰品牌“Motel Rocks”应用了Zendesk的AI客服方案,包括LLM驱动的聊天机器 (5 AI Case Studies in Customer Service and Support | VKTR)】。聊天机器人解决简单查询,让人工专注疑难件。同时系统还自动检测排队顾客情绪,给愤怒客户标红表情,让人工优先介 (5 AI Case Studies in Customer Service and Support | VKTR)】。上线后效果显著:AI机器人处理了**43%的对话,知识库自助服务降低了50%的工单量,客户满意度提升约9.44%* (5 AI Case Studies in Customer Service and Support | VKTR)】。这些数字直观地证明了LLM等AI技术为客服带来的效率提升和质量改善。
总结来说,LLM赋予客服系统真正的对话能力和智能分析,正在从根本上改变客户支持的模式。未来,我们可以期待更多定制的行业大模型出现,如“法律咨询LLM”、“医疗问诊LLM”,替代一线客服为用户提供即时专业意见。同时,人类客服的角色也将升级为AI督导和复杂问题专家,人机配合共同提供最佳客户体验。
企业知识管理与搜索增强生成(RAG)
大型企业往往拥有海量的内部知识:文档、Wiki、产品手册、客户案例等等。如何让员工方便地从中获取所需信息,是知识管理的一大挑战。搜索增强的文本生成(Retrieval-Augmented Generation, RAG)正是在此背景下应运而生的技术,将LLM与检索相结合,为用户提供基于内部知识的智能问答。许多公司已经开始用这种方案构建企业内部助手或客户自助服务系统。
RAG的典型流程是:当用户提出一个问题,系统先通过检索引擎(如向量搜索或关键字搜索)从知识库中找出相关的文档片段,然后将这些片段与问题一起输入LLM,让LLM基于检索到的资料生成答 ([2005.11401] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks) 】。这样LLM的输出就不只是凭参数记忆的内容,而是引用了最新的、公司专有的知识。Facebook的研究在2020年提出这一框架并验证了其强大效果:RAG模型在开放域问答中超过了仅靠参数模型的表现,并且生成的回答更加具体、贴近事 】。
企业内部的应用如:“某咨询公司员工想查询某行业报告的要点”,传统全文搜索可能给出几十页PDF,他要自己读。使用RAG助理,员工只需问:“去年我们对汽车行业的分析报告主要结论是什么?” 系统检索定位报告内容后,由LLM生成一个段落总结,列出主要结论并附上引用出处(哪份报告 】。这极大提高了知识获取效率。Telstra的Ask Telstra就是类似原理,把公司海量产品文档供LLM查询,返回一句话答案和相关信息,极大减少了人工搜索时 (5 AI Case Studies in Customer Service and Support | VKTR)】。
客户自助方面,很多公司构建了对外的智能知识库问答。比如银行官网的智能助手,用户可以用自然语言提问“怎样申请房贷?”。系统在内部政策文档中找到相关条款,然后LLM以通俗语言回答,并可附加“详情请参考第X章第Y节”。RAG确保回答的准确和可追溯,因为输出基于检索的真实文档段落,而LLM负责语言润色和逻辑整合。相比端到端训练一个问答模型,RAG更高效,因为检索提供了所需知识,LLM只需解决语言表达。
RAG还可以支持决策查询:如经营分析场景,一个经理问:“上季度销售下降的主要原因是什么?” 系统检索销售数据报告片段(可能提到某产品断货、市场整体下滑等),LLM基于此给出简要分析。这相当于把分析师写的报告通过AI实时“口述”给管理层。这种增强生成让LLM的回答有理有据,而不是凭空猜测。
实施RAG的关键是准备好知识库的向量索引。通常用embedding模型将文档切分成很多向量(chunk embedding),用向量数据库存储。每次查询时,将问题embedding与库比对找邻近文档。这需要一定工程工作。当前也有成型的解决方案,如LangChain、GPT Index等,简化了构建流程。RAG成功的另一个要素是提示设计:把检索结果和问题如何组织喂给LLM,可能需要模板,如:“根据以下资料回答问题:资料A…, 资料B…。问题:…”。这样可降低LLM乱跑题的风险。
RAG在企业中一个显著价值是知识更新方便。当有新文档加入,只需更新索引,下次用户问到相关内容时就能得到最新答案。而传统FAQ机器人要覆盖新问题可能需要重新训练。RAG将知识库视作可扩展的外部记忆,模型无需重新训练就学到了新知 】。例如OpenAI自己在开发者文档网站上就用了这种机制,使ChatGPT可以解答非常新的库用法,这背后就是调用检索+GPT组合。
案例:一家跨国咨询公司建设了内部AI助手,员工可查询此前的项目案例经验。某顾问想知道“在医疗领域产品推广方面,我们有成功案例吗?”。AI助手检索内部案例数据库,找到一篇去年医疗器械推广项目的总结,然后ChatGPT阅读这些材料后回答:“是的,我们在去年协助一家医疗器械公司推广新产品,采用了XX策略,结果销售提升了YY%。该案例详见公司知识库<MedicalDevice_Project2022.pdf>。” 这样,员工立刻获取了他需要的信息,还知道了出处方便深究。这比起在企业网盘自己搜索且可能错过相关文件,要有效得多。员工反馈这种助手节省了大量时间,也减少了重复劳动(大家更容易借鉴现有知识,不会各自重复摸索)。
RAG的效果也反映在模型输出质量上。Facebook的论文显示,RAG模型生成的回答在事实准确性上比不检索的模型高很多,而且语言更具体丰 】。例如回答问答数据时,RAG模型引用了维基百科的句子,让回答更详实,而普通GPT模型可能给出片段性甚至错误回答。这对企业来说意义重大,因为错误答案可能带来风险,而RAG提供了一种增强可信度的方法。
值得注意的是,构建RAG系统要重视知识库质量和安全。要有权限控制,确保内部敏感信息不会被无权限用户查询到。此外,检索出的片段如果不相关,会误导LLM,所以embedding索引需要调优以提高相关性。
总之,RAG将LLM的生成能力和传统检索的精确知识相结合,为知识密集型业务提供了高效且可靠的AI助手方案。从客服FAQ、技术文档问答,到高管决策支持,RAG正在成为企业数字化知识管理的新工具。未来,我们或许每个公司员工都会有一个“企业ChatGPT”,它懂得公司所有公开知识,并能用对话方式提供所需信息。这将极大提升知识工作的生产力。
端到端优化策略及工程实践
将LLM应用落地,不仅需要模型本身强大,还要求整个端到端系统在性能、成本、可靠性等方面优化。工程师需要考虑如何高效部署LLM、如何与其它系统组件协同、如何利用多智能体等方案解决复杂任务。本节讨论LLM在生产环境的部署优化、RAG架构的工程实践改进,以及LLM Agent多智能体协作的应用。
LLM在生产环境的部署优化
部署LLM面临两个主要挑战:推理延迟和资源消耗。例如,一个175B参数模型在GPU上推理一次可能需要几秒时间和数十GB显存,这对实时服务来说代价高昂。因此必须采取优化策略:
-
模型压缩与量化:通过削减模型规模来加速推理。常用方法有蒸馏(训练一个小模型模仿大模型输出)、裁剪(移除不重要的权重)和量化(用低精度表示权重)。其中量化在LLM部署中特别有效:将参数从32-bit浮点降低到8-bit甚至4-bit。最新研究表明,4-bit量化的LLM性能几乎与全精度持 (A Comprehensive Evaluation of Quantization Strategies for Large Language Models) (A Comprehensive Evaluation of Quantization Strategies for Large Language Models)】。例如,对LLaMA-65B进行4-bit量化后,模型大小缩小4倍,而在多数基准上准确率仅略微下降,可以说保持了可比的效果* (A Comprehensive Evaluation of Quantization Strategies for Large Language Models)】。这意味着可以用同样的硬件加载更大的模型,或在给定模型上节约大量内存。而且有论文提出精妙的量化算法如GPTQ,使4-bit模型性能损失微乎其 (The difference is small, UNTIL you get to 4 bit quantization, where …)】。需要注意的是,低比特量化有时会稍减慢计算速度,因为当前GPU对低精度的算力支持需要特定优化(比如NVIDIA的TensorRT已经支持8-bit加速,但4-bit尚不通用)。因此工程上常选择8-bit量化**作为权衡,结合NVIDIA的Transformer Engine,往往可以同时兼顾速度和节省显存。
-
高效推理引擎:使用专门针对Transformer优化的推理框架。比如ONNX Runtime、TensorRT、DeepSpeed-Inference等。这些引擎做了算子融合和并行优化,可以提升吞吐。还有vLLM这类优化内存管理的推理器,利用了批量执行和连续批处理,能在服务同时多个请求时极大提高显卡利用率,从而降低平均每请求延迟。
-
分布式和流水线:对于超大模型(数百亿参数以上),单卡放不下,可以采用模型并行(将模型层拆分到多卡)或流水并行(不同GPU执行模型不同段落,像生产线一样)。例如NVIDIA的Megatron-LM就在推理阶段使用张量模型并行+流水线,使得70亿以上模型也能在多卡上运行并保持较高效率。配置分布式推理需要仔细平衡各阶段延迟,但对于必须使用巨型模型的场景,这是唯一可行方案。
-
缓存与复用:很多实时应用里,请求的上下文常有重复部分。例如聊天对话每轮都会发送之前历史,这可以缓存前几轮的计算结果,只计算新增部分。OpenAI的API就提到使用对话缓存可以节省费用。对于embedding服务,把计算过的句子embedding存储下来,下次同一句直接复用,而不必再次通过模型计算。
-
弹性扩展:根据流量伸缩来分配LLM实例。通过Kubernetes等在峰值多实例支撑,在低谷缩减,配合负载均衡,保证服务稳定同时节省算力成本。尤其LLM推理贵,闲置浪费就很可观,所以弹性是成本优化关键策略。
-
Edge部署与IoT:有些应用需要在本地或移动设备运行模型,这推动了微型LLM和4-bit量化等技术,使得类似7B参数模型可以在手机或浏览器中离线运行。比如LLaMA 7B经4-bit量化可以在一部高端手机上运行推理,虽然速度较慢但证明可行。这为隐私敏感的场景提供了解决方案(数据不出端)。
通过上述措施,可以将LLM部署的成本和延迟降到可接受范围。例如某网站使用量化的13B模型提供AI写作辅助,经过TensorRT优化,单次生成延迟从原始1.5秒降低到0.5秒以内,用户几乎无感。同时GPU内存占用减半,使一台服务器可跑更多并发实例,单位成本下降明显。
需要提醒的是,生产部署还需监控模型输出,防止不当内容。可以加入一个轻量的内容安全模型在LLM回复后进行过滤,或者使用LLM自身的专门安全对话模式。生产环境的连环事故往往在于忽视了边缘情况,因此对模型的单元测试和持续性能监测也应纳入工程流程。例如定期测试LLM在一组已知棘手问题上的回答质量,跟踪版本更新影响。
RAG架构的应用与改进
在上一节RAG中我们已经讨论了它的作用,这里侧重工程实践的改进技巧:
-
索引优化:将知识库做预处理,如对文档分段时选取合适的chunk大小(太大浪费上下文窗,太小上下文不完整),通常几百字一段较好。还可以对每段生成多个embedding:标题embedding、内容embedding等,检索时加权组合,提高命中率。此外利用稀疏索引+稠密索引混合,也能兼顾精准和语义匹配。
-
检索结果选择:不是检索到的段落越多越好,给LLM太多上下文可能超出窗口或分散注意。实践中常取Top-3或Top-5相关段落即 (Mistral 7B | Mistral AI)】(Mistral团队经验表明在知识任务上超过这个收益递减)。如果检索分数明显区分,或段落内容高度重复,也可做算法剔除重复或无关片段,只保留精华。
-
提示模板:构造稳健的提示,将引用资料和问题明确区分,让LLM老实利用资料而非乱编。一个常用模板如:
给定以下文档摘录,请回答问题。如不知道答案,请说"未找到相关信息"。 文档1: "..."; 文档2: "..."; ... 问题: XXX? 答案:这样模型倾向于严格根据文档回答,并在无信息时拒答,减少幻觉。
-
引用标注:可以在文档中加标号,让模型在回答时附上来源。例如上例中用[1],[2]标识文档段落,让模型回答时写出引用编号。很多应用(如Bing Chat)使用这种做法增强可信度。用户可据此追溯验证,提升系统公信力。LLM一般能学会在句尾添加索引如【1】等格 (5 AI Case Studies in Customer Service and Support | VKTR)】。
-
增量学习:知识库可能频繁更新,直接用LLM每次从0回答会重复劳动。可以考虑检索缓存和增量学习。比如用户常问的问题,LLM已经生成过答案,可以缓存答案和所用资料,下次遇到类似问法,直接返回上次答案或让LLM轻微改写即可。甚至可以统计用户反馈好的问答,加入FAQ索引,提高准确率。
-
分层RAG:对于超大知识库(如百万文档),检索可以两级:先粗排后精排。粗排用关键词或小模型embedding筛掉大部分文档,精排再用高精度embedding。这样检索速度和相关性兼顾。LLM也可参与协助检索,例如先让LLM根据问题改写出更精确的检索query,然后用它去搜索,提高检索召回率。
工程上,还要考虑响应延迟。RAG过程涉及检索+LLM推理两步,优化时可以并行:先输入问题embedding检索,同时LLM开始对问题做初步分析(或者生成思维链的开头),待检索结果回来再拼接继续推理。这需要对LLM推理过程进行细粒度控制,一般框架不易做到,前沿研究(如DecoupledLM)在探索此方向。
又比如流式输出:LLM生成内容可边生成边输出给用户(像ChatGPT打字效果),这对长答案提升体验显著。实现上需要支持token级别stream,这部分Huggingface和OpenAI API都支持,要确保前端能持续接收渲染。
RAG成功案例之一是Notion AI的文档问答功能:用户在自己的笔记空间问问题,Notion AI在用户笔记内容里检索,然后让GPT模型回答并引用笔记链接。这让用户可以自然语言查询自己资料,极大增强了产品黏性。这背后正是RAG架构。另一个例子是企业内部代码助手:工程师输入自然语句描述要实现的函数,系统在公司代码库里找类似实现,LLM综合生成代码建议并附参考链接。这样既利用了已有代码,又由AI完成改编,实现知识复用,大幅提高编码效率。
LLM Agent多智能体协作
单个LLM虽然强大,但在一些复杂任务或需要多步骤交互环境中,引入多智能体(Multi-Agent)的思路可以获得更优结果。所谓LLM Agent,即让LLM扮演自主智能体(Agent),它可以感知环境(读取信息)、思考决策(调用模型)、执行动作(比如调用工具或输出)并与其他Agent交互合作。近年来,开源项目如AutoGPT、BabyAGI等展示了多Agent协作解决复杂目标的潜 (What is AutoGPT? | IBM) (What is AutoGPT? | IBM)】。
多Agent协作的优势:
-
专家分工:可设计不同Agent各有专长,如一个擅长规划(Planner)、一个擅长执行代码(Coder)、一个擅长搜集信息(Researcher)。他们通过对话协商完成任务,比单一Agent全盘处理更有条理。例如AutoGPT框架中通常有一个首要Agent负责将目标拆解成子任务,然后委派子Agent去执 (What is AutoGPT? | IBM) (What is AutoGPT? | IBM)】。这种链式分解对复杂项目尤其有效,模拟了人类团队合作。
-
决策可靠性:多个Agent可以相互校对结果,避免单个模型出错走偏。例如一个Agent提出方案,另一个Agent扮演审查者审视其可行性并提出改进,最后达成更优解。OpenAI也研究多Agent自我对话提高推理正确率的方向。
-
并行处理:在技术上,可以让不同Agent(不同LLM实例)并行工作,节省总体时间。比如一个Agent在阅读长文档获取信息,同时另一个Agent已经在根据之前信息起草总结。最后合并成果,比串行完成快很多。
-
长对话记忆:每个Agent各自维护一份上下文,可以有不同关注点,从不同角度记忆信息。这多少缓解了单一对话窗口长度有限的问题,因为信息可以在Agent之间交叉流动。如果一个Agent遗忘了某细节,另一个Agent或许还记得并提醒他,相当于“组队记忆”。
多Agent系统的典型模式是轮流对话。例如我们有Agent A和Agent B,两者互相通信:
A: 目标X可以拆解为步骤1,2,3。
B: 我负责步骤1,结果是...
A: 收到结果,基于此进行步骤2...
B: [若A偏差] 提醒A修正...
...
直到解决问题。开发者可以设置一个环境守护者Agent或简单规则来终止循环(比如达到目标或迭代超过N轮)。
AutoGPT是多Agent协作的代表。它被称为一个**“自治AI代理”,其实内部有多个子代 (What is AutoGPT? | IBM)】。通常一个为任务创建Agent**,一个为执行Agent,还有内存模块等 (What is AutoGPT? | IBM)】。AutoGPT应用举例:给定一个高层目标“创建一份下周的市场调研报告”,AutoGPT的Planner Agent会制定子任务如“收集竞争对手信息”、“分析市场趋势”、“写报告草稿”,然后执行Agent逐一完成,有需要时还会上网搜索或调用API获取数 (What is AutoGPT? | IBM)】。整个过程无人干预,Agent团队自主协作完成复杂多步骤任 (What is AutoGPT? | IBM) (What is AutoGPT? | IBM)】。IBM的一篇介绍指出,AutoGPT体现了让多个GPT-4实例组队解决问题的思路,是一种领先的多Agent框 (What is AutoGPT? | IBM)】。
除了AutoGPT,还有一些框架如LangChain Agents,允许开发者定义多个Agent和工具,让它们交互。如可以有一个Agent善用Python工具算数,另一个Agent擅长文本总结,两者互相调用实现“复杂算术问题的解释性解答”。甚至出现了Agent仿真实验:Park等的Generative Agents让多个人格的LLM在一个模拟小镇里互动,展示出类似社会行为的模式。
工程实践中部署多Agent需要考虑效率问题。多个LLM并行会消耗多倍资源,沟通轮次多也增加延迟。解决办法包括:
- 让Agent尽量少轮次达成一致,可设定轮次上限或引入终止判据;
- 使用不同规模模型:不一定每个Agent都用GPT-4,大多数简单代理用小模型即可,只让复杂决策Agent用强模型。例如规划Agent用13B模型已经足够,执行Agent如写代码可以用更小专业模型,以减少算力占用。
- 部署在多机环境,用异步消息通信架构保障各Agent实例可靠对话。可以用消息队列或共享数据库传递Agent信息状态。
又比如容错:一个Agent宕机或输出异常,系统应能检测并重启或通知人工。多Agent系统比单模型复杂度高,需要完善的监控和日志以调试沟通过程,寻找性能瓶颈。
一个实际案例是软件开发Agent团队:研究者让一个“PM-Agent”写需求文档,一个“Coder-Agent”根据需求写代码,一个“Tester-Agent”审查代码找bug,然后Coder-Agent修改,如此循环。这种自动编程的概念工具已经出现雏形(如GPT-Engineer)。虽然还达不到人类水平,但简单的小程序已经可以生成。未来大型项目或许真能部分交给AI团队完成,人类更多监督验收。
再如游戏AI:NPC角色背后各由一个LLM Agent驱动,它们之间对话互动产生丰富剧情,而策划只需设定初始人设。多Agent能演绎出人类想不到的故事线,这给游戏内容生成带来了新方向。
总的来说,LLM Agent和多Agent协作仍在早期探索,但已显示巨大潜力。OpenAI等公司也表示多Agent可能是提升AI推理能力的途径之一(让多个模型讨论,比一个模型苦想效果好 (AI Agent Team Collaboration : r/OpenAI - Reddit)】。对于AI工程师,现在就可以尝试使用现有框架构建简单多Agent系统,在特定场景下可能实现比单模型更出色的性能。
最新研究进展与未来趋势
LLM领域发展迅猛,新模型和新技术层出不穷。在这一部分,我们展望最新的研究进展,包括当前SOTA模型的对比和突破、开源生态对行业的影响,以及LLM未来的发展方向和所面临的挑战。
SOTA模型的对比与突破
目前大型语言模型的“头部选手”包括OpenAI的GPT-4、Anthropic的Claude 2、Google的PaLM 2、Meta的Llama 2以及近来涌现的众多开源模型。GPT-4无疑在很多基准上处于领先地位,其拥有多模态输入能力,能理解图像内容,且在一系列专业考试中表现超 (The history, timeline, and future of LLMs)】。GPT-4引入视觉是重大突破之一,让LLM从纯文本扩展到图文领域。例如GPT-4可以解析一张网页截图并生成代码,或者理解漫画的幽默 (The history, timeline, and future of LLMs)】。
另一边,PaLM 2作为Google的旗舰模型,据报道擅长代码和多语言任务,但由于未完全开放评测信息,实际水平估计略逊于GPT-4但优于上一代GPT-3.5。在对话产品Bard上,PaLM 2已得到应用。
Claude 2(Anthropic)强调更长上下文(100k tokens)和安全性。Claude 2提供了业界最大上下文窗口之一,能在一次提示中消化75,000词文 (Introducing 100K Context Windows \ Anthropic)】。Anthropic在2023年率先发布了100k上下文版本,这让Claude可以一口气看完一本小说并回答细节问 (Introducing 100K Context Windows \ Anthropic)】。长上下文对于法律、科研等需要处理长文档的场景非常有 (Introducing 100K Context Windows \ Anthropic)】。模型能力方面,Claude 2略低于GPT-4,但更强调对抗有害指令的免疫力,据称可以理解微妙的提示避免输出敏感内容。
开源阵营的模型近年来进步神速,成为SOTA的有力挑战者。Meta在2023年7月发布的Llama 2是开源里程碑,它开放了7B、13B、70B参数的模型,性能与同规模闭源模型相当甚至更优,被称为“AI民主化的重要一步”。基于Llama 2,社区迅速衍生出各种精调版(如对话模型、编程模型)。更引人注目的是新创公司Mistral AI于9月发布的Mistral 7B模型。虽然参数只有7B,但Mistral团队通过改进训练和架构,使其在绝大多数基准上超越了Llama2-13B,甚至媲美Llama2-34 (Mistral 7B | Mistral AI) (Mistral 7B | Mistral AI)】。具体来说,Mistral 7B在常识推理、代码生成等方面明显优于13B的模型,而只在知识问答上稍逊,这主要归因于其参数少限制了知识 (Mistral 7B | Mistral AI)】。这证明了**“小模型大能力”**并非不可能,通过更高效的训练,小模型可以打败大模型。Mistral 7B的出现震动业界,因为它完全开源且性能强劲,被誉为“开放源代码模型的黄金标准 (Mistral 7B vs Llama2: Which Performs Better - E2E Networks) (Mistral 7B vs Llama2: Which Performs Better - E2E Networks)】。有人将其和GPT-3.5相比,在一些任务上已经相当接近。
除了Mistral,近来还有Voyager(Minecraft游戏自动探索代理)、WizardCoder(编程优化LLM)等定向优化模型问世。各大公司亦纷纷开发专用LLM,如Salesforce的CodeGen系列、EleutherAI的GPT-J等。一些模型在特定领域达到SOTA:比如Med-PaLM在医学考试题上超过普通人平均表现,BloombergGPT在金融领域表现突出。这说明SOTA评判不再是单一维度,要看具体任务。
技术层面的新突破也不断出现。Google提了Transformer-XL、Sparse Transformer等改进长程依赖;Facebook研究了RETRO(引入检索的Transformer)达到用更小参数超越大模 (The history, timeline, and future of LLMs)】。DeepMind的Gopher和Inflection的Pi模型探索对话质量的新指标。OpenAI在2023年中期开放函数调用能力,让模型直接输出结构化数据给开发者解析,增强实用性。这些进展都在推动模型朝着更强、更可控、更专业方向发展。
开源生态的影响(如Llama、Mistral等)
开源在LLM领域扮演着愈发重要的角色。以Llama的发布为标志,过去一年开源社区实现了从几乎无高性能大模型,到各种高质量模型百花齐放的局面。这对产业和研究都有深远影响:
-
降低研究和应用门槛:过去顶尖LLM仅掌握在少数科技巨头手里,学术和中小企业难以接触。Llama开放后,任何人都有了高水平模型的基础,可用于二次微调开发。比如学术界迅速出现大量论文基于Llama做对比、分析其行为等,加速了理解LLM的科学研究。工业界,创业公司不必从零训练模型,拿开源模型稍作fine-tune就可推出垂直应用。这使得创新加速,许多创意得以及时验证。
-
成本大幅降低:开源模型避免了昂贵的API费用。企业可以本地部署,根据自己需求优化。这对需要处理敏感数据(无法发到第三方API)的企业尤为重要。以往选择很少,现在有Llama2等做替代,安全合规性提高。而在AI大模型的国际竞争上,开源也让各国开发者共享先进技术,缩小了差距。
-
社区协作改进:开源模型还能被社区不断优化。一个著名案例是Llama-2 7B Chat模型,原版表现一般,但社区通过LoRA微调、奖励建模等手段,发布了如“Quantronics 7B”这样对话效果媲美GPT-3.5的版本。这些成果皆免费共享。再如Mistral 7B开源后,不到一个月社区就fine-tune出20多个不同用途的变体,有些在某些任务甚至超越GPT- (25 fine-tuned Mistral-7b models that outperform GPT-4 : r/LocalLLaMA)】。这种“众包改进”是闭源模型无法企及的。
-
生态系统繁荣:围绕开源LLM,工具链和服务也蓬勃发展。Hugging Face成为模型发布和协作的平台;各种推理加速器(bitsandbytes量化, vLLM等)涌现。开源还促成了标准化,如多模型通用的推理API、大量开源数据集用于评测。整个产业基础变得更加开放透明。
-
给大厂压力:因为开源模型快速进步,OpenAI等也感受到压力。比如有人拿开源模型堆叠+强化学习,做出在一些测试上赶超ChatGPT的系统。这逼迫大厂不断提升服务,或降低价格,以保持竞争优势。最终受益的是用户——他们有了更强的模型和更优惠的价格。
然而开源也带来风险挑战:比如会被恶意用来生成虚假信息或攻击(开源模型可绕过很多封锁)。也出现了一些版权和数据来源争议,因为训练用的数据可能包含受版权保护材料,所以开源模型的商业使用有潜在法律风险,这需要行业逐步规范。
总的来说,开源LLM的兴起极大地推动了技术民主化。正如有人评价Llama的发布:“AI界的Linux时刻”。未来开源社区可能在LLM创新中扮演更核心的角色。有观点认为,基础模型参数量越大,边际提升越小,而开源社区的长尾优化(如指令调优、安全加强)反而更能带来实用价 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)】。我们已经看到DeepMind CEO提及“巨模型时代或已接近极限,定制小模型能同样有效 (The history, timeline, and future of LLMs)】。开源模型完全契合这个趋势:小而精,面向实际问题优化,不一味追求参数堆砌。
LLM未来的发展方向与挑战
展望未来,LLM领域既有广阔机遇,也面临重要挑战:
1. 多模态与多技能融合:未来的LLM将不局限于文字,视觉、语音、机器人控制等都将融入。GPT-4已经接受图像,预计语音输入输出(听说能力)也会整合(OpenAI发布了能与GPT-4对话的语音接口)。所谓**“通用人工智能助手”应当能看、听、说、行动。例如能看懂用户上传的照片,说出分析;听用户语音提问,用拟人的声音回答。技术上,这需要Transformer架构结合CV模型、语音模型,或者通过多模态对齐**技术,将图像/音频先转成embedding再供LLM处 (The history, timeline, and future of LLMs)】。此外,工具使用也会成为LLM的标配技能。未来模型可以无缝调用计算器、日历、数据库查询等外部系统,就像ChatGPT插件那样。这将极大扩展模型能力(因为模型不必记忆所有知识,可以随用随查)。
2. 高效化与Green AI:随着模型规模暴涨,算力成本和环境影响引发关注。未来研究重点在于如何以更少参数、更低能耗达到同等甚至更佳效果。可能方向包括:更好的模型结构(如Mixture-of-Experts技术动态分配一部分专家激活,减少无用计算)、更高效的训练算法(如自监督+强化学习结合,提高数据利用率)、以及硬件创新(光子计算、存算一体芯片)等。DeepMind的RETRO给出一个思路:不盲目增大模型,而是结合检索,用额外信息弥补模型规模不 (The history, timeline, and future of LLMs)】。这让人想到,人脑记忆有限但可以查资料。也许未来最强的模型不是万亿参数,而是适度大小+强检索。
3. 个性化和持续学习:通用大模型有知识,但未必懂每个用户的特定需求。未来LLM会为个人定制,学习用户偏好与历史,与用户共同成长。这要求模型具备持续学习能力:既能保留长期记忆,又不会遗忘基本常识(克服灾难性遗忘)。或许每个人手机里有一个独特的LLM助手,只服务于你,了解你的风格。技术上,这需要研究在线学习在LLM上的实现,例如通过高效的增量训练或长对话记忆模块。另外如何安全地让模型记住个人信息也是难题,需要配合隐私保护机制。
4. 模型可解释与可控:目前LLM是“巨大的黑箱”,我们很难解释它为何生成某句话,也难以完全控制其行为。未来需要发展可解释AI方法,让LLM决策链条透明化,增加人类信任。Chain-of-Thought是种启示,它让模型显式写出推理过程,某种程度上提高了可解释 】。另外,通过强化学习或规则使模型行为符合预期,也是前沿方向。例如可控文本生成希望指定风格、情绪甚至事实来源,让模型按规定生成,而不偏离轨 (The history, timeline, and future of LLMs)】。OpenAI提出了“Steerability”概念,指用户能自定义LLM的行为方 (The history, timeline, and future of LLMs)】。实现可控性的技术包括添加控制信号(如附加embedding引导风格)、训练控制模型来约束输出等。只有更可控,LLM才能安全用于医疗、金融等对准确性要求极高的场景。
5. 安全、伦理与法规:LLM的广泛使用带来道德和法律问题:偏见、虚假信息、版权、隐私等等。这些挑战必须在未来重点解决,否则会阻碍技术落地。例如模型会放大训练数据里的社会偏见,可能在招聘、信贷评分等应用中歧视某些群体。研究者会致力于去偏算法,或在训练数据上平衡,或在输出阶段过滤,以减轻这些问题。事实准确性也是重要挑战,模型编造事实(幻觉)在某些专业应用中是无法容忍的,需要新训练方法或者引入外部校验来提高可信度。版权问题则牵涉法律:LLM训练用了大规模网络文本,里面有受版权保护的内容,其输出是否构成侵权在全球尚未有定论。未来可能会制定法规要求透明化数据来源、授权机制,或开发出能规避特定受版权数据影响的模型。隐私方面,欧盟等地也在考虑限制LLM对个人数据的使用,甚至要求用户有权让AI“遗忘”自己的数据。这些都需要技术和政策共同努力达成平衡。
6. 新的能力涌现:大模型的一大魅力是参数规模增长带来的能力涌现,如GPT-3出现Few-shot learning,GPT-4表现出逻辑推理。未来随着研究深入,可能会解锁LLM一些意想不到的新能力。例如更强的推理和数学能力 —— 虽然目前LLM在算术和符号推理上一般,但配合推理技巧(CoT等)已有改 】。也许结合符号AI(知识图谱、逻辑推理模块)会让LLM真正理解逻辑。还有记忆增强,让LLM像数据库一样查询自身过往对话,提高长程一致性。OpenAI提到探索让模型自我反思、自我改进,这可能产生初步的自主学习能力。
7. 更广泛的行业垂直化:未来会出现针对各行各业的专用LLM。例如法律LLM内置法律条文知识,能够像律师那样推理判例;医学LLM掌握海量医学文献和临床知识,协助诊断;教育LLM懂教学法,因材施教辅导学生。这些模型也许参数量不需要特别大,但训练数据特别专业,并经过专业人士反馈调教。垂直模型的优点是专业性强、风险可控(因为限定领域),将是LLM商业化的重要方向。
最后,我们可能会问:LLM会走向通用人工智能(AGI)吗? 许多专家认为现有LLM虽然强大,但离真正的AGI还有明显距离,例如缺乏长期规划、自我驱动的学习能力。不过,多智能体协作和工具使用给LLM拓展了能力边界,一些复杂任务已经能自动完 (What is AutoGPT? | IBM) (What is AutoGPT? | IBM)】。或许AGI不是某个模型单点突破,而是众多智能体组成的系统涌现出的智能。OpenAI、DeepMind等都在朝这个方向努力。Sam Altman(OpenAI CEO)今年也表示,不会一味追求更巨大的模型规模,而是寻找新的算法突 (The history, timeline, and future of LLMs)】。也许下一个GPT未必更大,但更聪明。
无论如何,可以肯定的是:大语言模型已开启了AI应用的新纪元。未来几年,随着技术和应用的不断演进,我们将看到LLM从“惊艳的演示”真正变成生产力工具,嵌入我们生活工作的方方面面。面对这样快速的变革,AI工程师既要把握最新技术趋势,也需保持对挑战的清醒认识,致力于让LLM更可靠、更有益地服务于人类。
参考文献:
【2】ZenPulsar, “Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond,” zenpulsar.com, 202 (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond) (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond)】
【4】ZenPulsar, “Timeline and Evolution of NLP… (2023 Milestones),” zenpulsar.com, 202 (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond) (Timeline and Evolution of NLP Large Language Models: From GPT-1 to Claude 2 and Beyond)】
【5】Toloka, “The history, timeline, and future of LLMs,” toloka.ai blog, 202 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)】
【6】Toloka, “The history… (rise of transformers and ChatGPT),” 202 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)】
【8】Hu et al., “LoRA: Low-Rank Adaptation of Large Language Models,” arXiv:2106.09685, 202 】
【13】Liu et al., “P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally,” arXiv:2110.07602, 202 】
【15】Houlsby et al., “Parameter-Efficient Transfer Learning for NLP,” arXiv:1902.00751, 201 】
【22】Shahul ES, “Data Augmentation in NLP: Best Practices,” neptune.ai blog, 202 (Data Augmentation in NLP: Best Practices From a Kaggle Master) (Data Augmentation in NLP: Best Practices From a Kaggle Master)】
【27】Datafuel, “The Future of LLMs: The Importance of Data Quality,” datafuel.dev blog, 202 (The Importance of Data Quality for LLMs | Datafuel) (The Importance of Data Quality for LLMs | Datafuel)】
【29】Brown et al., “Language Models are Few-Shot Learners (GPT-3 paper),” arXiv:2005.14165, 202 】
【31】Brown et al., “Language Models are Few-Shot Learners,” 202 】
【33】Wei et al., “Chain-of-Thought Prompting Elicits Reasoning in LLMs,” arXiv:2201.11903, 202 】
【35】Wei et al., “Chain-of-Thought…”, 202 】
【37】Kojima et al., “Large Language Models are Zero-Shot Reasoners,” arXiv:2205.11916, 202 】
【40】Kojima et al., “Large Language Models are Zero-Shot Reasoners,” 202 】
【42】OpenAI Help, “Best practices for prompt engineering,” help.openai.com, 202 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】
【44】OpenAI Help, “Best practices… (examples),” 202 (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center) (Best practices for prompt engineering with the OpenAI API | OpenAI Help Center)】
【46】Ethan Lazuk, “Google’s USER-LLM: User Embeddings for Personalizing LLMs,” ethanlazuk.com blog, 202 (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk)】
【48】Ethan Lazuk, “Google’s USER-LLM…,” 202 (Google’s USER-LLM: User Embeddings for Personalizing LLMs, & Why SEOs Should Care (Maybe) - Ethan Lazuk)】
【51】Thushan et al., “Training a recommendation model with dynamic embeddings,” TensorFlow Blog, 202 (Training a recommendation model with dynamic embeddings — The TensorFlow Blog) (Training a recommendation model with dynamic embeddings — The TensorFlow Blog)】
【53】Vats et al., “Exploring the Impact of LLMs on Recommender Systems: A Review,” arXiv:2402.18590, 202 (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review) (Exploring the Impact of Large Language Models on Recommender Systems: An Extensive Review)】
【58】Tom Simonite, “The Future of the Web Is Marketing Copy Generated by Algorithms,” WIRED, 202 (The Future of the Web Is Marketing Copy Generated by Algorithms | WIRED)】
【59】Tom Simonite, “The Future… (Jasper example),” 202 (The Future of the Web Is Marketing Copy Generated by Algorithms | WIRED)】
【60】Auxis, “ChatGPT for Customer Service: Automating Responses to Reviews,” auxis.com, 202 (ChatGPT for Customer Service: Automating Responses to Reviews)】
【62】VKTR, “5 AI Case Studies in Customer Service and Support,” vktr.com, 202 (5 AI Case Studies in Customer Service and Support | VKTR) (5 AI Case Studies in Customer Service and Support | VKTR)】
【63】VKTR, “5 AI Case Studies… (Motel Rocks results),” 202 (5 AI Case Studies in Customer Service and Support | VKTR)】
【65】Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,” arXiv:2005.11401, 202 】
【67】Lewis et al., “Retrieval-Augmented Generation…,” 202 】
【68】VKTR, “Case: Telstra Ask Telstra with Azure OpenAI,” 202 (5 AI Case Studies in Customer Service and Support | VKTR)】
【70】Renren Jin et al., “A Comprehensive Evaluation of Quantization Strategies for LLMs,” arXiv:2402.16775, 202 (A Comprehensive Evaluation of Quantization Strategies for Large Language Models)】
【72】Ivan Belcic, “What is AutoGPT?” IBM Think Blog, 202 (What is AutoGPT? | IBM) (What is AutoGPT? | IBM)】
【73】IBM Think Blog, “AutoGPT is an example of a multiagent framework,” 202 (What is AutoGPT? | IBM)】
【76】Toloka, “The history… (GPT-4 and beyond),” 202 (The history, timeline, and future of LLMs) (The history, timeline, and future of LLMs)】
【78】Mistral AI, “Announcing Mistral 7B,” mistral.ai, 202 (Mistral 7B | Mistral AI) (Mistral 7B | Mistral AI)】
【80】Anthropic, “Introducing 100K Context Windows,” anthropic.com, 202 (Introducing 100K Context Windows \ Anthropic)】
更多推荐


所有评论(0)