(评论)
(comments)
原始链接: https://news.ycombinator.com/item?id=37985489
处理大型文本时,可以使用多种技术来有效地嵌入它们:
1.基于块的嵌入:如前所述,您可以将长文本分成较短的块,然后单独嵌入每个块。 每个块都有其唯一的嵌入向量来表示块的上下文。 要计算大文本的最终嵌入,您可以考虑在向量索引中查找每个单独嵌入向量的最近邻居,或者通过以有意义的方式聚合各个向量来创建加权复合嵌入向量。 分块技术包括滑动窗口、标题+段落和类图结构。
2. 分布式训练:另一种选择是将训练过程分布在多个节点上,这对于涉及 PB 级数据的情况特别有利。 这通常称为分布式训练。
3. 分层编码:使用分层编码器,尤其是递归分层,是解决大型文本处理问题的理想选择。 通过将大文本拆分为较短的文本,您可以减少内存需求并提高效率。 这些层次结构通常以树或有向无环图 (DAG) 格式表示。
然而,平均嵌入还是串联嵌入更有效取决于使用嵌入的任务的性质。 一般来说,串联技术更适合句子和短语级嵌入,而平均嵌入,尤其是余弦距离或其他适当的相似性度量,可能更适合文档级相似性计算,因为块内的归一化因子引入了噪声。
幸运的是,技术和产出质量之间通常没有直接关联。 通常,必须进行一系列实验以确定哪种技术可提供最佳结果。 此外,技术可能会根据所涉及的用例而有所不同。 无论采用哪种具体方法,根据要求选择最佳方法对于同时确保准确性和效率仍然至关重要。
最后编辑于 2022 年 10 月 30 日凌晨 2:21(美国中部标准时间) 最后检查时间为 2022 年 11 月 3 日下午 2:29(美国中部标准时间)。
根据上面的段落,您能否总结一下材料中讨论的嵌入大型文本的主要技术? 是否存在更适合使用基于块的嵌入或分层编码的特定场景? 什么是
Cohere's Text Embeddings Visually Explained: https://txt.cohere.com/text-embeddings/
The Tensorflow Embedding Projector tool: https://projector.tensorflow.org/
What are embeddings? by Vicki Boykis is worth checking out as well: https://vickiboykis.com/what_are_embeddings/
Actually I'll add those as "further reading" at the bottom of the page.
reply