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

GTE-Pro与PyTorch Lightning整合:分布式训练优化

GTE-Pro与PyTorch Lightning整合分布式训练优化1. 为什么GTE-Pro需要PyTorch Lightning来加速训练GTE-Pro作为一款企业级语义智能引擎它的核心能力在于将文本转化为高维意义向量。但这种能力不是凭空而来的——它需要在海量文本数据上进行充分训练。我第一次尝试用原生PyTorch训练GTE-Pro时花了整整三天才跑完一个epoch显存还经常爆掉。后来换成PyTorch Lightning同样的任务只用了不到一天而且整个过程稳定得多。这背后的原因其实很实在GTE-Pro的模型结构复杂参数量大对计算资源要求高。单卡训练不仅慢还容易因为显存不足而失败。而实际工程中我们往往需要快速验证不同超参数组合的效果或者在有限时间内完成模型迭代。这时候Lightning的价值就体现出来了——它把那些重复性高、容易出错的工程细节都封装好了让我们能专注于模型本身。更重要的是Lightning不是简单地把PyTorch包装一层。它提供了一套完整的训练生命周期管理从数据加载、模型定义、训练循环到结果可视化每个环节都有成熟的解决方案。比如多GPU训练原生PyTorch需要手动处理数据分发、梯度同步、模型保存等一堆细节而Lightning只需要几行配置就能搞定。这种“少写代码多做实验”的体验对快速推进项目特别重要。2. 环境准备与快速部署2.1 基础环境搭建开始之前先确认你的系统满足基本要求。GTE-Pro训练对硬件有一定要求建议至少配备两块NVIDIA GPU如V100或A100显存不低于32GB。软件环境方面我推荐使用Python 3.9和CUDA 11.7这样能获得最好的兼容性和性能。# 创建虚拟环境 python -m venv gte-pro-env source gte-pro-env/bin/activate # Linux/Mac # gte-pro-env\Scripts\activate # Windows # 安装基础依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install pytorch-lightning transformers datasets scikit-learn matplotlib seaborn2.2 GTE-Pro模型获取与验证GTE-Pro模型可以从Hugging Face Hub直接加载这是最简单的方式。不过要注意GTE-Pro有多个版本企业版通常包含更丰富的语义理解能力而社区版更适合快速验证想法。from transformers import AutoTokenizer, AutoModel # 加载GTE-Pro模型和分词器 model_name thenlper/gte-pro tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModel.from_pretrained(model_name) # 验证模型是否正常工作 text 人工智能正在改变我们的工作方式 inputs tokenizer(text, return_tensorspt, truncationTrue, paddingTrue, max_length512) outputs model(**inputs) embeddings outputs.last_hidden_state.mean(dim1) # 简单的池化操作 print(f输入文本: {text}) print(f嵌入向量维度: {embeddings.shape}) print(f向量范数: {embeddings.norm().item():.2f})运行这段代码如果能看到正常的输出说明环境已经准备好了。注意这里我们用了gte-pro这个模型标识而不是其他类似名称的模型因为GTE-Pro有特定的架构设计专门针对语义搜索场景优化。2.3 PyTorch Lightning基础配置Lightning的核心思想是把模型逻辑和训练逻辑分离。我们需要创建一个继承自pl.LightningModule的类把模型定义、前向传播、损失计算、优化器配置等都放进去。import pytorch_lightning as pl import torch import torch.nn as nn from transformers import AutoModel class GTEProLightning(pl.LightningModule): def __init__(self, model_namethenlper/gte-pro, learning_rate2e-5): super().__init__() self.save_hyperparameters() # 自动保存超参数方便后续复现 # 加载预训练的GTE-Pro模型 self.model AutoModel.from_pretrained(model_name) # 添加一个简单的投影层用于微调 self.projection nn.Sequential( nn.Linear(self.model.config.hidden_size, 512), nn.ReLU(), nn.Dropout(0.1), nn.Linear(512, 512) ) # 损失函数对比学习常用的InfoNCE损失 self.loss_fn nn.CrossEntropyLoss() def forward(self, input_ids, attention_mask): outputs self.model(input_idsinput_ids, attention_maskattention_mask) # 使用[CLS] token的表示作为句子嵌入 cls_embeddings outputs.last_hidden_state[:, 0, :] return self.projection(cls_embeddings) def training_step(self, batch, batch_idx): # 这里简化了对比学习的数据组织实际项目中会更复杂 input_ids, attention_mask, labels batch embeddings self(input_ids, attention_mask) # 计算相似度矩阵 similarity_matrix torch.matmul(embeddings, embeddings.T) loss self.loss_fn(similarity_matrix, labels) self.log(train_loss, loss, on_stepTrue, on_epochTrue, prog_barTrue) return loss def configure_optimizers(self): optimizer torch.optim.AdamW( self.parameters(), lrself.hparams.learning_rate, weight_decay0.01 ) return optimizer这个基础框架已经包含了GTE-Pro微调所需的核心组件。注意self.save_hyperparameters()这行代码它会自动记录所有传入的超参数这对实验管理和结果复现非常重要。3. 多GPU数据并行训练实战3.1 数据并行原理与配置多GPU训练的核心是让不同的GPU处理不同的数据批次然后在每次迭代后同步梯度。PyTorch Lightning通过Trainer类的accelerator和devices参数就能轻松实现这一点不需要修改模型代码。from pytorch_lightning import Trainer from pytorch_lightning.strategies import DDPStrategy # 创建训练器启用多GPU训练 trainer Trainer( acceleratorgpu, devices2, # 使用2块GPU strategyddp, # 数据并行策略 max_epochs10, precision16-mixed, # 启用混合精度后面会详细讲 gradient_clip_val1.0, # 梯度裁剪防止训练不稳定 log_every_n_steps10, default_root_dir./logs/gte-pro-training ) # 创建模型实例 model GTEProLightning(learning_rate1e-5) # 开始训练 trainer.fit(model, datamoduledata_module) # data_module需要自己实现这里的关键参数是devices2和strategyddp。DDPDistributed Data Parallel是PyTorch官方推荐的多GPU训练策略比传统的DataParallel更高效内存占用更低。如果你有更多GPU只需修改devices参数即可Lightning会自动处理所有分布式细节。3.2 数据加载器优化多GPU训练时数据加载往往成为瓶颈。Lightning提供了DataModule抽象让我们能把数据准备逻辑和模型逻辑完全分离。from torch.utils.data import Dataset, DataLoader from transformers import AutoTokenizer import torch class GTEProDataset(Dataset): def __init__(self, texts, tokenizer, max_length512): self.texts texts self.tokenizer tokenizer self.max_length max_length def __len__(self): return len(self.texts) def __getitem__(self, idx): text str(self.texts[idx]) encoding self.tokenizer( text, truncationTrue, paddingmax_length, max_lengthself.max_length, return_tensorspt ) # 返回input_ids和attention_mask标签暂时用索引代替 return { input_ids: encoding[input_ids].flatten(), attention_mask: encoding[attention_mask].flatten(), labels: torch.tensor(idx % 16) # 简化的标签实际项目中需要真实标签 } class GTEProDataModule(pl.LightningDataModule): def __init__(self, train_texts, val_texts, tokenizer, batch_size16, max_length512): super().__init__() self.train_texts train_texts self.val_texts val_texts self.tokenizer tokenizer self.batch_size batch_size self.max_length max_length def setup(self, stageNone): if stage fit or stage is None: self.train_dataset GTEProDataset( self.train_texts, self.tokenizer, self.max_length ) self.val_dataset GTEProDataset( self.val_texts, self.tokenizer, self.max_length ) def train_dataloader(self): return DataLoader( self.train_dataset, batch_sizeself.batch_size, shuffleTrue, num_workers4, # 多进程数据加载 pin_memoryTrue, # 内存锁定加速GPU数据传输 persistent_workersTrue # 保持worker进程避免重复创建开销 ) def val_dataloader(self): return DataLoader( self.val_dataset, batch_sizeself.batch_size, shuffleFalse, num_workers4, pin_memoryTrue, persistent_workersTrue )注意num_workers4和pin_memoryTrue这两个参数。num_workers设置数据加载的子进程数量一般设置为CPU核心数的一半pin_memory则会将数据加载到锁页内存中使GPU数据传输更快。这两个优化在多GPU训练中效果特别明显。3.3 实际训练效果对比我在相同硬件条件下做了对比测试结果很能说明问题训练配置单卡训练双卡DDP训练四卡DDP训练每epoch耗时72小时38小时22小时显存峰值28GB16GB/卡14GB/卡最终准确率82.3%83.1%83.5%可以看到双卡训练不仅速度提升了近一倍显存占用反而降低了这是因为DDP策略比单卡训练更高效。准确率的小幅提升则得益于更大的有效批量大小这有助于模型更好地收敛。有趣的是四卡训练的速度提升并不是线性的——从双卡到四卡速度只提升了约1.7倍而不是2倍。这是因为随着GPU数量增加进程间通信开销也会增加。所以在实际项目中我通常会先测试2-4卡的性价比而不是盲目追求更多GPU。4. 混合精度训练与梯度累积技巧4.1 混合精度训练原理与实践混合精度训练是提升训练速度和降低显存占用的利器。它的核心思想是在保证数值稳定性的前提下用16位浮点数FP16进行大部分计算只在关键步骤使用32位浮点数FP32。# 在Trainer中启用混合精度 trainer Trainer( acceleratorgpu, devices2, strategyddp, precision16-mixed, # 启用混合精度 max_epochs10, # 其他参数... ) # 或者更精细的控制 trainer Trainer( acceleratorgpu, devices2, strategyddp, precisionbf16-mixed, # 如果GPU支持bfloat16性能更好 max_epochs10, # 其他参数... )FP16相比FP32显存占用减半计算速度也更快。但FP16的数值范围较小容易出现下溢underflow或上溢overflow。Lightning的混合精度实现会自动处理这些问题在前向传播中使用FP16计算在反向传播中自动缩放损失值防止梯度下溢在优化器更新前将梯度缩放回正常范围对于GTE-Pro这样的大模型混合精度训练几乎是必须的。我曾经尝试过纯FP32训练结果显存直接爆掉连最小的batch size都无法运行。4.2 梯度累积解决显存限制即使启用了混合精度有时显存仍然不够用特别是当需要大batch size来获得更好的训练效果时。梯度累积就是解决这个问题的巧妙方法——它模拟了大batch size的效果但实际内存占用不变。# 在Trainer中配置梯度累积 trainer Trainer( acceleratorgpu, devices2, strategyddp, precision16-mixed, accumulate_grad_batches4, # 每4个batch更新一次参数 max_epochs10, # 其他参数... ) # 修改模型的training_step方法添加梯度累积逻辑 def training_step(self, batch, batch_idx): input_ids, attention_mask, labels batch embeddings self(input_ids, attention_mask) similarity_matrix torch.matmul(embeddings, embeddings.T) loss self.loss_fn(similarity_matrix, labels) # Lightnining会自动处理梯度累积我们只需要正常返回loss self.log(train_loss, loss, on_stepTrue, on_epochTrue, prog_barTrue) return loss梯度累积的工作原理很简单在前几个batch中只计算梯度但不更新参数等到累积了足够多的梯度后再用累积的梯度更新一次参数。这样虽然每次前向传播的batch size很小但参数更新时的有效batch size是原始batch size乘以累积步数。举个例子如果原始batch size是8梯度累积步数是4那么有效batch size就是32。这对于GTE-Pro这种需要大量上下文信息的模型特别有用因为更大的batch size能让模型看到更多样化的样本分布。4.3 综合优化效果我把混合精度和梯度累积结合起来得到了显著的性能提升# 完整的优化训练配置 trainer Trainer( acceleratorgpu, devices2, strategyddp, precision16-mixed, accumulate_grad_batches4, gradient_clip_val1.0, max_epochs10, log_every_n_steps10, default_root_dir./logs/gte-pro-optimized, # 启用自动调整学习率 callbacks[ pl.callbacks.LearningRateMonitor(logging_intervalstep) ] )这套配置带来的实际收益显存节省从单卡需要32GB显存降到双卡各需12GB训练加速相比基础配置整体训练时间缩短了35%效果提升由于能使用更大的有效batch size模型收敛更稳定最终指标提升了0.8个百分点最关键的是这些优化都是通过配置实现的不需要修改模型代码。这就是Lightning的设计哲学让研究者专注于算法创新而不是工程细节。5. 训练过程可视化与模型检查点管理5.1 实时训练监控训练过程中实时监控各项指标对及时发现问题至关重要。Lightning原生支持TensorBoard这是最直观的可视化工具。# 启用TensorBoard日志 trainer Trainer( acceleratorgpu, devices2, strategyddp, precision16-mixed, accumulate_grad_batches4, max_epochs10, loggerpl.loggers.TensorBoardLogger( save_dir./logs, namegte-pro-training, versionv1 ), # 其他参数... ) # 在模型中添加更多监控指标 def training_step(self, batch, batch_idx): input_ids, attention_mask, labels batch embeddings self(input_ids, attention_mask) similarity_matrix torch.matmul(embeddings, embeddings.T) loss self.loss_fn(similarity_matrix, labels) # 计算额外的监控指标 accuracy (similarity_matrix.argmax(dim1) labels).float().mean() avg_similarity similarity_matrix.mean() self.log(train_loss, loss, on_stepTrue, on_epochTrue, prog_barTrue) self.log(train_accuracy, accuracy, on_stepTrue, on_epochTrue) self.log(avg_similarity, avg_similarity, on_stepTrue, on_epochTrue) return loss启动训练后运行tensorboard --logdir./logs就能在浏览器中看到实时的训练曲线。我特别关注三个指标train_loss应该平稳下降如果出现剧烈波动可能是学习率设置不当train_accuracy反映模型的学习进度应该逐渐上升avg_similarityGTE-Pro的特有指标反映嵌入向量的平均相似度太高可能意味着模型过于保守5.2 智能模型检查点管理模型检查点管理是训练中最容易被忽视却最重要的环节之一。Lightning提供了强大的ModelCheckpoint回调可以自动保存最佳模型。from pytorch_lightning.callbacks import ModelCheckpoint # 配置检查点回调 checkpoint_callback ModelCheckpoint( monitorval_loss, # 监控验证损失 dirpath./checkpoints/, filenamegte-pro-{epoch:02d}-{val_loss:.2f}, save_top_k3, # 只保存最好的3个模型 modemin, # 越小越好 save_lastTrue, # 同时保存最后一个epoch的模型 verboseTrue, every_n_epochs1 # 每个epoch都检查 ) # 添加到训练器 trainer Trainer( # ... 其他参数 callbacks[checkpoint_callback] )这个配置会自动保存验证损失最低的3个模型并且每次都保存最新的模型。filename模板中的{epoch:02d}和{val_loss:.2f}会让文件名包含epoch编号和验证损失值方便我们快速识别哪个模型表现最好。更进一步我们可以添加早停Early Stopping机制防止过拟合from pytorch_lightning.callbacks import EarlyStopping early_stopping EarlyStopping( monitorval_loss, min_delta0.001, # 损失变化小于这个值才认为收敛 patience3, # 连续3个epoch没有改善就停止 verboseTrue, modemin ) trainer Trainer( # ... 其他参数 callbacks[checkpoint_callback, early_stopping] )5.3 模型恢复与继续训练训练中断是常有的事Lightning的检查点功能让恢复训练变得非常简单# 从检查点恢复训练 checkpoint_path ./checkpoints/gte-pro-epoch05-val_loss0.42.ckpt # 创建模型实例 model GTEProLightning(learning_rate1e-5) # 创建训练器指定检查点路径 trainer Trainer( acceleratorgpu, devices2, strategyddp, precision16-mixed, max_epochs10, resume_from_checkpointcheckpoint_path, # 关键参数 # 其他参数... ) trainer.fit(model, datamoduledata_module)resume_from_checkpoint参数会自动加载模型权重、优化器状态、学习率调度器状态等所有必要信息让训练从中断处精确继续。这比手动保存和加载要可靠得多特别是在分布式训练环境中。6. 实战经验与常见问题解决6.1 训练不稳定问题排查在实际训练GTE-Pro的过程中我遇到过几次训练不稳定的情况。最典型的表现是loss突然飙升然后又回落形成锯齿状曲线。经过排查发现主要有三个原因第一个原因是学习率设置不当。GTE-Pro作为预训练模型微调时学习率应该比从头训练小得多。我最初用了5e-5结果loss波动很大。后来调整为1e-5训练就稳定多了。Lightning的LearningRateFinder工具可以帮助我们找到最优学习率# 寻找最优学习率 lr_finder trainer.tuner.lr_find(model, datamoduledata_module) fig lr_finder.plot(suggestTrue) fig.show() # 使用建议的学习率 suggested_lr lr_finder.suggestion() model.hparams.learning_rate suggested_lr第二个原因是数据质量。GTE-Pro对输入文本的质量很敏感如果训练数据中包含大量乱码、特殊符号或过短的文本会导致模型学习到错误的模式。我建立了一个简单的数据清洗流程import re def clean_text(text): 简单的文本清洗函数 if not isinstance(text, str): return # 移除多余空白符 text re.sub(r\s, , text.strip()) # 移除控制字符 text re.sub(r[\x00-\x08\x0B\x0C\x0E-\x1F\x7F], , text) # 过滤过短的文本 if len(text) 5: return return text # 在数据集加载时应用清洗 texts_cleaned [clean_text(text) for text in raw_texts] texts_cleaned [text for text in texts_cleaned if text]第三个原因是梯度爆炸。虽然我们设置了梯度裁剪但在某些情况下还是会发生。Lightning提供了StochasticWeightAveragingSWA回调可以在训练后期自动平均多个检查点提高模型稳定性from pytorch_lightning.callbacks import StochasticWeightAveraging swa_callback StochasticWeightAveraging( swa_epoch_start0.8, # 在80%的训练进度后开始SWA annealing_epochs5, # 平滑5个epoch swa_lrs1e-5 ) trainer Trainer( # ... 其他参数 callbacks[checkpoint_callback, early_stopping, swa_callback] )6.2 分布式训练常见问题多GPU训练时有几个坑我踩过分享出来避免大家重蹈覆辙问题1NCCL超时。在分布式训练中如果某个GPU处理得慢其他GPU会等待超过一定时间就会报NCCL超时错误。解决方案是在训练前设置环境变量# 在训练脚本前添加 export NCCL_ASYNC_ERROR_HANDLING1 export NCCL_TIMEOUT1800 # 将超时时间设为30分钟 export NCCL_BLOCKING_WAIT1问题2数据不均衡。当训练数据量不能被GPU数量整除时某些GPU会处理更少的数据。Lightning会自动处理这个问题但最好确保数据集大小是GPU数量的整数倍或者使用replaceTrue的采样器from torch.utils.data import RandomSampler # 在DataModule中 def train_dataloader(self): sampler RandomSampler( self.train_dataset, replacementTrue, num_sampleslen(self.train_dataset) * 2 # 确保能被整除 ) return DataLoader( self.train_dataset, batch_sizeself.batch_size, samplersampler, num_workers4, pin_memoryTrue )问题3检查点不兼容。不同版本的Lightning可能产生不兼容的检查点格式。我的建议是在项目开始时就固定Lightning版本并在README中明确标注pip install pytorch-lightning2.2.56.3 模型部署前的最后检查训练完成后不要急着部署先做几个关键检查# 1. 检查模型是否能在不同设备上正常运行 model.eval() with torch.no_grad(): # 测试CPU推理 cpu_input {k: v.cpu() for k, v in batch.items()} cpu_output model(**cpu_input) # 测试GPU推理 gpu_input {k: v.cuda() for k, v in batch.items()} gpu_output model(**gpu_input) print(fCPU输出形状: {cpu_output.shape}) print(fGPU输出形状: {gpu_output.shape}) print(fCPU/GPU输出差异: {(cpu_output - gpu_output.cpu()).abs().max().item():.6f}) # 2. 检查模型序列化/反序列化 torch.save(model.state_dict(), gte-pro-final.pt) loaded_model GTEProLightning() loaded_model.load_state_dict(torch.load(gte-pro-final.pt))这些检查能确保模型在不同环境下都能稳定运行。特别是输出差异检查如果数值差异过大说明模型可能存在数值不稳定问题。整体用下来PyTorch Lightning确实大大简化了GTE-Pro的训练流程。从最初的三天一个epoch到现在的一天多就能完成完整训练效率提升非常明显。更重要的是整个过程变得更加可控和可复现。如果你也在做类似的语义模型训练强烈建议试试Lightning这套方案它能让技术团队把更多精力放在模型创新上而不是重复的工程实现上。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

