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 ) 的機制。 為什麼要加密字符串?在...