Исправление healthcheck: обновлен путь и улучшена передача API ключа
This commit is contained in:
29
Improvements.md
Normal file
29
Improvements.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Improvements / TODO по оптимизации Embedding-service
|
||||||
|
|
||||||
|
## 1. Оптимизация вычислений в `VectorStore`
|
||||||
|
|
||||||
|
- Заменить `np.sort(...)[-k:]` на `np.argpartition` + `np.take` для выбора top‑k:
|
||||||
|
- снизит асимптотику с O(n log n) до O(n) по числу примеров;
|
||||||
|
- особенно актуально при росте числа эмбеддингов до тысяч и выше.
|
||||||
|
|
||||||
|
## 2. Работа с типами данных эмбеддингов
|
||||||
|
|
||||||
|
- Рассмотреть хранение эмбеддингов в `VectorStore` в формате `float16`:
|
||||||
|
- веса модели остаются в `float32` (как сейчас);
|
||||||
|
- вектора примеров после нормализации можно приводить к `float16`;
|
||||||
|
- это даст ~2× экономию памяти на примерах при минимальной потере точности для косинусного сходства.
|
||||||
|
|
||||||
|
## 3. Управление потоками Torch
|
||||||
|
|
||||||
|
- Явно ограничить количество потоков для Torch:
|
||||||
|
- при инициализации добавить:
|
||||||
|
- `torch.set_num_threads(1–2)`
|
||||||
|
- `torch.set_num_interop_threads(1)`
|
||||||
|
- это снизит конкуренцию за CPU на серверах, где крутятся ещё боты.
|
||||||
|
|
||||||
|
## 4. Батчирование запросов к модели
|
||||||
|
|
||||||
|
- На будущее, если появится нагрузка:
|
||||||
|
- добавить внутри `RAGService` очередь запросов на эмбеддинги и воркер, который шлёт их в модель батчами (например, окно 5–20 мс);
|
||||||
|
- это уменьшит overhead от частых одиночных вызовов `encode`.
|
||||||
|
|
||||||
Reference in New Issue
Block a user