GTE-Pro与PyTorch Lightning整合:分布式训练优化

GTE-Pro与PyTorch Lightning整合:分布式训练优化 1. 为什么GTE-Pro需要PyTorch Lightning来加速训练 GTE-Pro作为一款企业级语义智能引擎,它的核心能力在于将文本转化为高维意义向量。但这种能力不是凭空而来的——它需要在海量文本数据上进行充分训练…...

系统部署自动化

系统部署自动化:提升效率的关键利器 在数字化转型的浪潮中,系统部署自动化已成为企业提升运维效率、降低人为错误的核心技术。传统的手动部署方式不仅耗时耗力,还容易因操作失误导致系统故障。而自动化部署通过脚本和工具实现一键式操作&…...

【ArkUI】简述 UIAbility 组件的生命周期、启动模式和基本用法

一、UIAbility 组件概述 UIAbility 组件是一种包含 UI 的应用组件,主要用于和用户交互。例如,图库类应用可以在 UIAbility 组件中展示图片瀑布流。 UIAbility 的设计理念是:支持应用组件级的跨端迁移和多端协同。支持多设备和多窗口形态。 UIAbility 组件是系统调度的基本单…...

基于机器视觉的苹果品质分级系统的设计与实现

前言 在对苹果品质进行分级时经常应用到的技术是机器视觉技术,此技术在当前的应用中已经逐渐成为最关键的检测方法之一。机器视觉技术由于受到图像处理技术的支持在苹果品质品质检测方面更加科学与专业,由此在以后的技术应用与发展中越来越有发展前途。 …...

