当前位置: 首页 > article >正文

【LLM infra】Megatron-LM | deepspeed | 量化/推理框架

noteLLM推理过程prefill每层都得到历史token的kv cache最后一个位置输出 logitsdecode对刚才新生成的token计算它的Q/K/V用它的 Q 去 attend 历史所有 K/V cache输出下一个token使用位置 t−1 的 Q 与位置 1∼t−1 的 K、V 做 attention得到位置 t−1 的上下文表示该表示经过后续 Transformer 层和 LM head 后才对词表 logits 做 softmax得到第 t 个 token 的概率分布。当前比较主流的一些分布式计算框架 DeepSpeed、Megatron 等都在降低显存方面做了很多优化工作比如量化、模型切分、混合精度计算、Memory Offload 等大模型推理与微调计算器可计算所需要的资源及预期速度。https://apxml.com/tools/vram-calculatorPTQ 的主要目标是减少 LLM 的存储和计算复杂性而无需对 LLM 架构进行修改或重新训练。PTQ 的主要优势在于其简单和高效。然而值得注意的是PTQ可能会在量化过程中引入一定程度的精度损失。当我们在硬件上跑算法时性能主要受到三个方面的限制计算速度也就是机器做数学运算的能力比如每秒能处理多少次操作OPs/second带宽数据在内存、缓存、芯片之间搬运的速度bytes/second总内存容量也就是设备最多能装下多少数据bytesFlashAttentionFlashAttention是分块读取Q/K/V矩阵少读写显存加快速度FlashAttention 4 核心亮点是针对 Blackwell/Hopper 时代“tensor core 算力增长快于 shared memory / SFU”的新瓶颈重新做了 attention 的算法与 kernel 流水协同设计它在长序列和 compute-bound 场景下能显著提速并且首次把这种顶级性能更自然地接入到 PyTorch FlexAttention 的灵活定制框架里模型架构层面优化训练推理Gated DeltaNet 混合 用“线性注意力层 全注意力层”搭骨架如qwen3.5模型DSA 在注意力里“只看重要 token”如deepseek 3.2模型文章目录note大模型参数计算1. 模型参数单位2. 训练显存计算3. 推理显存计算大模型的分布式训练1. 数据并行2. 模型并行3. 流水并行4. 混合并行模型量化Megatron-LM训练框架1、Megatron-LM框架2、codegeex的训练框架Megatron DeepSpeed ZeRO23、Megatron-DeepSpeed框架训练LLM需要的硬件DeepSpeed ZeRO零冗余优化DeepSpeed ChatfastertransformerLLM推理加速引擎tgi加速推理Text Generation Inferencesglang推理框架TensorRT推理框架LLM Compressor量化框架大模型的ToB部署LLM部署资源计算大模型推理与微调计算器Roofline 图Reference大模型参数计算1. 模型参数单位“10b”、“13b”、70b等术语通常指的是大型神经网络模型的参数数量。其中的 “b” 代表 “billion”也就是十亿。表示模型中的参数量每个参数用来存储模型的权重和偏差等信息。例如“10b” 意味着模型有大约 100 亿个参数。“13b” 意味着模型有大约 130 亿个参数。“70b” 意味着模型有大约 700 亿个参数。例如Meta 开发并公开发布的 Llama 2 系列大型语言模型 (LLM)这是一组经过预训练和微调的生成文本模型参数规模从 70 亿(7b)到 700 亿(70b)不等。经过微调的LLMs称为 Llama-2-Chat针对对话场景进行了优化。meta-llama/Llama-2-7b-hfmeta-llama/Llama-2-13b-hfmeta-llama/Llama-2-70b-hf输入仅输入文本输出仅生成文本模型架构Llama 2 是一种使用优化的 Transformer 架构的自回归语言模型。调整后的版本使用监督微调SFT和带有人类反馈的强化学习RLHF来适应人类对有用性和安全性的偏好。2. 训练显存计算1.模型权重模型权重是模型参数中的一部分通常是指神经网络中连接权重weights。这些权重决定了输入特征与网络层之间的连接强度以及在前向传播过程中特征的传递方式。所以模型2.梯度在训练过程中计算梯度用于更新模型参数。梯度与模型参数的维度相同。3.优化器参数一些优化算法如带有动量的优化器需要保存一些状态信息以便在每次更新时进行调整。这些状态信息也会占用一定的显存。比如采用 AdamW 优化器每个参数占用8个字节需要维护两个状态。意味着优化器所使用的显存量是模型权重的 2 倍采用 经过 bitsandbytes 优化的 AdamW 优化器每个参数占用2个字节相当于权重的一半采用 SGD 优化器占用显存和模型权重一样。4.输入数据和标签训练模型需要将输入数据和相应的标签加载到显存中。这些数据的大小取决于每个批次的样本数量以及每个样本的维度。5.中间计算在前向传播和反向传播过程中可能需要存储一些中间计算结果例如激活函数的输出、损失值等。6.临时缓冲区在计算过程中可能需要一些临时缓冲区来存储临时数据例如中间梯度计算结果等。减少中间变量也可以节省显存这就体现出函数式编程语言的优势了。7.硬件和依赖库的开销显卡或其他硬件设备以及使用的深度学习框架在进行计算时也会占用一些显存。【以 Llama-2-7b-hf 为例】数据类型Int8模型参数: 7B * 1 bytes 7GB梯度同上7GB优化器参数: AdamW 2倍模型参数 7GB * 2 14GBLLaMA的架构(hidden_size 4096, intermediate_size11008, num_hidden_lavers 32, context.length 2048)所以每个样本大小(4096 11008) * 2048 * 32 * 1byte 990MBA100 (80GB RAM)大概可以在int8精度下BatchSize设置为50综上总现存大小7GB 7GB 14GB 990M * 50 ~ 77GBLlama-2-7b-hf模型Int8推理由上个章节可得出现存大小6.5GB 由此可见模型训练需要的显存是至少推理的十几倍。3. 推理显存计算模型结构 模型的结构包括层数、每层的神经元数量、卷积核大小等。较深的模型通常需要更多的显存因为每一层都会产生中间计算结果。输入数据 推理时所需的显存与输入数据的尺寸有关。更大尺寸的输入数据会占用更多的显存。批处理大小BatchSize 批处理大小是指一次推理中处理的样本数量。较大的批处理大小可能会增加显存使用因为需要同时存储多个样本的计算结果。数据类型DType 使用的数据类型如单精度浮点数、半精度浮点数也会影响显存需求。较低精度的数据类型通常会减少显存需求。中间计算 在模型的推理过程中可能会产生一些中间计算结果这些中间结果也会占用一定的显存。大模型的分布式训练【背景】假设神经网络中某一层是做矩阵乘法, 其中的输入x xx的形状为4 × 5 4 \times 54×5, 模型参数w ww的形状为5 × 8 5 \times 85×8, 那么, 矩阵乘法输出形状为4 × 8 4 \times 84×8。如下:1. 数据并行数据并行切分数据x xx到不同设备上在反向传播过程中需要对各个设备上的梯度进行 AllReduce以确保各个设备上的模型始终保持一致。适合数据较大模型较小的情况如resnet50allReduce 先将所有device上的模型的梯度reduce归约然后将结果广播到所有设备上2. 模型并行模型并行省去了多个设备之间的梯度 AllReduce但是, 由于每个设备都需要完整的数据输入因此数据会在多个设备之间进行广播产生通信代价。比如上图中的最终得到的 out( 4 × 8 ) (4 \times 8)(4×8)如果它作为下一层网络的输入那么它就需要被广播发送到两个设备上。如bert3. 流水并行流水并行模型网络过大除了用模型并行还能用流水并行如下的网络有4层T1-T44. 混合并行混合并行综合上面的多种策略一起训练如GPT3首先被分为 64 个阶段进行流水并行。每个阶段都运行在 6 台 DGX-A100 主机上。在6台主机之间进行的是数据并行训练每台主机有 8 张 GPU 显卡同一台机器上的8张 GPU 显卡之间是进行模型并行训练。模型量化W4/8A16量化方案显著节省显存存储时int4/8计算时FP16Megatron-LM训练框架项目https://github.com/NVIDIA/Megatron-LM论文Megatron-LM: Training Multi-Billion Parameter Language Models UsingModel Parallelism论文链接https://arxiv.org/pdf/1909.08053.pdf1、Megatron-LM框架训练moe参考https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/core/transformer/moe/README.md参考深入理解 Megatron-LM1基础知识图解大模型系列之Megatron源码解读1分布式环境初始化猛猿图解大模型训练之Megatron源码解读2模型并行图解大模型训练系列之Megatron源码解读3分布式混合精度训练图解大模型训练系列之DeepSpeed-Megatron MoE并行训练原理篇图解大模型训练系列之DeepSpeed-Megatron MoE并行训练源码解读篇2、codegeex的训练框架Megatron DeepSpeed ZeRO2PScodegeex就是采用的是8头TP192头DP共1536块GPU进行训练采用的训练框架Megatron DeepSpeed ZeRO2。项目https://github.com/THUDM/CodeGeeX/tree/7365d9df242d87a5583d3f203e4b6c547dc6240ecodegeex paper: https://arxiv.org/abs/2303.17568codegeex模型结构3、Megatron-DeepSpeed框架https://github.com/deepspeedai/Megatron-DeepSpeed比如moe训练LLM需要的硬件拿llama为例子上表源自《A Survey of Large Language Models》DeepSpeed ZeRO零冗余优化DP: Data ParallelMP: Model Paralleldeepspeed是微软大规模分布式训练框架其中3D并行解决两大问题显存效率计算效率DeepSpeedZero可以实现全参数微调DeepSpeed ZeRO-2主要用于训练deepspeed 的参数配置可参考https://www.deepspeed.ai/docs/config-json/https://huggingface.co/docs/accelerate/usage_guides/deepspeedhttps://github.com/huggingface/transformers/blob/main/tests/deepspeedDeepSpeed Chat项目https://github.com/microsoft/DeepSpeed/tree/master/blogs/deepspeed-chatdeepspeed最近推出的RLHF pipeline如下图和之前很多LLM类似使用三部曲sft、reward model、PPO亮点是在第三步使用奖励模型对sft微调模型进行ppo时基于指数移动平均计算的checkpointExponential Moving Average (EMA) collection, where an EMA based checkpoint can be chosen for the final evaluation.混合训练将pretrain和ppo混合训练Mixture Training, which mixes the pretraining objective (i.e., the next word prediction) with the PPO objective to prevent regression performance on public benchmarks like SQuAD2.0.fastertransformerLLM推理加速引擎项目链接https://github.com/NVIDIA/FasterTransformer将张量并行 (TP) 和流水线并行 (PP) 应用于transformer模型。使用fastertransformer运行 GPT 模型的工作流程是通过 MPI 或线程初始化 NCCL 通信并设置张量并行和流水线并行的ranks按张量并行、流水线并行和其他模型超参数的ranks加载权重。通过张量并行、流水线并行和其他模型超参数的ranks创建ParalelGpt实例。接收来自客户端的请求并将请求转换为 ParallelGpt 的输入张量格式。运行forward将 ParallelGpt 的输出张量转换为客户端的响应并返回响应。tgi加速推理Text Generation Inferencetgi项目https://github.com/huggingface/text-generation-inference注text-generation-inference 这个项目里Fused qkv 以及 Fused gate and up projs的好处可以并行计算。注tgi不支持量化后的模型但是Tensort-LLM也是微软提出的支持。sglang推理框架技术特点RadixAttention通过共享前缀请求和高效缓存策略SGLang能在理论上实现十万级token/s的超高吞吐量同时显著降低响应延迟分布式调度支持跨节点自动负载均衡高效结构化输出内置高性能JSON解析模块便于构建面向结构化数据查询的API服务适合复杂自动化工作流轻量模块化架构采用灵活的模块化设计便于快速集成新技术如FlashInfer内核不断优化推理效率混合精度计算FP16与FP32智能切换sglang也是ucb的团队但是跟vllm是不同的一拨人核心团队不到10人。有借鉴了一款叫做lightllm的推理引擎也import很多vllm代码后续会完全去掉对vllm的依赖。其优势在于第一sglang的性能是目前最优的在2024年。这里说的性能主要是吞吐。sglang通过多进程zmp传输中间数据来cover掉cpu的开销高负载下gpu利用率可以到80%以上。还有一些美中不足的就是实现prompt cache的逻辑也被放在了forward()主进程里不然的话GPU利用率应该可以跟lmdeploy一样保持在95%左右。我看最近好像也已经在优化这部分了到时候吞吐还能提10%。除此之外sglang在推理的各个环节都有做各种细致的工程优化。第二sglang的代码可拓展性很高主流功能都有支持的情况下代码比vllm清晰简单很多这对于二次开发来说是很重要的。第三sglang的社区活跃度虽然比不上vllm但是作者都很积极地回复issue。而且现在开发节奏基本上是一周一个版本有些功能还不太完善的地方下一个版本基本马上就更新了。TensorRT推理框架链接https://github.com/NVIDIA/TensorRTTensorRT是NVIDIA开发的一款针对深度学习推理的高性能SDK。它专门设计用来在NVIDIA的GPU上提高深度学习模型的推理速度。TensorRT通过对深度学习模型进行转换和优化生成运行时引擎Runtime Engine从而在不同的NVIDIA GPU设备上提供高性能的人工智能服务。TensorRT提供了多种优化技术来提高推理性能包括算子和张量融合、精度裁剪支持FP16和INT8精度、动态张量内存管理和多流执行等。这些优化可以显著提高模型的推理速度减少模型的内存占用同时保持推理的准确性。在实际操作中TensorRT支持从多种深度学习框架导入训练好的模型并将其转换为优化后的TensorRT引擎。例如您可以将PyTorch训练的模型转换为ONNX格式然后使用TensorRT对其进行优化和推理。在推理阶段TensorRT可以对模型进行进一步的内存和计算图优化以实现更高效的执行。LLM Compressor量化框架链接https://github.com/vllm-project/llm-compressor1现有的压缩库如AutoGPTQ、AutoAWQ、AutoFP8等通过压缩模型减少推理延迟并保持高精度但它们的分散使用增加了复杂性。LLM Compressor将这些库封装在一起使用户能够轻松应用GPTQ、SmoothQuant、SparseGPT等最先进的压缩算法。2LLM Compressor的关键优势在于支持激活和权重量化。这对于利用INT8和FP8 tensor cores非常重要特别是在NVIDIA最新的GPU架构如Ada Lovelace和Hopper架构上优化通过降低精度运算来缓解计算瓶颈。经过对Llama 3.1 70B的测试LLM Compressor通过支持激活和权重量化在保持相同延迟的情况下将所需的GPU数量从4个减少到2个。3LLM Compressor还支持最先进的结构化稀疏性2:4和SparseGPT权重剪枝通过减少50%的模型大小来降低精度损失。除了推理速度提升外量化和剪枝的组合还最大限度地减少了内存占用。4在设计之初LLM Compressor就希望能够轻松集成到其它开源系统中如Hugging Face并支持多种量化方案。这些方案包括•Per-Tensor Quantization on Weights对每个权重张量进行量化•Per-Channel Quantization on Weights对每个通道的权重张量进行量化•Per-Tensor Quantization on Activation对每个激活张量进行量化•Per-Token Quantization on Activation对每个激活token进行量化这种灵活的量化策略可以根据不同模型和部署方案的性能和精度要求进行微调。5:LLM Compressor可以与各种模型架构协同工作具备很高的可扩展性。不仅支持MoE模型和视觉语言模型还能很好地支持非英伟达硬件平台。相关优化方式激活与权重量化通过 FP8结合 RTN适配 NVIDIA Ada Lovelace 和 Hopper GPU和 INT8结合 SmoothQuant 和 GPTQ适配 NVIDIA Turing 和 Ampere GPU实现高达3 倍更快的服务器吞吐量。权重量化通过 GPTQ 生成 INT4 权重量化模型适配 NVIDIA Ampere GPU 及更新版本实现高达4 倍更快的推理延迟。权重剪枝利用 SparseGPT 创建 2:4 比例50% 稀疏的稀疏模型适配 NVIDIA Ampere GPU 及更新版本提升高达1.5 倍的整体性能。大模型的ToB部署目前企业应用大模型面临诸多难点模型体积大训练难度高算力规模大性能要求高数据规模大数据质量参差不齐。大模型产业化需要云计算厂商将模型开发、训练、调优、运营等复杂过程封装起来通过低门槛、高效率的企业级服务平台深入产业为千行百业提供服务。【举例】非guanggao文心千帆大模型平台提供公有云服务、私有化部署两大交付模式。在公有云服务方面将提供推理直接调用大模型的推理能力、微调通过高质量精标业务数据高效训练出特定行业的大模型、托管将模型发布在百度智能云以实现更加稳定高效的运行三种服务大幅降低企业部署大模型的门槛。在私有化部署方面文心千帆大模型平台支持软件授权提供在企业环境中运行的大模型服务、软硬一体提供整套大模型服务及对应的硬件基础设施租赁服务提供机器和平台的租赁满足客户低频需求三种方式。私有化部属能够满足对数据监管有严格要求的企业客户需求。LLM部署资源计算大模型推理与微调计算器可计算所需要的资源及预期速度。https://apxml.com/tools/vram-calculatorRoofline 图把计算能力和内存带宽的权衡形象地画出来。这个图是个对数坐标图横轴是算术强度FLOPs per byte纵轴是你在特定硬件上能达到的最大吞吐量FLOPs/s。Reference[1] 大语言模型LLM分布式训练框架总结[2] 【论文阅读】Megatron-LM要点[3] Megatron LM 论文精读【论文精读】.李沐论文解读.b站[4] 详谈大模型训练和推理优化技术.华师王嘉宁[5] Finding the cause of RuntimeError: Expected to mark a variable ready only once[6] 百度工程师首次现场演示“文心千帆”如何可视化微调大模型[7] 开源大模型部署及推理所需显卡成本必读也看大模型参数与显卡大小的大致映射策略[8] 也看大模型训练中的显存占用分析及优化方法解析问题思路与策略的一些总结[9] 大模型的好伙伴浅析推理加速引擎FasterTransformer[10] [NLP]深入理解 Megatron-LM详解并行策略[11] 图解大模型训练之Megatron源码解读2模型并行[12] https://github.com/NVIDIA/FasterTransformer/blob/main/docs/gpt_guide.md[13] 一步一步理解大模型零冗余优化器技术[14] 阿里云. Llama2-7B基于PAI-DSW的全参数微调训练训练参数[15] DeepSpeed结合Megatron-LM训练GPT2模型笔记[16] 大模型时代是 Infra 的春天还是冬天昆仑万维 AI-Infra 负责人[17] https://github.com/microsoft/DeepSpeed、[18] LLM十八LLM 的推理优化技术纵览[19] 大模型推理加速技术的学习路线是什么?[20] 目前业界大模型推理框架很多各有什么优缺点应该如何选择[21] 大模型推理核心技术之Continuous Batching和我的WXG往事[22] 大模型推理框架简介.csdn[23] 使用SGLang实现DeepSeek离线大模型并行推理[24] 腾讯三面训练一个70B模型要多久[25] https://jax-ml.github.io/scaling-book/[26] 大模型训练1模型训练的时间都花在哪了https://zhuanlan.zhihu.com/p/1933883029148922068

