block-wise randomized SVD reducer for the streaming pipeline.
the COO sparse vectors are read one block at a time, accumulated into a SparseMatrix (row-dictionary layout, so only the current block is ever in memory) and reduced with TruncatedSVD.Reduce(). the resulting m x k dense embedding is streamed straight to disk row-by-row, so the full embedding never has to be materialized as one big array.