AI 领域经常会提到的 embeddings 到底是什么

https://huggingface.co/blog/getting-started-with-embeddings

OpenAI 的 API 有提供 embeddings 的操作,前一阵子比较火的 chatpdf用到了 embeddings 技术,那 embeddings 到底是什么呢?

结合 三篇 文章 可以对 embeddings 有大概的了解。

简单来说,embeddings 就是将一些离散数据映射到用数字表示的向量数据。有了向量,就可以对它进行数学计算,比如通过计算两个向量的角度来度量它们之间的相似度。有了相似度,就可以对文本按相似度聚合(比如商品的正面、负面评价)、搜索、推荐(将人也用向量表示,然后与推荐目标计算相似度)等等。ChatPDF 能够突破 ChatGPT 的 token 限制,是先将 pdf 文本转为向量,然后计算与 query 相似度最高的文本片段,将它作为 context 传给 ChatGPT。

向量只有在特定的空间里才有意义,不然就是一堆无意义的数字。上学时接触到的向量空间通常是二维或三维的,在机器学习领域,这个维度可以达到几百甚至上千,维度越高,对语言的理解就会越精确。不同的模型有不同的维度,比如OpenAI 的 text-embedding-ada-002 有 1536 维,SentenceTransformersall-MiniLM-L6-v2模型有 384 维。

因为会用到大量的向量数据,也催生了向量数据库的发展,比如 Pinecone B 轮就融了 1 亿美元,这篇文章描述了什么是向量数据库,它跟传统的数据库有什么不同。

❤️