智慧树自动刷课插件:3步实现无人值守学习

智慧树自动刷课插件:3步实现无人值守学习 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的网课进度烦恼吗?智慧树自动刷课插件…...

FPGA新手避坑指南:手把手教你搞定RTL8211千兆网PHY的时序配置(附Verilog代码)

FPGA实战:RTL8211千兆网PHY时序配置全解析与避坑指南 刚接触FPGA与以太网通信的开发者,十有八九会在RTL8211这类千兆网PHY芯片上栽跟头——硬件连接看似正确,代码逻辑反复检查无误,但网络就是不通,或者频繁丢包。这往往…...

3分钟实现GitHub界面本地化:开源界面翻译工具的完整指南

3分钟实现GitHub界面本地化:开源界面翻译工具的完整指南 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub的英…...

移动端电量优化技巧

移动端电量优化技巧:让你的手机续航更持久 在移动互联网时代,智能手机已经成为我们生活中不可或缺的一部分。随着应用功能的丰富和屏幕亮度的提升,电池续航问题也日益突出。如何在不影响使用体验的前提下,有效延长手机续航时间&a…...

移动端架构演进

移动端架构演进:从简单到智能的蜕变 移动互联网的飞速发展,推动了移动端架构的持续演进。从早期的单一功能应用,到如今复杂的智能化平台,移动端架构经历了多次重大变革。每一次演进不仅提升了开发效率和应用性能,也为…...

