原创 跨語言調用神器SWIG介紹與使用入門

安裝 依賴 PCRE 庫 apt-get install libpcre2-dev 下載安裝 $ ./configure $ make $ make install 介紹 SWIG 是一個軟件開發工具,能夠簡化不同編程語言與 C 和 C

原创 xapian 搜索引擎介紹與使用入門

Xapian 是一個開源搜索引擎庫,使用 C++ 編寫,並提供綁定(bindings )以允許從多種編程語言使用。它是一個高度適應性的工具包,允許開發人員輕鬆地將高級索引和搜索功能添加到自己的應用程序中。Xapian 支持多種加權模型和豐富

原创 從Bitcask存儲模型談超輕量級KV系統設計與實現

Bitcask介紹 Bitcask是一種“基於日誌結構的哈希表”(A Log-Structured Hash Table for Fast Key/Value Data) Bitcask 最初作爲分佈式數據庫 Riak 的後端出現,Riak

原创 Rocksdb 離線生成sst文件並在線加載

rocksdb簡介 RocksDB是Facebook的一個實驗項目,目的是希望能開發一套能在服務器壓力下,真正發揮高速存儲硬件(特別是Flash存儲)性能的高效數據庫系統。這是一個C++庫,允許存儲任意長度二進制kv數據。支持原子讀寫操作。

原创 Hnswlib 介紹與入門使用

Hnswlib是一個強大的近鄰搜索(ANN)庫, 官方介紹 Header-only C++ HNSW implementation with python bindings, insertions and updates. 熱門的向量數據庫

原创 trafilatura 網頁解析原理分析

trafilatura 介紹 Trafilatura是一個Python包和命令行工具,用於收集網絡上的文本。其主要應用場景包括網絡爬蟲下載和網頁解析等。 今天我們不討論爬蟲和抓取,主要看他的數據解析是如何做的。 extract初體驗 fro

原创 使用代理中轉服務,解決selenium 使用短時效代理避免重啓

背景 selenium 配置代理需要在啓動的時候配置,如果代理失效或者不可用,切換需要重啓,浪費時間。 思路解決方案 可以使用搭建一個代理中轉服務,讓selenium連接固定的中轉服務,中轉服務選擇可用的代理。 代碼實現 代碼實現就簡單了,

原创 【開源】java版本BertTokenizer以及使用onnxruntime推理

python訓練的模型,轉換爲onnx模型後,用python代碼可以方便進行推理,但是java代碼如何實現呢? 首先ONNX 推理,可以使用onnxruntime <dependency> <groupId>com.microsof

原创 JAVA 和python 多網卡情況下獲取正確的IP地址

要獲取內網地址,可以嘗試連接到10.255.255.255:1。如果連接成功,獲取本地套接字的地址信息就是當前的內網IP。 python實現: import socket def extract_ip(): st = socket

原创 分佈式AI集羣服務器架構

ChatGPT的推出,人工智能正式進入大模型時代。要訓練一個chatgpt這樣的大模型,需要分佈式AI集羣的支持。 深度學習迎來大模型 Open AI的GPT-3模型,使用512張V100,需要訓練7個月。現在的大模型訓練,離不開分佈式

原创 AI集羣通信中的軟硬件介紹

計算機網絡通信中最重要兩個衡量指標主要是 帶寬 和 延遲。分佈式訓練中需要傳輸大量的網絡模型參數,網絡通信至關重要。 AI集羣通信實現方式 AI集羣是由多臺包含CPU、內存、GPU的服務器組成,需要考慮機器內通信和機器間通信。 機器內通信通

原创 [轉]Transformers使用

Transformers 是由 Hugging Face 開發的一個 NLP 包,支持加載目前絕大部分的預訓練模型。隨着 BERT、GPT 等大規模語言模型的興起,越來越多的公司和研究者採用 Transformers 庫來構建 NLP 應用

原创 基於golang開發一個wasm加解密模塊

爲保障數據安全,網頁上顯示的圖片,音頻等敏感信息,需要做加密,在網頁端調用wasm解密,然後渲染出來。 Golang原生支持編譯爲wasm,所以開發會比較便捷,選型時選擇golang。 整體思路: js請求文件buffer -> buff

原创 Java實現pdf轉html

引入pdf2dom <dependency> <groupId>net.sf.cssbox</groupId> <artifactId>pdf2dom</artifactId>

原创 hexo博客文章增加修改歷史change log

hexo是一款基於Nodejs的靜態博客生成器,我們內部用來做知識庫,項目託管在內部的gitlab,爲了提升大家的貢獻積極性,考慮在知識庫的頁面增加貢獻者說明 讀取日誌 知識庫的思想是多人協作,因爲已經用git記錄了,所以我們可以從git讀