news 2026/9/19 14:14:30

从GPT-3训练算力测算看AI服务器硬件配置与选型逻辑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从GPT-3训练算力测算看AI服务器硬件配置与选型逻辑

简介:这是一份聚焦2023年AI服务器市场的行业分析报告,面向算力基础设施、IT硬件及人工智能相关领域的从业者、研究者和投资者。报告基于Counterpoint、IDC等机构数据,指出2022年全球服务器出货量约1380万台、收入1117亿美元,并分析了服务器硬件构成中CPU/芯片组占比约50%等关键信息,帮助读者快速把握市场基本面。资源为单份PDF文档,大小约2.73MB,已有106人学习。报告重点揭示了AIGC浪潮下的大模型参数量与训练所需算力快速提升的趋势,以及GPU+CPU异构计算成为主流的原因,并沿着AI服务器产业链,从上游AI芯片到整机厂商,分析了浪潮、新华三、超聚变等厂商的竞争格局。同时,报告还梳理出AIGC产业生态的上中下三层架构,让读者理解训练与推理如何为服务器市场带来增量需求。对于想系统了解AI服务器投资逻辑与技术演进的人来说,这份报告提供了密度很高的行业分析参考。

1. 为什么训练一个GPT-3要把3423台A100服务器连续开一天

第一次看到这个数字时我愣了一下:3423台搭载A100的AI服务器,每台算力按5 PFLOPS计,并行工作整整一天,才能完成一次GPT-3级别的模型训练。换算成单机,就是一台服务器不吃不喝跑九年多。这个数量级不是估算出来的玄学,而是从GPT-3论文公开的1750亿参数、3000亿训练tokens,套用6 × 参数量 × 训练集规模这个算力公式硬算出来的结果。ChatGPT出现之后,几乎所有云厂商和互联网大厂都在重新盘算同一个问题:我的算力池子到底能撑起几个大模型?这正是AI服务器从通用服务器里被单独拆出来讨论的根本原因。这篇分析报告的含金量在于,它把服务器硬件构成、训练与推理的算力测算方法、产业链上下游和竞争格局串成了一条可推演的链路,适合两类人读:一类是要做算力采购和容量规划的工程师,另一类是盯着信创和服务器赛道做行业研究的人。

2. 服务器硬件构成与成本结构:CPU芯片组、内存与I/O的配比逻辑

2.1 一台通用服务器的硬件拆分:成本占比决定了选型边界

报告给出了一个非常典型的通用服务器成本结构:CPU及芯片组大约占整机生产成本的50%,内存占15%,外部存储占10%,其他硬件(RAID卡、网卡、HBA卡、机箱、电源、风扇)合计占25%。这个比例值得细看,CPU和芯片组为什么能占到一半?因为CPU决定了计算密度,芯片组决定了内存通道数和I/O扩展能力,这两个器件直接框定了服务器能承担的工作负载类型。内存占比15%说明在通用场景下容量配置相对标准化,而存储只占10%则是因为大部分服务器走的是集中式存储或者云盘挂载,本地盘只是启动和缓存用途。

硬件组件成本占比职责
CPU及芯片组约50%逻辑运算、内存通道控制、I/O桥接
内存约15%数据缓存与临时存储管理
外部存储约10%系统盘、数据盘的本地读写
其他硬件约25%RAID卡、网卡、HBA卡、机箱、电源、风扇

这里有个容易踩的误区:很多人把AI服务器的成本结构直接套通用服务器的比例,这是不对的。行业里常见的做法是,一台8卡A100训练服务器的BOM里,GPU加速卡本身就要占掉整机成本的七成以上,CPU和芯片组的占比被大幅稀释。报告这个50%的配比是通用服务器的基线,它真正的用途是给采购做参照——当你看到一台报价异常的服务器时,先按这个比例拆一下,就能大概判断出它用的是哪一档的CPU和内存,有没有在看不到的地方缩水。

2.2 逻辑架构与固件层级:BIOS、BMC和带外管理

服务器的逻辑架构和普通PC同源,但要求完全不同。CPU负责对数据进行逻辑运算,内存负责数据存储管理,这两者是最核心的部分。真正把服务器和PC区分开来的,是它在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性六个维度上的要求。

