在 AI 管道中,資料準備和預處理常常成為瓶頸——特別是當資料包含影象、音訊、視訊等多模態內容時。傳統的 Pandas 或 SQL 引擎對此力不從心。GitHub 上開源的 Daft 正是為填補這一空白而生:一個用 Rust 編寫、面向 AI 工作負載的高效能資料引擎,star 數已超 5600。
專門為多模態資料設計
Daft 的核心設計目標是讓處理任意規模的影象、音訊、視訊、文字和結構化資料變得像操作表格一樣簡單。它提供了熟悉的 DataFrame API,但與 Pandas 不同,Daft 的底層由 Rust 驅動,原生支援多型別資料列,並且能自動並行化。例如,你可以直接在 Daft 中對一個影象列應用縮放、裁剪,或對音訊列提取特徵——這些操作會自動分佈到叢集,無需手動管理執行緒或記憶體。
核心能力一覽
- 多模態列支援:原生資料型別包括影象、音訊、視訊、張量和 JSON,可以直接作為 DataFrame 列處理。
- 任意規模擴充套件:單機記憶體放不下?Daft 支援磁碟溢位和分散式計算(通過 Ray 或 Dask),輕鬆處理 TB 級資料。
- Rust 底層安全速度:核心用 Rust 編寫,記憶體安全且無 GC 停頓,比 Python 原生方案快 10-100 倍。
- 與 AI 生態整合:可直接接入 PyTorch、TensorFlow 的資料載入流程,支援 S3、GCS、HDFS 等遠端儲存。
典型使用場景:大規模多模態資料預處理
一個典型的落地場景是:某團隊需要從 100 萬條 YouTube 視訊中提取關鍵幀、音訊頻譜和字幕特徵,然後訓練一個多模態推薦模型。使用 Pandas 的話,由於視訊和音訊處理是 CPU/GPU 密集的,單機幾乎不可行。而 Daft 可以定義包含 video_url 列和 metadata 列的 DataFrame,然後鏈式呼叫 df['frames'] = df['video'].apply(extract_frames),Daft 會自動將任務分佈到叢集,同時自動快取中間結果,大幅減少重複讀寫。
對於 AI 資料工程師來說,Daft 填補了「原始資料到特徵工程」之間缺失的一極——既有 SQL 的宣告性,又有 Python 生態的靈活性。
上手體驗與注意事項
安裝非常簡單:pip install daft 即可獲得 Python 繫結,無需本地 Rust 編譯器。但想要發揮分散式能力,需要額外配置 Ray 或 Dask 叢集。另外,目前 Daft 的文件和社羣示例相比 Pandas 明顯更少,新手初期可能需要查閱 GitHub 上的 issue 和討論。
實用建議
如果你正在處理以下型別的資料管道,Daft 值得優先評估:
• 資料集超過記憶體大小,但仍希望使用 DataFrame 語義
• 混合了影象、音訊、視訊等多型別資料
• 現有 Pandas/Polars 指令碼在資料載入環節成為瓶頸
適合先從小規模試用開始,驗證介面是否符合預期,再逐步擴充套件到叢集部署。
Daft 的出現表明:AI 資料基礎設施正在從「通用資料處理」向「AI 原生資料引擎」演進。對於追求吞吐和延遲的團隊,它提供了一條清晰的加速路徑。










評論
暫無評論
成為第一個評論的人