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

NLP模型大对比:Transformer >Seq2Seq > LSTM > RNN > n-gram

结论

Transformer 大于 传统的Seq2Seq 大于 LSTM 大于  RNN 大于 传统的n-gram

n-gram VS Transformer

我们可以用一个 图书馆查询 的类比来解释它们的差异:


一、核心差异对比

维度n-gram 模型Transformer
工作方式固定窗口的"近视观察员"全局关联的"侦探"
依赖距离只能看前N-1个词(如3-gram只看前2词)可关注任意距离的上下文
语义理解机械统计共现频率理解词语间的深层关系
典型场景"牛奶要配_" → "饼干"(高频搭配)"牛奶要配_" → "燕麦"(健康概念关联)

二、具体差异拆解

1. 观察范围限制
  • n-gram 像用 望远镜片段观察
    例:处理句子 "虽然价格贵但质量真的好"

    • 3-gram只能看到局部组合:
      ["价格_贵_但", "贵_但_质量", "但_质量_真"]

    • 无法关联首尾的 "价格" 和 "质量" 的对比关系

  • Transformer 像用 全景扫描仪
    通过自注意力机制,让每个词都能关注到句子中所有其他词:

    # "质量"对"价格"的注意力权重可能高达0.7
    # "但"对"虽然"的注意力权重可能达0.6
2. 语义关联能力
  • n-gram 的局限性案例
    输入: "苹果股价大涨,因为新品很甜"

    • 3-gram会错误关联:"新品_很_甜" → 可能预测"西瓜"(高频搭配)

    • 无法发现 "苹果" 在此处指公司而非水果

  • Transformer 的解决方案
    通过上下文注意力权重识别语义:

    "苹果" ← 关注到 "股价" (权重0.8) → 判定为企业  
    "甜"   ← 关注到 "新品" (权重0.3) + "股价" (权重0.6) → 判定为比喻用法
3. 处理新词能力
  • n-gram 的困境
    遇到新词 "元宇宙"

    • 所有包含 "元宇宙" 的n-gram都成为低频组合

    • 导致预测结果不可靠

  • Transformer 的优势
    通过词向量和注意力机制:

    • 即使没出现过 "元宇宙",也能根据词根 "元"+"宇宙"_ 推测其语义

    • 类似处理过 "元数据" 和 "宇宙探索" 的经验

n-gram VS RNN

n-gram 和 RNN 在自然语言处理中是两种截然不同的建模思路,我们可以通过 图书馆管理 的类比来理解它们的核心差异:


一、核心机制对比

维度n-gram 模型RNN 模型
记忆方式固定长度的纸质笔记可延展的电子备忘录
依赖距离只能记住前N-1步(如3-gram记2步)理论上可记忆无限步(实际约50-100步)
计算特征基于统计频次的查表操作基于隐藏状态的动态计算
典型表现"昨天买的_奶茶"→"珍珠"(高频搭配)"昨天买的_奶茶"→"已经变质"(因果推理)

二、工作原理拆解

1. 信息传递方式
  • n-gram 像 接力赛跑
    每个预测只依赖前一棒选手(前N-1个词):

    输入:"我想喝一杯热的"
    3-gram预测流程:
    想喝→杯 → 喝杯→热 → 杯热→的 → 热的→[END]
  • RNN 像 滚雪球
    通过隐藏状态积累历史信息:

    hidden_state = update("我", init_state)
    hidden_state = update("想", hidden_state)
    hidden_state = update("喝", hidden_state)
    # 当处理到"热"时,隐藏状态已包含"我/想/喝"的信息

3. 处理长距离依赖
  • n-gram 的局限案例
    句子:"虽然这款手机价格比同类产品高2000元,但它的_"

    • 5-gram只能看到"产品高2000元但它的"

    • 无法关联开头的"虽然"与结尾的预测

  • RNN 的优势体现
    通过隐藏状态传递,即使相距20个词:

    h_("虽然") → h_("价格") → ... → h_("它的") 
    仍保留着转折关系的语义特征

三、性能对比实验

以 诗歌生成 任务为例:

输入: "春风又绿江南岸"
模型续写结果得分
3-gram"明月何时照我还"(高频组合)合格但缺乏新意
RNN"细雨轻拂柳叶弯"(创新性关联)更具文学性
人类"万物复苏生机盎"标准答案

关键差异

  • n-gram依赖"江南岸"与"明月"的常见搭配

  • RNN捕捉到"春风"与"细雨"的意境关联

