JavaScript/ TypeScript 执行 LLMLingua-2 (实验)
利姆林瓜-2号,最初由 Python 开发并实施 微软,是一种小而强大的即时压缩方法.
- 高效:用BERT大小的模型压缩上下文提示.
- 准确:实现高精度,然后采用其他方法,同时需要较少的计算资源.
尔姆林瓜-2-js,端口为 时长,是LLMLingua-2的纯JavaScript/TypeScript执行,设计在网页浏览器和Node.js环境中运行.
- 业绩:在浏览器中可以做到一切. 如果您的环境支持WebGPU,您可以使用. 默认情况下不需要服务器侧处理.
- 正确性: 原始逻辑会尽可能准确地被移植到 TypeScript.
尝试在线演示( 不要求安装)
您可以在 GitHub Pages 上尝试 没有任何安装.
演示的源代码可见于 examples 目录。 您可以使用以下命令在本地运行 :
cd examples/react-vite-webgpu
yarn install
开始
执行工作取决于下列图书馆:
特别是 @huggingface/transformers 库利用各种计算优化实现高性能. 请咨询运行环境是否支持这些图书馆的最低要求.
安装
您可以通过下载库从 无 并导入到您的 JavaScript/ TypeScript 工程.
首先,安装依赖性 :
npm install @huggingface/transformers js-tiktoken
然后,安装库:
npm install @atjsh/llmlingua-2
运行时后端选择
传递明确 transformerJSConfig 到工厂。 这些便携
配置在所支持的运行时间中有利于可预测的输出 :
const nodeTransformerJSConfig = {
device: "cpu",
dtype: "fp32",
} as const;
const browserTransformerJSConfig = {
device: "wasm",
dtype: "fp32",
} as const;
硬件加速是选入的,应在每个目标平台测试:
| 运行时间 | device | dtype |
|---|---|---|
| 带有 DirectML 的 Windows 节点.js | "dml" | "fp32" |
| 带有 NVIDIA CUDA 的 Linux 节点.js | "cuda" | "fp32" |
| 兼容浏览器或 macOS 节点.js | "webgpu" | "fp32" |
库将配置传递给变形器.js而不检测 后端或用倒背重试. 用于 XLM- RoBERTa 型号, 并存储在其中 外部数据文件, 也可以通过 :
modelSpecificOptions: {
use_external_data_format: { "model.onnx": 1 },
}
模式选择
你可以根据自己的需要在模型中选择.
| 型号 | 大小 | 专业 | 计数 | 公共模式 |
|---|---|---|---|---|
| 小贝特 | 57.1甲基溴 | 非常小的,我们.., 快点 | 准确度较低 大于更大的模型 | 阿尔克萨斯州 |
| 移动电话 | 99.2 甲基溴 | 小点, 优化用于移动 | 中度精确度, 深度权衡 | 电话/电话/电话-移动电话-会议银行 |
| 贝特 | 710 甲基溴 | 快点, 较小 | 准确度较低 超过 XLM- Roberta | 阿尔科尔德/阿尔姆林瓜4j-bert-base-onnx |
| XLM-罗贝尔塔 | 2240 甲基溴 | 高准确度 | 慢点, 体积稍大 | atjsh/llmlingua-2-js-xlm-roberta-大型会议银行 |
学习更多 关于每个模型的性能(实际性能可能不同).
模型文件将默认自动下载.
API 参考
关于如何使用图书馆的更详细情况,请参见: API 参考文件。 。 。 .
测试
目前没有单位测试.
下列目录中部分提供了E2E测试:
src/e2eexamples/**
许可证
见 自由主义 详细情况.
贷项
该软件包括下列许可证下的其他软件:
- LLMLINGUA( 美国)https://github.com/microsoft/LLMLingua (英语)),版权 (c)微软公司. (原始逻辑与实施根据麻省理工学院许可证获得许可. 关于许可证,见: https://github.com/microsoft/LLMLingua/blob/main/LICENSE (中文(简体) )