Κρυπτογράφηση (Caching)

term_id: caching

Category: engineering_practice

Definition

Στην μηχανική ΤΝ, το caching βελτιστοποιεί τις επιδόσεις διατηρώντας πρόσφατα ή συχνά αποτελέσματα ερωτημάτων, προβλέψεις μοντέλων ή ενδιάμεσους υπολογισμούς σε γρήγορη μνήμη (όπως RAM). Αυτό μειώνει την ανάγκη για ακριβούς υπολογισμούς ή πρόσβαση σε βάσεις δεδομένων.

Summary

Το Caching είναι μια τεχνική αποθήκευσης συχνά προσπελάσιμων δεδομένων σε ένα προσωρινό, υψηλής ταχύτητας στρώμα αποθήκευσης, με στόχο τη μείωση της καθυστέρησης και τη μείωση του φόρτου στις πρωτεύουσες πηγές δεδομένων.

Key Concepts

  • μείωση καθυστέρησης
  • βελτιστοποίηση μνήμης
  • πολιτικές αποβολής
  • ποσοστό επιτυχίας (hit rate)

Use Cases

  • Αποθήκευση αποτελεσμάτων συμπερασματολογίας μοντέλου
  • Caching εξόδων ερωτημάτων βάσης δεδομένων
  • Προ-υπολογισμός ενσωματώσεων χαρακτηριστικών

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import redis

# Simple caching example
r = redis.Redis(host='localhost', port=6379, db=0)

def get_prediction(model_id, input_data):
    cache_key = f"pred_{model_id}_{hash(str(input_data))}"
    result = r.get(cache_key)
    if result:
        return result.decode('utf-8')
    # Compute if not cached
    prediction = model.predict(input_data)
    r.setex(cache_key, 3600, str(prediction))
    return prediction