语言模型原理与实战:从N-gram到Transformer的演进与工程选型

做NLP这几年,我有个很深的感受:很多人张口闭口“语言模型”“大模型”,但真把一个问题扔过去——“用一句话说清楚语言模型在做什么”——能讲明白的,其实没几个。语言模型的核心任务听起来非常朴素:给定前面几个词,预测下一个词。就是这个朴素到有点不起眼的“接话”游戏,撑起了输入法联想、机器翻译、文本续写、语音识别排序、智能客服意图识别这一整片应用。

这篇文章我想从一个从业者的视角,把语言模型这件事从底到顶捋一遍。不绕开数学,但尽量用直觉讲清楚;不回避代码,但重点放到设计思路和踩坑经验上。无论你是刚入 NLP 的学生,还是已经用预训练模型在做业务开发的工程师,应该都能从里面拿到点东西。

1. 语言模型到底在解决什么问题:一个普通却撑起半个NLP的“接话”任务

1.1 从“接话”开始理解语言模型

我在带新人入门时,最常用的类比就是“接话”。你发一句消息:“今天天气真”,正常人会接上“不错”“好”“热”之类的话。语言模型做的就是这件事:根据已有的词,预测下一个最合理的词。

形式化一点,语言模型要学的其实是整个序列的概率分布。给定一句话里面出现的词序列 ( w_1, w_2, ..., w_T ),一个语言模型能计算出这句话整体出现的概率 ( P(w_1, w_2, ..., w_T) )。借助链式法则,这个联合概率可以拆成:

[ P(w_1, w_2, ..., w_T) = \prod_{t=1}^T P(w_t | w_1, w_2, ..., w_{t-1}) ]

也就是说,整句话的概率等于“在每个时间点上,给定前面所有词、预测当前词的概率”连乘起来。看起来就是一次次接话,但一旦模型学会了这种条件概率分布,它就能回答两类问题:给一段文本打分(判断像不像人话),以及生成一段文本(不断取预测结果喂回去)。

这两件事就是 NLP 里几乎所有上层应用的“水电煤”。

1.2 为什么一个预测任务能撑起一门学科的基础

很多人会低估这个接话任务的分量,觉得“这不就是个自动补全吗”。但你要看它的下游应用面:

  • 文本生成:机器翻译、摘要、对话、文章续写,最朴素的实现路径都是语言模型逐词生成,只不过在不同任务里,输入和输出的组织方式不一样。
  • 文本判断与标注:给一句话打分、判断情绪、判断实体边界,这些看起来不是“生成”的任务,也可以借助语言模型知识来提取特征。从预训练时代起,语言模型学到的语义表示就成了分类、序列标注等任务的初始化底座。
  • 语音识别:声学模型给出多个候选音节或候选词序列,语言模型负责从中选出概率更高的那一组。这也是语言模型最早的大规模工业应用之一。
  • 异常检测:网络钓鱼邮件、垃圾文本、机器人刷屏等内容,往往有着和正常文本差异很大的语言分布,语言模型打的“困惑度”分数可以直接当异常分数用。

换句话说,语言模型是 NLP 世界的一把通用钥匙。后面所有复杂的模型结构、训练技巧、推理优化,最终服务的都还是“把上下文编码好,把下一个词预测准”这个总目标。

2. 从统计计数到神经网络:语言模型的两次范式跃迁

2.1 N-gram时代:计数、马尔可夫假设与稀疏性的老问题

最早的语言模型靠的是数数。这是整个领域里我非常怀念也觉得很值得理解的一个时代,因为它的数学直觉极其干净。

假设我们现在要预测“今天天气真____”的下一个词。传统 N-gram 的做法是:去一个很大的语料库里面数“今天天气真不错”出现了多少次、“今天天气真好”出现了多少次、“今天天气真热”出现了多少次,然后找到出现次数最多的那个。这就是统计语言模型。但是语言里词和词的组合实在太多了,指望记住所有完整的句子是不可能的,于是人们引入马尔可夫假设:当前词只依赖前 n-1 个词,而不依赖整个历史。

于是公式变成:

[ P(w_t | w_1, ..., w_{t-1}) \approx P(w_t | w_{t-n+1}, ..., w_{t-1}) ]

n 取 2 就叫做 bigram,取 3 叫 trigram。工业界用得比较多的通常也就是 trigram 到 5-gram 之间,再往上数据稀疏问题就会彻底爆炸。

