llama-tokenizer-js:为LLaMA模型打造的高效JavaScript tokenizer

RayRay
llama-tokenizer-jsJavaScriptLLaMAnpmtokenizerGithub开源项目

llama-tokenizer-js

llama-tokenizer-js简介

llama-tokenizer-js是一个专为LLaMA(Large Language Model Meta AI)语言模型设计的JavaScript tokenizer。它的出现填补了Web应用中LLaMA模型token计数的空白,为开发者提供了一个高效、准确的客户端tokenizer解决方案。

llama-tokenizer-js demo

主要特性

  1. 易于使用:零依赖,代码和数据被打包into到一个单独的文件中。
  2. 广泛兼容:支持大多数基于LLaMA的模型,包括LLaMA 1和LLaMA 2。
  3. 高效运行:采用高效的BPE(Byte Pair Encoding)实现,确保快速的token处理。
  4. 优化的包大小:在压缩前仅670KiB,经过高效的二进制格式压缩和base64编码处理。
  5. 客户端运行:可在浏览器中运行,无需服务器支持。
  6. TypeScript支持:提供类型定义,方便TypeScript项目使用。

安装与使用

安装

推荐通过npm安装并作为ES6模块导入:

npm install llama-tokenizer-js

基本使用

安装完成后,可以通过以下方式在代码中使用:

import llamaTokenizer from 'llama-tokenizer-js' // 编码 const encoded = llamaTokenizer.encode("Hello world!") console.log(encoded) // 输出: [1, 15043, 3186, 29991] // 解码 const decoded = llamaTokenizer.decode([1, 15043, 3186, 29991]) console.log(decoded) // 输出: 'Hello world!'

在浏览器中使用

对于需要在浏览器中直接使用的场景,可以通过<script>标签加载:

<script type="module" src="https://belladoreai.github.io/llama-tokenizer-js/llama-tokenizer.js"></script>

与其他tokenizer的比较

llama-tokenizer-js的出现解决了Web应用中LLaMA模型token计数的难题。在此之前,开发者通常面临以下选择:

  1. 使用不兼容的tokenizer:许多Web应用使用OpenAI的tokenizer(如tiktoken和gpt-tokenizer),但这些与LLaMA不兼容,可能导致高达20%的token计数差异。

  2. 服务器端token计数:一些应用通过网络调用运行Hugging Face transformers tokenizer的Python应用。这种方法存在明显的延迟问题,特别是在需要多次调用以适应上下文限制时。

  3. 其他LLaMA tokenizer:自llama-tokenizer-js发布以来,也出现了其他替代方案,如transformers.js,它通过集成llama-tokenizer-js来提供LLaMA tokenizer功能。

llama-tokenizer-js的优势

  1. 客户端高效性:在浏览器中进行token计数仅需约1ms,远快于服务器端方案。

  2. 准确性:专为LLaMA模型设计,确保token计数的准确性。

  3. 低延迟:避免了网络请求带来的延迟,特别适合需要反复调整prompt以适应上下文限制的场景。

  4. 易于集成:作为纯JavaScript库,可以轻松集成到现有的Web项目中。

兼容性与适用范围

llama-tokenizer-js使用SentencePiece Byte-Pair Encoding tokenizer,与Facebook在2023年3月(LLaMA)和7月(LLaMA2)发布的模型权重训练的所有LLaMA模型兼容。

LLaMA Model

兼容的模型示例包括:

  • llama2-13b-4bit-gptq
  • wizard-vicuna-13b-uncensored-gptq
  • manticore-7b-ggml

需要注意的是,从头训练而不是基于Facebook发布的检查点训练的LLaMA模型(如OpenLLaMA)与此tokenizer不兼容。

自定义与扩展

对于需要支持新的LLaMA tokenizer的情况,llama-tokenizer-js提供了灵活的自定义选项。开发者可以通过替换词汇表和合并数据来适配新的tokenizer。项目还提供了一个Python脚本,方便进行数据转换。

import { LlamaTokenizer } from 'llama-tokenizer-js' const tokenizer = new LlamaTokenizer(custom_vocab, custom_merge_data);

结论

llama-tokenizer-js为使用LLaMA模型的Web应用提供了一个强大的工具。它不仅解决了token计数的准确性问题,还大大提高了性能,减少了延迟。对于需要在客户端进行精确token计数的开发者来说,这是一个不可多得的解决方案。

随着大语言模型在Web应用中的广泛应用,llama-tokenizer-js的重要性将越发凸显。它为开发者提供了一种高效、准确的方法来处理LLaMA模型的token,从而能够更好地控制和优化模型输入,提高应用的整体性能和用户体验。

未来,随着LLaMA模型的进一步发展和新版本的发布,我们可以期待llama-tokenizer-js会继续更新和优化,以支持更多的模型变体和use cases。对于那些致力于将先进的NLP技术整合到Web应用中的开发者来说,密切关注这个项目的发展将是非常有价值的。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多