将推理 LLM 打造为 PINN 开发的解题伙伴
作为一名 物理信息神经网络 (PINN) 的从业者,我的工作通常围绕着学习新的 PINN 概念、为新的 PINN 项目实现原型代码,以及在 PINN 训练失败时调试实现。如果我能有一个解题伙伴,为我的特定问题提供有价值的、可操作的见解,我的生活肯定会轻松得多。
最近,大型语言模型 (LLM) 已被广泛用于编码辅助和一般查询。因此,很自然地会考虑将它们作为有前景的协同助手。然而,鉴于 PINN 开发固有的复杂性,并非每个 LLM 都能胜任这项任务。
我需要的是一个 推理 LLM。
与生成即时响应的“传统”LLM 模型(例如 GPT-4)不同,推理 LLM 被设计为在回答之前进行“思考”。它们利用所谓的思维链 (CoT) 技术,将复杂问题系统地分解为更小的逻辑步骤,然后再生成答案,从而使它们能够更准确地解决数学、编码和科学挑战。
其中一个模型是 DeepSeek-R1,这是一个最近发布的推理 LLM,它已经席卷了整个社区。它是第一个声称其推理能力与 OpenAI 的 o1 模型(目前市场上功能最强大的模型,但属于闭源)相当的开源模型。
而最好的部分是:DeepSeek-R1 作为网络应用程序是免费提供的。这意味着 PINN 从业者可以利用其推理能力来增强工作流程,而无需昂贵的订阅或复杂的设置过程。
但它真的能达到预期吗?它能提高我们在 PINN 开发中的生产力、创造力和解决问题的效率吗?
在这篇博文中,让我们来测试一下 DeepSeek-R1!基于我遇到的典型用例,我整理了一系列测试,从基础概念到实践编码,再到调试,最后到解决高级工业研究设计。
图 1 我们在 PINN 开发周期的不同阶段测试推理 LLM 的“有用性”。(图片由作者提供)
目录
- • 0. 组织
- • 1. 基础概念
- • 2. 代码实现
- • 3. 故障排除
- • 4. 工业研究设计
- • 5. 总结
0. 组织
在深入研究之前,让我们讨论一下我们希望如何构建这些测试。
在这篇博文中,我们将使用 DeepSeek-R1 的网络应用程序,可以在这里访问:https://chat.deepseek.com/。您需要先注册(例如,使用您的 Google 帐户),然后才能与该模型聊天。要启用推理功能,请单击“DeepThink (R1)”按钮以激活 DeepSeek-R1 模型:
图 2 我们使用激活了 R1 模型的 DeepSeek 网络应用程序。
还有其他访问方法可用,例如,您可以通过 DeepSeek 移动应用程序、官方 API 或通过 Microsoft Azure AI Foundry 和 NVIDIA NIM Service 访问,这两个服务最近都将 DeepSeek-R1 模型添加到他们的模型目录中。
对于每个测试类别(例如,基础概念),我准备了一个典型的查询,输入到聊天界面中,我们可以根据生成的响应来检查模型的“有用性”。具体来说,我们将检查模型如何“思考”这个问题并得出最终答案。
现在我们准备出发了 🚀
1. 基础概念
在第一个类别中,我们测试 DeepSeek-R1 是否可以为 PINN 相关概念提供准确的、按需的解释。这对于试图掌握基本原理或需要快速澄清高级主题的从业者来说尤其有益。
让我们尝试以下测试查询:
- • 什么是 DeepONet,它与物理信息神经网络有何不同?
这是我从刚接触物理信息机器学习领域的新同事那里收到的最常见的问题之一。 DeepONet 是一个相当新的概念,很容易与 PINN 混淆,因为这两种方法都使用神经网络来求解微分方程。理解这两个概念之间的区别对于为给定问题选择正确的方法至关重要。因此,让我们问问 DeepSeek-R1,看看它如何回应。
图 3 基础概念类别下的测试查询。
由于 DeepSeek-R1 是一个推理 LLM,它将花费更多时间来分析问题并决定解决问题的角度。在这种情况下,它“思考”了 37 秒才得出最终答案:
图 4 DeepSeek-R1 生成的答案
相当全面的回应!DeepSeek-R1 解释了这两种模型在目标、架构、训练数据和用例方面的差异,并将它们总结在一个格式良好的表格中。此外,它认识到存在 DeepONet 的物理信息变体,该变体融合了这两个框架的关键思想。
DeepSeek-R1 的一个优点是,除了最终答案之外,您还可以看到它经历的整个思考过程。完整的记录太长,无法在此处显示。相反,我总结了以下关键的逻辑步骤:
- \1. 回忆一般的神经网络应用。
- \2. 将 PINN 识别为用于求解 PDE 的物理约束网络。
- \3. 将 DeepONet 识别为算子学习框架,即函数之间的映射。
- \4. 分析 DeepONet 的结构:分支和干线网络。
- \5. 比较目标:PINN 求解特定的 PDE,而 DeepONet 学习解算子。
- \6. 比较架构:PINN 使用标准前馈,DeepONet 使用分支-干线。
- \7. 比较数据需求:PINN 依赖于物理学,DeepONet 需要函数对数据集。
- \8. 承认重叠和混合方法(例如,物理信息 DeepONet)。
- \9. 结论:DeepONet 概括了 PDE 实例,而 PINN 求解特定情况。
我们可以看到逻辑序列是自然的、清晰的、结构良好的。我强烈建议您自己尝试一下,阅读 DeepSeek-R1 的完整“独白”会更有趣😊
如果您对深入学习 DeepONet 和 物理信息 DeepONet 感兴趣,请随时查看我在此处发布的文章:
通过物理信息 DeepONet 进行算子学习:让我们从头开始实现它
使用物理信息 DeepONet 解决逆问题:带有代码实现的实用指南
2. 代码实现
我们要测试的下一个类别是 DeepSeek-R1 协助 PINN 代码实现的能力。这是最实用和最常用的用例之一,即编写样板代码和可自定义的模板,以减少新实验的设置时间。
让我们尝试以下测试查询:
- • 我正在研究金属棒 1D 热传导问题,并且我对使用 PINN 来推断给定几个空间点传感器测量值的未知热扩散率感兴趣。请生成完整的 PyTorch 实现。
图 5. 代码实现类别下的测试查询。
在这里,我们要求该模型为实际的工程应用开发一个功能齐全的 PINN 解决方案(在 PyTorch 中)。请注意,我们正在考虑的特定任务是一个参数估计问题,这是一种逆问题,与更常见的 PINN 直接求解 PDE 的应用(即经典的正向问题)不同。
由于此任务要求模型不仅要“思考”如何制定解决方案,还要实现相应的 PyTorch 代码,因此它花费了 4 分钟以上的时间才得出最终答案。让我们来看看。
==== 注意:以下代码完全由 DeepSeek-R1 生成 =====
import torch
import torch.nn as nn
import torch.optim as optim
### Set random seeds for reproducibility
torch.manual_seed(42)
### Generate synthetic training data
defexact_solution(x, t, alpha):
return torch.sin(torch.pi * x) * torch.exp(-alpha * (torch.pi**2) * t)
alpha_true = 0.5# True thermal diffusivity to be inferred
### Sensor measurements (randomly sampled in domain)
N_data = 200
x_data = torch.rand((N_data, 1)) # Random spatial points
t_data = torch.rand((N_data, 1)) # Random temporal points
u_data = exact_solution(x_data, t_data, alpha_true)
### Boundary and initial condition points
N_bc = 100
x_bc = torch.cat([torch.zeros(N_bc//2, 1), torch.ones(N_bc//2, 1)], dim=0)
t_bc = torch.rand(N_bc, 1)
u_bc = torch.zeros(N_bc, 1) # Boundary condition (0 at both ends)
N_ic = 100
x_ic = torch.rand(N_ic, 1)
t_ic = torch.zeros(N_ic, 1)
u_ic = torch.sin(torch.pi * x_ic) # Initial condition
### Collocation points for PDE residual
N_col = 1000
x_col = torch.rand(N_col, 1)
t_col = torch.rand(N_col, 1)
### Define PINN architecture
classHeatPINN(nn.Module):
def__init__(self):
super().__init__()
self.net = nn.Sequential(
nn.Linear(2, 32), nn.Tanh(),
nn.Linear(32, 32), nn.Tanh(),
nn.Linear(32, 32), nn.Tanh(),
nn.Linear(32, 1)
)
self.alpha = nn.Parameter(torch.tensor([0.1])) # Initial guess
defforward(self, x, t):
returnself.net(torch.cat([x, t], dim=1))
### Initialize model and optimizer
model = HeatPINN()
optimizer = optim.Adam(model.parameters(), lr=0.001)
defcompute_loss():
# Data loss
u_pred = model(x_data, t_data)
loss_data = nn.functional.mse_loss(u_pred, u_data)
# Boundary condition loss
u_bc_pred = model(x_bc, t_bc)
loss_bc = nn.functional.mse_loss(u_bc_pred, u_bc)
# Initial condition loss
u_ic_pred = model(x_ic, t_ic)
loss_ic = nn.functional.mse_loss(u_ic_pred, u_ic)
物理损失 (PDE 残差)
x_col.requires_grad = True
t_col.requires_grad = True
u = model(x_col, t_col)
## Compute gradients
u_t = torch.autograd.grad(u, t_col,
grad_outputs=torch.ones_like(u),
create_graph=True)[0]
u_x = torch.autograd.grad(u, x_col,
grad_outputs=torch.ones_like(u),
create_graph=True)[0]
u_xx = torch.autograd.grad(u_x, x_col,
grad_outputs=torch.ones_like(u_x),
create_graph=True)[0]
## PDE residual
residual = u_t - model.alpha * u_xx
loss_pde = torch.mean(residual**2)
## Total loss
return loss_data + loss_bc + loss_ic + loss_pde
### Training loop
epochs = 5000
for epoch inrange(epochs):
optimizer.zero_grad()
loss = compute_loss()
loss.backward()
optimizer.step()
if epoch % 500 == 0:
print(f"Epoch {epoch:5d} | Loss: {loss.item():.2e} | Alpha: {model.alpha.item():.4f}")
print(f"\nTrue alpha: {alpha_true:.4f}")
print(f"Predicted alpha: {model.alpha.item():.4f}")
该实现提供了一个坚实的基础,其中包含构建 PINN 的所有基本组件:前馈网络架构、边界和初始条件的执行、物理信息损失和传感器数据损失的结合、搭配点的生成、用于计算梯度的自动微分以及将所有内容放在一起的训练循环。
这个实现的一个优点是,模型与参数估计目标对齐,并使用 nn.Parameter()
将热扩散率 α 正确设置为可训练参数,并将其值与网络权重和偏差一起优化。这是利用 PINN 解决逆问题的一种有效方法。
此外,该模型更进一步,提供了一个具有已知解析解的测试案例。这允许用户方便地验证实现。一个很大的加分项!
我运行了生成的代码,得到了预期的结果,没有任何错误(可视化是我自己编写的):
图 6. 使用 PINN 估计未知参数的收敛曲线。
再次,我强烈建议您试一试,并记住看看它的完整“思考”过程。我相信您会觉得它很有趣 😃
如果您有兴趣了解更多关于使用 PINN 解决逆问题的信息,请随时查看我在这里发布的文章:使用物理信息神经网络和符号回归发现微分方程。
3. 故障排除
在提供了关于基础概念的解释并协助实现代码之后,我们接下来要研究的主题是模型是否可以帮助我们排除 PINN 训练运行失败的故障。
由于 PINN 的开发涉及许多活动部件,因此调试失败的训练运行非常困难。这正是 PINN 从业者将受益于拥有一位解决问题的合作伙伴的时候,他们可以从各个角度检查问题并提供可能被忽略的新见解。
让我们尝试以下测试查询:
- • 我正在训练一个 PINN 来求解微流体通道中粘性流动的稳态 2D 斯托克斯方程。我的神经网络有 4 层(每层 32 个神经元,ReLU 激活),我的优化器是 Adam,学习率为 1e-3。但是,即使经过 10000 次迭代后,损失也不会收敛并保持在高值,并且预测的速度场是非物理的。如何调试此问题?
图 7. 故障排除类别下的测试查询。
这是模型产生的响应:
图 8. DeepSeek-R1 模型产生的响应。
该模型生成了一份潜在问题的综合列表,从那些经常被忽视的点开始,例如边界条件的执行、激活函数选择、损失函数平衡和输入归一化。在涵盖了这些快速检查之后,该模型还提出了更深入的步骤,例如超参数调整和高级采样。
如果我们检查模型的逻辑链(由于页面限制,此处未显示),我们可以看到模型首先澄清问题(即,识别目标问题,斯托克斯流,并回忆 PINN 的工作原理),然后识别可能的故障点(例如,激活函数等)并提出具体的调试步骤。在我看来,这种推理过程结构良好,它不仅提供了有用的调试帮助,而且使建议具有可解释性和透明性。
在实践中,当使用 DeepSeek-R1 进行故障排除时,始终包含足够的上下文(如实现细节和问题的症状描述)是一个好主意。总的来说,我们的提示越具体,模型就越能推理问题并提供量身定制的根本原因分析。
4. 工业研究设计
对于最后一个类别,我们稍微偏离纯粹的技术问题解决,探讨从业者可能面临的更高级别的挑战,即设计 PINN 相关的研究。
PINN 从业者的主要任务之一是将算法开发转化为实用的工业解决方案。这包括设计可行性研究、展示业务价值以及沟通结果以获得利益相关者的支持。如果推理 LLM 能够在这里成为一个有效的助手,那就太好了。
让我们尝试以下测试查询:
- • 我正在一家工业公司领导一个研发项目,以评估 PINN 在异常检测方面的可行性。我们的目标是使用(稀疏的)传感器数据(来自压力和流量测量)来检测管道泄漏。我应该如何设计这项研究,以验证 PINN 的可行性并向利益相关者展示其价值?
图 9. 工业研究设计类别下的测试查询。
这是模型生成的响应:
图 10. 模型响应 — 1
图 11. 模型响应 — 2
图 12. 模型响应 — 3
我认为模型提出的计划结构良好且全面。该路线图清晰且合乎逻辑,涵盖了可行性调查的各个方面,例如,成功指标定义、数据策略、模型基准测试、成本效益分析以及解决方案部署的工程考虑。我特别喜欢关于使用仪表板可视化向利益相关者展示的部分。利益相关者可能不是技术人员。创建可视化仪表板并显示实时比较是使结果更易于访问和可操作的关键。总的来说,我们可以看到像 DeepSeek-R1 这样的推理 LLM 可以成为 PINN 从业者起草工业研究的得力助手。
5. 总结
在这篇博文中,我们系统地评估了使用推理 LLM (DeepSeek-R1) 作为 PINN 从业者问题解决伙伴的潜力。我们探讨了四个与日常 PINN 开发高度相关的关键任务类别:
- \1. 阐明基本概念
- \2. 生成功能代码
- \3. 解决问题
- \4. 头脑风暴可行性研究
在所有这些任务中,我们看到 DeepSeek-R1 可以正确地“思考”这个问题,并提出有见地的答案或可行的建议。
DeepSeek-R1(和其他推理 LLM)的一个突出特点是,除了最终答案之外,模型还输出了其响应背后所采取的整个逻辑步骤序列。这使得模型的响应更透明、更易于解释。如果您正在处理复杂的问题,请不要忘记查看那些中间的“想法”。您可能已经在过程中受到启发 ✨。
DeepSeek无疑是2025开年AI圈的一匹黑马,在一众AI大模型中,DeepSeek以低价高性能的优势脱颖而出。DeepSeek的上线实现了AI界的又一大突破,各大科技巨头都火速出手,争先抢占DeepSeek大模型的流量风口。
DeepSeek的爆火,远不止于此。它是一场属于每个人的科技革命,一次打破界限的机会,一次让普通人也能逆袭契机。
DeepSeek的优点
掌握DeepSeek对于转行大模型领域的人来说是一个很大的优势,目前懂得大模型技术方面的人才很稀缺,而DeepSeek就是一个突破口。现在越来越多的人才都想往大模型方向转行,对于想要转行创业,提升自我的人来说是一个不可多得的机会。
那么应该如何学习大模型
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?
”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人」
,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
大模型岗位需求越来越大,但是相关岗位人才难求,薪资持续走高,AI运营薪资平均值约18457元,AI工程师薪资平均值约37336元,大模型算法薪资平均值约39607元。
掌握大模型技术你还能拥有更多可能性:
• 成为一名全栈大模型工程师,包括Prompt,LangChain,LoRA等技术开发、运营、产品等方向全栈工程;
• 能够拥有模型二次训练和微调能力,带领大家完成智能对话、文生图等热门应用;
• 薪资上浮10%-20%,覆盖更多高薪岗位,这是一个高需求、高待遇的热门方向和领域;
• 更优质的项目可以为未来创新创业提供基石。
可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把都打包整理好,希望能够真正帮助到大家。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【
保证100%免费
】
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】