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

【大模型理论篇】SWIFT: 可扩展轻量级的大模型微调基础设施

1. 背景

        大模型(LLM)和多模态大模型(MLLM)利用基于Transformer的架构获得了很迅速的发展。为满足对这些模型的训练和轻量级微调需求,目前已有一些开源框架,如LLaMA-Factory、Firefly、FastChat、Axolotl和LMFlow等。但这些框架在支持的模型、技术和功能上各有限制。例如,LLaMA-Factory支持超过100种文本LLM,但对多模态模型支持有限;FastChat主要关注模型推理和部署,训练支持相对有限。我们今天主要聊一下SWIFT。在之前,我们已经用SWIFT框架微调过部分大模型,包括Qwen系列和ChatGLM系列。事实上,swift支持超过300种LLM和50种MLLM,是提供最全面大模型微调支持的开源框架,尤其是在多模态模型支持方面也是有其独有的特点。此外,swift还整合了推理、评估和模型量化等后处理功能。

        之所以想聊SWIFT框架,是因为实际使用下来,发现框架的完整度很高,并且支持的主流大模型很多,是一个不错且容易上手的微调框架,框架涉及的内容很多,我希望后续逐步分享,将swift框架能够拆开揉碎了来理解。

        大模型通常包含数十亿参数,训练和微调成本高昂,成为AI普及的瓶颈。虽然有诸如Prefix Tuning、LoRA等轻量级微调方法出现,但各种方法的差异和复杂性仍然使开发者面临挑战。此外,为确保训练模型能有效部署,还需要考虑后处理过程,如推理、评估等。

        为解决这些问题,ModelScope团队开发了SWIFT开源框架,简化大模型的轻量级训练,并集成后处理功能。

2. 训练架构

        SWIFT框架设计遵循统一文本和多模态模型的理念,消除训练纯文本LLM和多模态MLLM之间的差距,通过建立数据处理、模型模板和模型训练的统一标准来实现。同时,框架集成了训练、推理、评估、量化和部署等全流程功能。        

        SWIFT支持多种轻量级微调技术:

  • 减少可训练参数:如LISA,通过随机激活不同层,显著减少内存使用
  • 模型量化:支持BNB、HQQ、EETQ、AWQ、GPTQ和AQLM六种量化方法
  • 减少梯度值内存使用:如GaLore对梯度值进行SVD分解
  • 冻结原始模型:支持LoRA和AdaLoRA等额外结构训练
  • 分片或混合精度:支持DeepSpeed Zero1/2/3、FSDP等

        SWIFT的微调器(Tuner)模块在PEFT库基础上进行扩展,支持LoRA、AdaLoRA、IA3、BOFT和Vera等技术,并进行调整以确保与MLLM训练兼容。此外,SWIFT还提供了其他微调器支持,包括SCEdit、ResTuning、LLaMA-Pro、LongLoRA和LISA等,这些微调器可以组合使用,类似PEFT的MixedPeftModel功能。

        在模型功能模块中,SWIFT提供基本模型加载器,允许灵活自定义模型配置。考虑到训练中可能出现的兼容性问题,SWIFT使用补丁(patcher)模块在模型加载后解决这些问题,确保在单GPU、多GPU、全参数或LoRA训练等不同场景中的顺利操作。

        在数据集模块中,支持三种数据源:ModelScope的MsDataset、Hugging Face的datasets模块以及用户自定义数据集(如本地CSV或JSONL文件)。数据集模块的预处理功能将不同数据集转换为标准格式。

        模型模块的关键组件是模板(template),确保SWIFT支持的各种模型能正确生成input_ids、attention_masks、pixel_values和labels等关键字段。对于多模态定位任务,在模板中转换边界框(bbox)坐标。

        在训练组件中,包括SFT/PT训练器和人类对齐训练器。前者直接继承自Transformers的训练器,用于预测和训练下一个token的交叉熵。后者继承自TRL的相应类,用于训练DPO、ORPO和KTO等各种RLHF算法。