这里最容易踩的坑就是稀疏性。假设词表大小是 5 万,理论上 trigram 的组合数是 5 万的 3 次方,这个量级根本没有语料能覆盖。也就是说,无论你用多少数据训练,总会有大量三元组从未出现过,程序一算概率直接得 0,整句话概率变成 0,这在真实系统里是不可接受的。

解决办法是平滑技术。最简单的加 1 平滑(也叫拉普拉斯平滑),就是给所有没出现过的组合一个很小的基础概率:

[ P(w_n | w_{n-2}, w_{n-1}) = \frac{count(w_{n-2}, w_{n-1}, w_n) + 1}{count(w_{n-2}, w_{n-1}) + V} ]

V 是词表大小。它避免了零概率,但也有明显副作用:当词表很大时,每个没见过的组合都要分走一瓢概率,平滑系数稍微调大一点,见过的组合概率也会被压得很低。所以后来才有一堆更聪明的平滑手段,比如回退模型和插值模型,低阶统计量来兜底高阶统计量的稀疏区间。

N-gram 时代还有一个致命局限:它判断两个词是否相关,只看字面是否相同,看不出“猫”和“猫科动物”在语义上是近亲。这个局限,要等神经网络语言模型来解。

2.2 神经网络语言模型:从离散计数到连续向量

神经网络语言模型的革命性变化,就是把每个词从一个人为编号的离散符号,变成了一个稠密的实数向量。这个向量学出来之后,语义相近的词在向量空间里会相互靠近。于是模型不再需要死记硬背“今天天气真”后面接哪个词最多,而是学会了在向量空间里把上下文组合成一个语义状态,再从这个状态去预测下一个词。

神经语言模型第一次把“泛化”真正带进了语言建模。哪怕“今晚温度真高”这句话完全没在训练语料里出现过,只要模型见过“天气——温度”“不错——高”这样的近义替换,就能给你的新句子一个合理的概率估计。

早期结构里,循环神经网络(RNN)和它的变体 LSTM 是绝对主角。它们的想法非常直观:把文本按顺序读进去,每读一个词,就更新一次“记忆状态”,读到最后,这个状态里沉淀了整句话的信息。这个机制在今天看来简直到处是坑——顺序计算太慢、长距离信息容易在传递过程中被稀释——但它们是连接统计时代和注意力时代的关键桥梁。

2.3 长距离依赖问题:为什么“看得远”这么难

真正促使整个领域转向注意力的,是长距离依赖问题。别听名字玄乎,其实特别容易理解:有些概率关系,需要跨很远的距离才能建立。

举个例子:“那栋红砖墙的房子已经很旧了,我不确定政府会不会考虑保护___。”空里要填“它”还是“他”,取决于 20 个词之前的“房子”。统计语言模型在这种情况下几乎无能为力,因为它的窗口就那么几个词。RNN 理论上可以记住所有历史,实际上梯度在反向传播中会不断相乘,错误信号传不了太远就消失或者爆炸了。LSTM 用门控机制缓解了一点这个问题,但也只是从“完全记不住”改善到“能记住一些中距离线索”。

那时候研究者心里其实已经明白:语言建模真正需要的,是让每个位置都能直接“看到”全局的相关信息,而不是靠一条链子把信息一段一段传过去。这个需求,最终催生了注意力机制,而基于注意力的 Transformer 架构把语言模型送进了新时代。

3. 困惑度(Perplexity)别只当数字看:语言模型评估的关键与陷阱

3.1 困惑度到底在算什么

评估语言模型最常用的指标是困惑度(Perplexity),符号记作 PPL。它和模型给整个测试集的平均负对数似然紧密相关,公式通常写成:

[ PPL = \exp\left(-\frac{1}{N}\sum_{t=1}^N \log P(w_t | w_{<t})\right) ]

看着吓人,直觉其实特别好懂。假设一个模型在某个位置的预测概率分布在 100 个词上完全均匀,那它的困惑度就是 100。也就是说,困惑度可以理解为“模型在每一步平均面临多少个等概率的候选词”。困惑度 20,相当于模型每一步平均只需要从 20 个左右的选择里蒙一个,这已经相当不错了;困惑度 5000,说明模型基本在乱猜,或者遇到了和自己训练分布差很远的文本。

