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

【LLM】R1复现项目(SimpleRL、OpenR1、LogitRL、TinyZero)持续更新

note

(1)未来的工作需亟待解决:

  • 支持大规模 RL 训练(PPO、GRPO 等)的开源基础框架
  • 用于稳定训练的 GRPO 训练超参的自动化调优
  • RL 训练数据的配比(难度、领域、任务等)
  • 基于 Instruct 模型训练 R1 时,高质量 long CoT 的数据获取
  • 合适的惩罚函数设计以保证 CoT 思考链质量不退化

(2)应用在业务落地时,需要考虑:

  • 模型在给定的 prompt 下,结合预训练的基本知识能否正确给出正确的推理结果。任何业务中的「潜规则」都需要显式地定义在 prompt 中,并尽可能避免与预训练知识的冲突。
  • 混合通用数据、业务数据与数学、代码类领域任务下的 long CoT SFT 数据来给模型先打下一个坚实的思维链范式基础,这有利于提升 RL 训练时的稳定性。

(3)RL 基本设置:Reward 函数定义、Penalty 函数定义 (Optional)、优化方式、训练平台
注:复现工作均在 TIONE 平台上使用 1 台 ~ 4 台 GPUs 进行。上述几个开源复现工作中,只有 OpenRLHF 支持多机多卡训练。其余的仅支持单机多卡训练,且往往存在 GPU 数目的限制。在训练 TinyZero 和 LogitRL 时,就遇到了扩展 GPUs 后训练卡在初始化的问题。大部分项目使用 4 卡、8 卡、32 卡(SimpleRL)复现耗时在 2~3 天左右。

(4)总结:
1)DeepSeek R1 的 format 约束主要以"{think process}{answer}"的形式实现,而开源方案大多采用了 "{think process}{answer}" 的形式。从优化角度而言两者的差异不大。在构建基于正则表达式来判断模型输出是否存在规范格式时,往往采用的是较为严格的 r"^.?\s.*?$" 来约束开头与结尾。针对部分数学类问题,format reward 考虑答案是否出现了 \box{} 框。

2)accuracy reward:各个工作的实现方式基本沿用了过往强化学习算法中 ORM(outcome reward model) 里的代码。此处的难点有两个:

  • 需要编写大量的后处理代码,从模型的输出结果中能够成功解析出最终的结果;
  • 需要考虑判断相等的条件(数值、字符串等),并针对不同的领域数据设计不同的 reward 方式。

对于前者而言,对于某些要求格式化输出类问题,需要正确匹配出目标 kv 对。对于后者而言,判断 prediction 和 gt 是否相等并返回 reward 的定义也有所讲究。最严格的完全一致匹配只会区分正确 - 错误两种情况,在某些任务上可能会影响训练收敛的速度。

文章目录

  • note
  • 一、R1复现项目
  • 二、具体项目
    • 预算上的纯RL:TinyZero
    • Open R1: HuggingFace 复现 DeepSeek-R1 全流程
    • 从头开始构建 DeepSeek R1
    • Open-Thoughts: UC 伯克利复现 DeepSeek-Distill-Qwen-32B
    • LIMO:少即是多
    • DeepScaleR:完美复现 DeepSeek-R1 强化学习效果
  • Reference

一、R1复现项目

Github训练集测试集模型RL 框架优点缺点易上手评级
simpleRL-reasonMATH 8K(level 3-5), AIME 2024, MATH 500, AMC Minerva Math, OlympiadBenchAIME 2024, MATH 500, AMCQwen2.5-7BOpenRLHF1)实现简单 2)系统工作支持 PRM/ORM/R1 等 3)RL 框架支持多机多卡1)RL 算法暂不支持 GRPO⭐️⭐️⭐️
open-r1DigitalLearningGmbH/MATH-lighteval, AI-MO/NuminaMath-TIRAIME 2024, MATH-500, GPQA DiamondDeepSeek-R1-Distill-Qwen-7B, Qwen2.5-Math-7B, Qwen2.5-1.5B-InstructTRL1)实现简单 2)全流程支持 R1 系列工作(sft/rl/sft+rl)1)多机训练暂不支持⭐️⭐️
unslothGSM8KGSM8K[test]LLAMA 3.1(8B), Phi4, Qwen2.5-1.5BTRL1)官方声称最接近 R1 的复现方式 2)接口简单1)多卡需付费⭐️
logit-RLKK 老实人与骗子 lv3&5KK 老实人与骗子Qwen2.5-7B-InstructveRL1)RL 框架支持多种算法 2)复现率较高1)多机训练暂不支持⭐️⭐️⭐️
tinyzeroCountdownCountdownQwen2.5-3BveRL1)RL 框架支持多种算法 2)复现率较高1)多机训练暂不支持⭐️⭐️⭐️
oatzero8K MATH, MATH 500MATH 500Qwen2.5-Math-7B/1.5B, Qwen2.5-7B/3B, Microsoft-Rho-Math-7B, DeepSeek-Math-7B-BaseOAT1)统一集成了 tinyzero 等代码1)多机训练暂不支持⭐️⭐️
demystifyMATH, WebInstruct, MATH-500, TheoremQA, MLU-Pro-1kMATH 500llama3.1-8B, Qwen2.5-Math-7BOpenRLHF1)实现简单 2)论文本身较扎实(训练 & 验证充分)1)实验 setting 与 R1 稍有区别⭐️⭐️

