news 2026/4/29 18:00:22

9.AI入门:从机器学习到生成式AI,普通人也能看懂(九)—— 大语言模型详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
9.AI入门:从机器学习到生成式AI,普通人也能看懂(九)—— 大语言模型详解

系列导读:上一篇我们了解了生成式AI,今天深入探讨当前最热门的AI技术——大语言模型,揭开ChatGPT等应用背后的秘密。


一、什么是大语言模型?

1.1 定义

大语言模型(Large Language Model,简称LLM)= 参数量巨大、在大规模文本数据上训练的语言模型。

1.2 "大"在哪里?

参数量大: GPT-3:1750亿参数 GPT-4:估计万亿级参数 Claude 3:参数量未公开 数据量大: 训练数据:数万亿词 涵盖:网页、书籍、论文、代码... 计算量大: 训练成本:数百万美元 训练时间:数周到数月

1.3 发展历程

2017:Transformer架构提出 2018:BERT(3.4亿)、GPT-1(1.17亿) 2019:GPT-2(15亿) 2020:GPT-3(1750亿) 2022:ChatGPT发布 2023:GPT-4、Claude 2、Llama 2 2024:GPT-4o、Claude 3、Llama 3

二、Transformer架构

2.1 Transformer的核心

自注意力机制(Self-Attention)

计算序列中每个位置与其他位置的相关性 输入序列:"我 爱 你" 位置1:"我" 关注 "我"、"爱"、"你" 位置2:"爱" 关注 "我"、"爱"、"你" 位置3:"你" 关注 "我"、"爱"、"你" 每个位置根据相关性聚合信息

2.2 注意力计算

Attention(Q, K, V) = softmax(QK^T / √d) V Q(Query):查询向量 K(Key):键向量 V(Value):值向量 直观理解: Q:我想找什么 K:这里有什么 V:内容是什么 softmax:计算相关性权重

2.3 多头注意力

多个注意力头并行计算 头1:关注语法关系 头2:关注语义关系 头3:关注指代关系 ... 最后拼接所有头的输出

2.4 Transformer结构

输入嵌入 + 位置编码 ↓ ┌──────────────────┐ │ 多头自注意力 │ │ 前馈网络 │ × N层 │ 层归一化 │ │ 残差连接 │ └──────────────────┘ ↓ 输出层

三、GPT系列

3.1 GPT的架构

GPT = Transformer解码器

单向注意力:只看到当前位置之前的内容 自回归生成:逐词生成 生成过程: 输入:"今天天气" 预测:"很" 输入:"今天天气很" 预测:"好" ...

3.2 GPT-3的能力

少样本学习(Few-shot): 给几个示例,模型就能学会新任务 示例: 将英文翻译成法文: sea otter => loutre de mer peppermint => menthe poivrée plush giraffe => girafe en peluche cheese => ? 模型输出:fromage

3.3 ChatGPT的创新

基于GPT-3.5/GPT-4,加入对话优化。

训练流程: 1. 预训练:大规模文本学习语言知识 2. 监督微调(SFT):用对话数据微调 3. 奖励模型(RM):训练奖励模型 4. 强化学习(PPO):优化对话策略 RLHF(人类反馈强化学习): 人类对模型输出评分 训练奖励模型学习人类偏好 用强化学习优化模型

3.4 GPT-4的进步

多模态:支持图像输入 更长的上下文:32K tokens 更好的推理能力 更高的准确性 更少的幻觉

四、其他大语言模型

4.1 Claude系列

开发商:Anthropic 特点: - 长上下文(200K tokens) - 宪慎安全 - 高质量输出 Claude 3系列: - Haiku:快速、轻量 - Sonnet:平衡 - Opus:最强

4.2 Llama系列

开发商:Meta 特点:开源、可本地部署 Llama 2: - 7B、13B、70B三种规格 - 开源可商用 - 支持微调 Llama 3: - 8B、70B - 性能接近GPT-3.5

4.3 国产大模型

文心一言(百度) 通义千问(阿里) 智谱清言(智谱AI) Kimi(月之暗面) 星火大模型(科大讯飞)

五、大语言模型的能力

5.1 涌现能力

模型规模大到一定程度后突然出现的能力。

小模型:只能完成训练过的任务 大模型:能完成未见过的任务 涌现能力: - 少样本学习 - 思维链推理 - 指令遵循 - 代码生成 - 数学推理

