semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
64 lines • 2.27 kB
TypeScript
interface CompressedVector {
codes: Uint8Array;
metadata: {
originalDimension: number;
subspaceCount: number;
compressionRatio: number;
};
}
interface PQConfig {
subspaceCount: number;
bitsPerCode: number;
maxIterations: number;
convergenceThreshold: number;
initializationMethod: 'random' | 'kmeans++';
}
export declare class ProductQuantizer {
private config;
private codebooks;
private isTrained;
constructor(config?: Partial<PQConfig>);
train(vectors: Float32Array[]): Promise<void>;
private splitVectorsIntoSubspaces;
private trainSubspaceCodebook;
private initializeCentroids;
private kMeansPlusPlusInit;
private computeMean;
private randomVector;
private euclideanDistance;
compress(vector: Float32Array): CompressedVector;
decompress(compressed: CompressedVector): Float32Array;
compressBatch(vectors: Float32Array[]): CompressedVector[];
approximateDistance(compressed1: CompressedVector, compressed2: CompressedVector): number;
buildDistanceTables(query: Float32Array): Float32Array[];
searchApproximate(distanceTables: Float32Array[], compressed: CompressedVector[], k?: number): Array<{
index: number;
distance: number;
}>;
getCompressionStats(): {
subspaceCount: number;
bitsPerCode: number;
totalCentroids: number;
memoryReduction: number;
isTrained: boolean;
};
serialize(): string;
deserialize(serialized: string): void;
}
export declare class ColumnFingerprintCompressor {
private pq;
private compressedFingerprints;
constructor(subspaceCount?: number);
trainOnFingerprints(fingerprints: Map<string, Float32Array>): Promise<void>;
compressFingerprint(id: string, fingerprint: Float32Array): CompressedVector;
findSimilarFingerprints(queryFingerprint: Float32Array, threshold?: number, maxResults?: number): Array<{
id: string;
similarity: number;
}>;
getCompressionRatio(): number;
clear(): void;
}
export declare const globalProductQuantizer: ProductQuantizer;
export declare const globalFingerprintCompressor: ColumnFingerprintCompressor;
export {};
//# sourceMappingURL=vector-compression.d.ts.map