windows下tokenizers-cpp编译
github地址
一、rust环境配置
参考
二、编译
1、修改cmakelists.txt,支持x86和64编译(tokenizers_c库,原始版本windows下只支持64位)
修改顶层CMakeLists.txt文件(77行),支持x86编译
elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")#set(TOKENIZERS_CPP_CARGO_TARGET x86_64-pc-windows-msvc)if(CMAKE_SIZEOF_VOID_P EQUAL 4)set(TOKENIZERS_CPP_CARGO_TARGET i686-pc-windows-msvc)message(STATUS "Targeting 32-bit architecture")elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)set(TOKENIZERS_CPP_CARGO_TARGET x86_64-pc-windows-msvc)message(STATUS "Targeting 64-bit architecture")else()message(FATAL_ERROR "Unsupported architecture")endif()
endif()
2、生成项目以及编译lib
debugcmake .. -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Debugcmake --build . --config DebugPS: vs2019 win32
releasecmake .. -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Releasecmake --build . --config Release
PS:请采用控制台编译,不然tokenizers_c.lib不可控,可能与预期编译debug/release不匹配
三、demo编写
1、依赖库
ws2_32.lib;Userenv.lib;Ntdll.lib;Bcrypt.lib;
2、模型下
模型下载地址
PS:目前测试的模型,输入的中文逗号,输出都会被转换为英文逗号,所以比较加密后再解密时,数据肯定不一致
模型一:有多余数据(固定256)
模型二:此模型可选,无多余数据
模型三:此模型加载时间2s多
模型四:谷歌模型
PS:支持的不友好,输入:你好啊,欢迎来到中国,Nice to meet you
输出有[UNK]标识,Nice无法识别,导致加解密出来数据不一致
模型五:此模型和模型四差不多,但没模型四的问题
3、demo效果