org.openpnp.vision.pipeline.stages.DetectLinesHough

文章目录org.openpnp.vision.pipeline.stages.DetectLinesHough功能参数例子测试图像generate_line_test_image.pycv-pipeline效果ENDorg.openpnp.vision.pipeline.stages.DetectLinesHough 功能 在图像中检测直线段 在DetectLinesHough之前,需要执行DetectEdgesC…...

【稀缺首发】SITS2026圆桌闭门纪要:全球仅12家机构获准验证的多模态推理新范式(含3项未公开Benchmark数据)

第一章:SITS2026圆桌:多模态大模型未来趋势 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026圆桌论坛中,来自Meta、DeepMind、中科院自动化所与上海AI Lab的七位首席科学家共同指出:多模态大模型正从“跨模态对齐”迈向…...

LangChain、LangGraph入门

本文主要是基于学习的datawhale关于langchain、langgraoh课程,记录的学习过程与个人看法。 安装依赖 安装langchain、langgraph、openai依赖及用于管理环境变量(python-dotenv)的辅助依赖 pip install langchain langgraph openai langchain_openai python-doten…...

org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough

文章目录org.openpnp.vision.pipeline.stages.DetectFixedCirclesHough功能参数固定参数(在 XML 中配置)动态参数(必须通过 pipeline.setProperty() 预先设置)例子效果ENDorg.openpnp.vision.pipeline.stages.DetectFixedCirclesH…...

Nanbeige4.1-3B应用场景:制造业设备维修手册QA系统,支持PDF/图片OCR混合输入

Nanbeige4.1-3B应用场景:制造业设备维修手册QA系统,支持PDF/图片OCR混合输入 想象一下这个场景:车间里一台关键设备突然报警停机,维修工程师小王满头大汗地翻着一本厚厚的纸质维修手册,试图从几百页里找到对应的故障代…...

亚洲美女-造相Z-Turbo创意工坊案例:独立艺术家用其生成NFT系列《东方十二时辰》

亚洲美女-造相Z-Turbo创意工坊案例:独立艺术家用其生成NFT系列《东方十二时辰》 1. 项目背景与价值 在数字艺术创作领域,AI图像生成技术正在改变传统创作方式。亚洲美女-造相Z-Turbo作为一个专门针对亚洲女性形象生成的AI模型,为艺术家提供…...

UiPath003 创建基本库

以下教程将引导您完成在 Studio 中创建库,发布库并在其他自动化项目中使用库的步骤。 创建库与创建基本流程类似。区别在于,库是一个包含可重用组件的包,这些组件可以在其他项目的上下文中使用。 本示例从 Excel 电子表格获取数据&#xff0c…...

AI人体骨骼关键点检测作品集:多场景骨架图生成,效果直观一目了然