2.1 推理与部署架构设计

        SWIFT的推理和部署功能基于三种后端:PyTorch Native(PT)、vLLM和LMDeploy。这三个推理框架共享相同的参数。SWIFT使用FastAPI封装推理为服务,符合OpenAI通用接口定义。对于Agent功能的部署,SWIFT支持tools和tool等OpenAI标准字段,并支持ToolBench和ReACT等Agent数据格式的推理和部署。

2.2 评估架构设计

        SWIFT依赖ModelScope社区的EvalScope框架构建评估能力,该框架通过集成OpenCompass(用于文本模型)和VLMEvalKit(用于多模态模型)构建评估功能。通过集成EvalScope,SWIFT目前支持100多个纯文本和多模态评估集,以及两种自定义评估数据集:

  • 客观问题评估:类似CEval,开发者可以将数据集格式化为CEval风格的CSV文件
  • QA主观问题评估:使用ROUGE和BLEU等标准指标

2.3 量化与导出架构设计

        导出模块主要用于合并微调器、转换检查点格式和量化。目前支持以下操作:

  • 合并微调器:包括LoRA、LongLoRA和LLaMA-Pro等
  • 转换检查点:在Transformers格式和Megatron格式之间相互转换
  • 量化:支持AWQ、GPTQ和BNB三种量化方法
  • 导出到Ollama:包括模型的模板配置

3. 实验结果

3.1 轻量级微调基准

        研究团队使用SWIFT复制和验证了各种轻量级微调算法对模型的影响。使用qwen-7b-chat作为基础模型,在单个A100-80G GPU上进行训练,比较内存使用和损失等指标。

微调器训练/评估损失可训练参数(M)内存(GiB)速度(样本/秒)
AdaLoRA0.57 / 1.0726.84 (0.35%)32.550.92
DoRA0.53 / 1.0119.25 (0.25%)32.460.51
GaLore0.55 / 1.007721.32 (100%)47.021.10
Q-GaLore0.54 / 1.007721.32 (100%)41.531.45
LLaMAPro0.53 / 1.00809.58 (9.49%)38.111.53
LoRA+0.53 / 0.9817.89 (0.23%)32.350.95
LoRA0.53 / 1.0117.89 (0.23%)32.350.95
RsLoRA0.53 / 0.9917.89 (0.23%)32.350.94
LISA0.62 / 1.06-31.112.66
Full0.54 / 0.957721.32 (100%)73.531.43

        实验结果显示,LISA实现了最低的内存消耗和最快的速度。在额外结构微调器中,LoRA+记录了最低的评估损失。在梯度减少方法中,Q-GaLore表现出最低的内存消耗。

3.2 Agent训练

        Agent训练是模型SFT中的重要类别。使用ToolBench数据集和AgentFlan数据集的混合数据集进行了一系列实验,采用LLaMA3-8b-instruct模型和Qwen2-7b-instruct模型进行训练,并比较了训练前后的结果。还引入了loss-scale技术,增强某些重要token的权重。基于LLaMA3-8b-instruct模型的实验结果显示,引入loss-scale显著改善了所有评估指标。

模型Plan.EMAct.EM幻觉率Avg.F1R-L
原始74.2236.1715.6820.012.14
无loss-scale84.2955.714.8549.4025.06
有loss-scale85.158.151.5752.1026.02

        对于Qwen2-7b-instruct的实验结果,与官方Qwen2模型相比,训练后的平均指标提高了8.25%,模型幻觉减少到个位数。

模型Plan.EMAct.EM幻觉率Avg.F1R-L
原始74.1154.744.1646.538.51
GPT480.2855.525.9848.7428.69
LoRA(本文)77.0556.970.949.5319.81
Full(本文)83.3760.012.5854.4126.34

        对于LLaMA3-8b-instruct,基于LoRA训练,平均指标提高了17%。这表明开源模型和数据集对实际垂直场景中的Agent训练具有意义。

3.3 与其他框架的比较