RNN/LSTM VS Seq2Seq

在序列到序列(Seq2Seq)任务中(如机器翻译、文本摘要等),直接使用RNN后通过全连接层输出(1 to N)看似简单,但存在以下关键问题,而编码器-解码器(Encoder-Decoder)结构通过分步编码和解码的方式有效解决了这些挑战:

1. 序列的时序依赖性

自然语言中的单词顺序至关重要。例如:

  • 句子1猫追老鼠

  • 句子2老鼠追猫
    两个句子包含相同的词,但含义完全相反。

  • 简单词嵌入+全连接的缺陷
    若直接将所有词嵌入拼接成一个向量(如[猫, 追, 老鼠] → 一个长向量),模型会丢失词序信息,无法区分两个句子的差异。

  • 编码器-解码器的优势
    通过LSTM或Transformer按顺序处理输入词,编码器能够保留词序信息,并在隐藏状态中传递时序依赖关系。

2. 输入和输出的变长问题

在Seq2Seq任务中,输入和输出的长度通常是动态变化的。例如:

  • 输入:英文句子 "Hello world"(2个词)

  • 输出:中文翻译 "你好世界"(3个词)

  • 简单词嵌入+全连接的缺陷
    全连接层需要固定维度的输入和输出,无法处理变长序列。

  • 编码器-解码器的优势

    • 编码器可处理任意长度的输入序列,将其压缩为固定长度的上下文向量(hiddencell)。

    • 解码器基于上下文向量逐步生成变长的输出序列(逐词生成,直到预测到<eos>)。


3. 长距离依赖建模

语言中常存在跨越多个单词的依赖关系。例如:

  • 句子The cat, which was hungry and had been wandering the streets for days, finally found some food.
    主句的主语cat与谓语found相隔很远。

  • 简单词嵌入+全连接的缺陷
    全连接层难以捕捉长距离依赖(尤其是当句子较长时)。

  • 编码器-解码器的优势

    • LSTM通过门控机制(遗忘门、输入门)逐步更新cell状态,传递长期信息。

    • Transformer通过自注意力机制(Self-Attention)直接建模词与词之间的全局依赖。


4. 信息压缩与语义表示

编码器的核心作用是将输入序列编码为一个全局语义表示(上下文向量)。

  • 简单词嵌入+全连接的缺陷
    直接将所有词嵌入拼接为一个向量,缺乏对整体语义的抽象(相当于“词袋模型”)。

  • 编码器-解码器的优势

    • 编码器通过循环或注意力机制逐步融合上下文信息,生成紧凑的语义表示。

    • 解码器基于此表示逐步展开生成目标序列,确保输出与输入语义一致。


5. 模型效率与参数共享

  • 简单词嵌入+全连接的缺陷
    若输入长度为N,输出长度为M,全连接层的参数量为 (N×embedding_dim) × M,随序列长度增长迅速膨胀,导致计算成本高且易过拟合。

  • 编码器-解码器的优势

    • LSTM或Transformer通过参数共享(同一层处理所有时间步),参数量仅与隐藏层维度相关,与序列长度无关。

    • 例如,LSTM的参数量为 4×(embedding_dim + hidden_dim)×hidden_dim,与输入长度N无关。


6. 实际案例对比

假设用两种模型处理机器翻译任务:

方案1:简单全连接
  • 输入:将源句子所有词嵌入拼接为一个向量(如N=5embedding_dim=256 → 输入维度1280)。

  • 输出:直接映射到目标语言的词表(如vocab_size=10000),参数量为 1280×10000 = 12.8M

  • 问题

    • 无法处理长度变化的输入输出。

    • 无法建模词序和长距离依赖。

    • 参数量大且难以训练。

方案2:编码器-解码器(LSTM)
  • 编码器:LSTM逐步处理源序列,输出上下文向量(如hidden_dim=256)。

  • 解码器:LSTM基于上下文向量逐词生成目标序列。

  • 参数量:编码器和解码器的LSTM参数量均为 4×(256+256)×256 ≈ 1M,总计约2M

  • 优势

    • 处理变长序列。

    • 建模词序和长距离依赖。

    • 参数量小且高效。


总结

编码器-解码器结构通过分步编码和解码,解决了以下核心问题:

  1. 时序依赖性:保留词序信息。

  2. 变长序列处理:动态生成输出。

  3. 长距离依赖建模:通过LSTM或注意力机制捕捉全局关系。

  4. 语义压缩与传递:生成紧凑的上下文表示。

  5. 模型效率:参数共享降低计算成本。

