news 2026/2/21 17:48:35

收藏!大模型工作原理全解析:从分词到生成的完整流程(程序员必看)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏!大模型工作原理全解析:从分词到生成的完整流程(程序员必看)

大模型是如何工作的

近几十年来,人工智能经历了从基础算法到生成式AI的深刻演变。生成式AI通过学习大量数据可以创造出全新的内容,如文本、图像、音频和视频,这极大地推动了AI技术的广泛应用。常见的应用场景包括智能问答(如DeepSeek、GPT)、创意作画(如Stable Diffusion)以及代码生成(如通义灵码)等,涵盖了各个领域,让AI触手可及。

智能问答作为大模型最经典且广泛的应用之一,是我们探索大模型工作机制的最佳范例。接下来将介绍大模型在问答场景中的工作流程,帮助你更深入地理解其背后的技术原理。
在这里插入图片描述

大模型的工作流程

大模型的问答过程可分为 5 个核心阶段,以 “Python is a powerful” 生成完整句子为例:

阶段 1:输入文本分词化(Tokenization)
  • 定义:将自然语言文本分割为模型可处理的基本单元(Token)
  • 过程
  • 原始文本:“Python is a powerful”
  • 分词结果:[“Python”, “is”, “a”, “powerful”](不同模型的分词规则略有差异,如 GPT 用 Byte Pair Encoding,通义千问用自定义分词器)
  • Token ID 映射:每个 Token 对应唯一数字 ID(如 "Python"→54321,"is"→6789)
阶段 2:Token 向量化(Embedding)
  • 作用:将离散的 Token 转换为连续的向量(数字矩阵),让计算机理解语义
  • 细节
  • 每个 Token 被映射为固定维度的向量(如 GPT-3.5 为 1536 维,GPT-4 为 4096 维)
  • 向量值由模型训练过程学习,语义相近的 Token 向量距离更近(如 “猫” 和 “狗” 的向量距离小于 “猫” 和 “汽车”)
阶段 3:大模型推理(Inference)
  • 核心任务:基于输入向量,计算下一个 Token 的概率分布

  • 过程

  • 模型通过注意力机制(Attention)捕捉 Token 间的语义关联(如 “Python” 与 “programming language” 的关联性)

  • 输出所有可能 Token 的概率(如 “programming language” 概率 0.8,“tool” 概率 0.1,“script” 概率 0.05…)

阶段 4:输出 Token(Token Selection)
  • 过程:根据 temperature/top_p 等参数,从候选 Token 中选择下一个 Token
  • 示例:基于参数选择 “programming language” 作为下一个 Token
阶段 5:循环生成与结束判断
  • 循环:将新生成的 Token(如 “programming language”)加入输入,重复阶段 3~4,继续生成下一个 Token(如 “used for data analysis”)
  • 结束条件
  • 生成 “句子结束标记”(如<|endoftext|>
  • 输出 Token 数量达到max_tokens阈值
  • 最终结果:“Python is a powerful programming language used for data analysis.”
参数说明
temperature(温度参数)
  • 作用:调整候选 Token 的概率分布,控制回答的多样性
  • 取值范围:0~2(默认 1.0):
  • temperature=0:确定性最高,仅选择概率最高的 Token,适合事实性问答(如 “Python 中 list 和 tuple 的区别”)
  • temperature=0.7:平衡随机性与准确性,适合创意性任务(如 “写一段产品宣传文案”)
  • temperature=1.5:随机性极高,适合发散性思维(如 “为科幻小说构思 3 个世界观设定”)
top_p(核采样参数)
  • 作用:通过累计概率筛选候选 Token 集合,控制采样范围

  • 取值范围:0~1(默认 1.0)

  • 例如:top_p=0.9表示仅从概率累计达 90% 的 Token 中选择,排除低概率 Token

  • 使用建议:通常不与 temperature 同时调整,二选一即可(若需精准控制确定性,用 temperature;若需控制候选范围,用 top_p)

2.2.3 top_k(通义千问专属参数)
  • 作用:从概率排名前 k 的 Token 中随机选择,控制候选数量

  • 取值范围:1~100(默认 40)

  • top_k=1:仅选择概率最高的 Token,输出完全固定

  • top_k=50:从 top50 的 Token 中选择,兼顾多样性与准确性

seed(种子参数)
  • 作用:固定生成结果的 “初始条件”,提升结果可重复性
  • 使用场景:需多次生成相同 / 相似内容的场景(如固定格式的报告生成)
  • 注意:即使设置相同 seed,分布式计算、模型优化等因素仍可能导致结果微小差异(无法 100% 完全一致)

假设在一个对话问答场景中,用户提问为:“在大模型课程中,你可以学习什么?”。为了模拟大模型生成内容的过程,我们预设了一个候选Token集合,这些Token分别为:“RAG”、“提示词”、“模型”、“写作”、“画画”。大模型会从这5个候选Token中选择一个作为结果输出(next-token),如下所示。

用户提问:在大模型ACP课程中,你可以学习什么? 大模型回答:RAG

在这个过程中,有两个重要参数会影响大模型的输出:temperature 和 top_p,它们用来控制大模型生成内容的随机性和多样性。 在大模型生成下一个词(next-token)之前,它会先为候选Token计算一个初始概率分布。这个分布表示每个候选Token作为next-token的概率。temperature是一个调节器,它通过改变候选Token的概率分布,影响大模型的内容生成。通过调节这个参数,你可以灵活地控制生成文本的多样性和创造性。

image.png

由上图可知,温度从低到高(0.1 -> 0.7 -> 1.2),概率分布从陡峭趋于平滑,候选Token“RAG”从出现的概率从0.8 -> 0.6 -> 0.3,虽然依然是出现概率最高的,但是已经和其它的候选Token概率接近了,最终输出也会从相对固定到逐渐多样化。

大模型的局限性与应对方案

局限性 1:输出随机性无法完全消除
问题描述

即使将 temperature 设为 0、top_p 设为 0.0001、seed 固定,仍可能出现结果不一致。

应对方案
  • 工程层面:多次调用取交集(如生成 3 次回答,提取共同内容作为最终结果)
  • 提示层面:在 prompt 中加入 “输出需严格遵循事实,不得添加无关内容” 等约束性描述
局限性 2:无法回答私域知识(未训练过的内容)
问题场景

如 “公司内部产品的技术参数”、“未公开的行业报告数据” 等,大模型无法直接回答。

应对方案(两种路径)
路径 1:不改变模型(低成本快速实现)
  • 方法:采用 “提示工程 + 上下文注入”,将私域知识作为参考信息传入 prompt
  • 示例
defanswer_private_question(private_knowledge: str, user_question: str) -> str: prompt = f"""基于以下私域知识回答问题: {private_knowledge} 用户问题:{user_question} 要求:仅使用上述知识回答,不添加外部信息,若无法回答请说明。 """ return get_gpt_response(prompt) # 调用示例(注入公司产品知识) product_knowledge = "公司X的A产品采用32位MCU,续航时间120小时,支持蓝牙5.0" result = answer_private_question(product_knowledge, "A产品的续航时间是多少?")
路径 2:改变模型(高成本长期方案)
  • 方法 1:模型微调(Fine-tuning):用私域数据训练模型,让模型 “记住” 特定知识(适合数据量中等的场景,如 1000~10 万条数据)
  • 方法 2:训练专属模型:基于开源模型(如 Llama 3、Qwen-7B),用私域数据从头 / 增量训练(适合数据量极大、对模型定制化要求高的场景)

大模型开发环境搭建与 API 配置

核心开发环境要求
  • 编程语言:推荐 Python 3.8+(生态完善,OpenAI / 通义千问等 API 均提供官方 Python SDK)
  • 依赖库
  • openai:OpenAI 官方 SDK,用于调用 GPT 系列模型
  • python-dotenv:安全管理环境变量,避免 API Key 泄露
  • requests:若需自定义 API 请求,用于发送 HTTP 请求
  • streamlit/fastapi(可选):快速搭建大模型应用前端 / 后端
API Key 安全管理(关键操作)
错误做法:直接硬编码 API Key,因为这样很容易在分享代码时泄露密钥
# 风险示例:直接在代码中写入API Key,分享代码时易泄露 import openai openai.api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# 高危操作!
正确做法:通过环境变量加载

创建.env 配置文件:在项目根目录新建.env文件,存储 API Key,如下:

# .env文件内容(添加到.gitignore,禁止提交到代码仓库) OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx QWEN_API_KEY=sk-yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

通过 python-dotenv 加载API Key示例

# 安全加载API Key示例 import os from dotenv import load_dotenv import openai # 加载.env文件中的环境变量 load_dotenv() # 自动读取项目根目录的.env文件 # 从环境变量中获取API Key openai.api_key = os.getenv("OPENAI_API_KEY") # 验证API Key是否加载成功 ifnot openai.api_key: raise ValueError("API Key加载失败,请检查.env文件是否正确配置")

大模型API 调用与参数优化

基础 API 调用流程(以 OpenAI GPT-3.5/4 为例)
非流式调用(完整结果返回)

适用于对响应速度要求不高,需获取完整回答的场景(如文档生成、数据分析):

defget_gpt_response(prompt: str) -> str: """非流式调用GPT-3.5,获取完整回答""" try: response = openai.ChatCompletion.create( model="gpt-3.5-turbo", # 模型名称,可选gpt-4 messages=[ {"role": "system", "content": "你是专业的技术助手,回答需简洁准确"}, {"role": "user", "content": prompt} ], max_tokens=1024, # 最大输出长度(含输入tokens) temperature=0.7# 控制随机性,0.7为平衡值 ) # 提取回答内容 return response.choices[0].message["content"].strip() except Exception as e: returnf"API调用失败:{str(e)}" # 调用示例 result = get_gpt_response("请解释大模型的tokenization过程") print(result)
流式调用(实时返回结果)

适用于对话机器人、实时问答等场景,提升用户体验(避免长时间等待):

defstream_gpt_response(prompt: str): """流式调用GPT-3.5,实时返回回答片段""" response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "你是实时对话助手,逐句返回回答"}, {"role": "user", "content": prompt} ], stream=True, # 开启流式输出 temperature=0.5 ) # 逐段处理流式响应 full_response = "" print("流式输出结果:") for chunk in response: # 提取当前片段内容(忽略空片段) chunk_content = chunk.choices[0].delta.get("content", "") if chunk_content: print(chunk_content, end="", flush=True) # 实时打印 full_response += chunk_content return full_response # 调用示例 stream_gpt_response("请分步说明大模型推理的核心步骤")

实践案例:快速搭建一个大模型对话助手

基于 Streamlit 和 OpenAI API,10 分钟实现一个 Web 版对话助手:

步骤 1:安装依赖
pip install streamlit openai python-dotenv
步骤 2:编写代码(app.py)
import streamlit as st import openai import os from dotenv import load_dotenv # 加载API Key load_dotenv() openai.api_key = os.getenv("OPENAI_API_KEY") # 页面配置 st.set_page_config(page_title="大模型对话助手", page_icon="💬") st.title("💬 大模型对话助手") # 初始化会话状态(存储对话历史) if"messages"notin st.session_state: st.session_state.messages = [ {"role": "system", "content": "你是友好的对话助手,回答简洁易懂"} ] # 显示对话历史 for message in st.session_state.messages[1:]: # 跳过system消息 with st.chat_message(message["role"]): st.markdown(message["content"]) # 处理用户输入 if prompt := st.chat_input("请输入你的问题..."): # 添加用户消息到会话状态 st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.markdown(prompt) # 调用OpenAI API获取回答(流式输出) with st.chat_message("assistant"): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=st.session_state.messages, stream=True ) # 实时显示回答 full_response = st.write_stream(response) # 添加助手消息到会话状态 st.session_state.messages.append({"role": "assistant", "content": full_response})
步骤 3:运行应用
streamlit run app.py

运行后会自动打开浏览器,输入问题即可与大模型对话(支持流式实时输出)

六、提升应用稳定性与用户体验

  1. 错误处理:添加 API 调用超时、额度不足、网络异常等场景的捕获(用 try-except 包裹 API 调用代码)
  2. 限流控制:若面向多用户,添加接口调用频率限制(如每用户每分钟最多 10 次调用)
  3. 成本优化
  • 选择合适的模型(如非关键场景用 GPT-3.5 替代 GPT-4,降低 token 成本)
  • 控制max_tokens,避免生成过长内容(根据需求设置合理阈值)
  1. 隐私保护:若处理用户敏感数据,需对输入内容进行脱敏(如替换手机号、邮箱等信息)

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01教学内容

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例:带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

vx扫描下方二维码即可

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:

04视频和书籍PDF合集

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)

05行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

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

mac安装python_笔记

1. 需求mac自带的python3版本为3.9.6&#xff0c;期望将其升级到3.13版本。mac版本&#xff1a;Apple M4 。2. 升级python版本这里使用Homebrew 来升级python版本。2.1 安装或更新 Homebrew如果已安装了Homebrew&#xff0c;跳过该步骤。/bin/bash -c "$(curl -fsSL https…

作者头像 李华
网站建设 2026/2/15 17:12:47

【收藏必看】AI Agent优化全攻略:从零构建高效稳定智能体

随着人工智能技术的飞速发展&#xff0c;AI Agent 在处理复杂任务方面的能力日益增强。然而&#xff0c;要充分发挥其潜力&#xff0c;优化是不可或缺的一环。本文将综合分析多篇前沿文章&#xff0c;提炼出 AI Agent 中行之有效的优化手段&#xff0c;涵盖Prompt 工程、上下文…

作者头像 李华
网站建设 2026/2/19 9:23:25

基于Spring Boot的校园二手物品信息发布平台

基于Spring Boot的校园二手物品信息发布平台是一个专为校园用户设计的在线交易平台&#xff0c;旨在方便学生们发布、浏览和交易二手物品。以下是对该平台的详细介绍&#xff1a; 一、平台背景与目的 在校园环境中&#xff0c;学生们常常会有闲置物品需要处理&#xff0c;同时也…

作者头像 李华
网站建设 2026/2/20 23:49:54

阿里P8架构师前端面试文档!确实牛!

这不是吹&#xff0c;而是一份被多位资深面试官认证过的前端硬核知识点体系。我将其系统拆解为以下四个核心模块&#xff0c;掌握它们不仅是为了应对面试&#xff0c;更是构建顶级前端工程师技术视野的必然路径&#xff1a; 一、JavaScript & TypeScript 的深度追问 从 …

作者头像 李华
网站建设 2026/2/20 17:16:28

毕设项目分享 深度学习驾驶行为识别系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 相关技术3.1 Dlib3.2 疲劳检测算法3.3 YOLOV5算法 4 最后 0 前言 &#x1f525;这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff0c;这两…

作者头像 李华