功能/框架LLaMA-FactoryFireFlyFastChatAxolotlLMFlowSWIFT(本文)
支持LLM预训练
支持Megatron预训练
支持LLM-SFT
支持LLM-DPO
支持多模态预训练
支持多模态SFT3个模型50+模型
支持多模态RLHF3个模型50+模型
支持vLLM
支持LMDeploy
LLM评估3个数据集48个数据集
多模态评估95个数据集
WEB-UI

4. 一些改进项

        尽管SWIFT已经具备丰富功能,但有些特性依然待实现,包括:

  1. 更好地支持Megatron大规模并行训练,目前SWIFT对Megatron模型的支持未完全覆盖主流LLM和MLLM
  2. 更深入的多模态研究,如提供高质量数据集防止知识遗忘,或使用ModelScope自研数据集训练新的多模态模型

5. 部分脚本示例

# 多GPU SFT命令
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
NPROC_PER_NODE=8 \
swift sft \
--model_type qwen1half-32b-chat \
--dataset blossom-math-zh \
--deepspeed default-zero3# 单GPU RLHF命令 
swift rlhf \
--model_type llama3-8b-instruct \
--rlhf_type dpo \
--dataset hh-rlhf# 推理多模态模型
swift infer \
--model_type internvl2-8b \
--infer_backend lmdeploy# 使用vLLM部署检查点
swift deploy \
--ckpt_dir /mnt/my-custom/ckpt-1100 \
--infer_backend vllm# 评估NLP模型
swift eval \
--model_type llama3-8b-instruct \
--eval_dataset ceval gsm8k# 合并LoRA
swift export --ckpt_dir /mnt/my-custom/ckpt-1100 --merge_lora true

6. 参考材料

【1】SWIFT:A Scalable lightWeight Infrastructure for Fine-Tuning

相关文章:

【大模型理论篇】SWIFT: 可扩展轻量级的大模型微调基础设施

1. 背景 大模型(LLM)和多模态大模型(MLLM)利用基于Transformer的架构获得了很迅速的发展。为满足对这些模型的训练和轻量级微调需求,目前已有一些开源框架,如LLaMA-Factory、Firefly、FastChat、Axolotl和LMFlow等。但这些框架在支持的模型、技术和功能上…...

利用 schedule 模块在每日上午每 3 秒执行任务

一、schedule 模块基础原理与功能概述 schedule 模块维护了一个任务队列,每个任务都关联着一个特定的时间触发器和对应的执行函数。当系统时间到达任务设定的触发时间时,模块会从队列中取出相应的任务并执行其关联的函数。这种设 计模式使得开发者无需过多关注底层的时间处理…...

ruby超高级语法

以下是 Ruby 中一些 极度硬核 的语法和底层特性,涉及元编程的深渊、虚拟机原理、语法黑魔法等,适用于追求极限的 Ruby 开发者: 一、语法核弹级操作 1. 动态修改继承链 class A; def foo; "A"; end end class B; def foo; "B…...

Java Stream API:现代化集合处理的艺术

