Если вы построили память агента в векторном хранилище, вы, вероятно, наблюдали, как полнота памяти постепенно ухудшается по мере роста хранилища, и предположили, что вам нужны лучшие встраивания или больший индекс. Мы потратили несколько месяцев на измерение этого распада, и результат...
Если вы построили память агента в векторном хранилище, вы, вероятно, наблюдали, как полнота памяти постепенно ухудшается по мере роста хранилища, и предположили, что вам нужны лучшие встраивания или больший индекс.
Мы потратили несколько месяцев на измерение этого распада, и результат оказался не таким, как мы ожидали: системы памяти LLM забывают с той же математикой, что и человеческая память, воспроизводя числа из некоторых наиболее повторяемых экспериментов в клинической психологии. Для этого не требуется никакой настройки.
Размеренная ложь
Начните с нахождения всего остального, из которого следует. Возьмите модель внедрения, которая объявляет 384 или 1024 измерения, и измерьте, где на самом деле находится дисперсия:
импортировать numpy как np
# X: (n_samples, n_dims) матрица вложений из любой предварительно обученной модели
X = X - X.mean(ось=0)
собственные значения = np.linalg.svd(X, Compute_uv=False) ** 2
p = собственные значения/собственные значения.сумма()
# Коэффициент участия: сколько измерений выполняют реальную работу
effect_dims = 1,0 / np.sum(p ** 2)
print(f"номинал: {X.shape[1]}, эффект: {efficient_dims:.1f}")
Запустите это на модели, рекламирующей размеры от 384 до 1024, и вы получите эффективную размерность около 16. Обученные представления концентрируют свою дисперсию примерно от 3 до 10% o