Tiny BPE Trainer 介绍如今,从 GPT 到 RoBERTa,大多数现代 NLP 模型都依赖于使用字节对编码 (BPE) 的子词标记化。但是,如果您想用纯 C++ 训练自己的词汇表,该怎么办? 认识一下Tiny BPE Trainer——一款速度超快、仅包含头文件的 BPE 训练器,采用现代 C++ 17/20 编写,零依赖,完全支持UTF-8 编码,并兼容 HuggingFace 的输出(vocab.txt、merges.txt)。 为什么要添加另一个 BPE Trainer?因为现有的方案通常: 仅支持 Python,运行时依赖性很强(Rust、Protobuf 等) 不易嵌入到 C++ 应用程序 不注重速度、简...
现代文本分词器简介BERT、DistilBERT 和其他基于 Transformer 的架构等现代自然语言处理 (NLP) 模型高度依赖于有效的分词。但 C++ 开发者经常面临诸多限制,例如依赖项过多、Unicode 支持不佳,或与基于词汇的编码器缺乏兼容性。 正因如此,我创建了 现代文本分词器——一款速度超快、仅使用标头文件的 C++ 分词器,它支持 UTF-8 编码、零依赖,并且开箱即用,机器学习就绪。 它的独特之处? 零依赖 – 无需 Boost、无需 ICU、无需外部库。 UTF-8 安全 – 可正确处理多语言文本、表情符号和多字节字符。 仅使用标头文件 – 将其添加到您的项目中即可使用。 词汇编码 –...
踏上编程世界的旅程既令人兴奋又势不可挡。 有无数的编程语言可供选择,选择符合您的目标和愿望的正确语言至关重要。 在本文中,我们将探讨在选择您的第一种编程语言时要考虑的因素,并提供流行语言的代码示例以帮助说明它们之间的差异。 选择编程语言时要考虑的因素 职业目标:如果您打算从事软件开发工作,则必须研究您感兴趣的行业需要哪些编程语言。 学习曲线:有些语言的学习曲线比其他语言更陡峭。 对于初学者来说,从一种学习曲线平缓且易于理解的语言开始是有益的。 社区和支持:一个庞大、活跃的社区可以更轻松地找到常见问题的解决方案和学习最佳实践。 考虑具有大量文档和支持资源的语言。 平台兼容性:确保您选择的语言与您打算定位的平台兼容,例如网络、移动或桌面...
如果您正在使用 .NET 并且像我一样来自 C/C++ 背景,您会很快注意到数据类型是不同的。 这篇文章涵盖了从 C/C++ 到 .NET (C#) 的最常见数据类型,以方便您进行开发。当您搜索数据类型时,只需按 CTRL + F,浏览器将帮助您在此页面上找到它。 特别感谢 kbrryder @codeproject。 .NET/C# 列表的 C/C++ 数据类型:ATOM .NET = ushort C++ = typedef WORD ATOM; BOOL .NET = bool or int C++ = typedef int BOOL; BOOLEAN .NET = bool or byte C++ =...
很抱歉这个月到目前为止没有写任何有趣的东西,这是一个非常忙碌的月份。 今天看到一个问题 Stack Overflow 关于调试。用户试图让 Visual Studio 在调试模式下与他的应用程序一起运行,以查看它何时以及为何崩溃。 这不是一个解决方案,因为 Windows API 中有针对这些情况的函数。更简单地说,您可以让您的软件在崩溃时编写一个 Mini Dump,然后您可以在 Visual Studio(或您想要的任何调试器)中打开它并查看它崩溃的确切位置。 以下示例可用于 Windows 上的任何 .exe 或 .dll: 1#pragma once 2 3#include <Windows.h>4#include...
如果你在这里阅读这篇文章,这意味着你正在寻找一种方法来为你的软件转换你的 DOS 和/或 NT 路径。请放心,这就是您今天将在这里学习的内容! 问题与 Windows 路径 很清楚;这太令人困惑了。让我重复一遍,太混乱了。当您正在开发令人惊叹的软件并且需要转换 DOS 和 NT 路径时,这会成为一个问题。 在本文中,我将尽量让事情简短而有趣,所以让我们开始吧。 ntdll 中有一些未记录的函数可用于不同的转换。这些函数的列表以 Rtl* 开头,如下所示: RtlDosPathNameToNtPathName_U (所有窗户) RtlDosPathNameToNtPathName_U_WithStatus (所有窗户)...
运行时加密字符串今天我们将介绍运行时加密字符串的基础知识,为什么我们需要加密我们的字符串并学习如何创建自己的字符串。 在本文中,您将了解和学习: 什么是运行时加解密 为什么你需要加密你的字符串 查看任何人如何查看您的敏感数据 创建您自己的自定义加密 什么是运行时加解密这是指在程序(软件、应用程序)运行期间加密和/或解密的数据。数据可以是来自内存块、网络流量、字符串等的任何类型。 用于此目的的最常用方法之一是混淆(基本)。其他(高级)机制涉及编译代码的突变/虚拟化。 今天我们将重点介绍一种使用 [XOR 混淆] (https://en.wikipedia.org/wiki/XOR_cipher ) 的机制。 为什么要加密字符串?运...