Java Stream API:现代化集合处理的艺术 引言 在Java 8中引入的Stream API彻底改变了我们处理集合数据的方式。它不仅仅是一个新的工具集,更代表了一种声明式、函数式的编程范式。本文将深入探讨Java Stream的核心概念、使用场景和最佳实践。 一、什么是Stream? Stream(…...

ruby高级语法

以下是 Ruby 高级语法的详细总结,涵盖元编程、模式匹配、闭包、并发模型等核心主题: 一、元编程(Metaprogramming) 1. 动态定义方法 class DynamicClass# 使用 define_method 动态定义方法["foo", "bar"].e…...

特权FPGA之UART串口

0.简介 通用异步收发器(Universal Asynchronous Receiver/Transmitter,UART)可以和各种标准串行接口,如RS 232和RS 485等进行全双工异步通信,具有传输距离远、成本低、可靠性高等优点。一般UART由专用芯片如8250,1645…...

oracle 索引失效

在 Oracle 11g 中,索引失效的常见原因包括函数修改列、隐式类型转换、统计信息过时等,解决方法需结合版本特性(如虚拟列、索引跳跃扫描)。通过执行计划分析、统计信息维护和合理使用提示(Hints)&#xff0c…...

MySQL查看binlog执行情况

因数据丢失,被要求使用binlog查看 执行SQL的具体情况。 拿到数据库压缩包,解压缩获得文件和文件夹若干。 如图,有17个binlog文件,目标数据库名应为corr。 已知这个数据库是安装在windows下,版本8.0. 先下载一个mysq…...

kotlin,Android,jetpack compose,日期时间设置

AI生成,调试出来学习,这些小组件会用了,就可以组合一个大点的程序了。 package com.example.mydatetimeimport android.app.AlertDialog import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.co…...

sql-labs靶场 less-2

文章目录 sqli-labs靶场less 2 联合注入 sqli-labs靶场 每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。 sql注入的基本步骤 注入点注入类型 字符型:判断闭合方式 (‘、"、’、“”&#xf…...

ssh密钥连接远程服务器并用scp传输文件

ssh密钥连接远程服务器 私钥的权限必须是600chmod 600 id_rsa连接时在命令中加上私钥的地址ssh -i PATH_to_id_rsa usernameip -p port scp -P port -i PATH_to_id_rsa file usernameip:PATH...

【锂电池SOH预测】PSO-BP锂电池健康状态预测,锂电池SOH预测(Matlab完整源码和数据)

预测效果 基于PSO-BP算法的锂电池健康状态预测研究 一、引言 1.1 研究背景与意义 在当今社会,锂电池凭借其高能量密度、长寿命及环境友好等特性,在现代能源系统中占据着举足轻重的地位。从消费电子领域如智能手机、笔记本电脑,到动力领域中…...

找搭子系统 搭子经济新风口 基于精准匹配的社交新生态探索

一、市场前景:为什么现在需要"找搭子"? 孤独经济爆发 超60%年轻人存在"精准陪伴"需求(2024社交报告) 传统社交App无法满足"非婚恋、非熟人"的中间态需求 线下活动复苏 剧本杀/飞盘等兴趣活动年增…...

《Spring Boot+策略模式:企业级度假订单Excel导入系统的架构演进与技术实现》

前言 在数字化时代背景下,订单管理系统的高效性与灵活性成为企业竞争力的核心要素。本文档详细剖析了一个基于 策略模式 的度假订单导入系统,通过分层架构设计实现了多源异构数据的标准化处理。系统以 Spring Boot 为核心框架,结合 MyBatis …...

软件需求分析习题汇编

需求工程练习题 一、选择题 1. 软件需求规格说明书的内容不应包括对( )的描述。 A. 主要功能B. 算法的详细过程C. 用户界面及运行环境D. 软件的性能 *正确答案:*B:算法的详细过程; 2. 需求分析最终结果是产生( ) A. 项目开发…...

51单片机的汇编伪指令

目录 一、ORG 汇编起始地址命令 1、功能 2、语法格式 3、使用示例 4、注意事项 二、END 汇编终止命令 1、功能 2、语法格式 3、使用示例 4、注意事项 三、EQU 赋值命令 1、功能 2、语法格式 3、使用示例 4、注意事项 四、BIT 位定义命令 1、功能 2、语法格式…...

深入探究Python的re模块及其在爬虫中的应用

深入探究Python的re模块及其在爬虫中的应用 一、引言 在Python的强大生态系统中,re模块作为处理正则表达式的核心工具,发挥着举足轻重的作用。正则表达式是一种描述文本模式的强大语言,能够高效地进行字符串的匹配、查找、替换等操作。无论…...

aosp13增加摄像头控制功能实现

A13中,可以要求做一个开关来控制摄像头是否可用,约束所有使用摄像头的应用。思路:设置中增加开关设置一个属性值,在摄像头调用实现层增该值判断即可 一 开关的开发: 设置-安全中增加开关选项 代码部分&#x…...

Kotlin 之 vararg 参数向下传递的几种方式

在 Kotlin 中,vararg 参数是一种特殊的参数类型,用于表示可变数量的参数。vararg 参数是否可以向下传递,需要根据目标方法的参数类型来决定。 1、目标方法参数也是vararg类型,可直接向下传递 在 method 方法中,通过 …...

Kotlin学习

kotlin android 开源,Kotlin开源项目集合_晚安 呼-华为开发者空间 干货来袭,推荐几款开源的Kotlin的Android项目...

AI写程序:图片批量重命名工具 - 自动化整理您的图片库

图片批量重命名工具 - 自动化整理您的图片库 GitHub项目地址: https://github.com/dependon/renameImage 项目介绍 这是一个基于Python开发的图形界面工具,用于批量重命名文件夹中的图片文件。它能够递归处理选定文件夹及其所有子文件夹中的图片,按照…...

git命令自动拉去远程分支到本地

是的&#xff0c;可以通过 Git 命令自动拉取远程分支并在本地创建同名分支。以下是几种方法&#xff1a; 方法 1&#xff1a;直接拉取远程分支并创建同名本地分支 git fetch origin <远程分支名> # 拉取远程分支 git checkout -b <本地分支名> origin/<远程分…...

[创业之路-364]:穿透表象:企业投资的深层逻辑与误区规避

前言&#xff1a; 透过现象看本质 企业一生与人生相似 看企业如同看人 三岁看大&#xff0c;七岁看老 三十年河东&#xff0c;三十年河西 企业也有品行、文化、气质、性格、赚钱、生命周期与赚钱曲线 投资公司的目的是未来赚钱&#xff0c;赚未来赚钱。投资创业中的企业主要看…...

UE5 蓝图里的声音

文章目录 支持的格式设置循环播放在场景中放置音频设置音频的衰减与不衰减在UI动画中播放声音使用蓝图节点播放声音按钮本身就可以播放声音 支持的格式 支持&#xff1a;WAV 不支持&#xff1a;MP3 设置循环播放 双击音频&#xff0c;打开音频设置&#xff0c;勾选Looping …...

Spring Boot 邮件发送配置遇到的坑:解决 JavaMailSenderImpl 未找到的错误

在使用 Spring Boot 开发时&#xff0c;我们经常需要通过邮件发送功能来实现某些业务逻辑。为了方便快速集成&#xff0c;Spring Boot 提供了一个非常好用的 spring-boot-starter-mail 模块&#xff0c;帮助我们轻松发送邮件。但是&#xff0c;在配置过程中可能会遇到一些问题&…...

路由表的最终地址 root 路由跟踪,最终到哪里去

在路由跟踪(如tranceroute或trancert命令)中,最终地址是目标主机或服务器的IP地址或域名所对应的实际网络地址; 路由跟踪的目的是显示数据包从本地主机到目标主机所经过的每一跳路由器或网络节点,而最终地址是数据包要到达的目标设备。 1.路由跟踪的最终地址 目标主机:路…...

Docker面试全攻略(一):镜像打包、容器运行与高频问题解析

引言 在云原生和微服务架构盛行的今天,Docker 已成为后端开发的必备技能。本文从 面试高频考点 出发,系统梳理 Docker 镜像构建、容器运行的核心知识点,助你轻松应对 Docker 相关的技术面试! 一、Docker 镜像构建核心(面试必问) 1. Dockerfile 核心命令与参数 FROM:基…...

方法的重写

目录 1、重写的概念2、方法重写的规则3、重写 VS 重载 1、重写的概念 重写&#xff0c;也称为覆盖&#xff0c;是子类对父类的非构造、非静态、非 final 修饰、非 private 修饰的方法的实现过程的重新编写。重写可以让子类根据需要来实现父类的方法。方法重写是子类与父类的一…...

搭建hadoop集群模式并运行

3.1 Hadoop的运行模式 先去官方看一看Apache Hadoop 3.3.6 – Hadoop: Setting up a Single Node Cluster. 本地模式&#xff1a;数据直接存放在Linux的磁盘上&#xff0c;测试时偶尔用一下 伪分布式&#xff1a;数据存放在HDFS&#xff0c;公司资金不足的时候用 完全分布式&a…...

【学Rust写CAD】39 over_in_in 函数(alpha256补充方法)

源码 // Similar to over_in but includes an additional clip alpha value#[inline]pub fn over_in_in(self,src: Argb, dst: Argb, clip: Alpha) -> Argb {let src_alpha self * clip;let dst_alpha !(src_alpha*src.alpha_t());// we sum src and dst before reducing…...

Visual Studio 2022 UI机器学习训练模块

VS你还是太超标了&#xff0c;现在机器学习都不用写代码了吗&#xff01;&#xff01; 右键项目解决方案&#xff0c;选择机器学习模型...

c# 企业级ADB通信示例

using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ADB_Demo {/// <summary>/// ADB管理器&#xff0c;提供与Android设备的通信功能/// </summary>publ…...

linux上todesk无法使用问题

安装 x11 查看是否已安装 X11 dpkg -l | grep xserver-xorg-core 安装 X11&#xff0c;大概需要 17 - 222 MB&#xff08;前者是在服务器上装&#xff0c;后者在自己的 WSL 装&#xff0c;具体视情况而定&#xff09; sudo apt-get install xorg sudo apt-get install xauth s…...

数字IC后端项目典型问题之后端实战项目问题记录

Q1:为了更高效过掉Calibre LVS&#xff0c;我们要求学员在chipfinish阶段需要先做Online LVS检查。该学员在做verifyConnectivity检查发现设计中存在大量的M1 VDD_CORE Un-Connect Pin的violation&#xff0c;具体violation如下图所示。 数字后端培训实战项目六大典型后端实现…...

【机器学习】决策树

一、什么是决策树&#xff1f; 想象一下你玩“二十个问题”游戏的场景&#xff0c;你通过问一系列“是”或“否”的问题来猜测对方心中的物体。决策树的工作方式与此非常相似。它本质上是一个流程图结构&#xff0c;其中&#xff1a; 每个内部节点&#xff08;Internal Node&…...

大模型格式化输出的几种方法

大模型格式化输出的几种方法 在开发一些和LLM相关的应用的时候,如何从大模型的反馈中拿到结构化的输出数据是非常重要的,那么本文就记录几种常用的方法。 OpenAI提供的新方法 在 OpenAI 的 Python 库中,client.beta.chat.completions.parse 是一个用于生成结构化输出的方法…...

250408_解决加载大量数据集速度过慢,耗时过长的问题

250408_解决加载Cifar10等大量数据集速度过慢&#xff0c;耗时过长的问题&#xff08;加载数据时多线程的坑&#xff09; 在做Cifar10图像分类任务时&#xff0c;发现每个step时间过长&#xff0c;且在资源管理器中查看显卡资源调用异常&#xff0c;主要表现为&#xff0c;显卡…...

Linux网络多进程并发服务器和多线程并发服务器

多进程 还是以大小写转换为例子 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <pthread.h> #include <sys/socket.h> #include <arpa/inet.h> #include "wrap.h" #include…...

LLMs基础学习(五)模型微调专题(中)

文章目录 LLMs基础学习&#xff08;五&#xff09;模型微调专题&#xff08;中&#xff09;Adapter 类的微调1 背景2 技术原理3 具体细节4 Adapter 类其他方法的微调 Prefix 类的微调1 Prefix Tuning2 Prompt Tuning3 P - tuning4 P - Tuning v25 总结 LoRA 篇a. 什么是 LoRA?…...

不同路由器网段之间的组建

实现PC1到PC7之间的通信 先将基础的ip都配置好 在AR6中将跳板配置好&#xff0c;ip route-static 192.168.5.0 24 64.1.1.2 在AR3中将跳板配置好&#xff0c;ip route-static 192.168.1.0 24 64.1.1.1 如此我们将可以实现通信了 还有第二种&#xff0c;实现PC1到…...

java设计模式-建造者模式

建造者模式(build) 建造者模式的四个角色 1、Product(产品角色)&#xff1a; 一个具体的产品对象。 2、Builder(抽象建造者)&#xff1a; 创建一个Product对象的各个部件指定的 接口或者抽象类。 3、ConcreteBuild(具体建造者)&#xff1a;实现接口&#xff0c;构建和装配各个部…...

【泛函分析】

E&#xff0e;Kreyszig, Introductory functional analysis with applications, Wiley, 1989 1.1 Metric space 满足下面四个性质的映射称为度量&#xff1a;正定、0、对称性和三角不等式 推论&#xff1a;广义的三角不等式 度量可以看成一个映射&#xff0c;验证欧式距离&am…...

【NLP 面经 6】

当上帝赐予你荒野时&#xff0c;就意味着&#xff0c;他要你成为高飞的鹰 —— 25.4.3 一、机器翻译任务&#xff0c;Transformer结构模型改进 在自然语言处理的机器翻译任务中&#xff0c;你采用基于 Transformer 架构的模型。在翻译一些具有丰富文化内涵、习语或隐喻的句子时…...

地质科研智能革命:当大语言模型“扎根”地质现场、大语言模型本地化部署与AI智能体协同创新实践

在地质学迈向“深时数字地球”&#xff08;Deep-time Digital Earth&#xff09;的进程中&#xff0c;传统研究方法正面临海量异构数据&#xff08;地质图件、遥感影像、地震波谱等&#xff09;的解析挑战。大语言模型&#xff08;LLM&#xff09;与AI智能体的本地化部署技术&a…...

蓝桥王国(Dijkstra优先队列)

问题描述 小明是蓝桥王国的王子&#xff0c;今天是他登基之日。 在即将成为国王之前&#xff0c;老国王给他出了道题&#xff0c;他想要考验小明是否有能力管理国家。 题目的内容如下&#xff1a; 蓝桥王国一共有 N 个建筑和 M 条单向道路&#xff0c;每条道路都连接着两个…...

美团mtgsig1.1 分析 mtgsig

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向过程 mtgsig有问题的请求3次左右…...

基于STM32、HAL库的CH224Q快充协议芯片简介及驱动程序设计

一、简介&#xff1a; CH224Q是一款USB Type-C快充协议芯片&#xff0c;支持多种快充协议&#xff0c;包括&#xff1a; USB PD 3.0 QC4 QC3.0/2.0 AFC FCP SCP APPLE 2.4A BC1.2 该芯片通过I2C接口与主控MCU通信&#xff0c;可以灵活配置输出电压和获取充电状态信息…...

SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging

前言 Svelte&#xff0c;一个语法简洁、入门容易&#xff0c;面向未来的前端框架。 从 Svelte 诞生之初&#xff0c;就备受开发者的喜爱&#xff0c;根据统计&#xff0c;从 2019 年到 2024 年&#xff0c;连续 6 年一直是开发者最感兴趣的前端框架 No.1&#xff1a; Svelte …...

蓝桥杯-数字诗意

问题描述 在诗人的眼中&#xff0c;数字是生活的韵律&#xff0c;也是诗意的表达。 小蓝&#xff0c;当代顶级诗人与数学家&#xff0c;被赋予了"数学诗人"的美誉。他擅长将冰冷的数字与抽象的诗意相融合&#xff0c;并用优雅的文字将数学之美展现于纸上。 某日&a…...

深入探索 Node.js 文件监听机制:从前端工程化到原理剖析

在现代化前端开发中&#xff0c;文件监听&#xff08;File Watching&#xff09;是实现高效开发体验的核心技术之一。从 webpack 的热模块替换到 Vite 的即时刷新&#xff0c;从 CSS 预处理到静态资源打包&#xff0c;背后都依赖于稳健的文件监听机制。本文将深入探讨基于 Node…...