相关文章:

NLP模型大对比:Transformer >Seq2Seq > LSTM > RNN > n-gram

结论 Transformer 大于 传统的Seq2Seq 大于 LSTM 大于 RNN 大于 传统的n-gram n-gram VS Transformer 我们可以用一个 图书馆查询 的类比来解释它们的差异&#xff1a; 一、核心差异对比 维度n-gram 模型Transformer工作方式固定窗口的"近视观察员"全局关联的&q…...

接口技术-第5次作业

目录 作业内容 解答 一、填空题 二、综合题 1.采用AD570通过82C55A与CPU接口&#xff0c;82C55A的端口地址为300H~303H,完成用查询方式采集250个数据&#xff0c;送到2000H开始的存储单元存储。绘制电路连接图&#xff08;AD570的4种主要信号线都要标出&#xff09;。 2…...

实战技巧:如何快速提高网站的收录比例?

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/28.html 快速提高网站的收录比例是网站优化中的重要目标之一。以下是一些实战技巧&#xff0c;可以帮助你实现这一目标&#xff1a; 一、内容优化 高质量原创内容&#xff1a; 确保网站内…...

WEB集群6-10天

第六天 nginx编译安装 全新的进行编译安装 [rootweb-1 ~]# mkdir /nginx [rootweb-1 ~]# cd /nginx/ [rootweb-1 nginx]# ls [rootweb-1 nginx]#curl -O https://nginx.org/download/nginx-1.26.1.tar.gz解压源码包 [rootweb-1 nginx]#tar xf nginx-1.26.1.tar.gz [rootw…...

10.共享内存 信号量集 消息队列

10.共享内存 信号量集 消息队列 **1. IPC对象操作通用框架****2. 共享内存&#xff08;Shared Memory&#xff09;****3. 信号量集&#xff08;Semaphore&#xff09;****4. 消息队列&#xff08;Message Queue&#xff09;****5. 练习与作业****6. 总结** 1. IPC对象操作通用框…...

玩转大语言模型——使用langchain和Ollama本地部署大语言模型

系列文章目录 玩转大语言模型——使用langchain和Ollama本地部署大语言模型 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 玩转大语言模型——使用GraphRAGOllama构建知识图谱 玩转大语言模型——完美解决Gra…...

数据结构与算法学习笔记----容斥原理

数据结构与算法学习笔记----容斥原理 author: 明月清了个风 first publish time: 2025.1.30 ps⭐️介绍了容斥原理的相关内容以及一道对应的应用例题。 Acwing 890. 能被整除的数 [原题链接](890. 能被整除的数 - AcWing题库) 给定一个整数 n n n和 m m m个不同的质数 p 1 …...

Appium介绍

在使用不同版本的Appium包进行自动化测试时&#xff0c;出现警告问题可能是由于版本不兼容、配置不正确等原因导致的。下面将详细介绍解决这些问题的步骤&#xff0c;确保模拟器能够正常启动&#xff0c;并能在Appium查看器中同步显示。 1. 环境准备 首先&#xff0c;确保你已…...

doris:Bitmap

BITMAP 类型可以在 Duplicate 表、Unique 表、Aggregate 表中使用&#xff0c;只能作为 Key 类&#xff0c;无法作为 Value 列使用。在 Aggregate 表中使用 BITMAP 类型&#xff0c;其建表时必须使用聚合类型 BITMAP_UNION。用户不需要指定长度和默认值。长度根据数据的聚合程度…...

gitee——报错修改本地密码

有时候当我们向远端push本地的仓库时会有一些报错的行为。 如下&#xff1a; 这是因为我们在gitee修改了密码时&#xff0c;本地还没有更新提交&#xff0c;总是报错 解决修改密码报错 如下&#xff1a; 1.在本地点击搜索栏找到控制面板 步骤如下...

Leetcode 45. 跳跃游戏 II

这题是一个动态规划问题&#xff0c;首先我先说一下自己的动态规划解题步骤&#xff1a; 1&#xff0c;首先需要明确动态规划数组的含义&#xff1a;这个是根据题目来定的&#xff0c;这一个题目的数组含义&#xff1a;dp【i】指的是从0跳到i所需要的最小的步骤。 2&#xff…...

ROS2---基础操作