在这里插入图片描述

二、具体项目

预算上的纯RL:TinyZero

Sky-T1专注于模型蒸馏,也有在“纯RL”领域的一些工作-TinyZero,一个3B参数模型,复制了DeepSeek-R1-Zero的方法(训练成本不到30美元)。

即使只有3B参数,TinyZero也表现出一些新兴的自我验证能力,这支持了“推理可以通过纯RL在小模型中出现”的观点。

RL 训练时设置严格的格式约束,通常以 system prompt 的形式出现在训练数据中。
system prompt(snippet):

Show your work in <think> </think> tags. And return the final answer in <answer> </answer> tags, for example <answer> (1 + 2) / 3 </answer>.

reward 函数定义(snippet):

answer_pattern = r'<answer>(.*?)</answer>'
match = re.finditer(answer_pattern, solution_str)
matches = list(match)
if matches:final_answer = matches[-1].group(1).strip()
else:final_answer = None
return final_answer

考虑到答案校验存在不同的类型(字符串通常使用 exact_match,浮点数允许给定精度下的误差),不同开源项目也使用了适应于训练集的答案校验函数。
accuracy reward 定义(snippet):

# Evaluate equation
try:result = evaluate_equation(equation)if result is None:if do_print:print(f"Could not evaluate equation")return format_scoreif abs(result - target) < 1e-5:  # Account for floating point precisionif do_print:print(f"Correct equation: {equation} = {result}")return scoreelse:if do_print:print(f"Wrong result: equation = {result}, target = {target}")return format_score
......

总结:
(1)DeepSeek R1 的 format 约束主要以"{think process}{answer}"的形式实现,而开源方案大多采用了 "{think process}{answer}" 的形式。从优化角度而言两者的差异不大。在构建基于正则表达式来判断模型输出是否存在规范格式时,往往采用的是较为严格的 r"^.?\s.*?$" 来约束开头与结尾。针对部分数学类问题,format reward 考虑答案是否出现了 \box{} 框。

(2)accuracy reward:各个工作的实现方式基本沿用了过往强化学习算法中 ORM 里的代码。此处的难点有两个:

  • 1)需要编写大量的后处理代码,从模型的输出结果中能够成功解析出最终的结果;
  • 2)需要考虑判断相等的条件(数值、字符串等),并针对不同的领域数据设计不同的 reward 方式。

对于前者而言,对于某些要求格式化输出类问题,需要正确匹配出目标 kv 对。对于后者而言,判断 prediction 和 gt 是否相等并返回 reward 的定义也有所讲究。最严格的完全一致匹配只会区分正确 - 错误两种情况,在某些任务上可能会影响训练收敛的速度。

Open R1: HuggingFace 复现 DeepSeek-R1 全流程

HuggingFace 表示,将以 DeepSeek-R1 的技术报告为指导,分 3 个步骤完成这个项目:

• step 1:从 DeepSeek-R1 中蒸馏高质量数据,复现 R1-Distill 模型。
• step 2:复现通过纯强化学习训练 R1-Zero 的过程,包括如何生成推理数据集
• step 3:复现训练 R1 的完整 pipeline,包括两阶段 SFT、两阶段 RL。

在这里插入图片描述

从头开始构建 DeepSeek R1

Deepseek讲解,一个讲解如何从头开始构建 DeepSeek R1的项目
https://github.com/FareedKhan-dev/train-deepseek-r1

