ವರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆ: ವೇಗದ ಪೈಪ್ಲೈನ್ ನವೀಕರಣಗಳು
ಈ ಲೇಖನವು SEO ಪೈಪ್ಲೈನ್ ಹೇಗೆ ಗಂಟೆಗಳ ಬದಲಿಗೆ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಚಲಿಸಲು ವರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಬಳಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ.
ಸಮಸ್ಯೆ: ಪೂರ್ಣ ಮರುಪ್ರಕ್ರಿಯೆ ನಿಧಾನ
ಸಂಪೂರ್ಣ ಪೈಪ್ಲೈನ್ ಅನ್ನು ಮೊದಲಿನಿಂದ ಚಲಾಯಿಸಲು ಗಂಟೆಗಳು ಬೇಕಾಗುತ್ತವೆ:
-
ಹಂತ 0 (ಮೂಲ ಎಂಬೆಡ್ಡಿಂಗ್): 15 ನಿಮಿಷಗಳು (65,000 ಉತ್ಪನ್ನಗಳು)
-
ಹಂತ 1 (ಕ್ವೆರಿ ಫೆಚಿಂಗ್): 10 ನಿಮಿಷಗಳು (API ಕರೆಗಳು)
-
ಹಂತ 2 (ಕ್ವೆರಿ ಕ್ಲಸ್ಟರಿಂಗ್): 30 ನಿಮಿಷಗಳು (65K×65K ಸಾಮ್ಯತೆ)
-
ಹಂತ 3 (ಫ್ರೇಸ್ ಮ್ಯಾಪಿಂಗ್ಗಳು): 20 ನಿಮಿಷಗಳು (ಎಂಬೆಡ್ಡಿಂಗ್ + ಮ್ಯಾಚಿಂಗ್)
-
ಹಂತ 4 (ಉತ್ಪನ್ನ ಹೊಂದಾಣಿಕೆ): 45 ನಿಮಿಷಗಳು (ಕ್ವೆರಿಗಳು × ಉತ್ಪನ್ನಗಳು)
-
ಹಂತ 5 (ಸಂಬಂಧಿತ ಹುಡುಕಾಟಗಳು): 25 ನಿಮಿಷಗಳು (ಕ್ವೆರಿ × ಕ್ವೆರಿ ಸಾಮ್ಯತೆ)
ಒಟ್ಟು: ಸಂಪೂರ್ಣ ಪೈಪ್ಲೈನ್ಗೆ ~2.5 ಗಂಟೆಗಳು
ಸಮಸ್ಯೆ: ದೈನಂದಿನ ನವೀಕರಣಗಳು ಬದಲಾಗದ ಡೇಟಾವನ್ನು ಪುನಃ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು 2.5 ಗಂಟೆಗಳನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತವೆ.
ಪರಿಹಾರ: ಮೂರು-ಪದರದ ವರ್ಧಾತ್ಮಕ ತಂತ್ರ
ಅನಗತ್ಯ ಕೆಲಸವನ್ನು ಬಿಟ್ಟುಬಿಡಲು ನಾವು ಮೂರು ತಂತ್ರಗಳನ್ನು ಬಳಸುತ್ತೇವೆ:
1. ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು (ಸ್ಥೂಲ-ಮಟ್ಟದ)
ಔಟ್ಪುಟ್ ಹೊಸದಾಗಿದ್ದರೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗದಿದ್ದರೆ ಸಂಪೂರ್ಣ ಹಂತಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಿ.
2. ವರ್ಧಾತ್ಮಕ ಎಂಬೆಡ್ಡಿಂಗ್ (ಮಧ್ಯಮ-ಮಟ್ಟದ)
ಹೊಸ/ಬದಲಾದ ಐಟಂಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ, ಕ್ಯಾಶ್ ಮಾಡಿದ ಎಂಬೆಡ್ಡಿಂಗ್ಗಳನ್ನು ಮರುಬಳಕೆ ಮಾಡಿ.
3. ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ (ಸೂಕ್ಷ್ಮ-ಮಟ್ಟದ)
ದೀರ್ಘ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಮಯದಲ್ಲಿ ಪ್ರಗತಿಯನ್ನು ಉಳಿಸಿ, ವಿಫಲತೆಯ ಮೇಲೆ ಚೆಕ್ಪಾಯಿಂಟ್ನಿಂದ ಪುನರಾರಂಭಿಸಿ.
ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡುವ ತಂತ್ರ
ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ಪ್ರತಿ ಹಂತದ ಮೊದಲು, ಪರಿಶೀಲಿಸಿ:
ಔಟ್ಪುಟ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೇ? ಇಲ್ಲದಿದ್ದರೆ, ಹಂತವನ್ನು ಚಲಾಯಿಸಿ.
ಔಟ್ಪುಟ್ ವಯಸ್ಸು: 7 ದಿನಗಳಿಗಿಂತ ಹಳೆಯದಾಗಿದ್ದರೆ, ಹಂತವನ್ನು ಚಲಾಯಿಸಿ.
ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗಿದೆಯೇ? ಔಟ್ಪುಟ್ ರಚಿಸಿದ ನಂತರ ಸ್ಕ್ರಿಪ್ಟ್ ಮಾರ್ಪಡಿಸಿದ್ದರೆ, ಹಂತವನ್ನು ಚಲಾಯಿಸಿ.
ಎಲ್ಲಾ ಪರಿಶೀಲನೆಗಳು ಉತ್ತೀರ್ಣವಾಗುತ್ತವೆಯೇ? ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡಿ.
ಅನುಷ್ಠಾನ
def should_skip_step(output_path, script_path, days=7):
# Check if output exists
if not os.path.exists(output_path):
# ... (implementation details omitted)
ಬಳಕೆ
ಪ್ರತಿ ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರಾರಂಭದಲ್ಲಿ ಪರಿಶೀಲಿಸುತ್ತದೆ:
from seo_common import should_skip_step
if should_skip_step(SEO_SOURCE_EMBEDDINGS_PATH, __file__):
print("✓ Skipping: Output is fresh and script unchanged")
return
ಪ್ರಯೋಜನಗಳು
ವೇಗದ ದೈನಂದಿನ ರನ್ಗಳು: ಡೇಟಾ ಬದಲಾಗದಿದ್ದರೆ ಹೆಚ್ಚಿನ ಹಂತಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತದೆ
ಸ್ವಯಂಚಾಲಿತ ಅಮಾನ್ಯೀಕರಣ: ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾವಣೆಗಳು ಮರು-ಚಲಾಯಿಸುವಿಕೆಯನ್ನು ಪ್ರಚೋದಿಸುತ್ತವೆ
ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ತಾಜಾತನ: ಪ್ರತಿ ಹಂತಕ್ಕೆ days ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಹೊಂದಿಸಿ
ವರ್ಧಾತ್ಮಕ ಎಂಬೆಡ್ಡಿಂಗ್ ತಂತ್ರ
ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ಐಟಂಗಳನ್ನು (ಉತ್ಪನ್ನಗಳು, ಕ್ವೆರಿಗಳು, ಫ್ರೇಸ್ಗಳು) ಎಂಬೆಡ್ ಮಾಡುವಾಗ:
ಕ್ಯಾಶ್ ಲೋಡ್ ಮಾಡಿ: ಹಿಂದೆ ಎಂಬೆಡ್ ಮಾಡಿದ ಐಟಂಗಳು ಮತ್ತು ಅವುಗಳ ಕೀಗಳನ್ನು ಓದಿ
ಕೀಗಳನ್ನು ಹೋಲಿಕೆ ಮಾಡಿ: ಹೊಸ, ಬದಲಾದ ಮತ್ತು ಅಳಿಸಿದ ಐಟಂಗಳನ್ನು ಗುರುತಿಸಿ
ಹೊಸದನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ: ಕ್ಯಾಶ್ನಲ್ಲಿಲ್ಲದ ಐಟಂಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ
ವಿಲೀನಗೊಳಿಸಿ: ಕ್ಯಾಶ್ ಮಾಡಿದ ಎಂಬೆಡ್ಡಿಂಗ್ಗಳನ್ನು ಹೊಸ ಎಂಬೆಡ್ಡಿಂಗ್ಗಳೊಂದಿಗೆ ಸರಿಯಾದ ಕ್ರಮದಲ್ಲಿ ಸಂಯೋಜಿಸಿ
ಉಳಿಸಿ: ನವೀಕರಿಸಿದ ಕ್ಯಾಶ್ ಅನ್ನು ಬರೆಯಿರಿ
ಅನುಷ್ಠಾನ
incremental_embed_with_keys ಕಾರ್ಯವು ಇದನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:
def incremental_embed_with_keys(
items, # Current items to embed
keys, # Unique keys for items
# ... (implementation details omitted)
ಕ್ಯಾಶ್ ಹಿಟ್ ದರಗಳು
ಮೊದಲ ರನ್ ನಂತರದ ವಿಶಿಷ್ಟ ಕ್ಯಾಶ್ ಹಿಟ್ ದರಗಳು:
ಮೂಲ ಡೇಟಾ (ಉತ್ಪನ್ನಗಳು, ಭಾಗಗಳು, ಲೇಖನಗಳು):
-
ಮೊದಲ ರನ್: 0% (ಎಲ್ಲಾ 65,000 ಐಟಂಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಿ)
-
ದೈನಂದಿನ ರನ್: 99.5% (ಕೇವಲ ~300 ಹೊಸ/ಬದಲಾದ ಐಟಂಗಳು)
ಕ್ವೆರಿಗಳು (GSC, Ads, ಲೈವ್ನಿಂದ):
-
ಮೊದಲ ರನ್: 0% (ಎಲ್ಲಾ 65,000 ಕ್ವೆರಿಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಿ)
-
ದೈನಂದಿನ ರನ್: 99.2% (ಕೇವಲ ~500 ಹೊಸ ಕ್ವೆರಿಗಳು)
ಫ್ರೇಸ್ ಮ್ಯಾಪಿಂಗ್ಗಳು:
-
ಮೊದಲ ರನ್: 0% (ಎಲ್ಲಾ 5,000 ಫ್ರೇಸ್ಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಿ)
-
ದೈನಂದಿನ ರನ್: 99.8% (ಕೇವಲ ~10 ಹೊಸ ಫ್ರೇಸ್ಗಳು)
ಕಾರ್ಯಕ್ಷಮತೆಯ ಪ್ರಭಾವ
ಮೊದಲ ರನ್ (ತಣ್ಣನೆಯ ಕ್ಯಾಶ್):
-
ಮೂಲ ಎಂಬೆಡ್ಡಿಂಗ್: 15 ನಿಮಿಷಗಳು (65,000 ಐಟಂಗಳು)
-
ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್: 10 ನಿಮಿಷಗಳು (65,000 ಕ್ವೆರಿಗಳು)
-
ಫ್ರೇಸ್ ಎಂಬೆಡ್ಡಿಂಗ್: 2 ನಿಮಿಷಗಳು (5,000 ಫ್ರೇಸ್ಗಳು)
ದೈನಂದಿನ ರನ್ (ಬೆಚ್ಚಗಿನ ಕ್ಯಾಶ್):
-
ಮೂಲ ಎಂಬೆಡ್ಡಿಂಗ್: 10 ಸೆಕೆಂಡುಗಳು (300 ಐಟಂಗಳು, 99.5% ಹಿಟ್ ದರ)
-
ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್: 5 ಸೆಕೆಂಡುಗಳು (500 ಕ್ವೆರಿಗಳು, 99.2% ಹಿಟ್ ದರ)
-
ಫ್ರೇಸ್ ಎಂಬೆಡ್ಡಿಂಗ್: 1 ಸೆಕೆಂಡ್ (10 ಫ್ರೇಸ್ಗಳು, 99.8% ಹಿಟ್ ದರ)
ವೇಗವರ್ಧನೆ: 90-180× ವೇಗವಾಗಿ
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ತಂತ್ರ
ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ದೀರ್ಘಕಾಲ ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ (65,000 ಐಟಂಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡುವುದು):
ಬ್ಯಾಚ್ ಪ್ರಕ್ರಿಯೆ: ಐಟಂಗಳನ್ನು ಬ್ಯಾಚ್ಗಳಲ್ಲಿ ಪ್ರಕ್ರಿಯೆ ಮಾಡಿ (ಉದಾ., 1,000 ಐಟಂಗಳು)
ಚೆಕ್ಪಾಯಿಂಟ್ ಉಳಿಸಿ: ಪ್ರತಿ ಬ್ಯಾಚ್ ನಂತರ, ಸಂಗ್ರಹವಾದ ಫಲಿತಾಂಶಗಳನ್ನು ಉಳಿಸಿ
ವಿಫಲತೆಯ ಮೇಲೆ ಪುನರಾರಂಭಿಸಿ: ಪ್ರಕ್ರಿಯೆಯು ಕ್ರ್ಯಾಶ್ ಆದರೆ, ಕೊನೆಯ ಚೆಕ್ಪಾಯಿಂಟ್ನಿಂದ ಪುನರಾರಂಭಿಸಿ
ಅಂತಿಮ ಉಳಿತಾಯ: ಎಲ್ಲಾ ಬ್ಯಾಚ್ಗಳ ನಂತರ, ಸಂಪೂರ್ಣ ಫಲಿತಾಂಶಗಳನ್ನು ಉಳಿಸಿ
ಅನುಷ್ಠಾನ
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ಅನ್ನು incremental_embed_with_keys ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ:
checkpoint_every = 1000 # Save every 1,000 items
embeddings_list = []
# ... (implementation details omitted)
ಪ್ರಯೋಜನಗಳು
ಕ್ರ್ಯಾಶ್ ಚೇತರಿಕೆ: ಮತ್ತೆ ಪ್ರಾರಂಭಿಸುವ ಬದಲು ಕೊನೆಯ ಚೆಕ್ಪಾಯಿಂಟ್ನಿಂದ ಪುನರಾರಂಭಿಸಿ
ಪ್ರಗತಿ ದೃಶ್ಯತೆ: ಪ್ರತಿ 1,000 ಐಟಂಗಳಿಗೆ ಪ್ರಗತಿಯನ್ನು ನೋಡಿ
ಮೆಮೊರಿ ದಕ್ಷತೆ: ಬ್ಯಾಚ್ಗಳಲ್ಲಿ ಪ್ರಕ್ರಿಯೆ ಮಾಡಿ, ಎಲ್ಲವನ್ನೂ ಒಮ್ಮೆಗೇ ಲೋಡ್ ಮಾಡಬೇಡಿ
ಪೈಪ್ಲೈನ್ನಾದ್ಯಂತ ಏಕೀಕರಣ
ವರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನೇಕ ಹಂತಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ:
ಹಂತ 0: ಮೂಲ ಡೇಟಾ ಎಂಬೆಡ್ಡಿಂಗ್
ವರ್ಧಾತ್ಮಕ: ಹೊಸ/ಬದಲಾದ ಉತ್ಪನ್ನಗಳು, ಭಾಗಗಳು, ಲೇಖನಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್: ಪ್ರತಿ 1,000 ಐಟಂಗಳಿಗೆ ಉಳಿಸಿ
ಸ್ಕಿಪ್ ಲಾಜಿಕ್: ಔಟ್ಪುಟ್ 7 ದಿನಗಳಿಗಿಂತ ಕಡಿಮೆ ಹಳೆಯದಾಗಿದ್ದರೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗದಿದ್ದರೆ ಬಿಟ್ಟುಬಿಡಿ
ನೋಡಿ: ಮೂಲ ಡೇಟಾ ಎಂಬೆಡ್ಡಿಂಗ್
ಹಂತ 1: ಕ್ವೆರಿ ಫೆಚಿಂಗ್
ವರ್ಧಾತ್ಮಕ: API ಕರೆಗಳು ಕೊನೆಯ ರನ್ ನಿಂದ ಹೊಸ ಡೇಟಾವನ್ನು ಮಾತ್ರ ಪಡೆಯುತ್ತವೆ
ಸ್ಕಿಪ್ ಲಾಜಿಕ್: ಔಟ್ಪುಟ್ 1 ದಿನಕ್ಕಿಂತ ಕಡಿಮೆ ಹಳೆಯದಾಗಿದ್ದರೆ ಬಿಟ್ಟುಬಿಡಿ
ನೋಡಿ: ಕ್ವೆರಿ ಫೆಚಿಂಗ್
ಹಂತ 3b: ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್
ವರ್ಧಾತ್ಮಕ: ಹೊಸ ಕ್ವೆರಿಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್: ಪ್ರತಿ 1,000 ಕ್ವೆರಿಗಳಿಗೆ ಉಳಿಸಿ
ಸ್ಕಿಪ್ ಲಾಜಿಕ್: ಔಟ್ಪುಟ್ 7 ದಿನಗಳಿಗಿಂತ ಕಡಿಮೆ ಹಳೆಯದಾಗಿದ್ದರೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗದಿದ್ದರೆ ಬಿಟ್ಟುಬಿಡಿ
ನೋಡಿ: ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್
ಹಂತ 4: ಫ್ರೇಸ್ ಮ್ಯಾಪಿಂಗ್ ವಿಸ್ತರಣೆ
ವರ್ಧಾತ್ಮಕ: ಹೊಸ ಫ್ರೇಸ್ಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್: ಪ್ರತಿ 1,000 ಫ್ರೇಸ್ಗಳಿಗೆ ಉಳಿಸಿ
ಸ್ಕಿಪ್ ಲಾಜಿಕ್: ಔಟ್ಪುಟ್ 7 ದಿನಗಳಿಗಿಂತ ಕಡಿಮೆ ಹಳೆಯದಾಗಿದ್ದರೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗದಿದ್ದರೆ ಬಿಟ್ಟುಬಿಡಿ
ನೋಡಿ: ಫ್ರೇಸ್-ಟು-ಫಿಲ್ಟರ್ ಮ್ಯಾಪಿಂಗ್ಗಳು
ಹಂತ 6: ಉತ್ಪನ್ನ ಹೊಂದಾಣಿಕೆ
ವರ್ಧಾತ್ಮಕ: ಹೊಸ ಕ್ವೆರಿಗಳನ್ನು ಮಾತ್ರ ಹೊಂದಿಸಿ
ಸ್ಕಿಪ್ ಲಾಜಿಕ್: ಔಟ್ಪುಟ್ 7 ದಿನಗಳಿಗಿಂತ ಕಡಿಮೆ ಹಳೆಯದಾಗಿದ್ದರೆ ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾಗದಿದ್ದರೆ ಬಿಟ್ಟುಬಿಡಿ
ನೋಡಿ: ಉತ್ಪನ್ನ ಹೊಂದಾಣಿಕೆ
ಸಂರಚನೆ
ವರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರತಿ ಹಂತಕ್ಕೆ ಸಂರಚಿಸಲಾಗಿದೆ:
ತಾಜಾತನ ಮಿತಿ
# Skip if output < 7 days old (default)
should_skip_step(output_path, script_path, days=7)
# Skip if output < 1 day old (for frequently changing data)
should_skip_step(output_path, script_path, days=1)
ಚೆಕ್ಪಾಯಿಂಟ್ ಆವರ್ತನ
# Save every 1,000 items (default)
incremental_embed_with_keys(..., checkpoint_every=1000)
# Save every 5,000 items (for faster processing, less safety)
incremental_embed_with_keys(..., checkpoint_every=5000)
ಬ್ಯಾಚ್ ಗಾತ್ರ
# Embed 32 items per batch (default, balanced)
incremental_embed_with_keys(..., batch_size=32)
# Embed 64 items per batch (faster on GPU, more memory)
incremental_embed_with_keys(..., batch_size=64)
ಮೇಲ್ವಿಚಾರಣೆ ಮತ್ತು ಡೀಬಗ್ಗಿಂಗ್
ಕ್ಯಾಶ್ ಅಂಕಿಅಂಶಗಳು
ಪ್ರತಿ ಹಂತವು ಕ್ಯಾಶ್ ಅಂಕಿಅಂಶಗಳನ್ನು ಮುದ್ರಿಸುತ್ತದೆ:
✓ Found existing cache, checking for changes...
Existing: 65,000 items
Current: 65,300 items
Reusing: 64,800 embeddings
New: 500 items to embed
ಸ್ಕಿಪ್ ಸಂದೇಶಗಳು
ಹಂತಗಳನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟಾಗ:
✓ Skipping 0_embed_source_data.py: Output is fresh and script unchanged.
ಚೆಕ್ಪಾಯಿಂಟ್ ಸಂದೇಶಗಳು
ದೀರ್ಘ ಕಾರ್ಯಾಚರಣೆಗಳ ಸಮಯದಲ್ಲಿ:
Embedding 65,000 items (checkpointing every 1,000)...
Batch 0-1000...
✓ Checkpoint saved (1,000 total)
Batch 1000-2000...
✓ Checkpoint saved (2,000 total)
...
ಉಲ್ಲೇಖಗಳು
ತಾಂತ್ರಿಕ ಪರಿಕಲ್ಪನೆಗಳು
-
ವರ್ಧಾತ್ಮಕ ಕಲಿಕೆ - ವಿಕಿಪೀಡಿಯಾ
-
ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ - ವಿಕಿಪೀಡಿಯಾ
-
ಕ್ಯಾಶಿಂಗ್ - ವಿಕಿಪೀಡಿಯಾ
ಸಂಬಂಧಿತ ಲೇಖನಗಳು
-
SEO ಪೈಪ್ಲೈನ್ ಅವಲೋಕನ - ಸಂಪೂರ್ಣ ಪೈಪ್ಲೈನ್ ವಾಸ್ತುಶಿಲ್ಪ
-
ಮೂಲ ಡೇಟಾ ಎಂಬೆಡ್ಡಿಂಗ್ - ವರ್ಧಾತ್ಮಕ ಉತ್ಪನ್ನ ಎಂಬೆಡ್ಡಿಂಗ್
-
ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್ - ವರ್ಧಾತ್ಮಕ ಕ್ವೆರಿ ಎಂಬೆಡ್ಡಿಂಗ್
-
ಫ್ರೇಸ್-ಟು-ಫಿಲ್ಟರ್ ಮ್ಯಾಪಿಂಗ್ಗಳು - ವರ್ಧಾತ್ಮಕ ಫ್ರೇಸ್ ಎಂಬೆಡ್ಡಿಂಗ್
ಸಾರಾಂಶ
ವರ್ಧಾತ್ಮಕ ಪ್ರಕ್ರಿಯೆಯು ಪೈಪ್ಲೈನ್ ಅನ್ನು 90-180× ವೇಗಗೊಳಿಸುತ್ತದೆ:
ಮೂರು-ಪದರದ ತಂತ್ರ:
-
✅ ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು (ಔಟ್ಪುಟ್ ಹೊಸದಾಗಿದ್ದರೆ ಸಂಪೂರ್ಣ ಹಂತಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಿ)
-
✅ ವರ್ಧಾತ್ಮಕ ಎಂಬೆಡ್ಡಿಂಗ್ (ಹೊಸ/ಬದಲಾದ ಐಟಂಗಳನ್ನು ಮಾತ್ರ ಎಂಬೆಡ್ ಮಾಡಿ)
-
✅ ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ (ಪ್ರಗತಿಯನ್ನು ಉಳಿಸಿ, ವಿಫಲತೆಯ ಮೇಲೆ ಪುನರಾರಂಭಿಸಿ)
ಕಾರ್ಯಕ್ಷಮತೆ:
-
✅ ಮೊದಲ ರನ್: ~2.5 ಗಂಟೆಗಳು (ಸಂಪೂರ್ಣ ಪೈಪ್ಲೈನ್)
-
✅ ದೈನಂದಿನ ರನ್: ~5 ನಿಮಿಷಗಳು (ವರ್ಧಾತ್ಮಕ ನವೀಕರಣಗಳು)
-
✅ ಕ್ಯಾಶ್ ಹಿಟ್ ದರಗಳು: ಮೊದಲ ರನ್ ನಂತರ 99%+
ಪ್ರಯೋಜನಗಳು:
-
✅ ವೇಗದ ದೈನಂದಿನ ನವೀಕರಣಗಳು (ಗಂಟೆಗಳ ಬದಲಿಗೆ ನಿಮಿಷಗಳು)
-
✅ ಸ್ವಯಂಚಾಲಿತ ಅಮಾನ್ಯೀಕರಣ (ಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾವಣೆಗಳು ಮರು-ರನ್ ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತವೆ)
-
✅ ಕ್ರ್ಯಾಶ್ ಚೇತರಿಕೆ (ಚೆಕ್ಪಾಯಿಂಟ್ನಿಂದ ಪುನರಾರಂಭಿಸಿ)
-
✅ ಮೆಮೊರಿ ದಕ್ಷ (ಬ್ಯಾಚ್ ಪ್ರಕ್ರಿಯೆ)
ಈ ತಂತ್ರವು ಬದಲಾಗದ ಡೇಟಾದ ಮೇಲೆ ಕಂಪ್ಯೂಟ್ ಅನ್ನು ವ್ಯರ್ಥ ಮಾಡದೆ ದೈನಂದಿನ ಪೈಪ್ಲೈನ್ ರನ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.