当前位置: 首页 > web >正文

【LLM模型开发】WordPiece算法

WordPiece算法

  1. 对待训练语料进行字符拆分,并将拆分的字符加入初始词库中;
  2. 设置词库上限;
  3. 训练语言模型,将能够得分最高的子词作为新的部分加入词库;得分计算公式为:
    s c o r e = f r e q _ o f _ p a i r f r e q _ o f _ f i r s t _ e l e m e n t × f r e q _ o f _ s e c o n d _ e l e m e n t score = \frac {freq\_of\_pair}{freq\_of\_first\_element \times freq\_of\_second\_element} score=freq_of_first_element×freq_of_second_elementfreq_of_pair
  4. 重复3直到词库规模达到上限;

训练一个WordPiece模型首先需要生成一个小的初始化的基础词表;以英文为例,存在这样一个语料:"This is the Hugging Face Course."
首先,对语料进行预分词(按空格切分、按语系切分等等);

[("This", 1), ("is", 1), ("the", 1), ("Hugging", 1), ("Face", 1), ("Course.", 1)]

然后,对语料库进行词汇分割构建词汇表:

[("T", "##h", "##i", "##s", 1), ("i", "##s", 1), ("t", "##h", "##e", 1), ("H", "##u", "##g", "##g", "##i", "##n", "##g", 1), ("F", "##a", "##c", "##e", 1), ("C", "##o", "##u", "##r", "##s", "##e", "##.", 1)]

词汇表中当前词汇为:

["T", "h", "i", "s", "t", "e", "H", "u", "g", "n", "F", "a", "c", "C", "o", "r", "."]

计算每种组合的得分:

{('T', '##h'): 0.5, ('##h', '##i'): 0.25, ('##i', '##s'): 0.1667, ('i', '##s'): 0.3333, ('t', '##h'): 0.5, ('##h', '##e'): 0.1667, ('H', '##u'): 0.5, ('##u', '##g'): 0.1667, ('##g', '##g'): 0.1111, ('##g', '##i'): 0.1667, ('##i', '##n'): 0.5, ('##n', '##g'): 0.3333, ('F', '##a'): 1.0, ('##a', '##c'): 1.0, ('##c', '##e'): 0.3333, ('C', '##o'): 1.0, ('##o', '##u'): 0.5, ('##u', '##r'): 0.5, ('##r', '##s'): 0.3333, ('##s', '##e'): 0.1111, ('##e', '##.'): 0.3333}

这里得分最高的字符对事Fa,因此合并这两个字符;
Fa的得分计算公式为:
s c o r e ( F , a ) = ( F a : 1 ) ( F : 1 ) × ( a : 1 ) = 1 score(F,a) = \frac {(Fa: 1)}{(F: 1) \times (a: 1)} = 1 score(F,a)=(F:1)×(a:1)(Fa:1)=1
Fa在词汇表中出现一次,Fa各出现一次,所以得分最高;因此作为第一个被合并的字符。

WordPiece算法与BPE算法有相似之处。WorldPiece首先将所有字符、词添加到词库中,并需要预先设定词库的规模。

但是WordPiece算法计算的是实质是条件概率。

http://www.xdnf.cn/news/2746.html

相关文章:

  • QT6 源(58)篇一:阅读与注释 QString 这个类,先给出其应用举例
  • OpenCV VC编译版本
  • iView Table 组件跨页选择功能实现文档
  • 4月28日日记
  • Mars3d加载矢量数据控制台提示addGraphic:数据id存在冲突,已重新赋值id
  • Rust 学习笔记:编程练习(一)
  • 火语言RPA--腾讯云存储
  • TP5兼容达梦国产数据库
  • 深度学习篇---抽样
  • 路径积分粗糙度
  • 微信聊天机器人搭建 教程/开发
  • 《计算机视觉度量:从特征描述到深度学习》—图片多模态CLIP,BLIP2,DINOv2特征提取综述
  • CUDA编程 - 测量每个block内线程块的执行时间 - 如何应用到自己的项目中 - clock()
  • 利用 Google Earth Engine 探索江宁区 2010 - 2020 年 EVI 时空变化
  • 51c大模型~合集122
  • 【人工智能】边缘智能的突破:Ollama模型压缩技术与DeepSeek部署实践
  • 锁和事务谁在外层
  • 西门子PLC结构化编程_水处理系统水泵多备多投
  • Linux中的shell脚本练习
  • 在线图书管理系统的结构化需求分析过程讲解
  • 【Git】项目多个分支开发、维护与优化处理 -- 还未实测 记录初
  • PCL实时动态加载显示点云功能以及laslib配置
  • 使用Python在excel里创建柱状图
  • 如何搭建spark yarn 模式的集群集群
  • uniapp利用生命周期函数实现后台常驻示例
  • auto(x) decay copy
  • 一键叠图工具
  • 浏览器存储
  • 服务器文件同步工具有哪些?
  • 经典数仓架构深度解析与演进:从离线处理到新型架构对比