相关文章:

【LLM infra】Megatron-LM | deepspeed | 量化/推理框架

note LLM推理过程: prefill:每层都得到历史token的kv cache,最后一个位置输出 logits;decode:对刚才新生成的token,计算它的Q/K/V,用它的 Q 去 attend 历史所有 K/V cache,输出下一…...

mimic数据库提取小问题解决

sql学艺不精,所以基本上自己开发一套“专属sql”后后面都是套用。首先是拼接问题,正常提取出目标人群后,需要不断拼接demo,treat,lab等数据,像demo,treat这些可能还好,但lab这些短时…...

推荐:Jib — 容器化你的Java应用的新选择!

推荐:Jib — 容器化你的Java应用的新选择! 【免费下载链接】jib GoogleContainerTools/jib: 是一个基于 Java 的 Docker 镜像构建工具,支持多种容器镜像构建选项和插件。该项目提供了一个简单易用的 Docker 镜像构建工具,可以方便…...

好用的软件、网站、插件记录

好的科研工具能够帮助我们事半功倍,华而不实的工具浪费我们的时间。在此记录一下,一些好用且目前我长期在使用的工具。 目的:希望帮助刚入门的同学快速上手,节省找工具的时间,将更多的时间投入自己的科研任务。 好用的…...

【亲测免费】 探索知识图谱的力量: rahulnyk/knowledge_graph 项目详解