做实验的时候,我一般会同时看两个数字:验证集困惑度和训练集困惑度。如果验证集困惑度降不下去,而训练集已经降得很低,模型多半在背训练数据,泛化没跟上。反过来,如果两边都高,那就是欠拟合,要么模型容量不够,要么数据太乱,要么训练步数没跑够。

3.2 一个真实项目里的困惑度对照

去年我带着一个模拟项目练手,任务是在某领域新闻语料上训练一个字符级语言模型。语料大约 3 亿字符,字符表 5000 个左右。对比下来有几个直观数据:

模型形态验证集困惑度备注
5-gram + 加1平滑300+很多低频字组合完全没见过,平滑给的基础概率太低
LSTM(隐层 512,2层)80 左右字向量能从上下文中学到规律,明显优于n-gram
Transformer+相对位置编码(6层,隐层512)50 左右收敛更快,长距离信息保持更好

这个差距在真实文本生成里非常明显。困惑度 300 的模型,生成出来的字和字之间经常前言不搭后语;困惑度降到 50 后,至少局部上下文能保持通顺。当然这些都还在字符级模型的范畴,放到子词级或大规模预训练模型上,数值会再低一个量级。

3.3 困惑度低,不代表生成质量一定好

这是我最想提醒大家的一点。困惑度衡量的是“模型对测试数据的概率拟合程度”,而不是“文本流畅度”或“事实正确率”。

我见过好几个项目,团队辛辛苦苦把困惑度从 45 压到 30,兴冲冲拿模型去生成文案,结果出来的文本平淡乏味,翻来覆去就是那几个高频句式。原因不复杂:困惑度只鼓励模型给出高概率答案,而高概率的结果往往是“安全”的常见表达,多样性天然不足。模型可以变成一个“平庸但稳”的接话者,但未必是“有趣且信息量足”的写手。

所以生产环境里我从来不把困惑度当成唯一指标。评测一个生成模型,至少还要看:

  • 内容多样性:用 n-gram 覆盖率或生成样本间的相似度来量化。
  • 事实一致性:如果存在外部知识,要检查生成内容是否和知识库矛盾。
  • 人工偏好:拿几组生成结果做盲评,真实用户反馈比任何自动指标都可靠。
  • 负面指标:模型是否倾向于输出脏话、偏见内容、仇恨言论,这些在困惑度里完全看不出来。

4. Transformer与预训练时代:语言模型如何变成NLP基础设施

4.1 自注意力机制带来的两个关键改变

Transformer 的核心是自注意力(Self-Attention)。它的想法也很朴素:序列里每一个位置,都去计算和其他所有位置的关联权重,然后用这种权重把其他位置的信息加权融合过来。想让“房子”这个词去关注 20 个词之前的“红砖墙”,不需要像 RNN 那样一点一点传,一次注意力计算就能把两端的表示揉到一起。

这件事带来了两个关键改变。

第一是并行计算。RNN 必须按时间顺序一个词一个词算,Transformer 的所有位置可以同时做注意力计算,在大规模 GPU 集群上训练效率提升了几个数量级。这也是为什么当年那批大规模语言模型纷纷选择 Transformer 作为底座的核心原因——不是因为它数学上更美,而是因为它训得动。

第二是全局依赖建模。注意力的感受野是整个序列,不管是 20 个词还是 2000 个词,只要位置编码还有信息量,模型就有机会建立任意距离的联系。代价是注意力矩阵的大小随序列长度平方增长,所以实际使用中要用窗口注意力、稀疏注意力等方式去折衷。

4.2 预训练+微调范式的底层逻辑

Transformer 把语言模型做大之后,大家发现了一个特别美妙的性质:与其为每个任务训练一个全新模型,不如先用海量通用文本把语言模型训练好,这个阶段叫预训练;然后针对具体任务,用一小部分标注数据做一下适配,这个阶段叫微调。

为什么这套组合拳能成立?因为语言模型任务本身提供了一个极其强大的自监督信号——文本天然就是标签,下一段话是谁写的不重要,重要的是模型可以从任何语料上无休止地学习语义、语法、常识和世界知识。

预训练语言模型做分类任务时,就在语言模型之上接一个简单的分类头;做命名实体识别时,就在每个位置接一个标签预测头。底座已经通晓语言,新任务只需要学一层很薄的映射。这套范式大幅降低了 NLP 任务的开发门槛,也是今天所有大规模语言模型产品的基础操作。

4.3 理解型与生成型:一个内核两种用法

进入预训练时代后,语言模型按照建模方式分成了两条技术路线,理解型和生成型。

理解型(双向/掩码语言模型)的做法是在训练时随机遮住一部分词,让模型同时看左右两边的上下文去还原被遮住的词。由于信息来自双向,它学到的表示对语义理解任务更有优势——做分类、实体抽取、阅读理解都特别合适。

生成型(单向自回归语言模型)的做法是严格只允许看左边的词,然后预测右边的词。这一点和“语言模型预测下一个词”的原始定义完全一致,所以天然适合续写、翻译、摘要、对话等生成任务。

两条路线没有绝对优劣。当前比较一致的工程做法是:你要做哪种任务,就优先从对应形态的预训练模型出发。分类优先选双向结构,生成优先选自回归结构。硬要用一个文本生成模型去做意图分类,也不是不行,但通常效率低、效果差,属于拿大炮打蚊子。

5. 零基础动手实现一个迷你语言模型:从语料到训练闭环

5.1 语料准备与样本构造:先把数据喂对

不上手实操,语言模型永远是空中楼阁。我建议第一次动手就从一个小型字符级 Transformer 开始,整个训练环路能在一张消费级显卡上跑完,把原理看明白后再去接触那些工业级预训练模型。

第一个要处理的是数据。字符级模型的词表就是去重后的字符集,一般中文几千个,英文几十个,很省内存。但注意,字符级模型学起来会比较慢,长距离依赖也更难建立,所以它适合做教学和理解,不适合直接上生产。

构造样本时用滑动窗口切文本:

# 字符级语言模型训练样本构造(伪代码,框架无关) text = "深度学习让语言模型获得了巨大的发展" char_to_id = {ch: idx for idx, ch in enumerate(set(text))} ids = [char_to_id[ch] for ch in text] block_size = 16 # 上下文长度 batch = [] for i in range(len(ids) - block_size): x = ids[i:i + block_size] # 输入:前16个字符 y = ids[i + 1:i + block_size + 1] # 输出:后移一位的16个字符 batch.append((x, y))

这里有个特别容易犯的低级错误:输入和输出序列千万别错位。y必须是x整体右移一位,而不是把x复制一遍。很多人第一次跑语言模型 loss 不降,三分之一是数据对齐问题。

5.2 模型结构与训练循环:原理级实现

迷你语言模型的结构可以非常简练,就是词嵌入、位置编码、几层自注意力、一个输出映射到词表,然后接 softmax 和交叉熵损失。

# 迷你语言模型训练循环的核心步骤(伪代码,框架无关) # config: vocab_size=5000, block_size=16, n_layer=4, n_head=4, n_embd=256 # 1. 输入编码 tok_emb = embedding(x) # [batch, block_size, n_embd] pos_emb = position_embedding(arange(block_size)) h = tok_emb + pos_emb # 位置编码是加性融合 # 2. 多层自注意力 + 前馈 for _layer in range(n_layer): h = h + multi_head_attention(norm(h)) h = h + feed_forward(norm(h)) # 3. 输出投影到词表 logits = output_projection(norm(h)) # [batch, block_size, 5000] # 4. 交叉熵损失,目标y同样右移对齐 loss = cross_entropy(logits.view(-1, vocab_size), y.view(-1))

选择超参数的经验值,我一般这样起步:嵌入维度 256、4 层 Transformer、4 个头、上下文长度 128。批次大小在显存允许范围内尽量取大,比如 64。优化器用带权重衰减的 Adam 变体,初始学习率设在 1e-3 到 3e-4 之间,跑上二三十轮看趋势。

这里说明一下:嵌入维度太小,模型容量不足以学到深层次规律;太大会让训练变慢并容易过拟合。256 是最不容易出错的起点。头数乘上头维度要等于嵌入维度,这是 Transformer 实现里很常见的维度对齐约束。

5.3 训练中我踩过的四个典型坑

一路实操下来,有几个坑几乎每个人都会遇到。

第一,loss 直接变成 NaN。这时候八成是学习率太大,尤其是用了某些分层学习率策略或者权重衰减没设好。先把学习率降到原来的十分之一跑一下,排除这个因素再看数据里有没有包含无穷大或者普通文本里混入的乱码。

第二,loss 不降反升。先检查训练数据是不是在每一个 batch 里都被打乱了。语言模型极度依赖上下文顺序,如果你在 batch 内做了整句随机打乱还能想一想,如果连字符顺序都随机打乱了,模型当然学不到任何规律。

第三,上下文窗口越长训练越慢,但效果未必更好。窗口翻倍,注意力计算量约翻四倍。最稳妥的做法是先用短窗口跑通,确认现象合理后再逐步加长,别一上来就追求长上下文。

第四,过拟合在字符级模型上特别快。几千字符的小语料,模型很容易把整个语料背下来。验证集困惑度不再下降时,及时停训,或者加 dropout。

6. 生产环境下的选型心得:别让理论指标骗了你

6.1 按任务类型选模型的决策框架

真正落到生产项目里,语言模型的选型没那么玄学。我的经验是分三步走:先明确任务形态是生成式还是理解式,再评估数据量和算力预算,最后用一个小型基线模型跑通端到端流程,再决定要不要换更大的模型。

拿几个常见场景举例:

  • 电商评论情感分类:数据量中等,任务本身是判别式的,用中小型预训练模型加一个分类头微调,通常几天内就能拿到可用效果,完全不必要用大生成模型。
  • 智能客服答案生成:需要生成自然语句,对流畅度要求高,那就要用生成式模型。如果答案能映射到固定知识库,建议先做检索,再让模型基于检索片段做摘要,幻觉问题会少很多。
  • 代码自动补全:这个场景对长距离依赖要求很高,需要比较大的上下文窗口,同时对延迟敏感,一般要用针对代码语料做过增量训练的专用模型,并配合量化加速。

6.2 上下文长度、参数量与成本的三角权衡

很多团队一上来就想上“最能打”的大模型。但你必须算清楚三件事:上下文长度、参数量、推理成本。这三个变量互相制约。

上下文长度直接影响单次推理能接受多少输入。像长文档问答场景,输入动辄几千词,模型上下文太短就得到处切块拼接,效果大打折扣。但上下文窗口增大,注意力矩阵平方膨胀,GPU 显存和每 token 的推理延迟都会明显上升。

参数量的作用更直接:模型越大,学到知识和规律的上限越高,但训练和推理成本也越高。企业在真实业务里经常采用“底座大模型 + 蒸馏小模型”的组合方案:先用大模型处理最难的请求,把它的输出作为训练数据蒸馏一个小模型,用来承接绝大多数高频简单请求,成本能降一到两个数量级。

6.3 部署阶段的几个通用优化手段

调用延迟和成本优化,我的建议按顺序排查:先看能不能做批量推理,把多个请求拼成一个 batch 一起过模型,吞吐立刻上一个台阶;再看能不能用量化,把权重从高精度压到低精度,显存占用和计算量都下降,但要先在评测集上验证效果损失是否可以接受;最后才考虑模型裁剪和蒸馏,这属于手术级改造,需要重新训练,周期最长。

另一个容易被忽略的点是缓存设计。生成式任务往往会有大量共享前缀,比如客服系统里同一个开场白之后接不同问题,如果框架支持前缀缓存,重复的中间计算可以直接复用,推理延迟会大幅下降。我在好几个项目里都用这招把单次请求耗时压缩了接近一半。

做语言模型这些年,我最大的体会是:技术演进快得吓人,但评判标准始终没变。不管模型多大、多新,真正要回答的还是那三个问题——能不能接好话,能不能在任务上完成任务,能不能在成本范围内稳定上线。想清楚这三件事,再大的模型也只是工具箱里的一把工具。

相关新闻

CEF 3.2357 Windows 32位编译与NPAPI插件加载实战

CEF 3.2357 Windows 32位编译与NPAPI插件加载实战

简介&#xff1a;这份资源是CEF&#xff08;Chromium Embedded Framework&#xff09;3.2357.1271.g8e0674e的Windows 32位官方二进制包备份&#xff0c;面向需要在C项目中嵌入浏览器内核、且依赖NPAPI插件能力的开发者。由于官方渠道已无法下载&#xff0c;该版本成为CEF支持N…

2026/10/20 23:49:47 阅读更多 →
Softmax输出转分类标签并绘制混淆矩阵:模型评估可视化指南

Softmax输出转分类标签并绘制混淆矩阵:模型评估可视化指南

1. 项目拆解&#xff1a;从概率到标签&#xff0c;混淆矩阵的最后一公里先把这个标题拆开来看&#xff1a;将softmax输出转换为分类标签进行画出混淆矩阵。这半句话里其实藏了两个动作——先把模型的输出做一次“翻译”&#xff0c;把向量变成标签&#xff1b;再把标签变成一张…