工作空间(workspace) workspace是一个存放项目开发相关文件的文件夹。例如我们要开发一个机器人&#xff0c;我们可以创建一个工作空间&#xff0c;然后存放这个机器人不同功能的包&#xff08;感知&#xff08;雷达&#xff0c;相机等&#xff09;&#xff0c;运动&#xff0…...

【Leetcode 每日一题】350. 两个数组的交集 II

问题背景 给你两个整数数组 n u m s 1 nums_1 nums1​ 和 n u m s 2 nums_2 nums2​&#xff0c;请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数&#xff0c;应与元素在两个数组中都出现的次数一致&#xff08;如果出现次数不一致&#xff0c;则考虑取较小值…...

第13章 深入volatile关键字(Java高并发编程详解:多线程与系统设计)

1.并发编程的三个重要特性 并发编程有三个至关重要的特性&#xff0c;分别是原子性、有序性和可见性 1.1 原子性 所谓原子性是指在一次的操作或者多次操作中&#xff0c;要么所有的操作全部都得到了执行并 且不会受到任何因素的干扰而中断&#xff0c;要么所有的操作都不执行…...

STM32 PWMI模式测频率占空比

接线图&#xff1a; PWMI基本结构 代码配置&#xff1a; 与上一章输入捕获代码一样&#xff0c;根据结构体&#xff0c;需要在输入捕获单元再配置一个通道。我们调用一个函数 这个函数可以给结构体赋值&#xff0c;当我们定义了一遍结构体参数&#xff0c;再调用这个函数&…...

无心剑七绝《恭贺新春》

七绝恭贺新春 软件通灵万象真 生机繁茂绘星辰 智联世界情不尽 系统更新又一春 2025年1月29日 平水韵十一真平韵 无心剑七绝《恭贺新春》以“软件生态”为题旨&#xff0c;巧妙融入新春喜庆氛围&#xff0c;展现出科技与自然和谐共生的意境。首句“软件通灵万象真”&#xff0c;…...

低代码产品表单渲染架构

在React和Vue没有流行起来的时候&#xff0c;低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子&#xff1a; 产品层 用户通过打开表单&#xff0c;使用不同业务场景业务下的表单页面&#xff0c;中间的Render层就是技术实现。 每一个不同业务的表单…...

allegro修改封闭图形线宽

说在前面 我们先把最优解说在前面,然后后面再说如果当时不熟悉软件的时候为了挖孔是用了shapes该怎么修改回来。 挖空最方便的方式是在cutout层画一个圆弧,下面开始图解,先add一个圆弧 z 最好是在画的时候就选择好层,如果忘记了后续再换回去也行,但好像软件有bug,此处并…...

C++实现2025刘谦魔术(勺子 筷子 杯子)

目录 1、魔术步骤 2、C代码 2.1、定义物品 2.2、枚举初始顺序 2.3、进行step2筷子交换 2.4、进行step3杯子交换 2.5、进行step4勺子交换 3、运行结果 4、全部源码 又是一年春晚啦&#xff0c;今年比较期待的是刘谦的魔术表演&#xff0c;现在用C实现刘谦的第一个魔术&…...

Leetcode:219

1&#xff0c;题目 2&#xff0c;思路 第一种就是简单的暴力比对当时过年没细想 第二种&#xff1a; 用Map的特性key唯一&#xff0c;把数组的值作为Map的key值我们每加载一个元素都会去判断这个元素在Map里面存在与否如果存在进行第二个判断条件abs(i-j)<k,条件 符合直接…...

SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue&#xff08;前端&#xff09;axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 关于地址栏url和axios请求不一致VueJSPS…...

小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5

闲鱼上收了一台CR6606和一台CR6609, 一直没时间研究, 趁春节假期把这两个都刷成 OpenWRT 配置说明 CPU: MT7621AT&#xff0c;双核880MHz内存: NT5CC128M16JR-EKI 或 M15T2G16128A, 256MB闪存: F59L1G81MB, 128MB无线基带芯片(BB): T7905DAN无线射频芯片(RF): MT7975DN无外置F…...

我的求职面经:(2)C++中空指针请使用nullptr不要使用NULL

1. C中NULL定义就是整数字面量0 2. 对于C函数&#xff0c;由于存在重载&#xff0c;使用NULL而不是nullptr可能导致函数走错重载。 3. C中定义NULL为&#xff08;void* &#xff09;0&#xff0c;确实是代表空指针。使用时隐式转换成对应的需要类型的空指针。 4. C中void指针…...

