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

PyTorch/TensorFlow张量加速实战:3个被90%工程师忽略的底层CUDA内核调优技巧

第一章PyTorch/TensorFlow张量加速实战3个被90%工程师忽略的底层CUDA内核调优技巧CUDA流与默认流解耦避免隐式同步瓶颈PyTorch 和 TensorFlow 默认将所有 CUDA 操作提交至默认流null stream导致跨 kernel 的隐式同步。显式创建非默认流并绑定张量操作可实现计算与数据传输重叠。以下为 PyTorch 实例import torch stream torch.cuda.Stream() with torch.cuda.stream(stream): x torch.randn(4096, 4096, devicecuda) y torch.randn(4096, 4096, devicecuda) z torch.mm(x, y) # 在独立流中执行 torch.cuda.synchronize() # 仅在必要时同步内核启动配置精细化合理设置 block 和 grid 维度盲目依赖框架自动配置常导致 warp 利用率低于60%。使用torch.cuda.get_device_properties()获取 SM 数与 warp 大小后手动指定 launch 参数需自定义 CUDA 扩展或通过torch.compile的 backend 钩子干预推荐 block size128 或 256适配多数 Ampere 架构grid size 应 ≥ GPU SM 总数 × 4确保充分 occupancy避免 block size 为奇数或质数防止 warp 内部分发不均Tensor 内存布局对齐启用 channel-last 与 256-byte 对齐非对齐内存访问会触发多次 L2 缓存读取。TensorFlow 中启用 NHWCPyTorch 中使用tensor.to(memory_formattorch.channels_last)并确保分配对齐# PyTorch 对齐分配示例 aligned_tensor torch.empty(1024, 1024, dtypetorch.float32, devicecuda, pin_memoryFalse, memory_formattorch.contiguous_format) # 实际部署前校验(aligned_tensor.data_ptr() 0xFF) 0优化技巧典型加速比ResNet-50 inference适用场景CUDA 流解耦1.37×多输入/多模型 pipelineBlock/Grid 手动配置1.22×自定义算子、低精度 GEMM内存布局对齐1.18×卷积密集型模型CNN、ViT第二章CUDA内核级内存访问优化2.1 共享内存bank conflict规避与手动tiling实践Bank Conflict 根源分析GPU共享内存被划分为多个独立的bank如32个若线程束中多个线程同时访问不同地址但映射至同一bank则触发串行化严重降低带宽。典型冲突场景连续线程访问 shmem[i * stride] 且 stride % 32 0。手动tiling优化策略通过重排数据布局与分块加载使相邻线程访问连续bank__shared__ float tile[16][17]; // 额外一列避免bank conflict int tx threadIdx.x, ty threadIdx.y; // 加载时跨列偏移打破对齐 tile[ty][tx] A[ty by * BLOCK_SIZE][tx bx * BLOCK_SIZE]; __syncthreads(); float val tile[ty][tx 1]; // 安全访存此处17列设计使相邻行起始地址错开1个float消除16线程对32-bank的模零冲突1偏移确保不越界且维持bank分散性。性能对比单位GB/s配置带宽默认16×16 tile8216×17 padded tile1462.2 全局内存合并访问模式识别与张量布局重排NCHW→NHWC/NHWC→NCHW内存访问模式识别原理GPU线程束warp对全局内存的连续地址访问是实现高带宽吞吐的关键前提。NCHW布局下通道维C相邻元素在内存中不连续易导致非合并访问而NHWC将空间维H/W置于低位使同一像素的多通道数据连续存储。布局转换核心逻辑// NCHW → NHWC: 假设 input[n][c][h][w], output[n][h][w][c] for (int n 0; n N; n) for (int h 0; h H; h) for (int w 0; w W; w) for (int c 0; c C; c) output[n * H * W * C h * W * C w * C c] input[n * C * H * W c * H * W h * W w]; // 索引重映射该循环确保输出内存地址严格递增满足coalesced访问条件参数C、H、W、N需为常量或编译期已知以支持编译器向量化优化。性能对比单位GB/s布局读带宽写带宽NCHW12896NHWC2152082.3 零拷贝 pinned memory 异步数据传输在DataLoader中的深度集成内存页锁定与GPU预取协同机制PyTorch DataLoader 通过pin_memoryTrue自动将 CPU tensor 分配至 page-lockedpinned内存规避分页延迟为异步 DMA 传输提供前提。dataloader DataLoader( dataset, batch_size64, pin_memoryTrue, # 启用pinned memory分配 num_workers4, prefetch_factor2 # 每个工作进程预取2个batch )该配置使每个 worker 在collate_fn返回前即触发tensor.pin_memory()后续.to(cuda, non_blockingTrue)可并行执行内存拷贝与计算。异步流水线时序对比阶段同步模式默认零拷贝异步模式数据加载CPU → GPU 阻塞等待完成CPU → GPU DMA 并行于GPU kernel执行吞吐提升基准35% ~ 60%实测ResNet-50训练2.4 内存预取__ldg与缓存提示指令在自定义CUDA算子中的应用内存访问模式优化的关键路径在带宽受限的算子如逐元素激活函数或稀疏gather中全局内存延迟常成为瓶颈。__ldg() 内建函数可触发只读缓存Read-Only Data Cache预取绕过L1/L2一致性协议开销。__device__ float fast_gather(const float* __restrict__ src, int idx) { return __ldg(src[idx]); // 从RO cache加载避免cache line invalidation }__ldg() 要求指针为const且对齐适用于只读、空间局部性良好的场景其底层映射至PTX ld.global.nc 指令显著降低L2压力。缓存提示指令的细粒度控制CUDA 11.0 支持__cuda_membar_block()与__nanosleep()协同调度配合__ldg()形成软流水__ldg()启用只读缓存提升重复读取吞吐__nontemporal_store()绕过写缓存适用于单次写入场景指令适用场景缓存层级影响__ldg()只读、高重用率数据命中RO cache跳过L1__ldcg()读取后立即丢弃直接进L2不驻留L12.5 Tensor Core友好型GEMM分块策略MMA指令对齐与warp-level矩阵切分实测MMA指令对齐约束Tensor Core的wmma.sync.aligned.m16n16k16要求输入矩阵在shared memory中按16×16 tile对齐。非对齐访问将触发bank conflict或降频fallback。warp级切分实测配置__shared__ half As[16][16 1]; // 1避免bank conflict __shared__ half Bs[16][16 1]; wmma::fragmentwmma::matrix_a, 16, 16, 16, wmma::row_major, half frag_a;该配置确保每个warp加载16×16半精度子块且shared memory padding规避了32-bank bank conflict。性能关键参数对照分块尺寸(M×N×K)OccupancyTFLOPSA10016×16×16100%31232×32×875%289第三章计算图与内核融合进阶技术3.1 TorchScript FX Graph捕获与CUDA kernel fusion边界分析FX Graph捕获的隐式约束TorchScript通过torch.fx.symbolic_trace捕获模型时会跳过动态控制流如if x.sum() 0:仅保留静态可推导的计算图。这导致部分CUDA kernel fusion机会在前端即被截断。CUDA fusion的硬件感知边界# 示例无法融合的分支结构 def forward(self, x): if x.size(0) % 2 0: # 动态shape依赖 → FX无法trace → fusion中断 return x * 2 1 else: return x.relu() self.weight该分支中x.size(0) % 2引入运行时shape判断FX tracer将其视为Proxy不可解后续无法生成统一fusion kernel。Fusion可行性判定矩阵条件可fusion原因全静态shape 无Python控制流✓FX图完整Triton/PTX可联合调度含torch.where但shape恒定△需手动插入torch.jit.script标注3.2 TensorFlow XLA AOT编译中custom call注入与PTX inline汇编嵌入Custom Call 注入机制XLA AOT 编译器通过 xla::CustomCallTarget 接口注册 C 函数供 HLO 图在运行时调用// 注册自定义 kernel extern C void my_custom_kernel(void* out, const void* in, int n) { for (int i 0; i n; i) { static_cast(out)[i] sqrtf(static_cast(in)[i]); } }该函数需以 C ABI 导出由 XLA_AOT_COMPILATION 构建时链接进 .son 表示向量长度in/out 指向 device 内存需提前分配并绑定 stream。PTX Inline 汇编嵌入路径在 custom call 的 GPU 实现中可内联 PTX 实现 warp-level 原子操作使用 asm volatile 嵌入 PTX 字符串指定寄存器约束如 r、r0需显式声明输入/输出依赖避免编译器重排PTX 版本须与目标 GPU 架构如 sm_80兼容3.3 算子融合失效根因诊断动态shape、control flow与autograd hook干扰排查动态 shape 导致融合中断PyTorch 的 TorchScript 和 Inductor 在编译期需确定 tensor shape若存在 x.view(-1, x.size(1)) 等运行时 shape 依赖则跳过融合。可通过 torch._dynamo.config.verbose True 捕获 graph break due to dynamic shape 日志。Control flow 干扰示例def model(x): if x.sum() 0: # 动态分支触发 graph break return x * 2 return x 1该分支无法静态判定导致 Dynamo 中断追踪算子融合失效。建议改用 torch.where() 实现可追踪的条件逻辑。Autograd hook 的隐式副作用注册 tensor.register_hook() 会阻止梯度图优化Inductor 默认禁用含 hook 的 subgraph 融合第四章GPU资源调度与内核执行效率调优4.1 CUDA stream优先级控制与compute-bound/IO-bound任务隔离实践流优先级设置与硬件约束CUDA 11.2 支持创建带优先级的 stream需设备支持 cudaDeviceGetAttribute(attr, cudaDevAttrStreamPriorityRange, device) 查询范围int priorityLow, priorityHigh; cudaDeviceGetAttribute(priorityLow, cudaDevAttrStreamPriorityRange, 0); cudaDeviceGetAttribute(priorityHigh, cudaDevAttrStreamPriorityRange, 0); cudaStream_t highPrio, lowPrio; cudaStreamCreateWithPriority(highPrio, cudaStreamNonBlocking, priorityHigh); cudaStreamCreateWithPriority(lowPrio, cudaStreamNonBlocking, priorityLow);priorityHigh 通常为 0priorityLow 为负值如 -1数值越大优先级越高仅适用于计算密集型 kernel 抢占不改变 IO 绑定任务调度。任务类型隔离策略compute-bound kernel 绑定至高优先级 stream启用抢占式调度IO-bound 操作如 cudaMemcpyAsync绑定至低优先级 stream避免阻塞 GPU 计算单元任务类型推荐 stream 优先级典型操作Compute-bound最高0矩阵乘、卷积 kernelIO-bound最低-1主机↔设备内存拷贝4.2 Occupancy最大化调优block size、register usage与shared memory配比实验关键约束关系CUDA Occupancy 受三大硬件资源共同制约每个 SM 的线程数上限如 1536、寄存器总数如 65536/SM及共享内存容量如 96 KB/SM。三者呈强耦合关系。典型配置对比Block SizeRegisters/ThreadShared Mem/BlockOccupancy (%)1283216 KB100%2564832 KB66%寄存器压力实测代码__global__ void kernel_reg_bounded(float* a) { int tid blockIdx.x * blockDim.x threadIdx.x; float reg0 a[tid] * 1.1f; // 编译器可能分配至寄存器 float reg1 a[tid] * 1.2f; float reg2 a[tid] * 1.3f; a[tid] reg0 reg1 reg2; }该内核每线程至少占用3个32位寄存器当block size512时若SM仅支持64寄存器/线程则总需求达32768触发寄存器溢出至local memory显著降低occupancy。调优策略优先固定shared memory用量反推最大安全block size使用nvcc -Xptxas -v观测实际寄存器消耗4.3 Warp divergence量化分析与条件分支重构predicated execution替代if-elseWarp divergence的代价量化当同一warp内32个线程执行不同路径时GPU需串行执行各分支有效吞吐率降至1/32。以下为典型发散场景__global__ void divergent_kernel(float* data, int n) { int idx threadIdx.x; if (idx % 2 0) { // 50%发散率偶数线程走此分支 data[idx] sqrtf(data[idx]); } else { // 奇数线程走此分支 data[idx] data[idx] * 2.0f; } }该内核在SM上强制串行化两个分支IPC下降约40%实测Tesla V100。谓词执行重构策略使用掩码计算替代控制流保持warp级并行用布尔表达式生成线程级掩码如(idx % 2 0)返回int0/1通过乘法实现条件赋值避免分支跳转指标if-else版本谓词执行版本平均IPC1.822.97L1缓存命中率63.1%78.4%4.4 Nsight Compute深度 profilingstall reasons归因与instruction-level吞吐瓶颈定位Stall Reason分类解析Nsight Compute将执行停滞细分为12类原因核心包括inst_fetch指令获取延迟、tex_pipe_busy纹理单元争用、sync显式同步开销等。其中issue_slots_not_available直接反映warp调度器吞吐饱和。指令级吞吐瓶颈识别ncu -k my_kernel -f --set full --metrics sm__inst_executed_op_fadd_pred_on.sum,sm__inst_executed_op_fmul_pred_on.sum,sm__cycles_elapsed.avg该命令采集FP32加法/乘法指令实际执行数与周期数结合IPCinstructions per cycle反推ALU利用率瓶颈。典型stall分布对比KernelSync Stall (%)Tex Pipe Stall (%)Inst Fetch Stall (%)ray_trace_v138.212.75.1ray_trace_v29.48.322.6第五章从实验室到生产环境的张量加速工程化落地将 PyTorch 模型从 Jupyter 实验室迁入高并发 Kubernetes 集群时我们发现原始 torch.jit.script 编译后的模型在 GPU 多实例MIG下吞吐下降 37%。根本原因在于默认 torch._C._jit_set_profiling_executor(False) 未关闭 JIT 内部 profiling 开销。关键编译参数调优启用 torch.jit.fuser(fuser2) 替代默认 fuser融合算子减少 kernel launch 次数设置 torch.backends.cudnn.benchmark True 并预热 50 个 batch禁用 autogradtorch.set_grad_enabled(False) 后显式调用 .eval()生产级推理服务容器化配置# Dockerfile.partial FROM nvcr.io/nvidia/pytorch:23.10-py3 COPY --frombuilder /app/model.pt /model/model.pt ENV TORCH_CUDA_ARCH_LIST8.0 8.6 ENV CUDA_CACHE_MAXSIZE2147483648 CMD [python, -m, torchserve, --start, --model-store, /model, --ts-config, /config/config.properties]GPU 资源隔离与性能对比配置QPSbatch16p99 延迟ms显存占用GiB默认 torchscript default cudnn14248.212.7Fuser2 benchmark MIG-1g.5gb22921.65.3动态批处理调度策略[BatchScheduler] → (queue_depth ≥ 4) → trigger inference

