大模型学习——怎么把文本转换成向量?

大模型是无法直接理解人类语言的,需要对人类语言进行处理,然后送入大模型,大模型通过复杂计算输出回答。

怎么对人类语言进行处理呢?

1.独热编码(one-hot encoding)

一个单词用一个向量表示,1表示存在,0表示存在
例子:
【天,地】分别对应【10,01】
【蓝,广,绿】分别对应【100,010,,001】
则:
【天蓝】=【10 100】
【地广】=【01 010】

详细解释

缺点:

  1. 向量无法包含单词之间的关系
  2. 如果要表示某个具有很多种类的事物,就需要很多向量,计算难度变大

2. 词嵌入(word embedding)

词嵌入不仅可以让词变成向量,而且可以知道单词之间的关联性:相似词的距离要更近

传统词嵌入

统计单词在句子中出现的频率,用这些频率组成向量来表示句子

如: “apple apple banana”,若词汇表为 [“apple”, “banana”, “cherry”],其向量就是 [2, 1, 0]。

具体实现:词袋模型(Bag-of-Words Model)、TFIDF

缺点:没有考虑单词的语义和顺序

静态词嵌入

模型经过训练,根据单词在语料库中的出现情况等信息,为每个单词计算出一个向量,这个向量是固定不变的。

如:一个简单的文本语料库:“I like apples. Apples are delicious.”。
首先,模型会对语料库进行训练。在训练过程中,它会学习每个单词的上下文信息。例如,“apples” 这个单词的上下文有 “I”“like”“are”“delicious” 等单词。模型通过预测上下文单词或中心单词来调整词向量,最终得到一个将单词映射到向量空间的查找表。
假设训练完成后,“apples” 对应的向量是 [0.2, 0.3, -0.1, 0.4, …]。那么无论 “apples” 出现在这个语料库中的哪个句子里,它的向量表示都是固定的 [0.2, 0.3, -0.1, 0.4, …]。

具体实现:Word2Vec、FastText

缺点:缺少语义信息

上下文化词嵌入

会根据单词所处的具体上下文来动态地生成不同的向量表示,即使是相似的词,出现在不同的上下文中也会得到不同的向量表示

具体实现:ELMo、GPT、BERT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值