Java8_StreamAPI

Stream 1.创建流 1.1 集合创建流 List<String> list List.of("a", "b", "c"); Stream<String> stream list.stream(); stream.forEach(System.out::println);1.2 数组创建流 String[] array {"a","b",&qu…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器

一、定时器简介 STM32 中的定时器&#xff08;TIM&#xff0c;Timer&#xff09;是其最重要的外设之一&#xff0c;广泛用于时间管理、事件计数和控制等应用。 1.1 基本功能 定时功能&#xff1a;TIM定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中…...

信息学奥赛一本通 1606:【 例 1】任务安排 1 | 洛谷 P2365 任务安排

【题目链接】 ybt 1606&#xff1a;【 例 1】任务安排 1 洛谷 P2365 任务安排 【题目考点】 1. 动态规划&#xff1a;线性动规 【解题思路】 可以先了解法1&#xff0c;虽然不是正解&#xff0c;但该解法只使用了动规的基本思路&#xff0c;易于理解&#xff0c;有助于理解…...

【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开

之前在Vmware虚拟机里配置了mumu模拟器&#xff0c;现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统&#xff0c;对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项&#xff0c;启用共享文件夹 3、复…...

【C语言】预处理详解

他们想要逃避工作的压迫&#xff0c;却又被功绩社会深植的价值观绑架。 前言 这是我自己学习C语言的第九篇博客总结。后期我会继续把C语言学习笔记开源至博客上。 上一期笔记是关于C语言的编译链接&#xff0c;没看的同学可以过去看看&#xff1a; 【C语言】编译链接_c 读取一行…...

设计模式Python版 适配器模式

文章目录 前言一、适配器模式二、适配器模式实现三、适配器模式在Django中的应用 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&…...

系统思考—蝴蝶效应

“个体行为的微小差异&#xff0c;可能在系统中引发巨大且不可预测的结果。” — 诺贝尔经济学得主托马斯谢林 我们常说&#xff0c;小变动带来大影响&#xff0c;这种现象&#xff0c;在复杂系统理论中被称为“蝴蝶效应”&#xff1a;即使极小的变化&#xff0c;也能在动态系…...

使用Edu邮箱申请一年免费的.me域名

所需材料&#xff1a;公立Edu教育邮箱一枚&#xff08;P.S&#xff1a;该服务不支持所有的Edu教育邮箱&#xff0c;仅支持比较知名的院校&#xff09; 说到域名&#xff0c;.me这个后缀可谓是个性十足&#xff0c;适合个人网站、博客等。.me是黑山的国家顶级域名&#xff08;c…...

【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)

本文项目编号 T 165 &#xff0c;文末自助获取源码 \color{red}{T165&#xff0c;文末自助获取源码} T165&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

C++ ——— 仿函数

目录 何为仿函数 仿函数和模板的配合使用 何为仿函数 代码演示&#xff1a; class Add { public:int operator()(int x, int y){return x y;} }; 这是一个 Add 类&#xff0c;类里面有一个公有成员函数重载&#xff0c;重载的是括号 那么调用的时候&#xff1a; Add ad…...

基于FPGA的BT656解码

概述 BT656全称为“ITU-R BT.656-4”或简称“BT656”,是一种用于数字视频传输的接口标准。它规定了数字视频信号的编码方式、传输格式以及接口电气特性。在物理层面上,BT656接口通常包含10根线(在某些应用中可能略有不同,但标准配置为10根)。这些线分别用于传输视频数据、…...

【Proteus仿真】【51单片机】简易计算器系统设计

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键​ 3、可以进行简单的加减乘除运算 4、最大 9999*9999 二、使用步骤 系统运行后&#xff0c;LCD1602显示数据&#xff0c;通过矩阵按键…...

【16届蓝桥杯寒假刷题营】第1期DAY2

1.能选取元素的最多个数 - 蓝桥云课 问题描述 给定一个长度为 n 的数组 a&#xff0c;小蓝希望从数组中选择若干个元素&#xff08;可以不连续&#xff09;&#xff0c;并将它们重新排列&#xff0c;使得这些元素 能够形成一个先严格递增然后严格递减的子序列&#xff08;可以…...

安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…...

linux的/proc 和 /sys目录差异