2026/10/20 23:49:47 阅读更多 →
Sci365文献管理工具解析:定位、边界与高频使用指南

Sci365文献管理工具解析:定位、边界与高频使用指南

我第一次看到“Sci365”这个名字时&#xff0c;说实话并没有马上明白它是干嘛的。在课题组里用了一段时间之后&#xff0c;我逐渐摸清了它的脾气。如果你也正在检索“Sci365是什么”“要不要把文献管理换成它”&#xff0c;那么这篇可以帮你省掉不少试错时间。简单说&#xff0…

2026/10/20 23:49:47 阅读更多 →

最新新闻

LLM强化学习全解析:PPO、GRPO、DPO等五类方法选型与实践

LLM强化学习全解析:PPO、GRPO、DPO等五类方法选型与实践

做LLM训练绕不开强化学习这块&#xff0c;标题里这五个字看着简单&#xff0c;真要分类起来其实挺讲究的。我前几年刚开始接触大模型对齐时&#xff0c;也把PPO、DPO、GRPO这些名词搞得晕头转向&#xff0c;后来用了一段时间才理清楚它们之间的血缘关系和适用场景。这篇博文就把…

2026/10/21 0:32:54 阅读更多 →
CRMEB Pro v1.1.4本地部署与私域中台落地指南

CRMEB Pro v1.1.4本地部署与私域中台落地指南

简介&#xff1a;CRMEB Pro v1.1.4完整版是一套面向中高级PHP开发者与电商系统定制化实施团队的企业级微信小程序商城解决方案&#xff0c;基于ThinkPHP框架深度扩展&#xff0c;聚焦可视化运营与多端一致性体验。资源包共7238个文件&#xff0c;以4206个PHP核心逻辑文件为主体…

2026/10/21 0:32:54 阅读更多 →
Hermes入门必知:JS引擎差异与字节码原理

Hermes入门必知:JS引擎差异与字节码原理

1. 先别急着写代码&#xff1a;Hermes 入门者最常踩的“伪高效”陷阱“Hermes 用了三个月&#xff0c;入门后我劝你先学这 4 件事&#xff0c;别的都是弯路”——这句话不是标题党&#xff0c;而是我在某跨平台系统重构项目中&#xff0c;带过三轮实习生、协作过五位前端同事后…

2026/10/21 0:32:54 阅读更多 →
MATLAB三维路径跟踪:LSTM时序建模与抖动抑制实战

MATLAB三维路径跟踪:LSTM时序建模与抖动抑制实战

简介&#xff1a;本资源是一份面向MATLAB初学者与智能控制方向学习者的LSTM三维路径跟踪预测实践案例&#xff0c;聚焦于时间序列建模在运动轨迹预测中的应用&#xff0c;适用于机器人导航、无人系统路径规划、智能交通仿真等场景。压缩包共8个文件&#xff08;3个M脚本、3张结…

2026/10/21 0:32:54 阅读更多 →
Python零基础入门:从安装环境到第一个程序全指南

Python零基础入门:从安装环境到第一个程序全指南

我经常收到一类问题&#xff1a;"我完全没有编程基础&#xff0c;Python 第一个程序到底怎么开始&#xff1f;" 问这个问题的人&#xff0c;通常并不是卡在某个知识点上&#xff0c;而是面对"从零到一"这四个字时&#xff0c;既想象不出第一步的形状&#…

2026/10/21 0:32:54 阅读更多 →
LiteVGGT深度解析:端到端三维重建如何快10倍且精度不损

LiteVGGT深度解析:端到端三维重建如何快10倍且精度不损

如果你最近在搞相机定位、稀疏重建这类方向&#xff0c;大概率已经看到过VGGT相关的东西。它确实把一个以前要串好几步的流程简化成了“图进、参数出”的端到端推理&#xff0c;从单张或多张图像直接预测相机内参外参、深度图和三维点图。但问题也很直白&#xff1a;这套模型跑…

2026/10/21 0:31:52 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事&#xff1a;AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里&#xff0c;按宣传口径&#xff0c;本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”&#xff0c;而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起&#xff1a;用户到底在追求什么“封号重开”这四个字&#xff0c;放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流&#xff0c;背后是大量的时间和精力成本。正常情况下&#xff0c;没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”&#xff0c;而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时&#xff0c;就意识到&#xff1a;单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →