Kubernetes 二次开发项目介绍

概述

Kubernetes 作为云原生操作系统的核心,提供了强大的容器编排能力。基于 Kubernetes 的二次开发项目极大地扩展了其功能边界,覆盖了从平台管理、边缘计算、虚拟化、AI训练到多集群管理等各个领域。


一、容器管理平台类

1. KubeSphere(青云)

GitHub: https://github.com/kubesphere/kubesphere

项目简介
KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,提供全栈的 IT 运维自动化,目标是解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。

核心特性

  • 🎯 全栈容器平台:提供 DevOps、微服务治理、可观测性等完整能力
  • 🔧 运维友好:提供可视化控制台,降低 K8s 使用门槛
  • 📦 应用商店:内置应用模板,一键部署常用应用
  • 🔐 多租户管理:企业级多租户、权限控制
  • 🔄 DevOps 集成:内置 Jenkins、CI/CD 流水线

架构特点

1
2
3
4
5
6
7
8
9
10
┌─────────────────────────────────────────────────────────┐
│ KubeSphere Console │
├─────────────────────────────────────────────────────────┤
│ DevOps │ 微服务治理 │ 可观测性 │ 应用商店 │
├─────────────────────────────────────────────────────────┤
│ KubeSphere Core │
│ KS-API │ KS-Controller │ KS-Apiserver │
├─────────────────────────────────────────────────────────┤
│ Kubernetes │
└─────────────────────────────────────────────────────────┘

适用场景

  • 企业级容器平台建设
  • DevOps 平台搭建
  • 微服务架构落地

2. K3s(Rancher/SUSE)

GitHub: https://github.com/k3s-io/k3s

项目简介
K3s 是轻量级 Kubernetes 发行版,专为边缘计算、IoT 设备和 CI/CD 环境设计。二进制文件小于 100MB,内存占用极低。

核心特性

  • 🪶 极致轻量:单二进制文件 <100MB,内存占用 <512MB
  • 📦 内置组件:集成 SQLite、Traefik Ingress、负载均衡器
  • 🔧 单文件配置:简化配置管理
  • 快速启动:启动时间 <30 秒
  • 🔄 自动更新:支持自动升级

架构特点

1
2
3
4
5
6
7
8
┌─────────────────────────────────────────────────────────┐
│ K3s Server │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Embedded: SQLite + Traefik + LoadBalancer │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ K3s Agent (可选) │
└─────────────────────────────────────────────────────────┘

适用场景

  • 边缘计算、IoT 设备
  • 嵌入式系统
  • CI/CD 流水线
  • 开发测试环境
  • ARM 设备

3. Rancher(SUSE)

GitHub: https://github.com/rancher/rancher

项目简介
Rancher 是企业级 Kubernetes 管理平台,提供多集群管理、统一认证、应用目录等能力,支持管理任何 Kubernetes 发行版。

核心特性

  • 🌐 多集群管理:统一管理多个 K8s 集群
  • 🔐 统一认证:集成 LDAP、AD、OAuth 等
  • 📦 应用目录:内置 Helm 应用市场
  • 👥 RBAC:企业级权限管理
  • 🔄 集群模板:标准化集群配置

适用场景

  • 多集群统一管理
  • 混合云/多云管理
  • 企业级容器平台

二、多集群管理类

4. Karmada(华为)

GitHub: https://github.com/karmada-io/karmada

项目简介
Karmada(Kubernetes Armada)是华为开源的多集群多云容器编排平台,实现跨集群的应用部署、资源调度和故障迁移。

核心特性

  • 🌐 多集群编排:统一管理多个 K8s 集群
  • 🔄 跨集群调度:支持多种调度策略
  • 🛡️ 故障迁移:自动将工作负载迁移到健康集群
  • 📋 策略引擎:灵活的部署策略(副本分布、亲和性等)
  • 🔧 API 兼容:完全兼容 K8s 原生 API

架构特点

1
2
3
4
5
6
7
8
9
10
11
┌─────────────────────────────────────────────────────────┐
│ Karmada Control Plane │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ API Server │ │ Scheduler │ │ Controller │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Resource Detector │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ Member Cluster 1 │ Member Cluster 2 │ ... │
└─────────────────────────────────────────────────────────┘

适用场景

  • 多云/混合云部署
  • 跨区域容灾
  • 大规模集群管理

5. OCM(Open Cluster Management)

GitHub: https://github.com/open-cluster-management-io/ocm

项目简介
OCM 是红帽开源的多集群管理框架,提供集群注册、应用分发、策略治理等能力。

核心特性

  • 📋 集群注册:自动发现和注册集群
  • 🔄 应用分发:跨集群部署应用
  • 🛡️ 策略治理:统一安全合规策略
  • 📊 可观测性:多集群监控

三、边缘计算类

6. KubeEdge(华为)

GitHub: https://github.com/kubeedge/kubeedge

项目简介
KubeEdge 是华为开源的边缘计算平台,将 Kubernetes 能力扩展到边缘节点,支持离线运行和边缘设备管理。

核心特性

  • 🌐 云边协同:云端管理、边缘执行
  • 📴 离线运行:边缘节点断网时可独立运行
  • 🔌 设备管理:MQTT 协议设备接入
  • 🪶 轻量边缘:EdgeCore 资源占用极低
  • 🔄 消息通道:可靠云边消息同步

架构特点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌─────────────────────────────────────────────────────────┐
│ 云端 │
│ ┌─────────────┐ ┌─────────────────────────────────┐ │
│ │ Kubernetes │ │ CloudHub (消息路由) │ │
│ └─────────────┘ └─────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ 云边消息通道 │
│ WebSocket/MQTT │
├─────────────────────────────────────────────────────────┤
│ 边缘端 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ EdgeCore │ │ EdgeHub │ │ DeviceMgmt │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘

适用场景

  • 工业物联网(IIoT)
  • 智慧城市
  • 车联网
  • 边缘 AI 推理

7. OpenYurt(阿里巴巴)

GitHub: https://github.com/openyurtio/openyurt

项目简介
OpenYurt 是阿里云开源的边缘计算平台,强调”无侵入”式边缘化,让原生 K8s 集群一键变身为边缘计算平台。

核心特性

  • 🔄 无缝转换:原生 K8s 一键变边缘集群
  • 📴 自治能力:边缘节点断网时继续运行
  • 🔌 设备接入:支持 IoT 设备管理
  • 🛡️ 安全通信:云边加密通道

四、虚拟化类

8. KubeVirt(Red Hat)

GitHub: https://github.com/kubevirt/kubevirt

项目简介
KubeVirt 将虚拟机管理功能引入 Kubernetes,让 K8s 可以像管理容器一样管理虚拟机,实现容器与虚拟机的统一编排。

核心特性

  • 🖥️ 虚拟机管理:在 K8s 中运行 KVM 虚拟机
  • 🔄 统一编排:容器与虚拟机混合部署
  • 📦 VM as Code:虚拟机定义即代码
  • 🔗 存储集成:支持 PVC 作为虚拟机磁盘
  • 🌐 网络支持:支持 Multus 多网络

架构特点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
┌─────────────────────────────────────────────────────────┐
│ Kubernetes Cluster │
│ ┌─────────────────────────────────────────────────┐ │
│ │ KubeVirt │ │
│ │ ┌─────────────┐ ┌─────────────────────────┐ │ │
│ │ │ virt-api │ │ virt-controller │ │ │
│ │ └─────────────┘ └─────────────────────────┘ │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ virt-handler (每个节点) │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Pod │ │ VM (Pod) │ ← 虚拟机在Pod中运行 │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘

适用场景

  • 传统应用容器化迁移
  • 虚拟机与容器混合部署
  • 私有云建设
  • 数据库等有状态应用

五、AI/高性能计算类

9. Volcano(华为)

GitHub: https://github.com/volcano-sh/volcano

项目简介
Volcano 是基于 Kubernetes 的高性能计算任务调度系统,专为 AI、机器学习、大数据等场景优化。

核心特性

  • 🎯 批调度:Gang Scheduling(成组调度)
  • 🔢 队列管理:多租户资源配额
  • 📊 优先级调度:抢占和优先级
  • 🔄 任务依赖:DAG 工作流
  • 📈 性能优化:GPU 亲和性、NUMA 感知

架构特点

1
2
3
4
5
6
7
8
9
10
11
┌─────────────────────────────────────────────────────────┐
│ Volcano Scheduler │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Actions: Enqueue | Allocate | Backfill │ │
│ └─────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Plugins: Gang | Priority | Queue | Predicates │ │
│ └─────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ Kubernetes Scheduler │
└─────────────────────────────────────────────────────────┘

适用场景

  • AI/ML 训练任务
  • HPC 高性能计算
  • 大数据处理
  • 科学计算

10. Kubeflow

GitHub: https://github.com/kubeflow/kubeflow

项目简介
Kubeflow 是 Google 开源的机器学习工具包,在 Kubernetes 上提供端到端的 ML 平台。

核心特性

  • 📓 Jupyter Notebook:交互式开发环境
  • 🔄 Pipeline:ML 工作流编排
  • 🎯 训练:分布式训练支持
  • 📊 模型服务:模型部署和推理
  • 🔧 超参调优:Katib 自动调参

六、GitOps 类

11. ArgoCD

GitHub: https://github.com/argoproj/argo-cd

项目简介
ArgoCD 是 Kubernetes 原生的持续交付工具,基于 GitOps 原则实现声明式部署。

核心特性

  • 📂 Git 作为单一真实来源:配置版本化
  • 🔄 自动同步:Git 变更自动部署
  • 🛡️ 漂移检测:检测集群状态与 Git 配置差异
  • 👀 可视化界面:应用拓扑和状态
  • 🔐 SSO 集成:企业认证支持

架构特点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌─────────────────────────────────────────────────────────┐
│ Git Repository │
│ (应用配置清单) │
└─────────────────────────┬───────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ ArgoCD │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ API Server │ │ Repo Server │ │ Application │ │
│ │ │ │ │ │ Controller │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────┬───────────────────────────────┘


┌─────────────────────────────────────────────────────────┐
│ Kubernetes Cluster │
└─────────────────────────────────────────────────────────┘

12. FluxCD

GitHub: https://github.com/fluxcd/flux2

项目简介
FluxCD 是 CNCF 毕业项目,提供 GitOps 持续交付能力,是 ArgoCD 的主要竞争者。

核心特性

  • 📂 GitOps 自动化
  • 🔄 多仓库支持
  • 🔔 Webhook 触发
  • 🔐 密钥管理:Mozilla SOPS 集成
  • 📦 Helm 支持

七、可观测性类

13. Prometheus Operator

GitHub: https://github.com/prometheus-operator/prometheus-operator

项目简介
Prometheus Operator 简化了 Prometheus 在 Kubernetes 上的部署和管理,通过 CRD 实现声明式配置。

核心 CRD

  • Prometheus:定义 Prometheus 实例
  • Alertmanager:定义告警管理器
  • ServiceMonitor:定义服务监控目标
  • PodMonitor:定义 Pod 监控目标
  • PrometheusRule:定义告警规则

14. Thanos

GitHub: https://github.com/thanos-io/thanos

项目简介
Thanos 为 Prometheus 提供无限存储容量、全局查询视图和高可用能力。

核心特性

  • 📦 长期存储:支持对象存储
  • 🌐 全局查询:多集群聚合查询
  • 🔄 数据压缩:降低存储成本
  • 🛡️ 高可用:多副本查询

八、安全类

15. Cert-Manager

GitHub: https://github.com/cert-manager/cert-manager

项目简介
Cert-Manager 是 Kubernetes 的证书管理控制器,自动颁发、续期 TLS 证书。

核心特性

  • 🔐 自动证书管理:Let’s Encrypt 集成
  • 🔄 自动续期:证书到期自动更新
  • 📋 多 Issuer 支持:ACME、CA、Vault 等
  • 🛡️ DNS 验证:支持多种 DNS 提供商

16. OPA Gatekeeper

GitHub: https://github.com/open-policy-agent/gatekeeper

项目简介
Gatekeeper 是 OPA(Open Policy Agent)在 Kubernetes 上的准入控制器,实现策略即代码。

核心特性

  • 🛡️ 准入控制:Pod/Deployment 策略验证
  • 📋 策略即代码:Rego 语言定义策略
  • 🔧 审计:检测违规资源
  • 📊 可观测性:策略执行指标

九、网络类

17. Cilium

GitHub: https://github.com/cilium/cilium

项目简介
Cilium 是基于 eBPF 的高性能网络、安全和可观测性解决方案。

核心特性

  • eBPF 高性能:内核级网络处理
  • 🔐 L3-L7 网络策略:支持 HTTP/gRPC 规则
  • 📊 可观测性:Hubble 网络可视化
  • 🔄 Service Mesh:无 Sidecar 服务网格
  • 🛡️ 透明加密:WireGuard/IPsec

18. Istio

GitHub: https://github.com/istio/istio

项目简介
Istio 是最流行的 Service Mesh 实现,提供服务间通信、安全和可观测性。

核心特性

  • 🔄 流量管理:灰度发布、故障注入
  • 🔐 安全:mTLS 加密、认证授权
  • 📊 可观测性:指标、日志、追踪
  • 🔧 Envoy Sidecar:代理数据平面

十、存储类

19. Rook

GitHub: https://github.com/rook/rook

项目简介
Rook 是云原生存储编排器,将分布式存储系统(如 Ceph)以云原生方式部署到 K8s。

核心特性

  • 💾 Ceph 集成:块存储、对象存储、文件系统
  • 🔄 自动运维:自动扩缩容、故障恢复
  • 📦 CRD 管理:声明式存储配置
  • 🔐 加密支持:存储加密

20. Longhorn

GitHub: https://github.com/longhorn/longhorn

项目简介
Longhorn 是 Rancher 开源的云原生分布式块存储解决方案。

核心特性

  • 💾 分布式块存储:副本冗余
  • 🔄 快照/备份:支持 S3 存储
  • 📊 UI 管理:可视化存储管理
  • 🔧 轻量部署:易于安装维护

项目对比总结

类别 项目名称 核心能力 开发者 适用场景
容器平台 KubeSphere 全栈容器平台 青云 企业级平台
K3s 轻量级 K8s Rancher/SUSE 边缘、IoT
Rancher 多集群管理 SUSE 企业多集群
多集群 Karmada 多集群编排 华为 多云/混合云
OCM 集群注册管理 Red Hat 多集群治理
边缘计算 KubeEdge 云边协同 华为 边缘 IoT
OpenYurt 无侵入边缘化 阿里云 边缘计算
虚拟化 KubeVirt VM on K8s Red Hat 虚机容器混合
AI/HPC Volcano 批任务调度 华为 AI 训练、HPC
Kubeflow ML 平台 Google 机器学习
GitOps ArgoCD GitOps CD CNCF 持续交付
FluxCD GitOps CD CNCF 持续交付
可观测 Prometheus Operator 监控管理 CNCF 监控告警
Thanos 长期存储 CNCF 多集群监控
安全 Cert-Manager 证书管理 CNCF TLS 自动化
Gatekeeper 策略治理 CNCF 准入控制
网络 Cilium eBPF 网络 CNCF 高性能网络
Istio Service Mesh CNCF 服务网格
存储 Rook 存储编排 CNCF 分布式存储
Longhorn 块存储 SUSE 云原生存储

二次开发技术栈

开发框架

框架 用途 GitHub
Kubebuilder 构建 Operator kubernetes-sigs/kubebuilder
Operator SDK Operator 开发 SDK operator-framework/operator-sdk
Controller Runtime 控制器运行时 kubernetes-sigs/controller-runtime
Kustomize 配置管理 kubernetes-sigs/kustomize
Helm 包管理 helm/helm

核心概念

1
2
3
4
5
6
7
8
9
10
11
12
13
┌─────────────────────────────────────────────────────────┐
│ CRD (Custom Resource Definition) │
│ 定义自定义资源类型(扩展 K8s API) │
├─────────────────────────────────────────────────────────┤
│ CR (Custom Resource) │
│ CRD 的实例 │
├─────────────────────────────────────────────────────────┤
│ Controller │
│ 监听资源变化,调和期望状态 │
├─────────────────────────────────────────────────────────┤
│ Webhook │
│ 准入控制、校验、默认值设置 │
└─────────────────────────────────────────────────────────┘

开发模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1. 声明式 API
- 用户提交期望状态(YAML)
- 系统持续调和到期望状态

2. 控制器模式
for {
实际状态 := 获取集群当前状态()
期望状态 := 获取CR定义的期望状态()
if 实际状态 != 期望状态 {
执行调和操作()
}
}

3. Operator = CRD + Controller
- 封装运维知识
- 自动化运维操作

学习资源

官方文档

推荐书籍

  • 《Kubernetes 编程》
  • 《Kubernetes Operator 开发指南》
  • 《云原生模式》

社区资源


总结