AI人体骨骼关键点检测作品集:多场景骨架图生成,效果直观一目了然 1. 引言 1.1 技术亮点展示 今天我要带大家看一组令人惊艳的AI骨骼检测作品集。基于Google MediaPipe Pose模型,这套系统能在毫秒级时间内精准定位人体33个关键点&#xff0…...

RT-DETR实战入门:从零搭建PyTorch训练环境与数据准备

1. RT-DETR简介与环境配置 RT-DETR是百度最新推出的实时目标检测模型,基于Transformer架构设计,在速度和精度上都有不错的表现。相比传统的YOLO系列,RT-DETR采用了更先进的注意力机制,能够更好地处理复杂场景中的目标检测任务。对…...

Java学习笔记_Day30(File)

FileFile对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径这个路径可以是存在的,也可以是不存在的三种构造方法常见的成员方法1.判断和获取2.创建和删除3.获取并遍历当调用者File表示的路径不存在时,返回null当调用者Fi…...

嵌入式系统课程设计:基于STM32和CLIP-GmP-ViT-L-14的智能分类垃圾桶

嵌入式系统课程设计:基于STM32和CLIP-GmP-ViT-L-14的智能分类垃圾桶 1. 项目缘起:一个有趣又实用的想法 你有没有想过,家里的垃圾桶要是能自己“认”垃圾就好了?可回收的瓶子扔进去,它自动打开可回收桶的盖子&#x…...

【移动端知识,vw单位适配

移动端知识移动端不需要设置版心物料像素和css像素物料像素css像素物料像素和css像素的关系设计稿都是按物理像素给的,我们开发的时候要写css像素,所以要改总结实现移动端适配方案vw单位适配vw和vh的介绍一直占页面宽度和高度的一半移动端适配...

ollama部署本地大模型|granite-4.0-h-350m在新闻聚合平台摘要生成落地

ollama部署本地大模型|granite-4.0-h-350m在新闻聚合平台摘要生成落地 1. 引言:当新闻摘要遇上轻量级AI 每天,新闻聚合平台的后台都会涌入成千上万条信息。编辑团队需要快速浏览、提炼、生成摘要,这不仅是体力活,更是…...

基于深度学习的车辆测距识别 yolov8双目测距 yolov8+sgbm(原理+代码)

YOLOv8结合SGBM立体匹配算法进行双目测距的工作流程和原理主要包括以下几个核心步骤: 往期热门博客项目回顾: 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yo…...

终极Windows优化指南:3分钟用Win11Debloat释放系统性能

终极Windows优化指南:3分钟用Win11Debloat释放系统性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and c…...

Qwen3-32B长文本处理实战:128K上下文,轻松分析整本电子书

Qwen3-32B长文本处理实战:128K上下文,轻松分析整本电子书 你是否曾经需要分析一本300页的技术文档,却苦于找不到合适的工具?或者尝试用AI处理长文本时,发现模型总是"忘记"前半部分的内容?这些痛…...

电赛核心科技:拆解卡尔曼滤波与姿态解算

前言: 在电赛的控制类题目(如平衡小车、倒立摆、无人机)中,获取精准的姿态角是所有控制逻辑的基石。很多同学在串口助手看到 MPU6050 的原始数据时,往往会陷入绝望:数据要么满屏噪声,要么随时间…...

Ostrakon-VL-8B详细步骤:查看llm.log日志、验证加载状态、发起首轮提问

Ostrakon-VL-8B详细步骤:查看llm.log日志、验证加载状态、发起首轮提问 1. 从零开始:认识Ostrakon-VL-8B图文对话模型 如果你正在寻找一个专门为零售和餐饮场景设计的智能助手,那么Ostrakon-VL-8B绝对值得你花时间了解。这是一个开箱即用的…...

Phi-4-mini-reasoning惊艳效果展示:高精度数学推导+代码生成对比实测

Phi-4-mini-reasoning惊艳效果展示:高精度数学推导代码生成对比实测 1. 开篇:小模型的大智慧 Phi-4-mini-reasoning这款仅有3.8B参数的轻量级开源模型,正在重新定义我们对小型语言模型能力的认知。专为数学推理、逻辑推导和多步解题等强逻辑…...

SUPER COLORIZER作品集:从经典素描到赛博朋克的风格化上色展示

SUPER COLORIZER作品集:从经典素描到赛博朋克的风格化上色展示 你有没有想过,一张简单的黑白线稿,能在几秒钟内变成一幅充满未来感的赛博朋克画作,或者一幅意境深远的水墨画?这听起来像是专业画师的工作,但…...

JS逆向|猿人学逆向反混淆练习平台第13题加密分析

关注它,不迷路。本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!一.题目地址https://match.yuanrenxue.cn/match/13二.抓包分析先打开控制台&…...