相关文章:

PyTorch/TensorFlow张量加速实战:3个被90%工程师忽略的底层CUDA内核调优技巧

第一章:PyTorch/TensorFlow张量加速实战:3个被90%工程师忽略的底层CUDA内核调优技巧CUDA流与默认流解耦:避免隐式同步瓶颈 PyTorch 和 TensorFlow 默认将所有 CUDA 操作提交至默认流(null stream),导致跨 k…...

3大突破!AnythingLLM让多格式文档处理效率提升10倍

3大突破!AnythingLLM让多格式文档处理效率提升10倍 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型(LLM&am…...

OpenClaw技能分享:GLM-4.7-Flash社区优秀案例解析

OpenClaw技能分享:GLM-4.7-Flash社区优秀案例解析 1. 为什么关注社区Skill案例 在探索OpenClaw自动化能力的过程中,我发现官方文档只能教会基础操作,真正让人眼前一亮的创意往往来自社区。最近测试GLM-4.7-Flash模型时,意外发现…...

工业软件集成:在SolidWorks中嵌入Qwen3-ASR-0.6B实现语音指令操作

工业软件集成:在SolidWorks中嵌入Qwen3-ASR-0.6B实现语音指令操作 1. 引言 想象一下这个场景:你正在用SolidWorks设计一个复杂的装配体,双手在鼠标和键盘之间来回切换,一会儿旋转视图,一会儿调整尺寸,一会…...

Alpamayo-R1-10B详细步骤:从supervisorctl服务管理到日志实时监控

Alpamayo-R1-10B详细步骤:从supervisorctl服务管理到日志实时监控 1. 引言:为什么你需要关注这个自动驾驶模型 如果你正在研究自动驾驶,或者对AI如何“看懂”路况并做出决策感到好奇,那么Alpamayo-R1-10B绝对值得你花时间了解。…...

3个高效功能让Maccy成为macOS必备剪贴板管理器

3个高效功能让Maccy成为macOS必备剪贴板管理器 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy Maccy是一款专为macOS设计的轻量级剪贴板管理器,能够记录复制历史,让用户轻松…...

MediaPipe人体骨骼检测:零配置Web应用,上传图片秒出骨架图

MediaPipe人体骨骼检测:零配置Web应用,上传图片秒出骨架图 1. 引言:一键式骨骼检测的便捷体验 想象一下这样的场景:健身教练需要快速分析学员的动作姿势,医生希望直观展示患者的骨骼姿态,或者动画师需要参…...

Source Han Serif CN:7种字重如何改变你的中文排版体验?

Source Han Serif CN:7种字重如何改变你的中文排版体验? 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是否曾为寻找合适的中文字体而烦恼?商业字…...

29、【Agent】【OpenCode】模型配置(OpenCode Zen)(二)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】模型配…...

美团天天神券自动化脚本终极指南:告别手动抢券,每月轻松省下200元

美团天天神券自动化脚本终极指南:告别手动抢券,每月轻松省下200元 【免费下载链接】meituan-shenquan 美团 天天神券 地区活动 自动化脚本 项目地址: https://gitcode.com/gh_mirrors/me/meituan-shenquan 你是否经常在11点、17点、21点这三个关键…...

SiameseUIE在CSDN社区的应用:技术文章智能分析

SiameseUIE在CSDN社区的应用:技术文章智能分析 1. 引言 CSDN社区每天都有成千上万的技术文章发布,涵盖了从编程语言到人工智能的各个领域。面对如此庞大的内容量,如何快速准确地理解每篇文章的核心内容、自动生成标签、进行智能分类&#x…...

OpenClaw学习路径:从nanobot镜像入门到开发自定义技能

OpenClaw学习路径:从nanobot镜像入门到开发自定义技能 1. 为什么选择OpenClaw作为自动化助手 第一次听说OpenClaw时,我正在为重复性的文件整理工作头疼。作为一个经常需要处理大量技术文档的开发者,每天要花费数小时在机械的文件分类、重命…...

Allegro PCB Design GXL (legacy) - 动态网格铜的避让技巧

1. 动态网格铜的基础概念 在PCB设计中,铜皮处理是影响电路性能的关键环节。Allegro PCB Design GXL (legacy)作为业界常用的EDA工具,提供了静态铜和动态铜两种处理方式。静态网格铜就像一块固定形状的铁板,不会自动适应周围环境;而…...

保姆级教程:手把手教你用Xinference-v1.17.1在Jupyter里玩转开源大模型

保姆级教程:手把手教你用Xinference-v1.17.1在Jupyter里玩转开源大模型 1. 为什么选择Xinference? 1.1 什么是Xinference? Xinference(Xorbits Inference)是一个开源平台,它让运行各种AI模型变得像调用P…...

CLIP-GmP-ViT-L-14模型API接口详解:从调用到错误处理

CLIP-GmP-ViT-L-14模型API接口详解:从调用到错误处理 最近在折腾一些多模态AI应用,发现CLIP模型真是个好东西,能把图片和文字拉到同一个空间里比较。特别是这个CLIP-GmP-ViT-L-14,效果挺不错的。但部署好之后,怎么调用…...

Unity热力图性能优化实战:如何用ScriptableObject管理数据,让MeshRenderer渲染百个热点不卡顿

Unity热力图性能优化实战:ScriptableObject与GPU加速方案解析 当你在军事模拟系统中需要实时显示数百个单位的活动热点,或在智慧城市平台中可视化人流密度时,传统每帧重算Texture的热力点渲染方案很快就会遇到性能瓶颈。本文将分享一套经过实…...

PROJECT MOGFACE镜像部署详解:针对STM32开发者的AI赋能入门

PROJECT MOGFACE镜像部署详解:针对STM32开发者的AI赋能入门 很多做嵌入式开发的朋友,尤其是玩STM32的,可能都动过接触AI的念头。但一看到那些复杂的Python环境、动辄几十G的模型文件、还有各种依赖冲突,头就大了。心想&#xff1…...

Swift-All快速上手:小白也能轻松搞定大模型训练与部署

Swift-All快速上手:小白也能轻松搞定大模型训练与部署 1. 为什么选择Swift-All? 如果你刚接触大模型训练,可能会被各种复杂的工具和框架吓到。配置环境、处理分布式训练、管理显存...这些技术细节常常让新手望而却步。这就是Swift-All的价值…...

LeetCode刷题实战:用并查集(Union-Find)秒杀“朋友圈”和“岛屿数量”这类题目(附Python/Java代码)

并查集实战:用Union-Find高效解决LeetCode朋友圈与岛屿问题 在算法面试中,并查集(Union-Find)是一种常被忽视却威力巨大的数据结构。它能在近乎常数时间内完成集合合并与查询操作,特别适合处理动态连通性问题。本文将以…...

Alpamayo-R1-10B保姆级教程:Windows WSL2环境下通过NVIDIA Container Toolkit部署

Alpamayo-R1-10B保姆级教程:Windows WSL2环境下通过NVIDIA Container Toolkit部署 1. 引言:为什么要在Windows上部署自动驾驶AI模型? 如果你对自动驾驶技术感兴趣,或者正在从事相关的研究开发工作,那么Alpamayo-R1-1…...

Flink 1.11.2 + ClickHouse实战:手把手教你搭建实时商品浏览看板(附Tableau自动刷新技巧)

Flink ClickHouse 实时商品热度分析系统:从数据管道到自动刷新看板的完整实践 电商运营团队每天最关心的问题之一,就是哪些商品正在被用户频繁浏览。这些实时数据如果能快速转化为可视化的热力图,就能帮助运营人员及时调整推荐策略、优化库存…...

MinerU-Diffusion:文档OCR解码提速3.2倍新方案

MinerU-Diffusion:文档OCR解码提速3.2倍新方案 【免费下载链接】MinerU-Diffusion-V1-0320-2.5B 项目地址: https://ai.gitcode.com/OpenDataLab/MinerU-Diffusion-V1-0320-2.5B 导语 MinerU-Diffusion框架通过将文档OCR重构为逆渲染问题,采用并…...

EEGLAB进阶实战:从原始EEG到ERP成分的精准提取与可视化分析

1. EEGLAB入门:理解ERP分析的核心流程 第一次接触EEGLAB时,我被它强大的功能和复杂的界面弄得晕头转向。经过多次实战,我发现理解ERP分析的完整流程是关键。就像做菜需要先备料再烹饪一样,EEG数据处理也需要遵循特定步骤。 原始EE…...

DAMOYOLO-S边缘端部署指南:STM32F103C8T6嵌入式平台推理优化

DAMOYOLO-S边缘端部署指南:STM32F103C8T6嵌入式平台推理优化 1. 引言 如果你正在为一个资源极其有限的嵌入式设备寻找一个能跑起来的目标检测方案,比如用一块小小的STM32F103C8T6开发板,那么这篇文章就是为你准备的。你可能已经尝试过一些经…...

06_gstack发布运营:一键发布与文档同步机制

06_gstack发布运营:一键发布与文档同步机制关键字:gstack、一键发布、ship技能、document-release、文档同步、发布流水线、CHANGELOG、PR自动化、retro、工程回顾你上一次修改完代码到实际提交 PR,中间经历了多少步? git stash&a…...

Anything V5服务优化指南:如何调整参数获得最佳生成效果

Anything V5服务优化指南:如何调整参数获得最佳生成效果 1. 理解Anything V5的核心参数 1.1 分辨率设置对生成效果的影响 Anything V5支持多种分辨率设置,但不同分辨率会直接影响生成速度和质量: 512x512:默认设置&#xff0c…...

WuliArt Qwen-Image Turbo部署案例:边缘计算设备(Jetson AGX Orin)适配进展

WuliArt Qwen-Image Turbo部署案例:边缘计算设备(Jetson AGX Orin)适配进展 1. 引言:当极速文生图遇上边缘AI 想象一下,你有一台强大的边缘计算设备,比如英伟达的Jetson AGX Orin,它被设计用于…...

RexUniNLU零样本NLU详细步骤:MRC阅读理解任务Schema编写与调用

RexUniNLU零样本NLU详细步骤:MRC阅读理解任务Schema编写与调用 1. 引言:什么是RexUniNLU和MRC任务 如果你正在寻找一个能够理解中文、不需要训练就能直接使用的自然语言处理工具,RexUniNLU可能就是你要找的解决方案。这个基于DeBERTa模型的…...

nlp_gte_sentence-embedding_chinese-large长文本处理技巧:分段与聚合策略

nlp_gte_sentence-embedding_chinese-large长文本处理技巧:分段与聚合策略 1. 引言 你是不是也遇到过这样的问题:手头有一篇几十页的技术报告或者学术论文,想要用nlp_gte_sentence-embedding_chinese-large模型来提取文本向量,却…...

Stable Yogi Leather-Dress-Collection开源模型应用:ACG创作者无需订阅即可拥有的本地皮衣工具

Stable Yogi Leather-Dress-Collection开源模型应用:ACG创作者无需订阅即可拥有的本地皮衣工具 1. 项目概述 Stable Yogi Leather-Dress-Collection是一款专为动漫创作者设计的2.5D皮衣穿搭生成工具。基于Stable Diffusion v1.5和Anything V5动漫底座模型开发&…...