Kubernetes 二次开发生态系统极其丰富,覆盖了云原生应用的方方面面:

  1. 平台层:KubeSphere、K3s、Rancher 降低 K8s 使用门槛
  2. 边缘计算:KubeEdge、OpenYurt 将 K8s 能力延伸到边缘
  3. 多集群:Karmada 解决多云/混合云管理
  4. 虚拟化:KubeVirt 实现容器与虚拟机统一
  5. AI 场景:Volcano、Kubeflow 支撑 AI 工作负载
  6. GitOps:ArgoCD、FluxCD 实现声明式持续交付

二次开发的核心是 Operator 模式,通过 CRD 扩展 K8s API,通过 Controller 实现业务逻辑自动化。

常见操作

目标操作 操作 (中文) 键盘快捷键 (默认前缀 Ctrl + b + 键) 命令 (在 Shell 中运行)
会话 (Session) 操作
创建 ==创建一个新的 Session 并附着== 无 (或直接运行 tmux) tmux new -s <名称>
分离 从当前 Session 分离(保持后台运行) d tmux detach
附着 附着到最近或指定的 Session tmux attach -t <名称>
列表 列出所有正在运行的 Session。==方向键上下移动选中session后按回车,进入对应session。== s tmux ls
删除 ==删除session==/kill session tmux kill-session -t $SESSION_NMAE
窗口 (Window) 操作
新建 ==在当前 Session 中新建一个 Window== c tmux new-window -n <名称>
切换 切换到下一个 Window n tmux next-window
切换 切换到上一个 Window p tmux previous-window
切换 ==切换到指定编号的 Window== 09 tmux select-window -t <编号>
重命名 ==重命名当前 Window== , tmux rename-window <新名称>
关闭 ==关闭当前 Window==/kill window & tmux kill-window
窗格 (Pane) 操作
水平分割 ==将当前 Pane 水平分割(上下)== " (双引号) tmux split-window
垂直分割 ==将当前 Pane 垂直分割(左右)== % (百分号) tmux split-window -h
切换 切换到下一个 Pane o tmux select-pane -t :.+
移动 ==移动到上下左右的 Pane== Arrow Keys (方向键) tmux select-pane -<方向>
最大化/恢复 ==最大化或恢复当前 Pane== z tmux zoom-pane
删除 ==删除当前pane==/kill pane x

配置文件

vi ~/.tmux.conf
set -g mouse on //添加鼠标支持

怎么用top和ps命令组合找出CPU占用最高的进程?

1
2
3
4
```
```bash
top -b -n 1 | head -n 10 | grep -v "top" | awk '{print $1}' | xargs -I {} ps -p {} -o pid,ppid,pcpu,cmd,user

怎么用tcpdump抓包分析网络延迟问题?

1
tcpdump -i any -nn -s 0 -t -w tcp_delay.pcap dst host 192.168.1.100 and dst port 8080 and tcp

SRE 职位要求图片展示

以下图片展示了 SRE 职位的具体要求:

SRE 职位要求图片

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

🔬 概述:从物理现象到生成式 AI

扩散模型(Diffusion Models, DMs)作为一种前沿的生成式人工智能技术,其核心设计理念直接来源于非平衡态热力学(Nonequilibrium Thermodynamics)物理学中的扩散现象

这两者之间的关系并非偶然的命名相似,而是扩散模型在数学和理论上对自然界扩散过程的模仿与逆转


1. 热力学扩散定律(物理基础)

在物理学和化学中,扩散是一个自发的、趋向于热平衡的弛豫过程。它描述了粒子从高浓度(高化学势)区域低浓度(低化学势)区域的净迁移。

核心数学描述:菲克定律(Fick’s Laws)

  • 驱动力: 浓度梯度或化学势梯度。
  • 数学模型: 菲克第二定律(Fick’s Second Law)是一个抛物型偏微分方程,它描述了浓度随时间和空间的变化:
    $$
    \frac{\partial \phi}{\partial t} = D \nabla^2 \phi
    $$
    其中:
    • $\phi$ 是浓度或密度。
    • $t$ 是时间。
    • $D$ 是扩散系数。
    • $\nabla^2$ 是拉普拉斯算子,代表空间上的二阶导数(浓度梯度变化)。
  • 物理意义: 这个方程描述了粒子在布朗运动(随机运动)影响下,密度分布如何随时间趋于均匀(熵增)。

2. 扩散模型(Diffusion Models, DMs)的架构

扩散模型是一类潜变量模型,通过马尔可夫链进行训练,其工作流程分为两个主要阶段,精确地对应了物理扩散过程的正向逆向

A. 前向过程(Forward Process / 加噪过程)

  • 目的: 系统地破坏数据结构。
  • 操作: 从一个清晰的数据样本(例如图像 $X_0$)开始,在多个时间步长(T)内,逐步、有规律地添加微小的高斯白噪声
  • 物理类比: 这模拟了自然界的热力学扩散过程——从有序(清晰图像)到无序(纯噪声)的过程,如墨水滴入水中逐渐弥散。这是一个不可逆的熵增过程。
  • 结果: 在 $T$ 步之后,原始数据完全退化为服从简单高斯分布的纯噪声 $X_T$。

B. 逆向过程(Reverse Process / 去噪过程)

  • 目的: 从纯噪声中重建原始数据。
  • 操作: 训练一个神经网络(通常是 U-Net 架构)来学习并预测前向过程中每一步所添加的噪声,并将其减去。
  • 物理类比: 这相当于学习逆转物理扩散过程——将无序的噪声去噪(去随机化)成有序、连贯的图像。在理论上,这可以看作是反向热力学过程
  • 结果: 从纯噪声 $X_T$ 开始,通过逐步的去噪,最终生成一个新的、高质量的数据样本 $X_0$。

3. 核心关系:随机微分方程(SDE)

扩散模型和物理扩散定律最深刻的联系在于其数学形式

  • 物理学: 扩散现象(如布朗运动)通常由朗之万方程(Langevin Equation)或更一般的**随机微分方程(SDE)**来描述。
  • 扩散模型: DMs 的前向加噪过程在数学上正是通过一个离散化的 SDE 或随机马尔可夫链来建模的,其中“噪声项”反映了随机的热力学波动。

理论借鉴:非平衡态热力学

扩散模型的早期和高级研究借鉴了随机热力学(Stochastic Thermodynamics)非平衡态热力学的原理。

  1. 自由能和势能: 在某些理论框架下,生成模型(包括扩散模型)可以被视为在学习数据分布的“自由能”或“势能”景观。扩散和去噪过程则是在这个景观上进行梯度下降或采样的动态过程。
  2. 昂萨格倒易关系: 扩散作为一种输运现象,与热力学中的昂萨格倒易关系等概念相联系,为扩散模型提供了严谨的理论基础,例如用于分析生成速度、准确性和热力学耗散(熵产生)之间的权衡关系(即 Speed-Accuracy Trade-off)。

因此,扩散模型是借用物理学中经过严格验证的扩散动力学(一个从有序到无序的熵增过程)作为其加噪框架,然后训练一个深度神经网络来学习该过程的时间逆转,从而实现高效和高质量的数据生成。

选择使用jupyter lab,代替notebook

原因

JupyterLab 是 Jupyter Notebook 的下一代、更现代、功能更强大的替代品。它们都服务于相同的核心目的:通过浏览器提供一个交互式计算环境。

当前遇到的问题

在已经安装jupyter notebook情况下,编辑markdown文件会不方便。

解决方案

1,关闭jupyter notebook

sudo netstat -vantup | grep 8888
kill pid

2, 启动jupyter lab,并指定监听8888端口

nohup jupyter lab –no-browser –port=8888 –ip=0.0.0.0 –allow-root &

这是你的正文内容

你可以在这里开始用 Markdown 语法撰写文章内容。

链接示例

加粗文字示例
在aws ec2上部署实例后ssh无法连接问题
症状:
1,从国内主机上ssh hostname,Connection closed by xx.xx.xx.xx port 22,或kex_exchange_identification: Connection closed by remote host
解决办法:
在ec2实例上将ssh监听端口从22改成其他,如23456,然后重新连接就好了。

这是你的正文内容

你可以在这里开始用 Markdown 语法撰写文章内容。

链接示例

加粗文字示例

下面这个命令好用,可以彻底从所有提交历史中移除大文件

git filter-branch –force –index-filter ‘git rm –cached –ignore-unmatch .terraform/providers/registry.terraform.io/aliyun/alicloud/1.200.0/linux_amd64/terraform-provider-alicloud_v1.200.0’ –prune-empty –tag-name-filter cat – –all

下面这个命令不好用:

git filter-repo –path .terraform/ –invert-paths

0%