MoreRSS

site iconqtmuniao | 青藤木鸟修改

一名专注大规模数据系统的程序员,喜欢读书、写作、分享、羽毛球和摄影。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

qtmuniao | 青藤木鸟的 RSS 预览

大模型的损失函数为什么是交叉熵

2026-03-29 15:31:35

引子

刚入门大模型的时候,由于线性代数、概率论和信息论等数学知识的短板,很容易迷失在诸多术语中:logprob(对数概率)、likelihood(似然)、NLL(Negative Log Likelihood,负对数似然)、cross entropy(交叉熵)、perplexity(困惑度)。它们常常出现在论文和文档的各种角落里,但都像点赞之交的朋友,频见其名,不解其意。

后来某天,在慢慢的补过一些最基础的数学知识后,在公司相关的上下文浸淫足够久后,终于在某次和 ChatGPT 的聊天中发现:上面一组概念本质上是同一件事的不同面向的侧写。从概率论的门摸进去叫 NLL,从信息论的门踏进去叫交叉熵,从 PyTorch 的门看进去叫 F.cross_entropy——殊途同归,本质上都是在试图刻画"模型当前输出离预期还有多远"。

“横看成岭侧成峰”,在大模型这种高维上下文的领域中,这种盲人摸象的感觉所在多有。不过我们这种三维生物,也只能靠长久的浸淫,才能靠着不同领域知识的交叉验证,才会突然有一天顿悟——嗷,原来这是同一座山。

本文想做的,就是想聊聊大模型领域中最基础概念——交叉熵这个损失函数的“一花各表”。

NLL-entropy.png

20260120 B 站直播 —— 转行大模型文字精要

2026-01-25 16:13:26

我是 2024 年初到一家大模型公司工作,之前一直在数据库、存储等 infra 行业工作,因此有些很粗浅的转行认知。很久没有在 b 站做分享了,这次靠直播强制开机,回答了大家一些问题,稍稍弥合一点信息差。本文对直播中提到的一些点的稍微规整一点的总结,并将一些我觉得不错的资料附在最后。

b 站直播:https://www.bilibili.com/video/BV1uckJBkEto

题图

2025 年终总结——向内生长

2025-12-28 23:28:46

有明显的自我意识以来,从没有像今年这样和世界、和自己发生如此激烈的冲撞,但结果很神奇——反倒更加平和了。很多下意识的反应、很多习以为常的做法,向内挖时,竟然都能摸出如此久远的强化链路。正如史铁生说的——那颗年少时射出的子弹,在长到这个年纪的时候,正中眉心。

于是,不管是被迫地还是自发地,今年都开始难以避免地向内生长——如格物致知一般去观察和追溯自己细微的情绪变化源头,见天地、见众生,终是为了见自己。虽然以前惯性还会持续一段时间,但觉察的开始,便是塑造另外轨迹的种子。

佛光寺经幢和东大殿

深入理解大模型 1:Transformer,大模型的基石

2025-09-10 21:45:26

Princeton COS 597R “Deep Dive into Large Language Models” 是普林斯顿大学的一门研究生课程,系统探讨了大语言模型原理、准备和训练、架构演进及其在多模态、对齐、工具使用等前沿方向中的应用与一些问题。注意,该课程侧重概念的理解上,而非工程的实现上。
我之前是在分布式系统和数据库内核方向,但这两年转到一家大模型公司做数据。本笔记主要是我对课程论文的梳理和精要。不同的是,我会结合在工作中解决实际问题的一些体感,给出一点转行人不同视角的思考,希望能对同样想从工程入门算法的同学一点帮助。

本文来自我的付费专栏《系统日知录》,欢迎订阅查看更多大模型解析文章,文末有优惠券信息。

本篇主要关注大模型的奠基之作——Transformer。

首先要明确问题域,Transformer 试图解决的是序列建问题,最主要的代表就是语言建模和机器翻译。其次,需要知道前驱方法—— RNN(循环神经网络)和 CNN(卷积神经网络)存在的一些问题,才能知道 Transformer 的创新之处。最后,Transformer 的解决要点的在于“多头注意力机制”和“位置编码”。

在云上进行大规模数据处理的一些实践

2025-06-04 23:35:51

随着云基础设施的不断成熟,新兴的公司为了快速实现业务目标,一般都会让基础设施上云。而在云上进行开发与传统上直接使用物理机开发其实有很大不同。云上更强调共享弹性,此外,规模变大又会带来隔离性。这些改变也倒逼我们在进行开发时做出一些改变。在云上进行大规模数据处理,我主要有一些 spark 和 ray 的经验,使用的语言主要是 python;从这些技术栈出发,谈谈一些还算行之有效开发实践。

使用 ray 在云上进行大规模数据处理,一个基本的思路是:构建最小可并行单元,进行功能测试和性能测试,然后再利用 ray.data (比如 mapmap_batches )进行 scale。使用 spark 时,会稍有不同;相比 ray,spark 虽然灵活性稍差一些,但抽象封装更好,可以从数据集整体的角度来考虑数据处理,spark 会通过你设置的分区数和并行度,自动地扩展和容错。

数据可视化利器—— Streamlit 的有趣哲学

2025-03-18 20:07:31

streamlit 是一款可以快速进行简单网页开发的 Python 库,其 slogan 是:

A faster way to build and share data apps

即“一种快速构建、分享数据应用的方法”。其在机器学习、数据科学,甚至当今大模型领域非常流行。其优点非常突出:

  1. 使用上述领域开发者最喜欢的语言:Python。不用写前端,pip 安装就能用。
  2. 简单几行代码就能快速攒出一个数据可视化、打标等小工具的网页。
  3. 还支持丰富的第三方组件扩展,比如社区开发的 code_editor

当然,如果你还想要低延迟、高并发、深度定制等需求,那对不起,这是 streamlit 被 tradeoff 出去的那一部分。但对于面向内部少数人使用的小工具来说,streamlit 简直是利器。可以说这个小生态位被它卡的太好了,所以能在 2022 年以 8 亿美金卖给 Snowflake。

本文我们就一块来看看其基本设计哲学和一些简单实践。

设计哲学

其基本设计哲学可以概括为:

  1. 用后端语言写前端
  2. 收到新事件会重新构建
  3. 支持会话级别的缓存