探索知识图谱的力量: rahulnyk/knowledge_graph 项目详解 【免费下载链接】knowledge_graph Convert any text to a graph of knowledge. This can be used for Graph Augmented Generation or Knowledge Graph based QnA 项目地址: https://gitcode.com/gh_mirro…...

贡献者必读:如何参与SIMP开源项目并提交高质量代码

贡献者必读:如何参与SIMP开源项目并提交高质量代码 【免费下载链接】SIMP A system automation and configuration management stack targeted toward operational flexibility and policy compliance. 项目地址: https://gitcode.com/gh_mirrors/si/SIMP SI…...

【数字信号调制】基于8相移键控8-PSK调制数字通信系统(含模拟噪声信道上的信号传输,包括调制、噪声添加、解调以及符号和比特错误率的性能评估)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

【状态估计】基于卡尔曼滤波器实现月球陨石坑导航附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

【雷达干扰】基于CFastICA交叉极化干扰对消-独立成分分析附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

Windows 10 RS2及以上系统中使用TDL的注意事项:IRQL级别变化与驱动开发调整

Windows 10 RS2及以上系统中使用TDL的注意事项:IRQL级别变化与驱动开发调整 【免费下载链接】TDL Driver loader for bypassing Windows x64 Driver Signature Enforcement 项目地址: https://gitcode.com/gh_mirrors/tdl1/TDL TDL(Turla Driver …...

TDL驱动开发实战:如何编写适用于Turla Driver Loader的“无驱动”内核模块

TDL驱动开发实战:如何编写适用于Turla Driver Loader的“无驱动”内核模块 【免费下载链接】TDL Driver loader for bypassing Windows x64 Driver Signature Enforcement 项目地址: https://gitcode.com/gh_mirrors/tdl1/TDL TDL(Turla Driver L…...

光纤熔接实验教程

一、实验目的掌握光纤熔接的基本原理和操作步骤。学习使用光纤熔接机进行光纤的精确对接。了解光纤熔接的质量评估方法。二、实验设备与工具光纤熔接机:用于光纤的精确对准和熔接。光纤切割刀:用于切割光纤端面,确保端面平整。光纤剥线钳&…...

QgraphicsView异步线程加载地图瓦片

本节主要记录一下qt开发过程中离线地图瓦片的加载方式,瓦片加载选择graphicsView控件,同时为了不影响主线程事件和其他操作,这里采用了异步线程的操作,将地图瓦片加载的步骤放到了异步子线程之中。注:本记录仅为本人笔…...

Linux课程六课---Linux进程控制

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…...

华为OD机试双机位C卷-乘坐保密电梯 (Py/Java/C/C++/Js/Go)

乘坐保密电梯 华为OD机试双机位C卷 华为OD上机考试双机位C卷 100分题型 华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解 题目描述 有一座保密大楼,你从0楼到达指定楼层m,必须这样的规则乘坐电梯: 给定一个数字序列,每…...

