通过在线编程彻底搞懂transformer模型之一:embedding嵌入

在最近很火的大语言模型和其它好多模型中,背后都是Transformer模型以及它的变种;Transformer模型的核心原理主要在下面2个方面:注意力机制(Attention)和Embedding(嵌入);今天我就给大家介绍一个通过在线编码,实际上手,深入理解transformer里面的embedding,它的原理以及用处的

视频介绍:

transformer的embedding视频介绍

embedding是用一个向量代表一个的词汇,所谓向量,就是一组数字,用一组数字来代表这个词就是嵌入(embedding);embedding能表达词汇的特征;比如‘斑马’这个embedding可能包含了属性特征,包括:动物,草原,条纹相间,四足,食草动物等等。不同embedding向量的大小不一样,有50位,有512, 768或者更多的;这些词嵌入是通过专门的AI模型训练好的,在transformer中我们直接调用训练好的模型,得到词汇的嵌入值;
token/segmentation和embedding

我们假设一组词嵌入只需3个数字表示,我们把这3个数字对应3维空间的坐标xyz轴,‘斑马’所在的位置,与‘羚羊’所在的位置相对比较近,因为这两个东西有相近的特征;而‘飞机’会在比较远的地方;当然现实中的嵌入至少都是50位数字表示,我们无法放到空间坐标中去;projector.tensorflow.org这个网站可以将高维的向量转换成低维,可以直观的看到某个词嵌入和它相邻的词汇;

衡量2个向量的近似程度,一般用dot product或者cos距离
dot product: a.b = a1 * b1 + a2 * b2 + a3 * b3
或者cos近似度:只计算两个向量之间的角度,我们知道,cos(90)值是0,表示两个向量相似度为0,cos(0)的值是1表示两个相似度为100%
embedding和点积
打开网页:https://chn.ai/embedding.html

这个页面是我给大家专门准备的,在网页浏览器里面可以运行的AI编程环境,大家不用安装,编程需要的库,模型都已经准备好,直接输入代码就可以运行;

这套环境用js编程,原因是:

  1. 不用安装;我们学的是人工智能,不是学怎么搭建python,解决依赖,科学上网,配置cuda,大多数小伙伴把这些搞定了,学习的热情都消耗了一半
  2. 可以使用webgl使用gpu,
  3. 学习够用
  4. 编程语言不是问题,问题在于机器学习的陌生
    在这里插入图片描述
    第一次需要点击左上角的“加载模型”,直到提示:模型加载成功:

在界面里输入代码:

import {
   
    AutoModel, AutoTokenizer, dot } from 'https://res.chn.ai/module/transformers@2.15.1/transformers@2.15.1.js'

let tokenizer = await AutoTokenizer.from_pretrained('Xenova/jina-embeddings-v2-base-zh')
let model = await AutoModel.from_pretrained('Xenova/jina-embeddings-v2-base-zh')

function stringify(obj) {
   
   
    return JSON.stringify(obj, (key, value) => {
   
   
        return typeof value === 'bigint'
            ? value.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值