performance
performance 是一款专为 R 语言设计的开源工具包,旨在帮助研究人员和数据分析师全面评估统计模型的质量与拟合优度。在构建回归模型时,如何科学地判断模型好坏往往令人头疼,因为相关的诊断指标(如 R²、RMSE)和检查功能通常分散在不同的软件包中,缺乏统一的标准。
performance 的出现正是为了解决这一痛点。它提供了一个集中且一致的平台,能够计算多种关键性能指标,包括决定系数(R2)、组内相关系数(ICC)、留一法交叉验证(LOO)以及贝叶斯因子(BF)等。此外,它还具备强大的诊断功能,可自动检测混合模型中的过度离散、零膨胀、收敛性问题或奇异性,让用户能快速发现模型缺陷。
该工具特别适合统计学研究者、数据科学家以及需要处理复杂模型(如混合效应模型或贝叶斯模型)的开发人员使用。其核心亮点在于通用的 r2() 函数,能智能适配各类模型并返回最合适的拟合度指标,极大地简化了工作流程。作为 easystats 生态系统的重要组成部分,performance 让模型评估变得简单、规范且高效,是提升数据分析严谨性的得力助手。
使用场景
一位数据科学家正在构建预测城市房价的混合效应回归模型,需要向非技术背景的项目干系人证明模型的可靠性与拟合优度。
没有 performance 时
- 指标计算分散:计算 R²、ICC(组内相关系数)或检查过离散度需要分别调用不同包的函数,代码繁琐且容易出错。
- 模型类型受限:面对复杂的混合效应模型或贝叶斯模型,基础 R 函数往往无法直接计算拟合指标,需手动编写复杂公式。
- 诊断标准不一:缺乏统一的接口来检查模型收敛性或奇异性,导致难以判断模型是否真正“可用”。
- 报告效率低下:整理多种拟合优度指标耗时费力,难以快速生成标准化的质量评估报告。
使用 performance 后
- 一键统一计算:通过
r2()等通用函数,仅需一行代码即可自动适配各类模型并输出 R²、RMSE 等关键指标。 - 全面兼容复杂模型:原生支持混合效应及贝叶斯模型,轻松计算 ICC 等专业指标,无需手动推导公式。
- 自动化健康检查:利用内置函数快速检测过离散度、零膨胀及收敛问题,立即识别并修复潜在模型缺陷。
- 标准化输出流程:直接生成结构清晰的拟合优度摘要,大幅缩短从模型构建到成果汇报的周期。
performance 将分散且复杂的模型评估工作流整合为统一、自动化的标准过程,让开发者能专注于模型优化而非指标计算。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
performance 
检验你的模型是否优秀!
在构建回归模型时,评估模型拟合质量至关重要。了解模型对数据的拟合程度以及应报告哪些拟合指标非常重要。虽然已经存在用于创建诊断图或计算拟合度量的函数,但这些功能大多分散在不同的包中。对于不同类型的模型,目前尚无统一且一致的方法来评估模型质量。
performance 包的主要目标是填补这一空白,提供用于计算模型质量指标和拟合优度的工具。这些指标包括 R 平方 (R²)、均方根误差 (RMSE) 或组内相关系数 (ICC) 等,同时也包含用于检查(混合)模型是否存在过度离散、零膨胀、收敛问题或奇异性的函数。
安装
performance 包可在 CRAN 上获取,而其最新的开发版本则可在 R-universe(由 rOpenSci 提供)上获得。
| 类型 | 来源 | 命令 |
|---|---|---|
| 发布版 | CRAN | install.packages("performance") |
| 开发版 | R-universe | install.packages("performance", repos = "https://easystats.r-universe.dev") |
下载完成后,可以使用以下命令加载该包:
library("performance")
提示
与其使用
library(performance),不如使用library(easystats)。这样可以同时使用 easystats 生态系统中的所有功能。若要保持更新,请使用
easystats::install_latest()。
引用
在出版物中引用 performance 包时,请使用以下命令:
citation("performance")
#> 要在出版物中引用 'performance' 包,请使用:
#>
#> Lüdecke 等,(2021). performance: 用于评估、比较和检验统计模型的 R 包。开放源码软件期刊,6(60),3139。
#> https://doi.org/10.21105/joss.03139
#>
#> 对于 LaTeX 用户,BibTeX 条目如下:
#>
#> @Article{,
#> title = {{performance}: 用于评估、比较和检验统计模型的 {R} 包},
#> author = {Daniel Lüdecke、Mattan S. Ben-Shachar、Indrajeet Patil、Philip Waggoner 和 Dominique Makowski},
#> year = {2021},
#> journal = {开放源码软件期刊},
#> volume = {6},
#> number = {60},
#> pages = {3139},
#> doi = {10.21105/joss.03139},
#> }
文档
在 youtube 上有一段关于该包的精彩介绍。
performance 工作流程
评估模型质量
R 平方
performance 提供了一个通用的 r2() 函数,可用于计算多种不同模型的 R 平方值,包括混合效应模型和贝叶斯回归模型。
r2() 返回一个列表,其中包含与给定模型“最适当”的 R 平方相关的值。
model <- lm(mpg ~ wt + cyl, data = mtcars)
r2(model)
#> # 线性回归的 R2
#> R2: 0.830
#> adj. R2: 0.819
model <- glm(am ~ wt + cyl, data = mtcars, family = binomial)
r2(model)
#> # 逻辑回归的 R2
#> Tjur's R2: 0.705
library(MASS)
data(housing)
model <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
r2(model)
#> Nagelkerke's R2: 0.108
此外,还可以通过诸如 r2_bayes()、r2_coxsnell() 或 r2_nagelkerke() 等函数直接访问不同的 R 平方度量(完整函数列表请参见 此处)。
对于混合模型,会返回条件 R 平方和边际 R 平方。边际 R 平方仅考虑固定效应的方差,表示模型方差中有多少是由固定效应部分解释的。而条件 R 平方则同时考虑固定效应和随机效应,表示模型方差中有多少是由“完整”模型解释的。
对于频率学派的混合模型,r2()(或 r2_nakagawa())会计算随机效应方差的平均值,因此 r2() 也适用于具有更复杂随机效应结构的混合模型,例如随机斜率或嵌套随机效应(Johnson 2014;Nakagawa、Johnson 和 Schielzeth 2017)。
set.seed(123)
library(rstanarm)
model <- stan_glmer(
Petal.Length ~ Petal.Width + (1 | Species),
data = iris,
cores = 4
)
r2(model)
#> # 兼容区间内的贝叶斯 R2
#>
#> 有条件的 R2: 0.954(95% CI [0.951, 0.957])
#> 边际的 R2: 0.414(95% CI [0.204, 0.644])
library(lme4)
model <- lmer(Reaction ~ Days + (1 + Days | Subject), data = sleepstudy)
r2(model)
#> # 混合模型的 R2
#>
#> 有条件的 R2: 0.799
#> 边际的 R2: 0.279
组内相关系数 (ICC)
与 R 平方类似,ICC 也提供了关于已解释方差的信息,可以被理解为“群体中由分组结构所解释的方差比例”(Hox 2010)。
icc() 可以计算各种混合模型对象的 ICC,包括 stanreg 模型。
library(lme4)
model <- lmer(Reaction ~ Days + (1 + Days | Subject), data = sleepstudy)
icc(model)
#> # 组内相关系数
#>
#> 调整后的 ICC: 0.722
#> 未调整的 ICC: 0.521
以及 brmsfit 类型的模型。
library(brms)
set.seed(123)
model <- brm(mpg ~ wt + (1 | cyl) + (1 + wt | gear), data = mtcars)
icc(model)
#> # 组内相关系数
#>
#> 调整后的 ICC: 0.930
#> 未调整的 ICC: 0.771
模型诊断
检查过度离散
当数据中的观测方差高于模型假设所预期的方差时,就会出现过度离散现象(对于泊松分布而言,方差大致等于因变量的均值)。check_overdispersion() 函数用于检查计数模型(包括混合效应模型)是否存在过度离散。
library(glmmTMB)
data(Salamanders)
model <- glm(count ~ spp + mined, family = poisson, data = Salamanders)
check_overdispersion(model)
#> # 过度离散检验
#>
#> 离散比 = 2.946
#> Pearson卡方统计量 = 1873.710
#> p值 = < 0.001
解决过度离散的方法有两种:一是对离散参数进行建模(并非所有软件包都支持),二是选择不同的分布族(如准泊松分布或负二项分布,参见 Gelman 和 Hill, 2007)。
检查零膨胀
在(准)泊松模型中,如果观测到的零值数量多于模型预测的零值数量,则表明存在零膨胀现象,即模型对零值的拟合不足。在这种情况下,建议使用负二项分布模型或零膨胀模型。
可以使用 check_zeroinflation() 函数来检查拟合模型中是否存在零膨胀现象。
model <- glm(count ~ spp + mined, family = poisson, data = Salamanders)
check_zeroinflation(model)
#> # 零膨胀检验
#>
#> 观测零值:387
#> 预测零值:298
#> 比率:0.77
检查奇异模型拟合
“奇异”模型拟合是指方差-协方差矩阵的某些维度被估计为恰好为零。这种情况通常发生在随机效应结构过于复杂的混合效应模型中。
check_singularity() 函数用于检查混合效应模型(类为 lme, merMod, glmmTMB 或 MixMod)是否为奇异,并在模型拟合为奇异时返回 TRUE。
library(lme4)
data(sleepstudy)
# 准备数据
set.seed(123)
sleepstudy$mygrp <- sample(1:5, size = 180, replace = TRUE)
sleepstudy$mysubgrp <- NA
for (i in 1:5) {
filter_group <- sleepstudy$mygrp == i
sleepstudy$mysubgrp[filter_group] <-
sample(1:30, size = sum(filter_group), replace = TRUE)
}
# 拟合一个奇怪的模型
model <- lmer(
Reaction ~ Days + (1 | mygrp / mysubgrp) + (1 | Subject),
data = sleepstudy
)
check_singularity(model)
#> [1] TRUE
修复奇异拟合问题的方法可以参考 这里。
检查异方差性
线性模型假设误差方差是恒定的(同方差性)。
check_heteroscedasticity() 函数用于评估这一假设是否被违反:
data(cars)
model <- lm(dist ~ speed, data = cars)
check_heteroscedasticity(model)
#> 警告:检测到异方差性(误差方差非恒定)(p = 0.031)。
模型检验的综合可视化
performance 包提供了许多用于检查模型假设的函数,例如 check_collinearity()、check_normality() 或 check_heteroscedasticity()。要进行全面的模型检验,可以使用 check_model()。
# 定义一个模型
model <- lm(mpg ~ wt + am + gear + vs * cyl, data = mtcars)
# 检查模型假设
check_model(model)

模型性能摘要
model_performance() 函数用于计算回归模型的性能指标。根据模型对象的不同,常见的指标可能包括 R²、AIC、BIC、RMSE、ICC 或 LOOIC。
线性模型
m1 <- lm(mpg ~ wt + cyl, data = mtcars)
model_performance(m1)
#> # 模型性能指标
#>
#> AIC | AICc | BIC | R2 | R2 (调整后) | RMSE | Sigma
#> ---------------------------------------------------------------
#> 156.010 | 157.492 | 161.873 | 0.830 | 0.819 | 2.444 | 2.568
逻辑回归模型
m2 <- glm(vs ~ wt + mpg, data = mtcars, family = "binomial")
model_performance(m2)
#> # 模型性能指标
#>
#> AIC | AICc | BIC | Tjur's R2 | RMSE | Sigma | Log_loss | Score_log | Score_spherical | PCP
#> -----------------------------------------------------------------------------------------------------
#> 31.298 | 32.155 | 35.695 | 0.478 | 0.359 | 1.000 | 0.395 | -14.903 | 0.095 | 0.743
线性混合效应模型
library(lme4)
m3 <- lmer(Reaction ~ Days + (1 + Days | Subject), data = sleepstudy)
model_performance(m3)
#> # 模型性能指标
#>
#> AIC | AICc | BIC | R2 (条件) | R2 (边际) | ICC | RMSE | Sigma
#> ----------------------------------------------------------------------------------
#> 1755.628 | 1756.114 | 1774.786 | 0.799 | 0.279 | 0.722 | 23.438 | 25.592
模型比较
compare_performance() 函数可用于比较多个模型(包括不同类型)的性能和质量。
counts <- c(18, 17, 15, 20, 10, 20, 25, 13, 12)
outcome <- gl(3, 1, 9)
treatment <- gl(3, 3)
m4 <- glm(counts ~ outcome + treatment, family = poisson())
compare_performance(m1, m2, m3, m4, verbose = FALSE)
#> # 模型性能指标比较
#>
#> 名称 | 模型 | AIC (权重) | AICc (权重) | BIC (权重) | RMSE | Sigma | Score_log
#> -----------------------------------------------------------------------------------------------
#> m1 | lm | 156.0 (<.001) | 157.5 (<.001) | 161.9 (<.001) | 2.444 | 2.568 |
#> m2 | glm | 31.3 (>.999) | 32.2 (>.999) | 35.7 (>.999) | 0.359 | 1.000 | -14.903
#> m3 | lmerMod | 1764.0 (<.001) | 1764.5 (<.001) | 1783.1 (<.001) | 23.438 | 25.592 |
#> m4 | glm | 56.8 (<.001) | 76.8 (<.001) | 57.7 (<.001) | 3.043 | 1.000 | -2.598
#>
#> 名称 | Score_spherical | R2 | R2 (adj.) | Tjur's R2 | Log_loss | PCP | R2 (cond.) | R2 (marg.)
#> ---------------------------------------------------------------------------------------------------
#> m1 | | 0.830 | 0.819 | | | | |
#> m2 | 0.095 | | | 0.478 | 0.395 | 0.743 | |
#> m3 | | | | | | | 0.799 | 0.279
#> m4 | 0.324 | | | | | | |
#>
#> 名称 | ICC | Nagelkerke's R2
#> ------------------------------
#> m1 | |
#> m2 | |
#> m3 | 0.722 |
#> m4 | | 0.657
模型性能综合指数
还可以轻松计算模型性能的综合指数,并按从好到坏的顺序对模型进行排序。
compare_performance(m1, m2, m3, m4, rank = TRUE, verbose = FALSE)
#> # 模型性能指标比较
#>
#> 名称 | 模型 | RMSE | Sigma | AIC 权重 | AICc 权重 | BIC 权重 | 性能得分
#> -----------------------------------------------------------------------------------------------
#> m2 | glm | 0.359 | 1.000 | 1.000 | 1.000 | 1.000 | 100.00%
#> m4 | glm | 3.043 | 1.000 | 2.96e-06 | 2.06e-10 | 1.63e-05 | 37.67%
#> m1 | lm | 2.444 | 2.568 | 8.30e-28 | 6.07e-28 | 3.99e-28 | 36.92%
#> m3 | lmerMod | 23.438 | 25.592 | 0.00e+00 | 0.00e+00 | 0.00e+00 | 0.00%
模型性能指标的可视化
最后,我们提供了便捷的可视化功能(需安装 see 包)。
plot(compare_performance(m1, m2, m4, rank = TRUE, verbose = FALSE))
模型检验
test_performance()(及其贝叶斯版本 test_bf)会根据输入内容执行最相关且适当的检验(例如,模型是否嵌套等)。
set.seed(123)
data(iris)
lm1 <- lm(Sepal.Length ~ Species, data = iris)
lm2 <- lm(Sepal.Length ~ Species + Petal.Length, data = iris)
lm3 <- lm(Sepal.Length ~ Species * Sepal.Width, data = iris)
lm4 <- lm(Sepal.Length ~ Species * Sepal.Width + Petal.Length + Petal.Width, data = iris)
test_performance(lm1, lm2, lm3, lm4)
#> 名称 | 模型 | BF | Omega2 | p (Omega2) | LR | p (LR)
#> ------------------------------------------------------------
#> lm1 | lm | | | | |
#> lm2 | lm | > 1000 | 0.69 | < .001 | -6.25 | < .001
#> lm3 | lm | > 1000 | 0.36 | < .001 | -3.44 | < .001
#> lm4 | lm | > 1000 | 0.73 | < .001 | -7.77 | < .001
#> 每个模型都与 lm1 进行比较。
test_bf(lm1, lm2, lm3, lm4)
#> 模型比较的贝叶斯因子
#>
#> 模型 BF
#> [lm2] Species + Petal.Length 3.45e+26
#> [lm3] Species * Sepal.Width 4.69e+07
#> [lm4] Species * Sepal.Width + Petal.Length + Petal.Width 7.58e+29
#>
#> * 对照模型:[lm1] Species
#> * 贝叶斯因子类型:基于 BIC 的近似值
绘图函数
绘图函数可通过see 包获得。
行为准则
请注意,performance 项目遵循贡献者行为准则发布。通过参与本项目,即表示您同意遵守其条款。
贡献说明
我们欢迎 bug 报告、建议、问题,以及(最重要的是)用于修复问题和添加功能的贡献。
请遵循此处提及的贡献指南:
https://easystats.github.io/performance/CONTRIBUTING.html
参考文献
Gelman, Andrew, and Jennifer Hill. 2007. Data Analysis Using Regression and Multilevel/Hierarchical Models. Analytical Methods for Social Research. Cambridge ; New York: Cambridge University Press.
Hox, J. J. 2010. Multilevel Analysis: Techniques and Applications. 2nd ed. Quantitative Methodology Series. New York: Routledge.
Johnson, Paul C. D. 2014. “Extension of Nakagawa & Schielzeth’s R2 GLMM to Random Slopes Models.” Edited by Robert B. O’Hara. Methods in Ecology and Evolution 5 (9): 944–46.
Nakagawa, Shinichi, Paul C. D. Johnson, and Holger Schielzeth. 2017. “The Coefficient of Determination R2 and Intra-Class Correlation Coefficient from Generalized Linear Mixed-Effects Models Revisited and Expanded.” Journal of The Royal Society Interface 14 (134): 20170213.
版本历史
v0.16.02026/02/04v0.15.32025/12/01v0.15.22025/10/06v0.15.12025/08/30v0.15.02025/07/10v0.14.02025/05/22v0.13.02025/01/15v0.12.42024/10/18v0.12.32024/09/02v0.12.22024/07/18v0.12.12024/07/15v0.12.02024/06/09v0.11.02024/03/23v0.10.92024/02/17v0.10.82023/10/30v0.10.72023/10/28v0.10.62023/10/05v0.10.52023/09/12v0.10.42023/06/02v0.10.32023/04/07常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备