double-conversion开发者必备:测试用例编写与验证完全指南

double-conversion开发者必备:测试用例编写与验证完全指南 【免费下载链接】double-conversion Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles. 项目地址: https://gitcode.com/gh_mirrors/do/double-conversion doubl…...

Gatt社区贡献指南:如何参与开源项目并提交PR

Gatt社区贡献指南:如何参与开源项目并提交PR 【免费下载链接】gatt Gatt is a Go package for building Bluetooth Low Energy peripherals 项目地址: https://gitcode.com/gh_mirrors/ga/gatt Gatt是一个用于构建蓝牙低功耗(BLE)外设…...

如何通过eluceo iCal 2创建重复事件与例外日期?

如何通过eluceo iCal 2创建重复事件与例外日期? 【免费下载链接】iCal iCal-creator for PHP 项目地址: https://gitcode.com/gh_mirrors/ic/iCal eluceo iCal 2是一款强大的PHP iCal创建工具,能够帮助开发者轻松生成符合iCalendar标准的日历文件…...

如何将Bramses‘ Highly Opinionated Vault 2023与外部工具集成:Readwise、Alfred与Zotero协同工作流

如何将Bramses Highly Opinionated Vault 2023与外部工具集成:Readwise、Alfred与Zotero协同工作流 【免费下载链接】bramses-highly-opinionated-vault-2023 A highly opinionated, fully featured Obsidian vault that can get you from Zero to Zettelkasten lic…...

