Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

便携式使用文本嵌入的最佳方法是使用 Parquet 和 Polars

Posted on 2025-02-25

便携式使用文本嵌入的最佳方法是使用 Parquet 和 Polars

Max Woolf 关于嵌入的精彩文章,他使用 32,000 个《万智牌》卡片嵌入的矢量集合来探索存储和处理它们的有效方法。

Max 提倡使用暴力方法来进行最近邻计算:

许多人不知道文本嵌入的是,如果您的数据不太大,则不需要矢量数据库来计算最近邻相似度。使用numpy和我的 Magic 卡嵌入,维度为 768D 的 32,254 个float32嵌入的 2D 矩阵(常见于“较小的”LLM 嵌入模型)占用94.49 MB的系统内存,这对于现代个人计算机来说相对较低,并且可以适合云虚拟机的免费使用层。

他使用这段精彩的 Python 代码片段按距离查找前 K 个匹配项:

 def fast_dot_product (查询,矩阵, k = 3 ):     dot_products =查询@矩阵。时间     idx = np . argpartition ( dot_products , - k )[ - k :]     idx = idx [ np . argsort ( dot_products [ idx ])[:: - 1 ]]     分数=点产品[ idx ]     返回idx ,分数

由于点积是线性代数的一个基本方面,numpy 的实现速度非常快:在额外的 numpy排序技巧的帮助下,在我的 M3 Pro MacBook Pro 上,计算所有 32,254 个点积,找到前 3 个最相似的嵌入,并返回它们相应的矩阵idx和余弦相似度score ,平均只需要1.08 毫秒。

我通过 Claude 3.7 Sonnet 运行了该 Python 代码以获得解释,我可以使用他们全新的“共享聊天”功能在此处分享。直到关于numpy.argpartition !

他探索了多种有效存储这些嵌入向量的选项,发现简单的 CSV 存储需要 631.5 MB,而 pickle 使用 94.49 MB,而他的首选选项 Parquet via Polars使用94.3 MB ,并启用了一些简洁的零拷贝优化技巧。

标签:嵌入, parquet , python , max-woolf , claude

原文: https://simonwillison.net/2025/Feb/24/text-embeddings-parquet/#atom-everything

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme