LWN:使用Rust实现OpenPGP,这就是Sequoia项目!

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

关注了就能看到更多这么棒的文章哦~

OpenPGP in Rust: the Sequoia project

By John Coggeshall
September 11, 2020
原文来自:https://lwn.net/Articles/830902/
DeepL assisted translation

2018 年,三位 GnuPG 开发者开始着手开发 Sequoia,这是 OpenPGP 在 Rust 中的实现版本。OpenPGP 是一个数据加密的公开标准,通常用于确保电子邮件安全可信。GnuPG 是该标准的一个实现。目前,这个基于 GPLv2 license 的 Sequoia 项目正在向 1.0 版本迈进,只是还有一些问题需要解决。Sequoia 的创始人认为,尽管 GnuPG 是当时 OpenPGP 事实上的标准实现,但是还有许多需要改进的地方。他们希望通过使用一种有助于避免一些常见的内存 bug 的语言来重新实现这个 OpenPGP 规范,从而来解决这些问题。

虽然 GnuPG 是最流行的 OpenPGP 实现——尤其是针对 Linux 来说是这样。但还是有其他的实现的,包括 OpenKeychain、OpenPGP.js 和 RNP。多年来,OpenPGP 一直受到批评(如 2014 年的这篇博文https://blog.cryptographyengineering.com/2014/08/13/whats-matter-with-pgp/ ,以及 2019 年的另一篇博文https://latacora.micro.blog/2019/07/16/the-pgp-problem.html )。Sequoia 项目正在努力构建更现代化的 OpenPGP 工具,以解决许多抱怨。Sequoia 已经被其他几个项目采用了,包括 keys.openpgp.org、OpenPGP CA、koverto、Pijul 和 KIPA。

Sequoia 是由 Neal H. Walfield、Justus Winter 和 Kai Michaelis 发起的。他们每个人都在 GnuPG 上工作了大约两年。在 2018 年的一次演讲中(幻灯片 https://sequoia-pgp.org/talks/2018-08-introduction/sequoia-introduction-deltax.pdf ),Walfield 讨论了他们创建新项目的动机。在他看来,GnuPG 是 "hard to modify,即难以修改的 ",这主要是因为它几十年来的不断增长。Walfield 指出,GnuPG 中各组件之间的紧密耦合和缺乏单元测试是一些具体的问题。他举例指出,GnuPG 命令行工具和相应的应用库的功能并不相同,有些事情只能用命令行工具来完成。

正如 Walfield 在演讲中解释的那样,社区是 Sequoia 项目的重要组成部分。该项目得到了 p≡p(佩普)和 Wau Holland 基金会的资金支持,"所有的开发都是公开进行的"。在代码编写之前,项目创始人就与 OpenPGP 社区的知名成员以及最终用户会面,讨论项目的计划,并确保他们的方法是合理的。项目目前的状态、Git 仓库和问题跟踪系统都可以使用。仓库日志显示,该项目大约有 30 个贡献者,自从宣布 2020 年 4 月即将发布 1.0 版本以来,已经发布了三个版本。最新的版本 0.19.0 是在 2020 年 8 月发布的,最显著的改进是加入了 Windows Cryptography API: Next Generation(CNG)作为后端,取代了在非 POSIX 环境下存在问题的 Nettle。

因为它是用 Rust 编写的,所以 Sequoia 受益于该语言提供的内存安全的优点。从仓库里的代码可以看出,为了避免功能回退以及提高质量,开发者们在编写单元测试方面做出了很大的努力。与 GnuPG 不同,GnuPG 中命令行的 gpg 工具比 library 功能更强大;而 Sequoia 首先是一个 OpenPGP 库,它的所有功能都可以通过所暴露出来的 API 获得。该项目计划提供两层 API,一个是对 OpenPGP 规范的底层、无意见的实现,另一个则是具有合理默认值的高级 API,以使用户更容易完成签名和签名验证等常见任务。Walfield 的演讲中明确指出,虽然该项目在低级 API 实现上努力做到不偏不倚,但它确实避免了规范中过时的部分,比如 MD5 哈希的使用。

Sequoia 的目标是 "modern platform,即现代平台",包括 Linux、Windows、macOS、Android 和 iOS。在可能的情况下,这包括使用现有的加密工具。项目的目标之一就是能与各个平台上的加密服务紧密集成。例如,Sequoia 计划在有 Secure Enclave 协处理器的 iOS 设备上尽量利用 Secure Enclave。它还提供了一个外部函数接口(FFI,foreign function interface),用于将 Sequoia 与其他语言编写的程序能集成起来。目前,Sequoia 提供了 C 和 Python 的 FFI 绑定。读者们应该注意,使用这些绑定的程序缺乏内存安全保护,因此必须遵循 Sequoia 项目的规则才能确保正确使用。

Walfield 在 Sequoia 开发邮件列表上回复了我的问题,并提供了关于项目当前状态和即将发布的 1.0 版本的信息。

首先,对于我们即将发布的 1.0 版本(随时都可以发布,虽然 API 和功能集已经稳定了好几个月,我们现在只是在对各个地方增加文档,以及仔细 review 这些 API 和代码),我们先只打算发布低级 API,即 sequoia-openpgp crate 及其依赖的内容。

这意味着读者们暂时还不能指望 Sequoia 成为 GnuPG 等工具的最终用户替代品。第一个主要版本将专注于为开发者们提供一个 library。要想让该项目可以供最终用户使用的话,它至少需要一个类似 GnuPG 中 gpg 的命令。对于 Sequoia 来说,这就是 1.0 版本中没能包含的 sq 命令行工具。Walfield 将 sq 描述为 "还缺少许多功能",并解释说在公开发布之前 "我们还很可能需要改变它的交互界面"。

sq 工具并不是 1.0 版本中所唯一缺失的东西。密钥存储服务也仍在开发过程中。根据 Walfield 的说法,这是 1.0 版本发布后项目的最高优先级任务之一。

与其他 OpenPGP 实现相比,密钥存储是 Sequoia 有独特设计的地方之一。为了增加安全性,该项目计划在处理公钥和私钥的服务之间使用进程隔离。使用 Cap'n Proto 来进行进程间通信。Walfield 在演讲中指出,进程隔离并不是在任何情况下都可以实现的,比如在 iOS 环境中就不能做到。当无法实现进程隔离时,Sequoia 计划使用共享的 SQLite 数据库在两个服务之间进行通信,这个过程被 Walfield 描述为 "colocation"。

概念来说上,Sequoia 对其 public keyring 采取了一种基于身份(identity-based)的方法,keyring 被设计成更像是一个按 domain 分类的地址簿,而不是一个 PGP keyring。密钥被设计成根据给用户分配的 Petname 来进行存储和访问,并能够关联任意结构化数据,这些数据将在信任模型(trust model)的实现中发挥作用。Walfield 还认为,这种方法更符合用户对密钥的实际思考方式:是与名称相关联,而不是抽象的 ID 集合。此外,所有的密钥在 Sequoia 中都被分配了一个 "realm, 领域",表示密钥的预期目的。目前的 realm 包括 "contacts, 联系人 "和 "software update key, 软件更新密钥 "等。完全开发完成后,Sequoia 的 keyring 服务将自动根据远程服务器(类似于 parcimonie)来更新 public key,确保及时发现新的子密钥(sub-keys)和密钥撤销等变化。API 文档显示,除了更常见的 TLS 加密方法外,还可以使用 Tor 等匿名服务来实现。

private keyring 服务则计划提供一个可选的单密码解决方案来解锁本地密钥。该库将使用 Walfield 所描述的 "类似智能卡 "的 API 提供对 private keyring 的访问。目前 Sequoia 并不支持智能卡,但根据这个 ticket(https://gitlab.com/sequoia-pgp/sequoia/-/issues/114 ),社区希望未来能看到这个功能。Sequoia 的 private keyring service 在编写时将会考虑到 forward secrecy,这是通过使用 OpenPGP 规范来支持 "at rest"(加密存储)和 "in motion"(加密传输)的数据之间的区别,这在许多其他的 OpenPGP 实现中是没有的。经常更换 "in motion"的密钥是一种比较稳妥的安全实践,但这需要以一种仍然允许已经归档的加密数据仍旧能够正常解密出来的方式来实现。Winter 的演讲(幻灯片https://sequoia-pgp.org/talks/2018-08-moving-forward/moving-forward.pdf )比较了该项目的 forward secrecy 功能和其他 OpenPGP 中的实现。

Wrapping up

有兴趣参与该项目的人应该知道,它要求贡献者将自己的版权转让给 p≡p 基金会。该项目进一步指出,代码最终可能会以多种许可证的形式发布,但 "所有软件也都以 GNU 许可证作为自由软件发布,没有例外"。

总的来说,很高兴看到有一个项目专注于让 OpenPGP 成为一种更容易使用的技术,而且看起来这个项目自近三年前开始以来已经取得了稳步的进展。项目的文档也为在应用程序中使用这个 library 提供了一个合适的上手步骤。尽管如此,Sequoia 在成为一个值得信赖的加密工具之前还有一段路要走。首先,代码仍然需要接受 audit。该项目的状态页面表示,它 "还没有被审计(audited),但只要我们发布了 Sequoia 核心 crate,就会有第三方来 audit。" 读者们可能会有兴趣查看项目的贡献者页面,该页面提供了他们的邮件列表和 IRC 频道的详细信息。正如 Walfield 所说,Sequoia1.0 版本何时落地还没有时间表,但听起来确实很快了。不过,OpenPGP 的终端用户还需要再等一段时间,才能让 Sequoia 成为一个切实可行的替代品。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

OpenPGP-Card:OpenPGP 智能卡 2.0 版在 java 卡上的开源实现 OpenPGP卡 OpenPGP 智能卡 2.0 版在 Java 卡上的开源实现。 卡要求 Java 卡版本 2.2.2(2.2.1 可能有效,但未经测试) 2048 位 RSA 密钥支持 全球平台2.1.1或以上使用加载脚本。 该小程序是在 JCOP 2.4.1 卡 (NXP J2A080) 上开发和测试的。 简要说明 确保读卡器工作正常。 最简单的方法是使用安装 CAP 文件 更难的方法是使用 GlobalPlatform 工具 从安装 GlobalPlatform 和 gppcscconnectionplugin 库 从安装 GPShell 在卡上加载小程序 用于在卡上加载小程序的实际参数取决于卡制造商、版本和状态。 如果使用带有测试密钥的 JCOP 2.4.1 卡,则可以使用“installJCOP41GPG.gpshell”脚本: gpshell installJCO 立即下载

相关推荐

sigilance-cardedit:Android应用程序,用于在启用NFC的OpenPGP智能卡上编辑数据

SIGILANCE卡编辑 这是一个用于编辑启用NFC的OpenPGP智能卡上的数据的小型实用程序。 启动应用程序时,系统会提示您点击设备背面的支持NFC的智能卡。 完成后,您将看到卡上所有数据的清单。 点击卡后,可以将其取出并放在一旁; 该应用程序可用于交易,当您需要再次点击该卡时,系统会提示您。 在可编辑的数据对象旁边有一个编辑按钮,但是默认情况下处于禁用状态。 要启用编辑模式,请点击“操作”菜单,然后点击“启用编辑模式”。 您将必须输入管理员PIN,默认为12345678。输入PIN后,系统将提示您再次点击卡。 如果PIN码有效,则编辑按钮将变为启用状态。 如果不是,则必须再次点击“启用编辑模式”,然后尝试使用其他PIN。 编辑数据对象后,将提示您再次点击卡。 此事务将重新验证PIN,编辑数据对象并重新获取所有数据对象。 轻按卡片后,您可以使用操作菜单中的“更改用户PIN”和“

推荐开源项目:GoKey——安全智能卡实现

推荐开源项目:GoKey——安全智能卡实现 作者:Andrea Barisani 1、项目介绍 GoKey是一款由纯Go语言编写的USB智能卡应用,它支持OpenPGP 3.4和FIDO U2F标准。这款应用程序旨在在诸如USB armory Mk II等ARM裸机硬件上运行,与TamaGo框架配合使用,可在Linux或macOS主机上提供SSH管理控制台功能。 2、项目技术分析 GoKey的安...

gitblog_00077的博客 620

sequoia-rpms:用于Fedora的Sequoia PGP正在进行的RPM软件包

用于Fedora的Sequoia PGP正在进行的RPM软件包 该存储库包含RPM规范文件和用于板条箱的补丁程序,用于的扩展名,以及尚未从Fedora官方存储库中获得的所有依赖项。 包裹审查票 包裹 票证链接 防锈帆布 防锈读卡器 不适用 防锈 不适用 防锈功能 不适用 锈-capnp-rpc 不适用 rust-configparser 不适用 锈动态克隆 不适用 锈菌 不适用 生锈易碎的流迭代器 不适用 锈-哈希链接 不适用 锈-lalrpop 不适用 rust-lalrpop-util 不适用 锈记忆 不适用 锈荨麻 不适用 锈荨麻系统 不适用 锈-rusqlite 不适用 锈红杉自动加密 不适用 锈红杉-ipc 不适用 Rust红杉钥匙圈 不适用 锈红杉网 不适用 锈红杉章鱼-librnp 不适用 锈病后遗症 不适用 锈红杉 不适用 锈红杉平方 不适用 锈红杉sqv

openpgp加密工具_适用于Linux,Windows的OpenPGP邮件加密和相关工具

openpgp加密工具OpenPGP is a email encryption standard used by a lot of people. This standard is defined by OpenPGP Working Group of the Internet Engineering Task Force (IETF). The standard is proposed wit...

cunjiu9486的博客 2250

johnnycanencrypt:用Rust编写的OpenPGP的Python模块

约翰尼可以加密 Johnnycanencrypt aka jce是用Rust编写的Python模块,用于执行基本的加密和解密操作。 它为实际的OpenPGP操作使用了惊人的库。 注意-在当前状态下,这是非常实验性的代码,请不要在生产中使用它。 如何建造? 首先为您的用户安装。 在Fedora中建立依赖关系 sudo dnf install nettle clang clang-devel nettle-devel python3-devel pcsc-lite-devel 在Debian Buster中建立依赖关系 sudo apt install -y python3-dev libnettle6 nettle-dev libhogweed4 python3-pip python3-venv clang libpcsclite-dev python3 -m venv .ven

Java-Card-OpenPGP-Applet:OpenPGP是用于签名和加密的智能卡/ java卡标准。-开源

该项目实现了OpenPGP卡功能。 OpenPGP是用于签名和加密的开放标准。 它通过PKCS#11之类的通用接口,使用存储在智能卡(例如)上的私钥来启用RSA或ECC签名/加密操作。 要下载有关该项目或讨论的所有文件,您可以访问:

openpnp - 增加散料飞达

使用openpnp 2.0, 增加一个散料飞达.

博客标题不能为空 2935

PLC1200使用CB1241RS485通讯模块做从站进行Modbus Rtu通信

添加新设备(PLC)->设备和网络管理->点击PLC->看到硬件目录选择通信板->点到点->CB1241(RS485)->看到6ES7241-1CH30-1XB0选择添加,如图。指向Modbus保持寄存器数据块的指针 我这里指向了自定义的DB块数据中一个INT数组。在通信->通信处理模块->MODBUS(选择不带RTU的通信指令块)注意:接线时,TRA接485调试模块的B- TRB接调试模块的A+组态后的硬件标识符 270 对应自己组态后自动生成的。1:事务完成,且无任何错误。波特率对应自己使用的。

swmyaopeng的博客 2万+

LWN:在Fedora中打包Rust应用!

关注了就能看到更多这么棒的文章哦~Packaging Rust for FedoraBy Jonathan CorbetOctober 28, 2022DeepL assisted translationhttps://lwn.net/Articles/912202/Linux 发行版设计的时候,当时的通用原则是用 C 语言来写程序,因此人们所关心的大多数软件都是用 C 语言编写的。发行版也就自然...

Linux News搬运工 435

ubuntu安装FSL

1.下载fslinstaller.py 官网下载地址:https://fsl.fmrib.ox.ac.uk/fsldownloads_registration 或者去我的百度网盘取: 链接:https://pan.baidu.com/s/1d5eHm48oamFdYdKm84nifw 提取码:6ff9 2.将base环境改成python2.0版本 本来想在服务器安装,服务器没有sudo权限,网上很多教程都装不了,于是就自己安装虚拟机再装了一个ubuntu,然后安装了python2环境,再开始装fsl,fsl

qq_36421001的博客 4098

MQL5教程 01 MT5有关EA的操作、MetaEditor 工具栏主要功能

MQL5教程 01 MT5有关EA的操作、MetaEditor 工具栏主要功能

weixin_42830015的博客 3982

Lightning Network Daemon实战:深度解析lnd架构与线性费用函数模型

在比特币扩容方案中,闪电网络无疑是技术最成熟、应用最广泛的二层解决方案。而Lightning Network Daemon(lnd)作为闪电网络的核心实现之一,不仅提供了完整的节点功能,更在费用模型、路由算法和安全性方面有着独到的技术设计。本文将带你深入lnd的技术核心,从架构设计到费用模型,为你揭示这个闪电网络守护进程的精妙之处。 ## 为什么闪电网络需要lnd这样的守护进程? 传统比特币交

gitblog_00063的博客 558

野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库)

以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。

XUEXIDEXIAOhai的博客 4553

网络安全实验---PGP 实现邮件加密和签名

文章目录一、实验目的:二、实验环境:三、实验内容:1.PGPDesk安装2.实验环节:四.PGP加密原理及过程五.文档软件分享: 一、实验目的: 1、了解加密工具PGP 的原理 2、熟悉PGP 简单配置方法 二、实验环境: 一台windows10和一台windows7 都安装了PGPDesk 三、实验内容: 1.PGPDesk安装 在windows10和windows7中安装PGPDesk 选择适应的版本安装,这里选择的是64位的 next 点击重启 之后跳出这个页面 这里随便输入一下

wr456wr的博客 1万+

STM32CubeIDE中文注释变乱码终极解决方案:3步设置永久解决锟斤拷问题!

你是否在STM32CubeIDE中遇到过这样的崩溃场景?——精心编写的中文注释在重新生成代码后变成“锟斤拷”乱码,不仅影响代码可读性,反复修改更是浪费大量时间!作为STM32开发者,我曾被这个问题困扰许久,试过修改软件设置、工程编码却始终治标不治本。直到发现这个基于Java环境变量的终极解决方案,才彻底解决了中文乱码难题。

smart_boy__的博客 2955

从零构建XVC协议栈:FPGA+W5300的跨界调试架构实战

本文详细介绍了如何从零构建XVC协议栈,通过FPGA与W5300以太网控制器的创新组合实现跨界调试架构。重点解析了JTAG时序逆向、TCP/IP协议栈集成与XVC协议实现,提供了硬件设计优化和性能加速技术,为嵌入式开发者和FPGA工程师提供实用的远程调试解决方案。

raspberrypi5的博客 247

pico-openpgp:将Raspberry Pico或ESP32变为OpenPGP智能卡

pico-openpgp:将Raspberry Pico或ESP32变为OpenPGP智能卡 项目介绍 pico-openpgp是一个开源项目,其目标是把Raspberry Pico或ESP32微控制器转变为一个集成了OpenPGP应用let的智能卡。通过该项目,Pico可以作为读卡器使用,内部嵌入了一个OpenPGP卡,类似于USB卡。 OpenPGP卡用于管理PGP密钥和执行加密操作,如密钥对...

gitblog_00440的博客 1144

快手商业化风控内容审核场景下的大模型早期探索与应用

在处理大量的自动语音识别(ASR)输出时,面临的主要挑战之一是文本的冗长和格式混乱,这严重影响了审核人员的阅读效率。为了解决这一问题,我们利用大模型的理解能力对文本进行智能总结,可以显著优化文本内容,使其更加清晰并且具有可读性。该方式极大地提高了审核过程的效率,审核人员可以更快地处理信息,减少了处理时间和劳动强度。

kuaishoutech的博客 2737

开源项目:LedgerHQ的OpenPGP Card应用指南

开源项目:LedgerHQ的OpenPGP Card应用指南 1. 项目目录结构及介绍 本指南基于GitHub上的开源项目 LedgerHQ/openpgp-card-app,该项目是实现OpenPGP卡功能的核心应用程序。以下是项目的主要目录结构及其简要说明: src: 此目录包含了应用的核心源代码,分为不同的子目录以组织相关功能模块。 app: 包含了OpenPGP卡应用的具体实现代码...

gitblog_00128的博客 483

手把手教你学simulink(36.1)--ACAC变换器场景示例:基于 Simulink 的矩阵变换器(Matrix Converter)

矩阵变换器(Matrix Converter, MC)是一种直接将交流电(AC)转换为不同频率和幅值的交流电的电力电子设备。与传统的基于直流环节的变频器不同,矩阵变换器不需要中间的直流环节,而是通过双向开关直接在输入和输出之间进行能量传递。这种结构使得矩阵变换器具有更高的效率、更小的体积和更好的动态响应。在本项目中,我们将使用 MATLAB/Simulink 来建模和仿真一个矩阵变换器,并分析其性能。Simulink 是一个强大的仿真工具,特别适合用于电力电子系统的建模和仿真。

MHD0815的博客 1065

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 395

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 231

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 430

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 205

微调数据集构建:清洗、标注、格式转换完整流程

摘要解决微调数据直接抓取导致的噪声污染、模式崩溃与Token错位问题。适用于需为大模型SFT阶段构建高质量训练集的数据与算法工程师。读完可获得包含启发式清洗、MinHash去重及ChatML格式对齐的完整可运行数据流水线。关键词数据清洗、MinHash去重、数据标注、ChatML、SFT数据集、数据配比背景与问题大模型微调效果的上限由数据质量决定,直接使用未经处理的原始语料极易引发模型复读、幻觉与指令遵循能力退化。

2402_85729970的博客 487

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159
上一篇: LWN:疫情期间还需要当面签名?
下一篇: LWN:5.9合并窗口,第一部分!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值