TextAttack实战教程:用5行代码实现BERT模型的对抗性攻击

TextAttack实战教程:用5行代码实现BERT模型的对抗性攻击 【免费下载链接】TextAttack TextAttack 🐙 is a Python framework for adversarial attacks, data augmentation, and model training in NLP https://textattack.readthedocs.io/en/master/ 项…...

打造响应式导航:laravel-menu与Bootstrap 3/5的完美结合方案

打造响应式导航:laravel-menu与Bootstrap 3/5的完美结合方案 【免费下载链接】laravel-menu A quick way to create menus in Laravel 项目地址: https://gitcode.com/gh_mirrors/la/laravel-menu laravel-menu是一款专为Laravel框架设计的菜单创建工具&…...

Matic Network合约升级机制解析:Proxy模式与Governance如何确保系统可扩展性

Matic Network合约升级机制解析:Proxy模式与Governance如何确保系统可扩展性 【免费下载链接】contracts Smart contracts comprising the business logic of the Matic Network 项目地址: https://gitcode.com/gh_mirrors/con/contracts Matic Network作为高…...

Clojure开发者的Python之旅:从语法差异到实战技巧

Clojure开发者的Python之旅:从语法差异到实战技巧 【免费下载链接】libpython-clj Python bindings for Clojure 项目地址: https://gitcode.com/gh_mirrors/li/libpython-clj 作为一名Clojure开发者,当你需要与Python生态系统交互时,…...

DuckieTV自定义界面教程:从主题切换到快捷键设置,打造你的专属追剧工具

DuckieTV自定义界面教程:从主题切换到快捷键设置,打造你的专属追剧工具 【免费下载链接】DuckieTV A web application built with AngularJS to track your favorite tv-shows with semi-automagic torrent integration 项目地址: https://gitcode.com…...

dbblog常见问题解决:从安装到运行的15个实用技巧

dbblog常见问题解决:从安装到运行的15个实用技巧 【免费下载链接】dbblog 基于SpringBoot2.xVue2.xElementUIIviewElasticsearchRabbitMQRedisShiro的多模块前后端分离的博客项目 项目地址: https://gitcode.com/gh_mirrors/db/dbblog dbblog是一个基于Sprin…...

eslint-plugin-jest完全指南:如何用ESLint提升Jest测试代码质量

eslint-plugin-jest完全指南:如何用ESLint提升Jest测试代码质量 【免费下载链接】eslint-plugin-jest ESLint plugin for Jest 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-jest eslint-plugin-jest是一款专为Jest测试框架设计的ESLint插件…...

从0到1搭建Jest测试环境:eslint-plugin-jest助力代码质量保障

从0到1搭建Jest测试环境:eslint-plugin-jest助力代码质量保障 【免费下载链接】eslint-plugin-jest ESLint plugin for Jest 项目地址: https://gitcode.com/gh_mirrors/es/eslint-plugin-jest 在现代JavaScript开发中,高质量的测试是保障代码可…...

pyproj性能优化指南:提升地理空间数据处理效率的5个方法

pyproj性能优化指南:提升地理空间数据处理效率的5个方法 【免费下载链接】pyproj Python interface to PROJ (cartographic projections and coordinate transformations library) 项目地址: https://gitcode.com/gh_mirrors/py/pyproj pyproj作为Python接口…...

终极指南:如何使用JsonSchema数据生成自动创建符合规范的测试数据

终极指南:如何使用JsonSchema数据生成自动创建符合规范的测试数据 【免费下载链接】json-everything System.Text.Json-based support for all of your JSON needs. 项目地址: https://gitcode.com/gh_mirrors/jso/json-everything JsonSchema数据生成是json…...

LaTeXML常见问题解答:从入门到精通的避坑指南

LaTeXML常见问题解答:从入门到精通的避坑指南 【免费下载链接】LaTeXML LaTeXML: a TeX and LaTeX to XML/HTML/ePub/MathML translator. 项目地址: https://gitcode.com/gh_mirrors/la/LaTeXML LaTeXML是一款强大的TeX/LaTeX到XML/HTML/ePub/MathML转换器&a…...