OpenAI的子词标记化神器--tiktoken 以及 .NET 支持库SharpToken

这篇具有很好参考价值的文章主要介绍了OpenAI的子词标记化神器--tiktoken 以及 .NET 支持库SharpToken。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

经过 Tokenize 之后,一串文本就变成了一串整数组成的向量。OpenAI 的 Tiktoken 是 更高级的 Tokenizer , 编码效率更高、支持更大的词汇表、计算性能也更高。 OpenAI在其官方GitHub上公开了一个开源Python库:tiktoken,这个库主要是用力做字节编码对的。 字节编码对(Byte Pair Encoder,BPE)是一种子词处理的方法。其主要的目的是为了压缩文本数据。主要是将数据中最常连续出现的字节(bytes)替换成数据中没有出现的字节的方法。该算法首先由Philip Gage在1994年提出。

下图是tiktoken中公开的OpenAI所有大模型所使用的词表。

OpenAI的子词标记化神器--tiktoken  以及 .NET 支持库SharpToken

可以看到,ChatGPT和GPT-4所使用的是同一个,名为“cl100k_base”的词表。而text-davinci-003和text-davinci-002所使用的是名为”p50k_base“的词表。

OpenAI的子词标记化神器--tiktoken  以及 .NET 支持库SharpToken

OpenAI 官方开源了Python版本, .NET社区 移植了https://github.com/dmitry-brazhenko/SharpToken, 它提供了使用基于 GPT 的编码对令牌进行编码和解码的功能。此库是为 .NET 6 和 .NET Standard 2.1 构建的,使其与各种框架兼容。

下面是一个示例函数,用于对传递到 gpt-3.5-turbo-0381 或gpt-4-314 的消息的tokens进行计数。请注意,从消息中计算tokens的确切方式可能会因模型而异。将函数中的计数视为一个估计值:

public int CountMessagesTokens(string Model ,string Messages)
   {
       int tokensPerMessage;
       if (Model.StartsWith("gpt-3.5-turbo"))
       {
           tokensPerMessage = 5;
       }
       else if (Model.StartsWith("gpt-4"))
       {
           tokensPerMessage = 4;
       }
       else
       {
           tokensPerMessage = 5;
       }

      var encoding = GptEncoding.GetEncoding("cl100k_base");
       int totalTokens = 0;
       foreach (var msg in Messages)
       {
           totalTokens += tokensPerMessage;
           totalTokens += encoding.Encode(msg.Content).Count;
       }
       totalTokens += 3;

      return totalTokens;
   }文章来源地址https://www.toymoban.com/news/detail-422982.html

到了这里,关于OpenAI的子词标记化神器--tiktoken 以及 .NET 支持库SharpToken的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端vue单个文件上传支持图片,压缩包以及文件 , 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id=13066

    前端vue单个文件上传支持图片,压缩包以及文件 , 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下: 使用方法 HTML代码部分 JS代码 (引入组件 填充数据) CSS

    2024年02月09日
    浏览(40)
  • .Net依赖注入神器Scrutor(上)

    从.Net Core 开始,.Net 平台内置了一个轻量,易用的 IOC 的框架,供我们在应用程序中使用,社区内还有很多强大的第三方的依赖注入框架如: Autofac DryIOC Grace LightInject Lamar Stashbox Simple Injector 内置的依赖注入容器基本可以满足大多数应用的需求,除非你需要的特定功能不受它支

    2024年03月19日
    浏览(32)
  • 记一次.net加密神器 Eazfuscator.NET 2023.2 最新版 使用尝试

    Eazfuscator.NET 是用于.NET平台的工业级混淆器。 Eazfuscator.NET 提供的混淆保护了软件中根深蒂固的知识产权,提高了商业盈利能力,并保持了竞争优势。 Eazfuscator.NET 很简单,就像 1-2-3 一样: 它可以保护您的代码, 而不会破坏它 -  即使在最复杂的情况下  - 我们已经处理了它

    2024年02月11日
    浏览(33)
  • 【踩坑】.NET异步方法不标记async,Task<int> 返回值 return default问题

    ​         在.NET中,返回类型为  TaskT  的方法并不一定要标记为  async 。这是因为  async  只是用来告诉编译器该方法中包含异步操作,并且可以使用  await  和其他异步特性(如  Task.WhenAll )来等待异步操作完成。 如果一个方法中没有使用  await  或者其他异步

    2023年04月25日
    浏览(30)
  • .NET神器:轻松实现数字转大写金额的秘籍与示例代码

      概述: .NET中实现数字转大写金额可通过现有库或自定义方法。自定义方法示例使用递归将数字分段转换为中文大写金额,处理了千、百、十、个位数。实际应用中可根据需求进一步扩展,例如处理小数部分或负数。 在.NET中,你可以使用以下方案之一来实现将数字转成大写

    2024年03月14日
    浏览(33)
  • OpenAI使用条款、使用策略和支持的地区汇总:必读指南,避免OpenAI API被封禁

    最近,一些群友反馈他们的OpenAI API被限制,其中包括试用金用户以及绑定了信用卡的用户。当他们调用API时,会收到以下报错信息: Your access was terminated due to violation of our policies, please check your email for more information. If you believe this is in error and would like to appeal, please contact [ [ema

    2024年02月02日
    浏览(39)
  • .Net 使用OpenAI开源语音识别模型Whisper

    .Net 使用OpenAI开源语音识别模型 Whisper Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的 Whisper 神经网络,且它亦支持其它98种语言的自动语音辨识。 Whisper系统所提供的自动语音辨识(Automatic Speech Recognition,ASR)模型是被训练来运行语音辨识与翻译任务的

    2024年02月08日
    浏览(35)
  • 重磅来袭,ChatGPT官方的掌上神器目前仅支持IOS

    今天凌晨,OpenAI 推出了 ChatGPT 的 iOS app,在这个开放的世界里,智能化的 AI 功能早已经突破了人类的想象力。而 ChatGPT 确实不会让我们失望,它的真「iPhone 时刻」来了!从现在起,我们可以在 iPhone 上使用 ChatGPT 了。 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选)

    2024年02月05日
    浏览(34)
  • OpenAI 更新 ChatGPT:支持图片和语音输入【附点评】

            9月25日消息,近日OpenAI宣布其对话AI系统ChatGPT进行升级,添加了 语音输入 和 图像处理 两个新功能。据OpenAI透露,这些新功能将在未来两周内面向ChatGPT Plus付费用户推出,免费用户也将很快可以使用这些新功能。这标志着ChatGPT继续朝着多模态交互的方向发展,为用户提

    2024年02月07日
    浏览(37)
  • 自然语言处理(五):子词嵌入(fastText模型)

    在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西班牙语等其他语言中,许多动词有40多种变

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包