https://bellard.org/
https://bellard.org/ts_server/ts_zip.html
ts_zip: Text Compression using Large Language Models
用大型语言模型进行文本压缩
ts_server软件提供的ts_zip工具可以使用大型语言模型对文本文件进行压缩(并希望进行解压缩)。与其他压缩工具相比,压缩比明显更高。当然,也存在一些注意事项:
与NNCP不同,解压时必须有语言模型可用。
必须使用GPU以获得合理的速度。根据模型大小,速度在几kB/s到一百kB/s之间变化。
必须在压缩和解压缩时使用完全相同的GPU型号和程序版本。
模型是冻结的,因此仅适用于模型已经见过的语言的文本文件。
https://bellard.org/ts_server/
https://bellard.org/ts_server/ts_server.html (说明文档, 有安装使用说明,但需要gpu)
TextSynth Server是一个Web服务器,提供对大型语言模型的REST API。这些模型可以用于文本完成、问答、分类、聊天、翻译和图像生成等多种用途。
News
2024-01-20: 添加了Mixtral模型支持。新增基于Whisper的快速语音转文字功能。
2023-10-21: Windows版本新增CUDA支持,增加了Mistral模型支持。支持推测性抽样,以及BNF语法和JSON模式抽样。
2023-08-07: GPU版本和模型转换工具现在免费提供。新增ts_zip实用程序,可使用大型语言模型高效压缩文本文件。
2023-07-21: 支持MPT和Llama 2模型。
2023-06-10: 新增ts_chat实用程序,可与语言模型聊天。支持Falcon和RedPajama-INCITE模型。
2023-03-26: 添加了NLLB200和flan UL2模型。ts_server现在提供HTML GUI。
简介
ts_server是一个Web服务器,提供对大型语言模型的REST API。它可以用于文本完成、问答、分类、聊天、翻译、图像生成等多种用途。
具有以下特点:
一切都包含在单个二进制文件中。几乎没有外部依赖项(无需Python),因此安装非常简便。
支持许多Transformer变种(GPT-J、GPT-NeoX、GPT-Neo、OPT、Fairseq GPT、M2M100、CodeGen、GPT2、T5、RWKV、LLAMA、Falcon、MPT、Llama 2、Mistral、Mixtral、Whisper)和Stable Diffusion。
集成REST JSON API,用于文本完成、翻译、图像生成和音频转录。它被textsynth.com使用。
集成HTML GUI用于测试。
在CPU和GPU上进行小批量和大批量操作时具有非常高的性能。支持动态批处理以处理大量同时请求。
高效的自定义8、4和3位量化。我们的量化模型经过全面评估,确保在多个标准任务上表现良好。
较大模型在低成本GPU上(例如RTX 3090、RTX A6000)上表现最佳,这要归功于高效的量化。
支持推测性抽样以实现更快的推断。
支持基于语法的抽样,以根据BNF语法或JSON模式限制模型输出。
使用LibNC库进行简单的张量操作,使用C语言。
提供了简单的命令行工具(ts_test、ts_sd、ts_chat、ts_zip),用于测试各种模型。
免费版本以二进制代码形式发布,仅供非商业用途。与商业版本相比,它具有一些限制。请联系[email protected]获取确切的条款。
Download
Linux version ts_server_free-2024-01-20.tar.gz (Changelog).
Windows version ts_server_free-2024-01-20-win64.zip (Changelog).
列举了各种大模型数据,语言模型、chat模型、text-to-image模型 …
https://bellard.org/nncp/
NNCP是一个实验,旨在使用神经网络构建一个实用的无损数据压缩器。最新版本使用了Transformer模型。
论文nncp_v2.1.pdf和nncp.pdf描述了NNCP先前版本的算法和结果。
https://bellard.org/nncp/nncp_v2.1.pdf
https://bellard.org/nncp/nncp.pdf
NNCP的当前版本是用C实现的,并使用LibNC以获得比PyTorch更好的性能。
https://bellard.org/libnc
https://bellard.org/quickjs/
QuickJS是一个小型且可嵌入的JavaScript引擎。它支持ES2023规范,包括模块、异步生成器、代理和BigInt。
它还可选择支持数学扩展,如大十进制浮点数(BigDecimal)、大二进制浮点数(BigFloat)和运算符重载。
主要特点:
小巧且易于嵌入:只需几个C文件,没有外部依赖,对于一个简单的hello world程序,x86代码为210 KiB。
解释器快速启动,启动时间非常短:在台式PC的单个核心上,可以在不到2分钟内运行ECMAScript测试套件的76000个测试。运行时实例的完整生命周期在不到300微秒内完成。
几乎完整支持ES2023,包括模块、异步生成器和完整的附录B支持(遗留Web兼容性)。
在选择ES2023功能时,通过几乎100%的ECMAScript测试套件测试。Test262报告提供了摘要。
可以将JavaScript源代码编译成没有外部依赖的可执行文件。
使用引用计数进行垃圾回收(以减少内存使用并具有确定性行为),并具有循环移除功能。
数学扩展:BigDecimal、BigFloat、运算符重载、bigint模式、math模式。
带有JavaScript实现的命令行解释器的小型内置标准库,包含C库包装。
在线demo:http://numcalc.com/
文档:https://bellard.org/quickjs/quickjs.html
https://bellard.org/quickjs/quickjs.pdf
https://textsynth.com/
使用 GPT-J 6B 和 GPT-NeoX 20B 语言模型的在线文本完成。
TextSynth通过REST API和一个测试平台提供对大型语言或文本到图像模型的访问,如Mistral、Mixtral、Llama2、Stable Diffusion、Whisper等。这些模型可用于文本补全、问答、分类、聊天、翻译、图像生成、语音转文本等应用。
TextSynth采用定制的推理代码,以在标准GPU和CPU上实现更快的推理速度(因此降低成本)。该网站成立于2020年,是最早提供访问GPT-2语言模型的服务之一。
基本服务是免费的,但受到速率限制。希望无限制使用的用户可以支付每个请求的小额费用(请参阅我们的定价)。如果您希望获得定制支持,请与我们联系:contact at textsynth dot com。
https://bellard.org/ioccc_lena/
该项目的目标是编写一个非常小的C程序,生成一个非平凡的RGB图像。它赢得了2018年混淆C代码大赛的“最通货膨胀”奖项。以下是相应的文件。
这个微小的C程序使用便携式像素图文件格式(PPM)将一个128x128的RGB图像文件输出到标准输出。输出如下所示:
它包含了著名的“Lena”图像,该图像在许多图像压缩测试中被使用。
未压缩的图像比程序的源代码大12倍,其中包括图像数据和完整的解码器。实际的图像数据长度为1220字节,压缩比为40。使用类似JPEG的算法不足以达到这种压缩水平(Lena图像几乎无法辨认)。因此,该算法基于图像压缩的最新进展,包括以下特性:
可变块大小的DCT变换(4x4、8x8、16x16和32x32)
DC和方向预测
算术编码
YCgCo颜色空间。
图像数据被编码为一个C字符串,其中包含一些技巧,以最好地利用IOCCC大小约束。标识符被缩短为单个字母以节省空间。由于算法本身已经具有相当的复杂性,因此不需要特定的混淆。
对程序内部工作原理感兴趣的人可以阅读Andrew Kensler的《微型和模糊图像解码器之旅》。
DCT变换基于整数系数以避免舍入误差。然而,在IOCCC条目中,我没有足够的空间来预先计算它们,因此每次都用浮点表达式计算,这解释了解码速度的大部分慢。在László Papp和Alex Rhatushnyak的评论中,我更新了程序以预先计算逆DCT系数:prog.c。结果是更快的解码,同时仍然符合IOCCC的大小约束。与原始的IOCCC条目一样,它可以在Linux下使用以下命令进行编译和运行:
gcc -O2 prog.c -o prog -lm
./prog > lena.ppm
这里是相应的去混淆版本:ld.c, img.h。
https://bellard.org/libbf/
http://numcalc.com/
LibBF是一个小型库,用于处理任意精度浮点数。它的编译大小约为90 KB的x86代码,不依赖其他库。它并不是最快的库,也不是最小的,但它试图在使用渐近最优算法的同时保持简单。基本算术运算具有近似线性的运行时间。
TinyPI示例使用Chudnovsky公式计算圆周率的数十亿位。
特点:
在IEEE 754语义中使用基于2的任意精度浮点数(包括次正常数、无穷大和NaN)。
所有操作都使用5个IEEE 754舍入模式进行精确舍入(最接近偶数或远离零的最近舍入,舍入到零,-/+无穷大)。当需要更低或确定性的运行时间时,支持额外的非确定性忠实舍入模式。
无状态API(每个函数以舍入模式、尾数和指数精度(以位为单位)作为输入,并返回IEEE状态标志)。
基本算术运算(加法、减法、乘法、除法、平方根)具有近似线性的运行时间。
使用SIMD优化的数论变换进行乘法。
在任何介于2和36之间的基数中进行的浮点输入和输出都是精确的,具有近似线性的运行时间。浮点输出可以选择获取所需精度的最小位数。
支持超越函数(exp、log、pow、sin、cos、tan、asin、acos、atan、atan2)。
通过使用特殊的“无限”精度,支持对任意大整数的操作。实现了带余数的整数除法和逻辑操作(假设使用二补数二进制表示)。
在基于IEEE 754 2008语义的10进制中具有任意精度的浮点数,但尾数始终被规范化。基本算术运算、输出和输入都支持二次运行时间。
易于嵌入:只需复制几个C文件,内存分配器可以重新定义,测试内存分配失败。
MIT许可证。
https://bellard.org/tinyemu/
https://bellard.org/tinyemu/readme.txt
TinyEMU是RISC-V和x86体系结构的系统模拟器。其目的是在保持完整性的同时保持小巧简单。
主要特点:
支持RV128IMAFDQC基本ISA(用户级ISA版本2.2,特权体系结构版本1.10)的RISC-V系统模拟器,包括:
32/64/128位整数寄存器
32/64/128位浮点指令(使用SoftFP库)
压缩指令
动态XLEN更改
基于KVM的x86系统模拟器
支持VirtIO控制台、网络、块设备、输入和9P文件系统
使用SDL的图形显示
JSON配置文件
远程HTTP块设备和文件系统
代码量小,易于修改,外部依赖性少
能够运行Linux和Windows 2000的Javascript版本。