常见问题
文本嵌入常见问题解答
在嵌入字符串之前如何知道其令牌数量? 要在嵌入字符串之前了解其包含的令牌数量,您可以利用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月之后事件的了解。这可能不会像文本生成模型那样受到明显限制,但在某些情况下,可能会影响性能。
最后更新于