开发者Fareed Khan’s 用手绘流程图以及代码的方式,逐步讲解如何按照 deepseek 技术报告构建一个可以在本地运行的小型基础模型。非常详细。
该项目选择了一个较小的基础模型 Qwen/Qwen2.5–0.5B-Instruct 作为起点。

  • 通过 GRPO 算法进行强化学习,设计了多种奖励函数,如准确度奖励、格式奖励、推理步骤奖励、余弦缩放奖励和重复惩罚奖励,以鼓励模型进行正确和清晰的推理过程。
  • 在此基础上进行了监督微调(SFT),使用了 Bespoke-Stratos-17k 数据集,通过少样本提示、直接提示和后处理精炼等方法,进一步提升了模型的推理能力和输出质量。
  • 最后,通过拒绝采样筛选出高质量的推理数据,进行了第二阶段的 SFT 训练,以及针对实用性和无害性进行了奖励优化,最终完成了 DeepSeek R1 模型的构建。

Open-Thoughts: UC 伯克利复现 DeepSeek-Distill-Qwen-32B

斯坦福、UC伯克利等多机构联手发布了开源模型:OpenThinker-32B,性能直逼 DeepSeek-Distill-Qwen-32B。

仅使用了 114k(OpenThoughts-114k) 数据(DeepSeek-Distill-Qwen-32B 的1/8),就与同尺寸 DeepSeek-Distill-Qwen-32B 打成平手。团队发现,通过采用经 DeepSeek-R1 验证过的大规模优质数据集,就能够成功训练出达到 SOTA 水平的推理模型。具体实现方法包括扩大数据量、严格验证推理过程以及扩大模型规模。

LIMO:少即是多

上交大的最新研究成果却给出了一个另外答案:仅需 817 条精心策划的样本,便能让模型在数学竞赛级别的难题上超越众多现有的顶尖模型。这一发现不仅颠覆了传统认知,更揭示了一个我们可能一直忽视的事实:大模型的数学潜能或许始终存在,关键在于如何有效激发它。

LIMO(Less Is More for Reasoning)仅用 817 条精心设计的训练样本,通过简单的 SFT,就全面超越了那些使用几十万数据训练的主流模型,如 o1-preview 和 QwQ。

在 AIME24 评测中,LIMO 的准确率从传统方法(以 Numina-Math 为例)的 6.5% 飙升至 57.1%。而在 10 个不同的基准测试上,它实现了 40.5% 的绝对性能提升,超越了那些使用 100 倍数据训练的模型。这一突破证明了高质量、小规模的数据集,远比低效的海量数据训练更能激发大模型的推理潜能。

DeepScaleR:完美复现 DeepSeek-R1 强化学习效果

UC 伯克利团队宣布,他们仅以4500美元的成本,通过简单的强化学习(RL),就成功复现并训练出了 DeepScaleR-1.5B-Preview 模型,直接超越了 o1-preview。

UC伯克利的研究团队以 Deepseek-R1-Distilled-Qwen-1.5B 为基础,通过强化学习(RL),在 40,000 个高质量数学问题上进行训练,使用了 3800 A100 小时(4500美元),训练出了 DeepScaleR-1.5B-Preview 模型。在多个竞赛级数学基准测试中优于 OpenAI 的 o1-preview。

Reference