5.2 思维链(Chain-of-Thought)

普通提示: 问:小明有5个苹果,给了小红2个,又买了3个,现在有几个? 答:6个 思维链提示: 问:小明有5个苹果,给了小红2个,又买了3个,现在有几个?请一步步思考。 答: 1. 小明原本有5个苹果 2. 给了小红2个,剩下5-2=3个 3. 又买了3个,现在有3+3=6个 答案是6个

5.3 上下文学习

在上下文中提供示例,模型就能学会 示例: 判断情感: "这部电影太棒了!" => 正面 "浪费时间和金钱" => 负面 "演员演技在线,剧情一般" => ? 模型输出:中性

六、提示工程进阶

6.1 提示词框架

角色设定: "你是一位经验丰富的软件工程师..." 任务描述: "请帮我设计一个用户登录系统..." 背景信息: "这是一个电商网站,用户量约100万..." 输出格式: "请以Markdown格式输出,包含: 1. 系统架构图 2. 数据库设计 3. API接口定义 4. 安全考虑" 示例: "参考示例:..."

6.2 高级技巧

链式提示
Step 1:分析需求 Step 2:设计方案 Step 3:实现代码 Step 4:测试验证 每步输出作为下一步输入
自我反思
生成初版答案 ↓ "请检查上面的回答是否有错误或遗漏" ↓ 修正和完善 ↓ 最终答案
角色扮演
"请你扮演: 1. 产品经理:提出需求 2. 架构师:设计方案 3. 开发者:实现代码 4. 测试工程师:测试用例 请以多角色对话的形式展开讨论"

6.3 常见问题

问题1:回答太泛 解决:要求具体、详细、举例 问题2:偏离主题 解决:明确范围、限制话题 问题3:格式不对 解决:给出模板、示例 问题4:幻觉(编造信息) 解决:要求引用来源、承认不确定

七、大语言模型的应用

7.1 对话助手

智能客服:回答用户问题 个人助理:日程管理、信息查询 教育辅导:答疑解惑、学习指导 心理咨询:情感支持、建议

7.2 内容创作

文章写作:博客、报告、论文 营销文案:广告、软文、产品描述 创意写作:小说、剧本、诗歌 翻译:多语言翻译

7.3 编程辅助

代码生成:根据描述生成代码 代码解释:解释代码功能 Bug修复:定位和修复问题 代码重构:优化代码结构 文档生成:自动生成文档

7.4 知识工作

文档摘要:长文档压缩 信息提取:提取关键信息 问答系统:基于知识库回答 数据分析:数据解读和建议

八、大语言模型的局限

8.1 幻觉问题

定义:模型生成虚假但看似合理的信息 例子: - 编造不存在的论文 - 捏造历史事件 - 给出错误的计算结果 原因: - 模型学习的是概率分布,不是事实 - 训练数据可能有误 - 模型可能过度推断 应对: - 事实核查 - 要求引用来源 - 使用检索增强(RAG)

8.2 上下文限制

限制: GPT-4:32K tokens(约2.5万字) Claude 3:200K tokens(约15万字) 问题: - 长文档无法完整输入 - 对话历史受限 解决: - 分段处理 - 摘要压缩 - 检索增强

8.3 知识截止

问题:训练数据有时间截止点 GPT-4:知识截止2023年 无法回答最新事件 解决: - 联网搜索 - 实时信息注入

8.4 推理能力

擅长: - 模式匹配 - 知识检索 - 简单推理 不擅长: - 复杂数学证明 - 多步逻辑推理 - 常识判断

九、检索增强生成(RAG)

9.1 什么是RAG?

检索增强生成 = 检索 + 生成

流程: 用户提问 ↓ 检索相关文档 ↓ 文档 + 问题 → LLM ↓ 生成答案

9.2 RAG的优势

1. 减少幻觉:基于检索到的事实生成 2. 知识更新:更新知识库即可 3. 可解释:可以追溯信息来源 4. 领域适配:注入领域知识

9.3 RAG实现

知识库构建: 1. 文档切分 2. 向量化(Embedding) 3. 存入向量数据库 检索: 1. 问题向量化 2. 相似度搜索 3. 返回相关文档 生成: 问题 + 检索文档 → LLM → 答案

十、微调与部署

