大语言模型(Large Language Model, LLM)是一类基于深度学习、尤其是Transformer架构的自然语言处理模型
大语言模型(Large Language Model, LLM)是一类基于深度学习、尤其是Transformer架构的自然语言处理模型,通过在海量文本数据上进行自监督预训练(如掩码语言建模或自回归预测),获得对语言结构、语义、常识乃至部分推理能力的广泛建模。典型代表包括GPT系列(OpenAI)、LLaMA系列(Meta)、Qwen(通义千问)、ChatGLM(智谱)、ERNIE Bot(百度)等。LLM的核心能力包括文本生成、问答、翻译、摘要、代码编写、逻辑推理等,其性能高度依赖于模型规模(参数量)、训练数据质量与多样性、指令微调(Instruction Tuning)及人类反馈强化学习(RLHF)等后训练技术。当前LLM仍面临幻觉(hallucination)、事实性不足、可解释性差、计算资源消耗大、多模态融合不充分等挑战。
# 示例:使用Hugging Face Transformers加载并推理一个开源LLM(如Qwen2)fromtransformersimportAutoTokenizer,AutoModelForCausalLMimporttorch model_name="Qwen/Qwen2-0.5B-Instruct"# 轻量级示例tokenizer=AutoTokenizer.from_pretrained(model_name)model=AutoModelForCausalLM.from_pretrained(model_name,torch_dtype=torch.bfloat16,device_map="auto")messages=[{"role":"user","content":"请用一句话解释什么是大语言模型?"}]text=tokenizer.apply_chat_template(messages,tokenize=False,add_generation_prompt=True)model_inputs=tokenizer([text],return_tensors="pt").to(model.device)generated_ids=model.generate(**model_inputs,max_new_tokens=64,do_sample=True,temperature=0.7)response=tokenizer.batch_decode(generated_ids)[0]print(response.split("<|im_end|>")[1].strip())# 提取模型回复大语言模型(LLM)的“预训练-微调”范式与传统NLP模型(如早期的RNN/CNN-based分类器、SVM、甚至BERT早期用法)所依赖的端到端监督学习存在三重本质区别,体现在学习目标、数据依赖、泛化机制与知识获取方式上:
学习目标的根本差异
- ✅预训练阶段(LLM):执行自监督任务(如下一词预测、掩码词填充),目标是建模语言的统计规律、语法结构、世界知识和隐式推理模式——不依赖人工标注标签,仅需原始文本。
- ❌传统监督学习:直接优化特定下游任务的目标函数(如分类交叉熵、序列标注F1),必须依赖大量高质量、任务对齐的人工标注数据(如情感极性标签、命名实体边界)。
知识获取与迁移的本质不同
- LLM通过预训练在万亿级token中内隐地编码多粒度知识(词汇、句法、事实、常识、风格、逻辑链),形成一个“通用认知基座”;微调(尤其是指令微调)仅起对齐与激活作用,引导模型将已有能力适配到新任务格式(如“请总结以下段落”)。
- 传统模型(如LSTM+CRF做NER)通常无通用表征能力,其特征提取器完全为单一任务定制,跨任务迁移需重新设计架构或从头训练,泛化性弱、知识不可复用。
数据效率与任务适应性的倒置
- LLM:预训练耗资巨大但只需一次;后续适配新任务(如医疗问答、法律条款解析)仅需少量标注样本(Few-shot/LoRA微调),甚至零样本(Zero-shot)即可启动。
- 传统模型:每个新任务都需从零开始收集、清洗、标注大量数据,且模型性能高度依赖该任务数据规模与质量,小样本下极易过拟合。
🔍 补充关键洞见:BERT虽也采用“预训练+微调”,但它属于中小规模、任务导向型预训练模型(MLM + NSP),而现代LLM(如Qwen、Llama3)的预训练已演进为超大规模、生成式、多阶段(含后训练对齐)的系统工程,其涌现能力(如思维链、工具调用)无法由传统监督范式触发。
# 对比示意:同一任务(情感分类)的两种范式实现逻辑# 【传统监督学习】—— 需完整标注数据集,端到端训练fromsklearn.svmimportSVCfromsklearn.feature_extraction.textimportTfidfVectorizer X_train=["服务很好","价格太贵了"]# 原始文本y_train=[1,0]# 人工标注标签(1=正面,0=负面)vectorizer=TfidfVectorizer()X_vec=vectorizer.fit_transform(X_train)clf=SVC().fit(X_vec,y_train)# 模型仅知"这组文本→这些标签"# 【LLM范式】—— 预训练模型已懂"情感"概念,微调仅教它"按指定格式输出"# 输入:"【输入】这家餐厅环境优雅,但上菜慢。【输出】中性" → 模型通过上下文理解"优雅"≈正、"慢"≈负,综合判断