在 TensorFlow 中实现分词器(tokenizer)的方法如下:
03:54一个随机的例子,每对图像和文字对我来说都很有意义。如此宽的盘子,上面有烤三明治、薯条和薯条。和另一个图像的另一个标题。04:11我们有很多形象。所以如果你想看另一个例子,你可以再次运行这个单元格,你会看到另一个例子。让我们继续吧。04:24因此,由于我们有文本数据,我们需要以某种标准方式预处理该文本数据。因此,在此单元格中,我们添加开始和结束特殊标记,我们也在幻灯片中讨论过。04:41所以通过添加这个,我们可以将这个标记作为一种特殊符号来处理,这个开始说话意味着特殊标记,这意味着句子的开头。04:54同样,结束标记表示句子的结尾。所以我们可以像趋势图一样添加这些东西并传递这个函数。05:07他们让我们继续前进。这是一个非常重要的预处理。所以现在我们有文本数据,标题数据。所以我们要创建分词器。所以通过创建分词器,我们可以分词05:29像一些索引的开始标记或猫或狗。在TensorFlow中,这非常容易。您可以只使用此文本矢量化模块,您可以通过传递所有数据或标题数据来调用
同时我们还可以看到Tokenizer文件夹,表示标记器。Tokenizer首先将Prompt中的每个词转换为一个称为标记(token)的数字,符号化(Tokenization)是计算机理解单词的方式。然后,通过text_encoder将每个标记都转换为一个768值的向量,称为嵌入(embedding),用于U-Net的condition。Tokenizer的作用有时候我们运行完pipeline之后,会出现纯黑色图片,这表示我们本次生成的图片触发了NSFW机制,出现了一些违规的图片,我们可以修改seed重新进行生成。我们可以自己设置seed,来达到对图片生成的控制。将pipeline的完整结构梳理好之后,我们再对一些核心参数进行讲解:
是的,prompt的长度会占用token数量。在大型语言模型中,输入的文本会被分词器(tokenizer)拆分成一串token序列输入给模型。每个token通常对应一个单词或字符串片段。token的数量就决定了输入序列的长度。所以,prompt中包含的每个单词、标点符号等都会被视为一个token,从而占用token数量。不同的分词器有不同的分词策略和词表,对于同一个prompt,可能得到不同的token数。但总的来说,prompt越长,占用的token数就越多。很多大模型对输入长度有限制,比如GPT-3接受的最大token数是2048。这就要求控制好prompt的长度,否则会被截断或产生不准确的结果。一些技巧可以用来节省prompt的token数:1.使用简洁的词语,避免冗余2.缩写/代词替代复杂词组3.去除不必要的标点和空格4.小写替代部分大写单词总之,prompt长度对应的token数需要根据具体任务合理控制,以在保证效果和节省计算的间权衡取舍。对于特别复杂的输入,可以考虑分步骤输入以规避长度限制。内容由AI大模型生成,请仔细甄别。