固件层面,报告点出了三个关键角色:BIOS或UEFI负责最底层的硬件初始化和引导,BMC是带外管理固件,CMOS保存硬件配置参数。做运维的工程师对这些不会陌生,BMC的意义在AI集群里尤其大——几千台服务器分布在多个机房,系统崩溃时你不可能每次都进机房接显示器,IPMI/Redfish通过BMC远程查看硬件状态、强制重启,这是AI服务器日常运维最基本的手段。操作系统则分为32位和64位,现在新部署的AI训练节点基本都是64位,原因很直接:32位系统单进程地址空间只有4GB,大模型训练时的内存分配根本转不开。

2.3 市场规模与国内竞争格局:浪潮一家独大,中兴进前五

市场规模的数据值得记一下:Counterpoint统计2022年全球服务器出货量同比增长6%达到1380万台,收入同比增长17%达到1117亿美元。中国市场这边,IDC和中商产业研究院的数据显示,市场规模从2019年的182亿美元增长到2022年的273.4亿美元,复合年均增长率14.5%,2023年预计增至308亿美元。出货量只增6%收入却增17%,说明单台服务器的销售单价在明显抬升,这背后是芯片涨价和配置上移的双重作用,AI服务器在这波均价上行里贡献最大。

竞争格局上,IDC的2022年第四季度中国服务器市场跟踪报告给出了明确座次。浪潮信息以28.1%的份额领跑,新华三17.2%排第二,超聚变10.1%排第三,中兴通讯5.3%进入前五,联想4.9%排在第五。浪潮在服务器领域长期占据头部位置,这与其互联网大客户定制化模式直接相关。超聚变值得单独关注,它承接了原来华为x86服务器业务的团队和渠道,能在两三年内做到10%的份额并不意外。中兴通讯进入前五是个新变化,配合其在算力基础设施上的布局,后面几个季度的排位可能还会松动。

2.4 用命令行核对真实服务器的硬件配比

看报告里的成本结构是纸面功夫,落到线上环境,我一般会直接登到服务器上用命令核对硬件。下面这组命令在任何一台Linux服务器上都能跑:

# 查看CPU型号、插槽数和物理核数 lscpu | grep -E "Model name|Socket|Core" # 查看内存总量和单条规格 free -h sudo dmidecode -t memory | grep -E "Size|Speed|Locator" | head -20 # 查看本地磁盘设备 lsblk -d -o NAME,SIZE,TYPE # 查看网卡和HBA卡 lspci | grep -E "Ethernet|RAID|Fibre"

逻辑说明:lscpu直接读sysfs里的CPU拓扑信息,Socket显示物理CPU颗数,Core显示总核心数,可以快速判断这台机器是双路还是四路;free -h看的是可用内存总量,dmidecode -t memory能看到每条内存的容量和频率,用总量除以条数就能判断是否插满了通道。lspci抓的是PCIe总线上的设备列表,网卡、RAID卡、光纤卡都能在这看到。参数层面的重点是核对CPU与内存的配比关系,比如一台配置了64核CPU的服务器只插了64GB内存,那它大概率是跑轻量Web业务的,不是为AI训练准备的,因为训练场景下CPU与内存的配比通常要更激进,尤其在处理大规模数据集预处理时。

3. AIGC算力变革与GPU异构计算:从GPT参数量到训练推理的硬件映射

3.1 GPT家族参数量跃迁:从12层到96层带来的算力需求质变

报告里有一条清晰的演进线:GPT-1只有12个Transformer层,到GPT-3已经增加到96层,参数量达到1750亿。对比当时其他的知名模型,微软的Turing NLG是170亿参数,差距整整一个数量级。训练数据量同样在猛增,GPT-3的预训练数据有45TB,折合成约3000亿tokens。有趣的是报告提到论文长度的变化——ELMO的论文15页、BERT 16页、GPT-2 24页、T5 53页、GPT-3 72页。论文变长不只是写作风格问题,它反映的是模型结构和训练细节的复杂度在指数级上升。

参数量和训练数据量双双上涨,直接结果就是算力需求非线性放大。这里的关键认知是:模型参数翻倍,训练算力需求最少翻倍;但如果训练数据量也跟着涨,算力需求就是乘积关系再乘系数,涨得远比直觉快。这也是为什么GPT-3的训练被行业视为一个算力里程碑事件——在它之前,很少有人认真算过训练一个千亿参数模型到底要烧多少GPU。

3.2 异构计算架构:CPU与GPU的分工逻辑

异构计算这个概念在报告里被放在很重要的位置。它指的是用不同类型指令集和架构的计算单元组成系统,常见形态包括GPU云服务器、FPGA云服务器和弹性加速计算实例。CPU+GPU的架构里,CPU所在的host端负责逻辑复杂的串行程序,GPU所在的device端负责数据密集的并行计算,两者通过PCIe总线连接协同工作。

为什么GPU在AI场景里能碾压CPU?报告给了很直观的对比:CPU的核心数量是几十个,GPU是几千个加速核心,双卡M40能达到6144个。CPU用复杂的逻辑控制单元和强大的ALU去压低延迟、跑串行任务,GPU用海量简单的运算单元堆并行吞吐。一个具体的参照是阿里2017年发布的GN4实例,搭载Nvidia M40加速器,在万兆网络下面向深度学习场景,性能比同时代CPU服务器提升近7倍。这个提升幅度在今天看来不算夸张,但放在当时已经足够说明问题:AI计算本质上是一堆矩阵乘法和卷积操作,天然适合大规模并行,而这恰好是GPU最擅长的领域。

对比维度GPUCPU
核心数量数千个加速核心几十个核心
产品特点大量ALU支持并行处理、多线程、简单逻辑控制复杂逻辑控制单元、强算数运算单元
适用场景计算密集、易于并行的程序逻辑控制、串行运算程序

3.3 训练与推理的芯片选型:T4、A100、H100各司其职

训练和推理对芯片的要求完全不同。训练要反复调整网络权重,每一次迭代都要做前向传播和反向传播,参数动辄百万级以上,是典型的算力密集型任务;推理则是用训练好的模型对新数据做一次前向计算,不需要反向调参,算力需求低一个量级。这个差异直接决定了部署策略:训练侧堆A100和H100这类高算力卡,推理侧用T4这类性价比更优的卡。

报告给了一组很有参考价值的性能数据。T4支持从FP32到FP16、INT8、INT4的多精度计算,在推理场景性能比CPU高出40倍;A100 80GB版本在BERT这类对话式AI模型上,推理吞吐量能达到CPU的249倍,80GB显存可以给每个节点提供最高1.3TB的统一显存;H100在大型语言模型上的训练速度是上一代的9倍,超大模型推理性能提升高达30倍,还引入了DPX指令集,在动态规划算法上比A100快7倍,DNA序列比对这类任务上比传统双路CPU服务器快40倍。选型时的判断逻辑很清晰:先明确是训练还是推理,再看模型规模和吞吐要求,最后看能接受的功耗——A100服务器最大功率6.5kW,H100服务器则到10.2kW,机房散热和电力改造的成本不可忽略。

3.4 拿到AI服务器先做环境检查

不管是训练还是推理,新服务器上架后第一件事都是确认GPU环境与驱动匹配。很多集群故障的根源不是硬件坏了,而是驱动和CUDA版本对不上。这里我一般会按下面的顺序排查:

# 查看GPU型号、显存、驱动版本 nvidia-smi # 查看支持的算力能力,输出为CSV格式 nvidia-smi --query-gpu=name,memory.total,driver_version,power.limit --format=csv # 确认PyTorch能否正常调用GPU python3 -c "import torch; print(torch.cuda.device_count(), torch.cuda.get_device_name(0))"

逻辑说明:nvidia-smi不带参数是最快的摸底方式,能看到GPU利用率、显存占用、驱动版本和CUDA版本,如果驱动和CUDA不匹配这里会直接报错或者显示ERR。第二行的--query-gpu参数把关键指标拉成CSV格式,便于脚本批量巡检多台机器时做解析,power.limit能看到卡的功耗上限,训练任务的性能瓶颈有时就出在功耗被限制。第三行用PyTorch的cuda.is_available()链路确认深度学习框架层面能识别到设备,这一步检查的是CUDA运行时和cuDNN是否与驱动配套。如果用的是社区里常见的小智AI服务器镜像这类预置环境,驱动和CUDA版本通常已经配对,能省掉大量排查环境的时间,但这不代表可以跳过检查——镜像也分新旧版本,跑一次这个三连命令成本极低。