/proc 和 /sys 都是Linux系统中用于提供系统信息和进行系统配置的虚拟文件系统&#xff0c;但它们的原理并不完全一样&#xff0c;以下是具体分析&#xff1a; 目的与功能 /proc &#xff1a;主要用于提供系统进程相关信息以及内核运行时的一些参数等&#xff0c;可让用户和程…...

使用Navicat Premium管理数据库时,如何关闭事务默认自动提交功能?

使用Navicat Premium管理数据库时&#xff0c;最糟心的事情莫过于事务默认自动提交&#xff0c;也就是你写完语句运行时&#xff0c;它自动执行commit提交至数据库&#xff0c;此时你就无法进行回滚操作。 建议您尝试取消勾选“选项”中的“自动开始事务”&#xff0c;点击“工…...

HTB:Active[RE-WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用nmap对靶机…...

新春登蛇山:告别岁月,启航未来

大年初一&#xff0c;晨曦透过薄雾&#xff0c;温柔地洒在武汉的大街小巷。2025 年的蛇年春节&#xff0c;带着新春的喜气与希望悄然而至。我站在蛇山脚下&#xff0c;心中涌动着复杂的情感&#xff0c;因为今天&#xff0c;我不仅将与家人一起登山揽胜&#xff0c;更将在这一天…...

如何获取小程序的code在uniapp开发中

如何获取小程序的code在uniapp开发中&#xff0c;也就是本地环境&#xff0c;微信开发者工具中获取code&#xff0c;这里的操作是页面一进入就获取code登录&#xff0c;没有登录页面的交互&#xff0c;所以写在了APP.vue中&#xff0c;也就是小程序一打开就获取用户的code APP.…...

LLM评估与优化技术解析

标题&#xff1a;LLM评估与优化技术解析 文章信息摘要&#xff1a; LLM的评估方法主要包括自动化基准测试、人工评估和基于模型的评估&#xff0c;每种方法各有优缺点。自动化测试快速但难以捕捉细微差别&#xff0c;人工评估细致但成本高&#xff0c;基于模型的评估结合了两者…...

SpringBoot 原理分析

SpringBoot 原理分析 依赖管理相关 启动器 starter Spring Boot 的 Starter 是预定义依赖项集合&#xff0c;可简化 Spring 应用配置与构建&#xff0c;启动时自动引入所需库、配置和功能。 Spring Boot 有很多预定义 Starter&#xff0c;如 spring - boot - starter - web 用…...

go入门Windows环境搭建

简介 Go 即 Golang&#xff0c;是 Google 公司 2009 年 11 月正式对外公开的一门编程语言。 根据 Go 语言开发者自述&#xff0c;近 10 多年&#xff0c;从单机时代的 C 语言到现在互联网时代的 Java&#xff0c;都没有令人满意的开发语言&#xff0c;而 C往往给人的感觉是&a…...

拦截器快速入门及详解

拦截器Interceptor 快速入门 什么是拦截器&#xff1f; 是一种动态拦截方法调用的机制&#xff0c;类似于过滤器。 拦截器是Spring框架中提供的&#xff0c;用来动态拦截控制器方法的执行。 拦截器的作用&#xff1a;拦截请求&#xff0c;在指定方法调用前后&#xff0c;根…...

Fort Firewall:全方位守护网络安全

Fort Firewall是一款专为 Windows 操作系统设计的开源防火墙工具&#xff0c;旨在为用户提供全面的网络安全保护。它基于 Windows 过滤平台&#xff08;WFP&#xff09;&#xff0c;能够与系统无缝集成&#xff0c;确保高效的网络流量管理和安全防护。该软件支持实时监控网络流…...

第3章 基于三电平空间矢量的中点电位平衡策略

0 前言 在NPC型三电平逆变器的直流侧串联有两组参数规格完全一致的电解电容,由于三电平特殊的中点钳位结构,在进行SVPWM控制时,在一个完整开关周期内,直流侧电容C1、C2充放电不均匀,各自存储的总电荷不同,电容电压便不均等,存在一定的偏差。在不进行控制的情况下,系统无…...

九大服务构建高效 AIOps 平台,全面解决GenAI落地挑战

最近,DevOps运动的联合创始人Patrick Debois分享了他对AI平台与软件研发关系的深刻见解,让我们一起来探讨这个话题。 在AI的落地过程中,我们面临着两个主要难题: 引入AI编码工具后的开发者角色转变:随着像GitHub Copilot这样的AI工具的普及,工程师的角色正在发生深刻变革…...

Leetcode 131 分割回文串(纯DFS)

131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1&#xff1a…...