跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

AI 对话与 AI 绘画的底层原理:从概率预测到创意生成

AI 对话基于自回归语言模型预测下一个词的概率分布,而 AI 绘画则利用扩散模型从噪声中逆向还原图像。两者核心均在于学习数据的条件概率分布 P(output|condition),区别在于文本采用顺序生成策略,图像采用并行去噪策略。通过 Transformer 的注意力机制和 Cross-Attention 技术,模型能够理解上下文并生成符合语义的内容。本文通过简化代码示例展示了底层逻辑,帮助读者建立对生成式 AI 的统一认知。

AiEngineer发布于 2026/4/9更新于 2026/7/1235 浏览

AI 对话与 AI 绘画的底层原理

当你和 AI 对话时,可能会想它是否真的理解了你;当 AI 作画时,你是否好奇它是如何'想象'画面的。答案其实很直接:无论是文字还是图像,AI 生成的核心都是基于概率的模型。

一、统一视角:概率生成

AI 对话的本质是给定前面的文字,预测下一个最可能出现的词(token)。

类型输入条件预测目标
AI 对话上文 + 用户提示下一个词的概率分布
AI 绘画文字描述符合描述的图像像素分布

两者共同点在于学习数据的概率分布 $P(x)$,并在条件约束下采样生成新内容 $P(x|\text{条件})$。

二、AI 对话:下一个词的概率游戏

1. 语言模型的核心任务

语言模型的任务是预测序列中的下一个元素。例如输入'我今天去超市买了一些',模型会计算后续词汇的概率分布:

  • 水果 (0.25)
  • 蔬菜 (0.18)
  • 东西 (0.15)

然后从分布中采样选中一个词,更新上下文后继续预测,直到生成结束符。

2. Transformer 架构

现代大模型如 GPT 系列基于 Transformer 架构,其核心组件包括:

  • Token 化:将文本转换为数字 ID。
  • 词嵌入层:将 ID 映射为高维向量。
  • 自注意力机制 (Self-Attention):让每个词关注句子中其他相关词,捕捉上下文依赖。
  • 前馈神经网络 (FFN):进行非线性变换。

以代词指代为例,当处理'他'时,注意力机制会赋予'小明'较高的权重,从而理解指代关系。这不是硬编码规则,而是从海量数据中学到的模式。

3. 采样策略

为了平衡生成的确定性与多样性,我们采用不同的采样策略:

import numpy as np

def sampling_strategies_demo():
    """演示不同的采样策略如何影响生成结果"""
    vocab = ["好", "不错", "很棒", "一般", "糟糕", "还行", "极好", "普通"]
    probs = np.array([0.25, 0.20, 0.15, 0.12, , , , ])
    
    ()
     word, prob  (vocab, probs):
        ()

    
    greedy_idx = np.argmax(probs)
    ()
    ()

    
     temp  [, , ]:
        adjusted_probs = np.exp(np.log(probs + ) / temp)
        adjusted_probs = adjusted_probs / adjusted_probs.()
        ()
         word, prob  (vocab, adjusted_probs):
            bar =  * (prob * )
            ()
    
    ()
    ()

sampling_strategies_demo()
0.08
0.10
0.05
0.05
print
"原始概率分布:"
for
in
zip
print
f" {word}: {prob:.2%}"
# 贪婪采样:总是选概率最高的
print
f"\n1. 贪婪采样结果:{vocab[greedy_idx]}"
print
" 特点:确定性高,但可能单调重复"
# Temperature 采样:调整分布的尖锐程度
for
in
0.5
1.0
2.0
1e-10
sum
print
f"\n2. Temperature = {temp}:"
for
in
zip
"█"
int
50
print
f" {word}: {bar}{prob:.2%}"
print
"\nT < 1: 分布更尖锐,更确定"
print
"T > 1: 分布更平缓,更随机"

三、AI 绘画:从噪声到图像的逆向过程

1. 扩散模型思想

扩散模型的灵感来源于墨水在水中扩散的过程。正向过程是将图像逐渐加噪至纯噪声,逆向过程则是学习如何从噪声中逐步还原出清晰图像。

过程方向目的
正向扩散原图 → 噪声训练时定义噪声添加规律
逆向去噪噪声 → 原图生成时使用,学习去噪步骤

2. 条件生成与 Cross-Attention

在文生图中,文字描述通过编码器(如 CLIP)转化为向量,并通过 Cross-Attention 机制注入到去噪网络中。这使得图像生成的每一步都能参考文本语义。

例如,当生成'一只橘猫'时,Cross-Attention 会让图像特征中对应'猫'的区域关注文本向量中的'cat'和'orange'标签,从而引导像素颜色与形状。

3. Stable Diffusion 流程

Stable Diffusion 在低维潜空间(Latent Space)操作,而非直接操作像素,大幅降低了计算量。

  1. 文本编码器:将提示词转为向量。
  2. U-Net 去噪网络:接收噪声潜变量和文本条件,预测噪声。
  3. VAE 解码器:将潜变量还原为像素图像。

四、核心对比:对话 vs 绘画

虽然本质都是概率生成,但在实现细节上存在显著差异:

维度AI 对话 (LLM)AI 绘画 (Diffusion)
生成方式自回归 (顺序生成)迭代去噪 (并行优化)
输出形式离散词表 (Token)连续像素值
模型架构TransformerU-Net + Attention
训练目标预测下一个词 (最大化似然)预测噪声 (去噪得分匹配)
速度依赖与输出长度成正比与去噪步数相关

五、代码实战:简化模型实现

为了更直观地理解原理,我们可以用 Python 构建简化的语言模型和扩散模型。

1. 极简语言模型

import numpy as np

class SimpleLM:
    """极简语言模型:演示自回归生成的核心逻辑"""
    def __init__(self):
        self.knowledge = {
            "今天": {"天气": 0.4, "我": 0.2, "是": 0.15, "去": 0.1, "吃": 0.15},
            "今天天气": {"很好": 0.35, "不错": 0.25, "真好": 0.15, "怎么样": 0.15, "一般": 0.1},
            "今天天气很好": {",": 0.4, "!": 0.3, "。": 0.2, "啊": 0.1},
            "今天天气很好,": {"适合": 0.3, "我们": 0.25, "可以": 0.2, "阳光": 0.15, "是": 0.1},
        }

    def get_next_word_probs(self, context):
        for length in range(len(context), 0, -1):
            key = context[-length*2:] if length > 1 else context[-2:]
            if key in self.knowledge:
                return self.knowledge[key]
        return {"。": 0.5, ",": 0.3, "的": 0.2}

    def sample(self, probs, temperature=1.0):
        words = list(probs.keys())
        p = np.array(list(probs.values()))
        p = np.exp(np.log(p + 1e-10) / temperature)
        p = p / p.sum()
        return np.random.choice(words, p=p)

    def generate(self, prompt, max_length=10, temperature=1.0):
        text = prompt
        print(f"初始:{text}")
        print("-" * 40)
        for step in range(max_length):
            probs = self.get_next_word_probs(text)
            next_word = self.sample(probs, temperature)
            print(f"步骤{step+1}: 采样得到 '{next_word}'")
            text += next_word
            if next_word in ["。", "!"]:
                break
        print("-" * 40)
        print(f"最终:{text}")
        return text

# 演示
lm = SimpleLM()
lm.generate("今天", max_length=5, temperature=1.0)

2. 极简扩散模型

import numpy as np
import matplotlib.pyplot as plt

class SimpleDiffusion:
    """极简扩散模型:演示去噪生成的核心逻辑"""
    def __init__(self, image_size=8):
        self.image_size = image_size
        self.n_steps = 10

    def add_noise(self, image, t):
        noise_level = t / self.n_steps
        noise = np.random.randn(*image.shape)
        noisy = (1 - noise_level) * image + noise_level * noise
        return noisy, noise

    def denoise_step(self, noisy_image, t, condition=None):
        noise_level = t / self.n_steps
        denoised = noisy_image * 0.9 + np.random.randn(*noisy_image.shape) * 0.1 * noise_level
        if condition is not None:
            guidance_strength = 0.3 * (1 - noise_level)
            denoised = denoised + guidance_strength * (condition - denoised)
        return denoised

    def generate(self, condition=None):
        x = np.random.randn(self.image_size, self.image_size)
        history = [x.copy()]
        for t in range(self.n_steps, 0, -1):
            x = self.denoise_step(x, t, condition)
            history.append(x.copy())
        return x, history

# 演示
print("无条件生成(纯随机):")
diff = SimpleDiffusion(image_size=16)
diff.generate(condition=None)

六、总结

AI 对话与 AI 绘画的本质都是'条件概率生成'。给定条件(提示词),模型生成最可能符合条件的输出。区别在于:对话是顺序地一个词一个词生成,而绘画是并行地从噪声中逐步雕刻出图像。理解这一统一视角,有助于我们更好地掌握各类生成式 AI 技术的边界与潜力。

参考资料

  1. "Attention Is All You Need" - Transformer 原论文
  2. "Denoising Diffusion Probabilistic Models" - 扩散模型原论文
  3. "High-Resolution Image Synthesis with Latent Diffusion Models" - Stable Diffusion 论文

目录

  1. AI 对话与 AI 绘画的底层原理
  2. 一、统一视角:概率生成
  3. 二、AI 对话:下一个词的概率游戏
  4. 1. 语言模型的核心任务
  5. 2. Transformer 架构
  6. 3. 采样策略
  7. 三、AI 绘画:从噪声到图像的逆向过程
  8. 1. 扩散模型思想
  9. 2. 条件生成与 Cross-Attention
  10. 3. Stable Diffusion 流程
  11. 四、核心对比:对话 vs 绘画
  12. 五、代码实战:简化模型实现
  13. 1. 极简语言模型
  14. 演示
  15. 2. 极简扩散模型
  16. 演示
  17. 六、总结
  18. 参考资料
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 从 Alpaca 到 ShareGPT:Llama Factory 数据格式全解析
  • Claude Code的完美平替:OpenCode + GitHub Copilot
  • llama.cpp 多 GPU 分布式计算优化实践指南
  • AI 印象派艺术工坊与 Stable Diffusion 对比:轻量部署案例评测
  • BFS 解决 FloodFill 算法:从图像渲染到岛屿问题实战
  • Ubuntu 系统下 Node.js 环境配置与常见问题排查
  • 二分查找算法详解:基础查找与边界定位
  • 从销售助理转行软件测试:零经验求职与学习路径分享
  • JavaScript 浮点数精度陷阱与金额分摊解决方案
  • Spring Boot Web 后端开发:核心注解实战指南
  • Stable Diffusion v1.5 创意设计师指南:嵌入 Figma/PS 工作流
  • Python 中 == 与 is 的区别及最佳实践
  • 斯坦福《2025 AI Index Report》深度解读:AI 从技术突破迈向系统扩散
  • LLM 大模型推理加速与模型量化方法详解
  • 基于 OpenClaw 与 Claude 的自动化写作工作流实践
  • AI 时代如何学习 Python?AIGC 高效编程指南
  • 深入理解 C++ 异常机制
  • C++ 内存映射实战:使用 mio 库优化文件 IO 性能
  • openKylin 通过 SSH 与 cpolar 实现远程连接
  • Spring Boot 3.5.9:工程视角下的稳定性演进与实战价值

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online