4. 训练与推理的算力测算模型:从PFLOPS公式到服务器需求敏感性分析

4.1 训练阶段的算力公式:6 × 参数量 × 训练集规模

报告给出了一个可复用的训练算力估算公式:训练阶段算力需求 = 6 × 模型参数数量 × 训练集规模。这个公式的前提是业界通行的估算方式:每个参数在训练过程中要经历前向传播和反向传播,前向计算和反向计算的浮点操作数合计约为参数量的6倍,再乘以训练数据量。代入GPT-3的数据:参数1750亿,预训练数据量45TB,折合约3000亿tokens,算力需求就是6 × 1.75×10¹¹ × 3×10¹¹ = 3.15×10²³ FLOPS,也就是3.15×10⁸ PFLOPS。

这里有个关键概念是有效算力比率。OpenAI训练GPT-3用的是Nvidia V100 GPU,但理论算力不可能百分之百被利用,报告引用的有效算力比率是21.3%。按这个比率折算,实际算力需求是1.48×10⁹ PFLOPS,也就是17117 PFLOPS-day。为什么实际值比理论值高出近5倍?因为训练过程中有通信开销、数据加载等待、梯度同步、部分计算单元空转,这些都是无法避免的损耗。这个有效算力比率在不同模型和硬件组合下差别很大,报告里也列了对比:GPT-3在V100上是21.3%,MT-NLG在A100上是30.2%,PaLM在谷歌TPU上是46.2%。可见硬件越新、软件栈越成熟,算力利用率越高。

4.2 推理阶段的算力公式与ChatGPT对话场景测算

推理侧的算力公式是训练侧的变体:推理算力需求 = 2 × 模型参数数量 × 输入输出tokens数。少了反向传播那部分,所以系数从6变成2。报告以ChatGPT的对话场景做了推演:假设每轮对话产生500个tokens,约等于350个单词,那么每轮对话的推理算力需求是2 × 1.75×10¹¹ × 500 = 0.175 PFLOPS

访问量方面,Similarweb的数据显示OpenAI网站月度访问量从2023年1月的6.67亿次上升到3月的16亿次,折算每天约5300万次访问。假设每次访问发生10轮对话,每日对话产生的推理算力需求是0.175 × 5.3×10⁷ × 10 = 9.275×10⁷ PFLOPS,按30%的有效算力比率折算,实际需求为3.09×10⁸ PFLOPS。报告用一台搭载16片V100 GPU的英伟达DGX2服务器作为参照,整机算力2 PFLOPS,最大功率10kW,算下来需要1789台DGX2服务器工作一天才能支撑起这个访问量。注意推理侧的算力利用率取30%,比训练侧的21.3%要高,原因是推理是一次性前向计算,没有反复迭代的通信开销。

4.3 把测算过程写成可复现的Python脚本

公式本身不复杂,但手工算容易出错,尤其在做敏感性分析时要反复调整参数。我把它整理成了一个可复现的Python脚本,直接保存运行就能复现报告里的核心结论:

# ai_server_capacity.py # 基于GPT-3公开数据,复算训练与推理阶段的服务器需求量 # 对齐天翼智库与英伟达的测算口径 MODEL_PARAMS = 175e9 # GPT-3 模型参数量:1750亿 TRAIN_TOKENS = 300e9 # 预训练数据量:3000亿 tokens TRAIN_EFF = 0.213 # 训练有效算力比率:V100实测 21.3% INFER_EFF = 0.30 # 推理有效算力比率:按 30% 取定 SECONDS_PER_DAY = 86400 # 一天的秒数 def train_flops_pflops(N=MODEL_PARAMS, D=TRAIN_TOKENS): """ 训练阶段总算力需求 = 6 * 参数量 * 训练集tokens 返回单位:PFLOPS(10^15 FLOPS) """ return 6 * N * D / 1e15 def train_servers(total_flops, server_pflops, days=1, eff=TRAIN_EFF): """ 根据总算力需求和单台服务器算力计算所需台数 参数: total_flops: 训练总算力需求(PFLOPS) server_pflops: 单台服务器AI算力(PFLOPS) days: 目标训练天数 eff: 有效算力利用率 """ real_flops = total_flops / eff # 折算实际算力消耗 return real_flops / server_pflops / days / SECONDS_PER_DAY def infer_servers(params, tokens_per_turn, daily_visits, turns=10, server_pflops=2, eff=INFER_EFF): """ 推理阶段服务器需求测算 参数: params: 模型参数量 tokens_per_turn: 每轮对话产生的tokens数 daily_visits: 日访问量 turns: 每次访问的对话轮数,默认10 server_pflops: 单台推理服务器算力,默认DGX2的2 PFLOPS """ per_turn = 2 * params * tokens_per_turn / 1e15 # 每轮算力 PFLOPS daily_total = per_turn * daily_visits * turns # 每日总算力 real_daily = daily_total / eff # 折算实际消耗 return real_daily / server_pflops / SECONDS_PER_DAY # 训练侧复算:GPT-3 total = train_flops_pflops() print(f"GPT-3 训练算力需求: {total:.2e} PFLOPS") for name, pf in [("A100", 5), ("H100", 32)]: n = train_servers(total, pf) print(f" 使用{name}服务器({pf} PFLOPS),1天完成需 {n:.0f} 台") # 推理侧复算:ChatGPT日活场景 n_infer = infer_servers(MODEL_PARAMS, tokens_per_turn=500, daily_visits=53e6) print(f"ChatGPT日访问5300万次,DGX2推理服务器需 {n_infer:.0f} 台") # 敏感性分析:同时训练10个模型,分别要求1天/10天完成 for days in [1, 10]: n_a100 = train_servers(total, 5, days=days) * 10 n_h100 = train_servers(total, 32, days=days) * 10 print(f" 同时训练10个GPT-3,{days}天完成: A100 {n_a100:.0f} 台, H100 {n_h100:.0f} 台")

逻辑说明:脚本定义了两个核心函数,train_flops_pflops实现6 × N × D公式并统一转换为PFLOPS单位,train_servers把总算力需求除以有效算力比率得到实际算力消耗,再除以单台服务器算力、天数和一天的秒数。这里最容易踩的坑是单位混用:FLOPS是每秒浮点运算次数,PFLOPS是10的15次方FLOPS,算力需求是一个总量概念,而服务器算力是速率概念,两者运算时必须把时间维度补上,否则出来的台数会差86400倍。infer_servers函数的逻辑类似,区别在于按每轮对话tokens数计算单次算力,再乘以访问量和对话轮数放大到日维度。

直接运行这个脚本,输出为:

  • GPT-3训练算力需求约3.15e8 PFLOPS
  • A100服务器1天完成需要3423台
  • H100服务器1天完成需要535台
  • 推理场景DGX2需要1789台

这与报告里的结论完全一致。

4.4 敏感性分析:什么参数最影响采购决策

报告里的敏感性分析表非常有实用价值。训练侧有两个关键变量:同时并行训练的大模型数量,以及单个模型要求训练完成的时间。按A100服务器5 PFLOPS、H100服务器32 PFLOPS计算,如果同时训练10个大模型且要求在1天内完成,需要A100服务器34233台,需要H100服务器5349台。如果放宽到10天完成,A100服务器降到3423台。这个数量级的差异,对采购决策影响巨大——到底是追求极致速度多买机器,还是接受更长的训练周期先小规模验证,完全是ROI的计算问题。

推理侧的核心变量是每轮对话产生的tokens数和日访问用户量。现在ChatGPT每轮对话约500 tokens,如果未来应用场景从纯文本扩展到包含智能语音、视频理解,单轮tokens数可能成倍增长,推理服务器的需求量会线性放大。再有就是AIGC从C端走向B端之后,企业级调用的并发量远高于个人用户访问量,这个增速会比预期更快。做容量规划时我的习惯是至少按三档压力做预算:当前流量、半年后的预期流量、一年的乐观流量,用这个脚本分别跑一遍,看服务器数量落在哪个区间,再决定是直接采购还是先用容器化方案撑过峰值再扩容。部署侧如果使用预置了推理框架和模型运行时的小智AI服务器镜像这类方案,能加快扩容节点上线速度,这在流量突增时是实打实的差异。

5. 产业链角色与竞争格局:从AIGC三层生态到AI服务器选型

5.1 AIGC产业生态与服务器产业链的映射关系

报告把AIGC产业生态分成上中下三层:上游基础层是以预训练模型为基础搭建的技术基础设施层,中间层是垂直化、场景化、个性化的模型和应用工具,下游应用层是面向C端用户的文字、图片、音视频内容生成服务。服务器产业链则分为硬件供应商、服务器制造商、服务器运营商和最终用户四个环节。两条链路交织在一起,上游基础层直接对应服务器硬件——预训练模型的迭代速度决定了GPU和AI服务器的采购节奏。

这解释了为什么服务器厂商如此看重互联网大厂和AI创业公司的订单:他们既是上游模型的训练方,也是下游应用的服务方,算力需求贯穿始终。硬件供应商里英特尔、AMD、英伟达主导CPU和GPU供应,服务器制造商在这个链条里承担集成验证的角色,浪潮、新华三、超聚变这些厂商的竞争本质是供应链管理能力和大客户定制响应速度的竞争。

5.2 中国AI服务器竞争格局:头部集中与新变量

厂商市场份頟定位与看点
浪潮信息28.1%国内第一,互联网大客户定制化能力突出
新华三17.2%综合网络设备与服务器,政企市场深耕
超聚变10.1%承接原华为x86业务,信创渠道助力
中兴通讯5.3%新进前五,算力基础设施布局加速
联想4.9%企业级市场稳定,AI服务器新品迭代
其他34.4%长尾厂商,集中在细分行业定制

浪潮的28.1%在碎片化的服务器市场里是个很难被撼动的数字,它的JDM模式能做到按互联网客户需求定制主板和整机,这是中小厂商复制不了的。新华三背靠网络设备渠道,在政企市场有天然的入口优势。超聚变值得长期跟踪,10.1%的份额在独立运营后还能保持增长,说明渠道和供应链的惯性非常强。中兴通讯进入前五是个信号:算力网络的政策导向正在给传统通信设备商打开新市场空间。整体来看,这个格局在AI服务器细分赛道还会继续变化,因为AI服务器的技术门槛比通用服务器高,能把8卡GPU的散热、供电、NVLink拓扑调好的厂商其实不多。

5.3 用一行命令反推供应商报价里的集群规模

最后分享一个实操技巧:用算力公式反推供应商报价中的集群规模是否合理。比如你要训练一个70亿参数模型,预训练数据量约1000亿tokens,希望在30天内完成训练,供应商给你报了一批A100服务器的配置。直接在命令行里算:

python3 -c "print(6*7e9*100e9/0.213/5/86400/30)"

逻辑说明:6*7e9*100e9是按6 × 参数量 × tokens算出总算力,/0.213是按21.3%有效算力比率折算实际消耗,/5是A100服务器的5 PFLOPS算力,/86400把秒换算成天,/30是要求30天完成训练。输出约305台,这意味着如果供应商报价方案里的A100服务器数量显著低于这个数,要么它采用了更高算力的H100,要么就是训练框架做了并行优化提升了有效算力利用率,需要进一步确认。反过来,如果数量远高于这个数,你就要考虑是不是训练数据规模被高估了。这个反推逻辑对推理侧同样适用,把参数替换成2*参数量*tokens、日访问量和单台推理服务器的吞吐即可,核对的本质是让每一台设备的算力指标都能在公式里找到落点。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 14:13:20

数字孪生+风景园林:从倾斜摄影到积温驱动的季相演算

简介:这是一份PDF学术资料,围绕数字孪生技术在风景园林设计中的应用展开,适合风景园林设计师、研究人员以及智慧城市相关从业者阅读。内容从数字孪生技术概述切入,重点阐述其与LIM风景园林信息模型的融合路径,强调实时…

作者头像 李华
网站建设 2026/9/19 14:12:49

Open5GS在Ubuntu 22.04上的5G核心网实战部署指南

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

作者头像 李华
网站建设 2026/9/19 14:11:56

Visual Studio 2022社区版安装全指南:从授权选择到工具链排错

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

作者头像 李华
网站建设 2026/9/19 14:10:48

金融产品经理笔试全攻略:题型拆解、答题模板与实战模拟

简介:2017京东校招金融产品经理笔试真题,内容聚焦资料分析、数学运算与逻辑推理三大模块,面向准备互联网大厂金融产品经理校招的考生。题目围绕社会消费品零售总额、网上零售额等真实统计数据展开,要求考生快速计算名义增速与实际…

作者头像 李华