【AI论文】挑战推理的边界:大型语言模型的数学基准测试
摘要:近年来,大型推理模型的迅猛发展导致现有用于评估数学推理能力的基准测试趋于饱和,这凸显出迫切需要更具挑战性和严谨性的评估框架。为填补这一空白,我们推出了OlymMATH,这是一项全新的奥林匹克级数学基准测试,旨在严格检验大型语言模型(LLMs)的复杂推理能力。OlymMATH精心挑选了200道题目,每道题目均经过人工验证,并提供中英文双语版本。这些题目被系统地划分为两个难度等级:(1)美国数学邀请赛(AIME)级别题目(较易),用于确立数学推理评估的基准线;(2)难度显著更高的题目(较难),旨在挑战当前最先进模型的极限。在我们的基准测试中,这些题目涵盖四个核心数学领域,每个领域均包含可验证的数值解,以实现基于规则的客观评估。实证结果表明,OlymMATH提出了重大挑战,即便是包括DeepSeek-R1和OpenAI的o3-mini在内的最先进模型,在较难题目子集上的准确率也明显受限。此外,该基准测试还支持对数学推理能力进行全面双语评估——这是主流数学推理基准测试中尚未充分涉及的关键维度。我们将OlymMATH基准测试发布于STILL项目:https://github.com/RUCAIBox/Slow_Thinking_with_LLMs。Huggingface链接:Paper page,论文链接:2503.21380
研究背景和目的
研究背景
近年来,随着大型语言模型(LLMs)技术的飞速发展,它们在自然语言处理、知识问答、文本生成等多个领域展现出了强大的能力。特别是在数学推理方面,LLMs已经能够解决一些复杂的数学问题,这标志着人工智能在理解和应用数学知识方面取得了重要进展。然而,尽管取得了显著成就,当前的LLMs在解决需要高级推理能力的数学问题时仍然面临诸多挑战。
现有的数学基准测试,如GSM8K、MATH等,虽然在一定程度上推动了LLMs数学推理能力的发展,但随着模型性能的不断提升,这些基准测试已经逐渐趋于饱和。许多最先进的LLMs在这些基准测试上已经取得了接近甚至超过人类的表现,这导致评估模型的新进展变得更加困难。因此,为了持续推动LLMs数学推理能力的发展,需要引入更具挑战性和严谨性的评估框架。
研究目的
本研究旨在开发一个全新的数学基准测试——OlymMATH,以严格检验LLMs的复杂推理能力。具体而言,本研究的目的包括:
- 设计更具挑战性的数学基准测试:通过精心挑选和设计涵盖多个数学领域的难题,构建一个能够全面评估LLMs数学推理能力的基准测试。
- 推动LLMs数学推理能力的发展:通过引入OlymMATH,激励研究人员开发具有更强推理能力的LLMs,从而推动该领域的持续进步。
- 促进双语评估:提供中英文双语版本的基准测试,以便全面评估LLMs在不同语言环境下的数学推理能力。
研究方法
基准测试设计
- 问题来源与筛选:
- OlymMATH的问题主要来源于印刷版的数学杂志、教科书和官方竞赛材料,以确保问题的质量和原创性。
- 通过排除在线资源,减少数据污染的风险,确保问题的挑战性和代表性。
- 精心挑选了200道题目,涵盖代数、几何、数论和组合数学四个核心领域。
- 难度划分:
- 将问题划分为两个难度等级:AIME级别(较易)和奥林匹克级别(较难)。
- AIME级别问题用于确立数学推理评估的基准线,而奥林匹克级别问题则旨在挑战当前最先进模型的极限。
- 问题格式与验证:
- 每道题目均提供中英文双语版本,确保双语评估的可行性。
- 题目以文本形式描述,避免对图形的依赖,以便与语言模型的评估框架兼容。
- 每个问题都包含可验证的数值解,以实现基于规则的客观评估。
评估方法
- 模型选择:
- 选择了多种具有代表性的LLMs进行评估,包括开源模型(如DeepSeek-R1、QwQ-32B)和闭源模型(如OpenAI的o3-mini)。
- 评估指标:
- 采用Pass@1和Cons@10两个互补的指标来评估模型性能。
- Pass@1计算模型在所有采样响应中的平均准确率。
- Cons@10通过多数投票确定每个问题的共识答案,并计算平均准确率。
- 生成参数设置:
- 为每个模型设置了适当的生成参数(如温度、top_p等),以释放其推理能力。
研究结果
模型性能评估
- 整体表现:
- 所有测试模型在OlymMATH上的表现均相对较差,特别是在较难子集上。这表明OlymMATH提出了重大挑战,现有模型在解决这些问题时仍存在较大困难。
- 即使是最先进的模型(如DeepSeek-R1和o3-mini),在较难子集上的准确率也明显受限。
- 难度对比:
- 与现有基准测试(如MATH、AIME等)相比,OlymMATH的较难子集对模型提出了更高的要求。
- 模型在OlymMATH上的表现差异更大,能够更好地区分不同模型的推理能力。
- 双语评估:
- 模型在中英文版本上的表现存在一定差异,整体而言,模型在英文版本上的表现通常优于中文版本。
- 这表明语言对LLMs的数学推理能力有一定影响,双语评估有助于更全面地了解模型的性能。
案例分析
通过对一些挑战性问题的案例分析,我们发现模型在解决问题时常常采用经验猜测而非严谨推理的策略。尽管这种策略有时能够得出正确答案,但它缺乏必要的逻辑严谨性,容易被视为不正确的或部分正确的答案。这表明当前模型在解决复杂数学问题时仍存在推理不足的问题,需要进一步提高其推理能力。
研究局限
- 基准测试规模:
- 尽管OlymMATH已经包含了200道题目,但相对于庞大的数学领域来说,这一规模仍然有限。未来需要进一步扩大基准测试的规模,以更全面地评估LLMs的数学推理能力。
- 问题类型覆盖:
- OlymMATH主要涵盖了代数、几何、数论和组合数学四个领域的问题,但数学领域非常广泛,还包括微积分、概率论等其他重要分支。未来需要引入更多类型的问题,以更全面地评估模型的性能。
- 评估指标局限性:
- 当前采用的Pass@1和Cons@10指标主要关注答案的准确性,而忽略了推理过程的质量。未来需要引入更多关注推理过程的评估指标,以更全面地了解模型的性能。
- 模型可解释性:
- 当前LLMs通常被视为黑箱模型,其推理过程难以解释。这限制了我们对模型性能的理解和改进。未来需要研究如何提高模型的可解释性,以便更好地指导模型的开发和优化。
未来研究方向
- 扩大基准测试规模:
- 通过引入更多高质量的数学问题,进一步扩大OlymMATH的规模,以更全面地评估LLMs的数学推理能力。
- 引入更多问题类型:
- 涵盖更多数学领域和类型的问题,如微积分、概率论等,以更全面地了解模型在不同类型问题上的表现。
- 开发新评估指标:
- 研究和开发关注推理过程的评估指标,以更全面地评估模型的性能。这可能包括评估模型的推理步骤、逻辑严谨性等方面。
- 提高模型可解释性:
- 研究如何提高LLMs的可解释性,以便更好地理解其推理过程并指导模型的改进。这可能包括开发可解释性更强的模型架构、引入可视化工具等方法。
- 跨语言推理能力研究:
- 进一步研究LLMs在不同语言环境下的数学推理能力,探索跨语言推理的机制和方法。这可能包括开发多语言模型、研究语言对推理能力的影响等方面。
综上所述,本研究通过引入OlymMATH基准测试,为评估LLMs的数学推理能力提供了一个更具挑战性和严谨性的框架。未来研究将在此基础上继续深化和拓展,以推动LLMs数学推理能力的持续进步和发展。
相关文章:
【AI论文】挑战推理的边界:大型语言模型的数学基准测试
摘要:近年来,大型推理模型的迅猛发展导致现有用于评估数学推理能力的基准测试趋于饱和,这凸显出迫切需要更具挑战性和严谨性的评估框架。为填补这一空白,我们推出了OlymMATH,这是一项全新的奥林匹克级数学基准测试&…...
使用 Python包管理工具 uv 完成 Open WebUI 的安装
uv 是一个极其快速的 Python 包安装器和解析器,用 Rust 编写,旨在作为 pip 和 pip-tools 工作流的替代品 使用 uv 安装(推荐) macOS/Linux: curl -LsSf https://astral.sh/uv/install.sh | shWindows: po…...
【区块链安全 | 第三篇】主流公链以太坊运行机制
文章目录 1. 以太坊账户类型2. 以太坊网络架构2.1 节点类型2.2 交易流程 3. 共识机制4. Gas 机制4.1 Gas 计算方式4.2 以太坊 EIP-1559 交易机制 5. EVM(以太坊虚拟机)5.1 EVM 结构5.2 EVM 指令5.3 EVM 运行机制 6. 智能合约7. ERC 代币标准7.1 ERC-207.…...
C# 字符串(String)
C# 字符串(String) 引言 在C#编程语言中,字符串(String)是处理文本数据的基础。字符串是字符的有序集合,用于存储和处理文本信息。C#的字符串类型是System.String,它是一个引用类型࿰…...
Unity Shader 学习18:Shader书写基本功整理
1. Drawer [HideInInspector]:面板上隐藏[NoScaleOffset]:隐藏该纹理贴图的TillingOffset[Normal]:检查该纹理是否设为法线贴图[HDR]:将颜色类型设为高动态范围颜色(摄像机也要开启HDR才有效果)[PowerSlid…...
构建第一个SpringBoot程序
第一种方式: 注,构建过程中一定要联网 new module -->选择spring Initializr 选择Web --> 勾选Spring Web --> create 构建好的项目如下 这里的 .mvn .git* HELP.md mvnw* 都可以删除 编辑好controller 之后 点击即可运行第一个springbo…...
Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器
JVM是Java高级部分,深入理解程序的运行及原理,面试中也问的比较多。 JVM是Java程序运行的虚拟机环境,实现了“一次编写,到处运行”。它负责将字节码解释或编译为机器码,管理内存和资源,并提供运行时环境&a…...
使用飞书API自动化更新共享表格数据
飞书API开发之自动更新共享表格 天马行空需求需求拆解1、网站数据爬取2、飞书API调用2.1 开发流程2.2 创建应用2.3 配置应用2.4 发布应用2.5 修改表格权限2.6 获取tenant_access_token2.7 调用API插入数据 总结 天马行空 之前一直都是更新的爬虫逆向内容,工作中基本…...
C++中ShellExecute函数使用方法说明,如果一开始参数为隐藏,后面还能再显示出来吗
文章目录 一、ShellExecute基础用法函数原型关键参数 nShowCmd示例代码:启动程序并隐藏窗口 二、隐藏后能否重新显示窗口直接答案 三、实现隐藏后显示窗口的步骤1. 获取目标窗口句柄2. 显示窗口 四、完整流程示例五、注意事项六、总结 在C中使用ShellExecute函数时&…...
MySQL的多表查询
我们之前在讲解SQL语句的时候,讲解了DQL语句,也就是数据查询语句,但是之前讲解的查询都是单表查询,而本章节我们要学习的则是多表查询操作,主要从以下几个方面进行讲解。 5.1 多表关系 项目开发中,在进行…...
(UI自动化测试web端)第二篇:元素定位的方法_css定位之层级选择器
看代码里的【find_element_by_css_selector( )】( )里的表达式怎么写? 文章介绍了第五种写法,层级选择器 ,你要根据网页中的实际情况来判断自己到底要用哪一种方法来进行元素定位。每种方法都要多练习,全都熟了之后你在工作当中使…...
《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务
《Python Web部署应知应会》No2:如何基于FastAPI 和 OLLAMA 架构实现高并发 AI 推理服务(上) 摘要: 在 FastAPI 和 OLLAMA 架构中实现高并发 AI 推理服务,并优化性能指标采集和缓存策略,可以充分利用 asy…...
【LeetCode 题解】算法:8.字符串转换整数(atoi)
一、问题描述 在 LeetCode 的算法题库里,有这样一道题目,要求我们实现一个名为 myAtoi(string s) 的函数,其功能是将给定的字符串转换为一个 32 位有符号整数。具体的转换规则如下: 处理步骤 剔除前导空格:读取字符串…...
Uni-app页面信息与元素影响解析
获取窗口信息uni.getWindowInfo {pixelRatio: 3safeArea:{bottom: 778height: 731left: 0right: 375top: 47width: 375}safeAreaInsets: {top: 47, left: 0, right: 0, bottom: 34},screenHeight: 812,screenTop: 0,screenWidth: 375,statusBarHeight: 47,windowBottom: 0,win…...
飞书电子表格自建应用
背景 coze官方的插件不支持更多的飞书电子表格操作,因为需要自建应用 飞书创建文件夹 创建应用 开发者后台 - 飞书开放平台 添加机器人 添加权限 创建群 添加刚刚创建的机器人到群里 文件夹邀请群 创建好后,就可以拿到id和key 参考教程: 创…...
《云原生安全攻防》-- K8s容器安全:权限最小化与SecurityContext
一旦容器被入侵,攻击者就可以获取到容器的权限,所以,容器运行过程中,我们首先需要考虑的是容器的权限问题。 在本节课程中,我们将重点介绍权限最小化以及如何使用SecurityContext来管理容器的权限。 在这个课程中&…...
uniapp中的流式输出
一、完整代码展示 目前大多数的ai对话都是流式输出,也就是对话是一个字或者多个字逐一进行显示的下面是一个完整的流式显示程序,包含的用户的消息发出和ai的消息回复 <template><view class"chat-container"><view class&quo…...
PipeWire 音频设计与实现分析一——介绍
PipeWire 是一个基于图的媒体处理引擎,一个可以运行多媒体节点图的媒体服务器,是 Linux 的音频/视频总线,它管理 Linux 系统中,不同应用程序对音频和视频设备的共享访问。它提供了一个本地客户端音频 API,但也提供兼容…...
MVC 文件夹:架构之美,开发之魂
MVC 文件夹:架构之美,开发之魂 引言 在软件开发领域,MVC(Model-View-Controller)架构模式已经成为了一种广泛应用的架构设计理念。它将应用程序分为三个核心部分:模型(Model)、视图…...
IO模型之于并发编程模型、并发模型之于架构模式
一、并发编程模型主要包括以下几种: 多进程模型:利用操作系统的进程模型来实现并发。每个用户请求接入时都会创建一个进程,适用于I/O密集型任务。缺点是创建进程的开销高,且上下文切换的开销也大。典型应用如Apache Web Ser…...
Postman 7.3.5 旧版下载指南(Win64)及注意事项
Postman-win64-7.3.5-Setup 是 Postman 的一个旧版本(2019年发布,适用于 Windows 64位系统)。以下是相关信息和建议: 1. Postman 7.3.5 版本说明 功能:用于 API 开发、测试和协作。 系统要求:Windows 64位…...
Flink/Kafka在python中的用处
一、基础概念 1. Apache Kafka 是什么? 核心功能:Kafka 是一个分布式流处理平台,主要用于构建实时数据管道和流式应用程序。核心概念: 生产者(Producer):向 Kafka 发送数据的程序。…...
【Spring Boot 与 Spring Cloud 深度 Mape 之十】体系整合、部署运维与进阶展望
【Spring Boot 与 Spring Cloud 深度 Mape 之十】体系整合、部署运维与进阶展望 #微服务实战 #Docker #Kubernetes #SpringSecurity #OAuth2 #分布式事务 #Seata #ServiceMesh #总结 #SpringCloud #SpringBoot 系列终章:经过前九篇 [【深度 Mape 系列】] 的系统学习…...
轻松理解Python装饰器:从基础到应用
一、为什么需要装饰器 想象一下,你写了很多函数来完成不同的任务,突然有个新需求:在每个函数执行前打印一条“函数开始执行”的消息,执行后打印“函数执行结束”。如果没有装饰器,你就得在每个函数里手动添加这两条打…...
RabbitMQ 技术详解:异步消息通信的核心原理与实践
这里写目录标题 RabbitMQ 技术详解:异步消息通信的核心原理与实践一、RabbitMQ 本质剖析核心架构组件 二、核心功能与应用场景主要作用典型应用场景 三、工作流程深度解析消息传递流程关键协议机制 四、Java 实现示例1. 依赖配置(Maven)2. 消…...
MySQL-- 多表查询的分类,SQL92与SQL99,7种JOIN的实现,SQL99语法的新特性
目录 一,多表查询的分类 角度1:等值连接 vs 非等值连接 角度2:自连接 vs 非自连接 角度3:内连接 vs 外连接 二,SQL92语法实现内连接:见上,略SQL92语法实现外连接:使用 -…...
Selenium文件上传
在 Web 自动化测试中,文件上传是一项常见的任务。不同的网站和前端技术可能导致上传方式有所不同,因此需要采用不同的方法进行处理。 方法 1:使用 send_keys() 直接上传(最常用) 适用场景: 页面中 有标准的 <input type="file"> 标签。 不需要弹出 Wind…...
getID3获取本地或远程视频时长
音频文件也可使用,使用ffmeg安装太复杂了 附ffmpeg方式:centos下安装ffmpeg_yum安装ffmpeg-CSDN博客 使用composer先安装 composer require james-heinrich/getid3 获取本地视频 //获取本地视频$video_path $_SERVER[DOCUMENT_ROOT].$params[video];…...
OpenAI流式解析
OpenAI 流式的代码: 首选一般请使用os.getenv 去读环境变量的内容 注意使用pip install python-dotenv 的安装方法 load_dotenv 是这个库提供的一个函数,用于读取 .env 文件并将其中定义的键值对设置为系统的环境变量。 默认情况下,load_…...
在Trae中设置Python解释器版本
Python 是一种广泛使用的高级编程语言,因其简洁易读的语法和强大的功能而备受欢迎。随着 Python 的不断发展,多个版本相继发布,每个版本都带来了新特性和改进。然而,这也带来了一些问题,比如不同的工程,需要…...
第 6 章:优化动态分配内存的变量_《C++性能优化指南》_notes
优化动态分配内存的变量 第六章核心知识点详解总结第六章 动态内存优化 重点难点梳理 一、多选题(每题至少2个正确答案)二、设计题答案与详解多选题答案设计题答案示例 第六章核心知识点详解 动态内存分配的开销 知识点:动态内存分配需要调用…...
图像数据增强教程:为目标检测任务准备数据
目录 一、简介 二、代码结构 三、环境要求 四、数据增强类 4.1 调整增强概率和参数 4.2 增强方法参数 五、数据增强主函数 六、主函数 效果展示 完整代码 一、简介 在目标检测任务中,数据增强是一种关键技术,通过对原始图像应用多种变换来增加…...
Unity编辑器功能及拓展(2) —Gizmos编辑器绘制功能
Unity中的Gizmos功能是用于在场景视图中绘制辅助图形或图标的工具,帮助开发者在编辑模式下直观调试和可视化游戏对象的位置、范围、方向等信息。 一.定义概述 Gizomsd 概述 Gizoms是Unity提供的一个API,或者叫做一个工具类,包含一系列静态…...
HarmonyOS WebSocket全场景应用开发深度解析
注:适用版本(Harmony OS NEXT / 5.0 / API 12 ) 一、最终效果预览 二、基础代码结构 Entry Component struct ChatApp {State messages: Message[] [] // 所有聊天记录State inputText: string "" // 输入框内容State isCon…...
JCRQ1河马算法+消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测
JCRQ1河马算法消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测 目录 JCRQ1河马算法消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 基于HO-CNN-LSTM-Attention、CNN-LSTM-Attent…...
ubuntu 安装 postgresql
在 Ubuntu 系统中安装 PostgreSQL 的步骤如下: 步骤 1:更新软件包列表 sudo apt update步骤 2:安装 PostgreSQL Ubuntu 默认仓库包含 PostgreSQL,直接安装: sudo apt install postgresql postgresql-contrib -ypost…...
深入实践:基于WebSocket的全球化金融数据实时对接方案。 马来西亚、印度、美国金融数据API
深入实践:基于WebSocket的全球化金融数据实时对接方案 在全球金融市场中,实时数据的高效获取与处理是量化交易、行情监控等场景的核心能力。本文将以技术实践为核心,详细解析如何通过WebSocket技术实现美国、印度、马来西亚等多国金融数据&a…...
深度学习处理时间序列(5)
Keras中的循环层 上面的NumPy简单实现对应一个实际的Keras层—SimpleRNN层。不过,二者有一点小区别:SimpleRNN层能够像其他Keras层一样处理序列批量,而不是像NumPy示例中的那样只能处理单个序列。也就是说,它接收形状为(batch_si…...
Linux: 进程间通信
目录 一 前言 二 进程间通信目的 三 进程间通信方法 四 管道通信 1. 进程如何通信 2.管道概念 2.1匿名管道 2.2 匿名管道对多个进程的控制 2.3 命名管道 2.4 命名管道原理 一 前言 在我们学习进程的时候,我们知道正是因为程序地址空间的存在ÿ…...
为什么idea显示数据库连接成功,但操作数据库时,两边数据不同步
今日份小bug又叕又来了! 一、原因分析 1. 未提交的事务 - IDEA 中执行了修改操作但未提交事务 - 其他客户端有未提交的修改 2. 连接隔离级别问题 - 不同连接使用了不同的事务隔离级别 - 读未提交(READ UNCOMMITTED)导致看到未提交数据 3. 多客户端同时操作…...
VMware中新建Ubuntu虚拟机系统,并安装Anaconda
详细介绍 Ubuntu18.04版本的安装Anaconda的安装 Ubuntu20.04版本的安装给出其他参考 安装Ubuntu18.04 新建虚拟机 如果不习惯图文形式的,也可参考该up主的环境安装分享,和我如下记录有些不同,但不影响,大部分均一致。 …...
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板 一、揭开 LangChain 的 “灵魂引擎”:Prompt 的核心作用 在 LangChain 构建的智能应用中,Prompt(提示词)堪称驱动大模型的 “神经中枢”。这个承载着任务…...
项目如何安装本地tgz包并配置局部registry
一、判断包来源是否正确 1. 检查url curl <registry_url>2. 查看包是否存在 npm view <package_name> --registry<registry_url>二、局部registry配置步骤: 1. 全局配置 如果你希望对所有项目生效,可以将这行配置添加到全局.npmr…...
unity客户端面试高频2(自用)
标题是我 1.构造函数为什么不能为虚函数?析构函数为什么要虚函数?2.C智能指针3.左值和右值完美转发 4.深拷贝与浅拷贝5.malloc VS new 你们知道吗 1.构造函数为什么不能为虚函数?析构函数为什么要虚函数? 构造函数不能定义为虚函…...
【12】Ajax的原理和解析
一、前言 二、什么是Ajax 三、Ajax的基本原理 3.1 发送请求 3.2 解析内容 3.3 渲染网页 3.4 总结 四、Ajax 分析 五、过滤请求-筛选所有Ajax请求 一、前言 当我们在用 requests 抓取页面的时候,得到的结果可能会和在浏览器中看到的不一样&a…...
深度学习在测距模型中的应用
一、单目视觉测距和双目视觉测距简介 1、单目视觉测距 模型:深度估计(Depth Estimation) 原理:通过深度学习模型(如MonoDepth2、MiDaS)或传统的计算机视觉方法(如单目相机结合物体大小推断&am…...
Python np.vectorize函数介绍
np.vectorize 是 NumPy 提供的一个 用于将标量函数(scalar function)向量化 的工具,使其可以作用于 NumPy 数组,类似于 通用函数(ufunc) 的行为。 1️⃣ np.vectorize 语法 numpy.vectorize(pyfunc, otypes=None, signature=None, excluded=None, cache=False)📌 参数…...
HarmonyOS NEXT状态管理实践
在HarmonyOS NEXT开发中,状态管理是构建高效、响应式应用的核心。本文深入探讨状态管理的最佳实践,结合代码示例与案例分析,帮助开发者掌握这一关键技能。 一、状态管理装饰器的合理使用 HarmonyOS NEXT提供多种状态管理装饰器,…...
广告牌变“高空炸弹“?智能预警终端筑起安全防线!
近年来,随着城市发展步伐加快,广告牌已成为城市形象的重要载体。但与此同时,因设计缺陷、违规搭建、维护缺失等问题导致的广告牌坠落事故频发,给市民生命财产安全带来严重威胁。据不完全统计,我国2000万块户外广告牌中…...
scss预处理器对比css的优点以及基本的使用
本文主要在vue中演示,scss的基本使用。安装命令 npm install sass sass-loader --save-dev 变量 SCSS 支持变量,可将常用的值(如颜色、字体大小、间距等)定义为变量,方便重复使用和统一修改。 <template><…...