10.1 微调方法

全量微调: - 更新所有参数 - 效果最好 - 成本最高 参数高效微调(PEFT): - LoRA:低秩适配 - QLoRA:量化 + LoRA - Adapter:插入适配层 - Prompt Tuning:软提示 优势: - 计算量小 - 存储空间小 - 效果接近全量微调

10.2 部署方式

云端API: - OpenAI API - Anthropic API - 国内各大模型API 本地部署: - Ollama - vLLM - Text Generation WebUI 私有化部署: - 企业数据安全 - 定制化需求 - 成本控制

十一、动手实践:大语言模型应用开发

11.1 环境准备

pipinstallopenai langchain chromadb tiktoken

11.2 调用大模型API

""" 大语言模型API调用示例 """fromopenaiimportOpenAI client=OpenAI()# 需要设置OPENAI_API_KEYdefchat_completion(messages,model="gpt-3.5-turbo"):"""对话补全"""response=client.chat.completions.create(model=model,messages=messages,temperature=0.7,max_tokens=1000)returnresponse.choices[0].message.content# 1. 基础对话messages=[{"role":"system","content":"你是一位AI助手,帮助用户解答问题。"},{"role":"user","content":"什么是机器学习?请简单解释。"}]answer=chat_completion(messages)print("回答:",answer)# 2. 多轮对话conversation=[{"role":"system","content":"你是一位Python编程专家。"}]whileTrue:user_input=input("\n你: ")ifuser_input.lower()in['exit','quit']:breakconversation.append({"role":"user","content":user_input})response=chat_completion(conversation)conversation.append({"role":"assistant","content":response})print(f"\nAI:{response}")

11.3 提示词工程实践

""" 提示词工程:设计有效的提示词 """# 1. 角色设定defcreate_prompt_with_role(role,task):"""带角色设定的提示词"""returnf""" 你是一位{role}。 任务:{task}请提供专业、详细的回答。 """# 2. 思维链提示chain_of_thought_prompt=""" 请一步步思考以下问题: 问题:小明有5个苹果,给了小红2个,又买了3个,现在有几个? 请按以下格式回答: 1. 分析初始条件 2. 列出计算步骤 3. 得出最终答案 """# 3. Few-shot提示few_shot_prompt=""" 以下是文本分类的示例: 文本:"苹果发布新款iPhone" → 类别:科技 文本:"股市今日大涨" → 类别:财经 文本:"某明星新电影上映" → 类别:娱乐 请对以下文本分类: 文本:"国足世预赛获胜" → 类别: """# 4. 结构化输出structured_prompt=""" 请分析以下文章,并以JSON格式输出: 文章:[文章内容] 输出格式: { "title": "文章标题", "summary": "文章摘要(100字以内)", "keywords": ["关键词1", "关键词2", "关键词3"], "category": "文章类别", "sentiment": "情感倾向(正面/负面/中性)" } """

11.4 RAG实现

""" RAG(检索增强生成)实现 """fromlangchain.embeddings.openaiimportOpenAIEmbeddingsfromlangchain.vectorstoresimportChromafromlangchain.text_splitterimportRecursiveCharacterTextSplitterfromlangchain.llmsimportOpenAIfromlangchain.chainsimportRetrievalQAfromlangchain.document_loadersimportTextLoader# 1. 加载文档defload_documents(file_path):"""加载并切分文档"""loader=TextLoader(file_path)documents=loader.load()# 切分文档text_splitter=RecursiveCharacterTextSplitter(chunk_size=1000,chunk_overlap=200)texts=text_splitter.split_documents(documents)returntexts# 2. 构建向量数据库defbuild_vector_store(texts,persist_directory="./chroma_db"):"""构建向量数据库"""embeddings=OpenAIEmbeddings()vectorstore=Chroma.from_documents(documents=texts,embedding=embeddings,persist_directory=persist_directory)returnvectorstore# 3. RAG问答defrag_qa(vectorstore,question):"""RAG问答"""llm=OpenAI(temperature=0)qa_chain=RetrievalQA.from_chain_type(llm=llm,chain_type="stuff",retriever=vectorstore.as_retriever(search_type="similarity",search_kwargs={"k":3}),return_source_documents=True)result=qa_chain({"query":question})returnresult['result'],result['source_documents']# 使用示例# texts = load_documents("knowledge_base.txt")# vectorstore = build_vector_store(texts)# answer, sources = rag_qa(vectorstore, "什么是机器学习?")# print(f"回答: {answer}")# print(f"来源文档: {sources}")

11.5 使用LangChain构建应用

""" 使用LangChain构建AI应用 """fromlangchain.chat_modelsimportChatOpenAIfromlangchain.promptsimportChatPromptTemplatefromlangchain.chainsimportLLMChainfromlangchain.output_parsersimportPydanticOutputParserfrompydanticimportBaseModel,FieldfromtypingimportList# 1. 定义输出结构classArticleAnalysis(BaseModel):"""文章分析结果"""title:str=Field(description="文章标题")summary:str=Field(description="文章摘要")keywords:List[str]=Field(description="关键词列表")sentiment:str=Field(description="情感倾向")# 2. 创建解析器parser=PydanticOutputParser(pydantic_object=ArticleAnalysis)# 3. 创建提示词模板prompt=ChatPromptTemplate.from_messages([("system","你是一位专业的文章分析师。"),("user",""" 请分析以下文章: {article} {format_instructions} """)])# 4. 创建链llm=ChatOpenAI(temperature=0)chain=LLMChain(llm=llm,prompt=prompt,output_parser=parser)# 5. 执行分析# article = "..." # 文章内容# result = chain.run(# article=article,# format_instructions=parser.get_format_instructions()# )# print(f"标题: {result.title}")# print(f"摘要: {result.summary}")# print(f"关键词: {result.keywords}")# print(f"情感: {result.sentiment}")

11.6 本地部署大模型(使用Ollama)

""" 使用Ollama本地运行大模型 需要先安装Ollama: https://ollama.ai """importrequestsdefollama_chat(prompt,model="llama2"):"""调用Ollama API"""response=requests.post("http://localhost:11434/api/generate",json={"model":model,"prompt":prompt,"stream":False})returnresponse.json()["response"]# 使用示例# answer = ollama_chat("什么是机器学习?")# print(answer)# 常用模型:# - llama2: Meta的Llama 2# - mistral: Mistral AI的模型# - qwen: 阿里的通义千问# - glm4: 智谱的GLM-4

十二、小结

  • 大语言模型 = 参数巨大、数据巨大、计算巨大
  • 核心架构:Transformer,自注意力机制
  • 训练流程:预训练 + 监督微调 + RLHF
  • 涌现能力:少样本学习、思维链、指令遵循
  • 提示工程:设计提示词引导模型输出
  • 局限:幻觉、上下文限制、知识截止
  • RAG:检索增强生成,减少幻觉
  • 微调:全量微调、PEFT方法

十三、思考题

  1. Transformer的自注意力机制是如何工作的?为什么它比RNN更适合处理长序列?

  2. 什么是涌现能力?为什么大模型会出现涌现能力?

  3. RAG是什么?它如何解决大语言模型的幻觉问题?


下一篇预告:我们将探讨AI的未来与挑战,展望AI技术的发展趋势,以及我们面临的机遇和风险。


标签大语言模型LLMChatGPTTransformer提示工程RAGAI入门

版权声明:本文为原创内容,转载请注明出处。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 17:53:23

OpenRGB:3步实现跨品牌RGB灯光统一控制,告别软件冲突烦恼

OpenRGB:3步实现跨品牌RGB灯光统一控制,告别软件冲突烦恼 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/O…

作者头像 李华
网站建设 2026/4/29 17:52:23

BiliTools哔哩哔哩下载终极指南:三步搞定跨平台B站资源下载

BiliTools哔哩哔哩下载终极指南:三步搞定跨平台B站资源下载 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

作者头像 李华
网站建设 2026/4/29 17:51:36

Winhance中文版:你的Windows系统优化终极指南 [特殊字符]

Winhance中文版:你的Windows系统优化终极指南 🚀 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winha…

作者头像 李华
网站建设 2026/4/29 17:51:01

工业大数据是离散制造提质增效的阳光大道吗?

一、被五种物料编码拖住的工厂一个零部件,在采购系统里叫“A-CP01”,到了MES里成了“CP01-A”,财务账上又记作“01CP”。正是这样的物料编码混乱,让一家汽车零部件企业背上了每年超8000万元的冗余成本。这并非孤例,而是…

作者头像 李华