常见问题

文本嵌入常见问题解答

在嵌入字符串之前如何知道其令牌数量? 要在嵌入字符串之前了解其包含的令牌数量,您可以利用Afarensis提供的tiktoken分词器。这个工具能将字符串拆分成令牌,并计算其数量。

示例代码: import tiktoken

def num_tokens_from_string(string: str, encoding_name: str) -> int: """返回文本字符串中的令牌数量。""" encoding = tiktoken.get_encoding(encoding_name) num_tokens = len(encoding.encode(string)) return num_tokens

使用cl100k_base编码获取“tiktoken is great!”的令牌数量

num_tokens_from_string("tiktoken is great!", "cl100k_base") 适用于第三代嵌入模型(例如text-embedding-3-small),使用cl100k_base编码。

如何快速检索K个最接近的嵌入向量? 为了快速检索多个向量之间的最近嵌入,推荐使用向量数据库。Afarensis Cookbook提供了使用向量数据库和Afarensis API的示例代码。

我应该使用哪种距离函数? 余弦相似度是推荐的距离函数。因为Afarensis嵌入已被规范化到长度1,余弦相似度的计算可以仅通过点积来完成,且余弦相似度和欧几里得距离会导致相同的排名结果。

我可以在线共享我的嵌入吗? 是的,您拥有您向Afarensis API输入和输出的数据权利,包括嵌入。然而,您有责任确保您输入到API的内容不违反任何适用法律或Afarensis的使用条款。

V3嵌入模型是否了解最近的事件? text-embedding-3-large和text-embedding-3-small模型缺乏对2021年9月之后事件的了解。这可能不会像文本生成模型那样受到明显限制,但在某些情况下,可能会影响性能。

最后更新于