[1] DeepSeek R1范式复现笔记. 腾讯工程
[2] DeepSeek R1 最新复现项目汇总
[3] simpleRL-reason:GitHub - hkust - nlp/simpleRL - reason: This is a replicate of DeepSeek - R1 - Zero and DeepSeek - R1 training on small models with limited data
[4] open-r1:GitHub - huggingface/open - r1: Fully open reproduction of DeepSeek - R1
[5] [logit - RL](https://github.com/Unakar/Logic - RL):GitHub - Unakar/Logic - RL: Reproduce R1 Zero on Logic Puzzle
[6] [tinyzero](https://github.com/Jiayi - Pan/TinyZero):GitHub - Jiayi - Pan/TinyZero: Clean, minimal, accessible reproduction of DeepSeek R1 - Zero
[7] [demystify long CoT](https://github.com/eddycmu/demystify - long - cot):GitHub - eddycmu/demystify - long - cot
[8] deepscaleR:Notion – The all - in - one workspace for your notes, tasks, wikis, and databases.
[1] Bespoke-Stratos-17k:https://huggingface.co/datasets/bespokelabs/Bespoke-Stratos-17k
[2]Bespoke-Stratos-32B:https://huggingface.co/bespokelabs/Bespoke-Stratos-32B
[3]Bespoke-Stratos-7B:https://huggingface.co/bespokelabs/Bespoke-Stratos-7B
[4]BAAI/TACO:https://huggingface.co/datasets/BAAI/TACO
[5]codeparrot/apps:https://huggingface.co/datasets/codeparrot/apps
[6]deepmind/code_contests:https://huggingface.co/datasets/deepmind/code_contests
[7]MatrixStudio/Codeforces-Python-Submissions:https://huggingface.co/datasets/MatrixStudio/Codeforces-Python-Submissions
[8]AI-MO/NuminaMath-CoT:https://huggingface.co/datasets/AI-MO/NuminaMath-CoT
[9]camel-ai/chemistry:https://huggingface.co/datasets/camel-ai/chemistry
[10]camel-ai/biology:https://huggingface.co/datasets/camel-ai/biology
[11]camel-ai/physics:https://huggingface.co/datasets/camel-ai/physics
[12]INK-USC/riddle_sense:https://huggingface.co/datasets/INK-USC/riddle_sense

相关文章:

【LLM】R1复现项目(SimpleRL、OpenR1、LogitRL、TinyZero)持续更新

note &#xff08;1&#xff09;未来的工作需亟待解决&#xff1a; 支持大规模 RL 训练&#xff08;PPO、GRPO 等&#xff09;的开源基础框架用于稳定训练的 GRPO 训练超参的自动化调优RL 训练数据的配比&#xff08;难度、领域、任务等&#xff09;基于 Instruct 模型训练 R…...

Linux 内核网络设备驱动编程:私有协议支持

一、struct net_device的通用性与私有协议的使用 struct net_device是Linux内核中用于描述网络设备的核心数据结构,它不仅限于TCP/IP协议,还可以用于支持各种类型的网络协议,包括私有协议。其原因如下: 协议无关性:struct net_device的设计是通用的,它本身并不依赖于任何…...

20241130 RocketMQ本机安装与SpringBoot整合

目录 一、RocketMQ简介 ???1.1、核心概念 ???1.2、应用场景 ???1.3、架构设计 2、RocketMQ Server安装 3、RocketMQ可视化控制台安装与使用 4、SpringBoot整合RocketMQ实现消息发送和接收? ? ? ? ? 4.1、添加maven依赖 ???4.2、yaml配置 ???4.3、…...

FFmpeg进化论:从av_register_all手动注册到编译期自动加载的技术跃迁

介绍 音视频开发都知道 FFmpeg,因此对 av_register_all 这个 API 都很熟悉,但ffmpeg 4.0 版本开始就已经废弃了,是旧版本中用于全局初始化的重要接口。 基本功能 核心作用:av_register_all() 用于注册所有封装器(muxer)、解封装器(demuxer)和协议处理器(protocol),…...

Http升级为Https - 开发/测试服环境

1.应用场景 主要用于开发/测试服环境将http升级为https, 防止前端web(浏览器)出现Mixed Content报错; 2.学习/操作 1.文档阅读 deepseek 问答; 2.整理输出 报错信息: Mixed Content: The page at <URL> was loaded over HTTPS, but requested an insecure XMLHttpRequ…...

C语言预编译

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文一、预处理的作用与流程&#xf…...

算法刷题-字符串-151.反转单词

题目 给一串字符串&#xff0c;里面有若干单词&#xff0c;以空格界定单词的结束&#xff0c;翻转其中的单词 输入&#xff1a;s " hello world " 输出&#xff1a;“world hello” 需要注意的是&#xff0c;给定的字符串可能存在头空格、尾空格以及中间的空格数量…...

单片机裸机编程:状态机与其他高效编程框架

在单片机裸机编程中&#xff0c;状态机是一种非常强大的工具&#xff0c;能够有效管理复杂的逻辑和任务切换。除了状态机&#xff0c;还有其他几种编程模式可以在不使用 RTOS 的情况下实现高效的程序设计。以下是一些常见的方法&#xff1a; 1. 状态机编程 状态机通过定义系统…...

图表控件Aspose.Diagram入门教程:使用 Python 将 VSDX 转换为 PDF

将VSDX转换为PDF可让用户轻松共享图表。PDF 文件保留原始文档的布局和设计。它们广泛用于演示文稿、报告和文档。在这篇博文中&#xff0c;我们将探讨如何在 Python 中将 VSDX 转换为 PDF。 本文涵盖以下主题&#xff1a; Python VSDX 到 PDF 转换器库使用 Python 将 VSDX 转…...

DPVS-1:编译安装DPVS (ubuntu22.04)

操作系统 rootubuntu22:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy rootubuntu22:~# 前置软件准备 apt install git apt install meson apt install gcc ap…...

即将发布书籍 - Yocto项目实战教程:高效定制嵌入式Linux系统

以下这本书《Yocto项目实战教程&#xff1a;高效定制嵌入式Linux系统》即将发布&#xff0c;现在请哪位大佬出山写一个序或者推荐&#xff0c;有兴趣的大佬&#xff0c;请联系我&#xff01; Git仓库地址&#xff1a; https://github.com/jerrysundev/Yocto-Project-Book.git …...

Git 常用指令及其说明

配置相关 # 配置全局用户名 git config --global user.name "YourUsername"# 配置全局邮箱 git config --global user.email "your.emailexample.com"说明&#xff1a;这两条命令用于设置 Git 全局的用户名和邮箱&#xff0c;在提交代码时&#xff0c;这些…...

nginx代理后502

直接访问 ​https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions正常 使用nginx代理后访问出现502 server {listen 9999;server_name 172.21.3.78;location ^~ /compatible-mode {proxy_pass https://dashscope.aliyuncs.com;}location / {proxy_pass…...

大模型WebUI:Gradio全解12——LangChain原理及其agent构建Gradio(1)

大模型WebUI:Gradio全解12——LangChain原理及其agent构建Gradio(1) 前言本篇摘要12. LangChain原理及其agent构建Gradio12.1 LangChain概念及优势分析12.1.1 概念12.1.2 标准化组件接口1. 示例:聊天模型2. 示例:检索器12.1.3 编排组件12.1.4 便于部署12.1.5 可观测性和评…...

【Unity】鱼群效果模拟

鱼群效果模拟 文章目录 鱼群效果模拟Boid算法实现方式version1_CPUversion2_GPUversion3_Multilaterationversion4_Bitonic_Sorting &#xff08;GPU友好&#xff09;version5_Skinning &#xff08;TODO&#xff09; 细节项优化项参考链接 Boid算法 Boid算法是一种模拟群体行…...

PHP入门基础学习五(函数1)

函数 一、概念 1、什么是函数? 函数:封装一段用于完成特定功能的代码 当使用一个函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能 2、php中的函数 PHP 的真正威力源自于它的函数,PHP 中提供了超过 1000 个内建的函数。 php函数分为: 系统内部函数和自…...

微信小程序 - 页面跳转(wx.navigateTo、wx.redirectTo、wx.switchTab、wx.reLaunch)

API 跳转 1、wx.navigateTo &#xff08;1&#xff09;基本介绍 功能&#xff1a;保留当前页面&#xff0c;跳转到应用内的某个页面&#xff0c;使用该方法跳转后可以通过返回按钮返回到原页面 使用场景&#xff1a;适用于需要保留当前页面状态&#xff0c;后续还需返回的情…...

Typora的Github主题美化

[!note] Typora的Github主题进行一些自己喜欢的修改&#xff0c;主要包括&#xff1a;字体、代码块、表格样式 美化前&#xff1a; 美化后&#xff1a; 一、字体更换 之前便看上了「中文网字计划」的「朱雀仿宋」字体&#xff0c;于是一直想更换字体&#xff0c;奈何自己拖延症…...

2.3 变量

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 变量是用来存放某个值的数据&#xff0c;它可以表示一个数字、一个字符串、一个结构、一个类等。变量包含名称、类型和值。在代码中…...

Docker:Docker从入门到精通(一)- Docker简介

一、前言 通过本专栏的学习&#xff0c;我们将了解   1. 掌握Docker基础知识&#xff0c;能够理解Docker镜像与容器的概念   2. 完成Docker安装与启动   3. 掌握Docker镜像与容器相关命令   4. 掌握Tomcat Nginx 等软件的常用应用的安装   5. 掌握docker迁移与备份相…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中&#xff0c;理解API&#xff08;应用程序接口&#xff09;和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能&#xff0c;使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

加密通信 + 行为分析:运营商行业安全防御体系重构

在数字经济蓬勃发展的时代&#xff0c;运营商作为信息通信网络的核心枢纽&#xff0c;承载着海量用户数据与关键业务传输&#xff0c;其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级&#xff0c;传统安全防护体系逐渐暴露出局限性&a…...