Anthropic Claude Code ಅನ್ನು ಮಾರ್ಗದರ್ಶಿಸುವ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ನ ಶೇಕಡಾ 80 ರಷ್ಟನ್ನು ತೆಗೆದುಹಾಕಿದೆ ಮತ್ತು ಅದರ ಕೋಡ್ ಬರೆಯುವ ಸಾಮರ್ಥ್ಯದಲ್ಲಿ ಯಾವುದೇ ಇಳಿಕೆಯಾಗಲಿ//ನಷ್ಟವಾಗಲಿ//ಕಡಿಮೆಯಾಗಲಿ//ಇಲ್ಲ ಎಂದು ವರದಿ ಮಾಡಿದೆ. ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳು (LLMs) ಹೆಚ್ಚು ಸಾಮರ್ಥ್ಯಶಾಲಿಯಾಗುತ್ತಿದ್ದಂತೆ, ಕಾರ್ಯಕ್ಷಮತೆಗೆ ಧಕ್ಕೆಯಾಗದಂತೆ ಮಾದರಿಗಳನ್ನು ಸರಿಯಾದ ಹಾದಿಯಲ್ಲಿಡಲು ಬಳಸುವ ಬೃಹತ್ ಸ್ಕ್ಯಾಫೋಲ್ಡಿಂಗ್‌ಗಳನ್ನು (scaffolding) ಡೆವಲಪರ್‌ಗಳು ಕತ್ತರಿಸಬಹುದು ಎಂದು ಈ ಪ್ರಯೋಗವು ತೋರಿಸುತ್ತದೆ.

ಮೊದಲಿಗೆ ಈ ಪ್ರಾಂಪ್ಟ್ ಏಕೆ ಮುಖ್ಯವಾಗಿತ್ತು

Claude Code ಪ್ರಾರಂಭವಾದಾಗ, ಅದರ ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಡಜನ್‌ಗಟ್ಟಲೆ ನಿಯಮಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿತ್ತು. ಎಂಜಿನಿಯರ್‌ಗಳು ಯಾವುದೇ ಬಗ್ (bug) ಕಂಡುಬಂದಾಗಲೆಲ್ಲಾ ಹೊಸ ಸಾಲುಗಳನ್ನು ಸೇರಿಸುತ್ತಿದ್ದರು ಆದರೆ ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಯಾವುದೇ ನಿಯಮವನ್ನು ತೆಗೆದುಹಾಕುತ್ತಿರಲಿಲ್ಲ. ಕಾಲಾನಂತರದಲ್ಲಿ ಪ್ರಾಂಪ್ಟ್ ಒಂದು ಗೋಜಲಾದ, ಸ್ಥಿರ ದಾಖಲೆಯಾಗಿ ಬೆಳೆಯಿತು.

ಮಾದರಿ ಅಂತರವು (model gap) ಮುಚ್ಚುತ್ತಿದೆ

ಆ ಹೆಚ್ಚುವರಿ ನಿಯಮಗಳು ಒಂದು "ಮಾದರಿ ಅಂತರ"ವನ್ನು (model gap) ಮರೆಮಾಚಿದ್ದವು - ಅಂದರೆ ಮಾದರಿಯು ಮಾಡಬಹುದಾದ ಕೆಲಸ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಬಯಸುವ ಕೆಲಸದ ನಡುವಿನ ವ್ಯತ್ಯಾಸ. 2024 ರಲ್ಲಿ, ಉದಾಹರಣೆಗೆ, ಮಾದರಿಯು ಕೋಡ್‌ಗೆ ಅತಿಯಾದ ಕಾಮೆಂಟ್‌ಗಳನ್ನು (comments) ಸೇರಿಸದಂತೆ ತಡೆಯಲು ಡೆವಲಪರ್‌ಗಳು ಕಟ್ಟುನಿಟ್ಟಾದ ನಿರ್ಬಂಧಗಳನ್ನು ವಿವರಿಸಬೇಕಾಗಿತ್ತು. ಇಂದು ಅದೇ ಮಾದರಿಯು "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೋಡ್ ಶೈಲಿಯನ್ನು ಅನುಸರಿಸಿ" (match the existing code style) ಎಂಬ ಒಂದೇ ಸೂಚನೆಯಿಂದ ಅಪೇಕ್ಷಿತ ಶೈಲಿಯನ್ನು ಗ್ರಹಿಸಬಲ್ಲದು. ನಿಯಮಗಳು ಸಹಾಯ ಮಾಡುವ ಬದಲಿಗೆ ಗೊಂದಲವನ್ನು (noise) ಉಂಟುಮಾಡುತ್ತಿವೆ.

ಕಾಂಟೆಕ್ಸ್ಟ್ ಇಂಜಿನಿಯರಿಂಗ್‌ನಲ್ಲಿ (context engineering) ಏನು ಬದಲಾಗುತ್ತಿದೆ

Anthropic ನಡೆಸಿದ ಈ ಕತ್ತರಿಸುವಿಕೆಯು ಡೆವಲಪರ್‌ಗಳು ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಹೇಗೆ ರಚಿಸುತ್ತಾರೆ ಎಂಬ ವಿಶಾಲವಾದ ಬದಲಾವಣೆಯನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ:

  • ಒಮ್ಮೆ ನೀಡುವ ನಿರ್ಣಾಯಕ ಸೂಚನೆಗಳು – ನಿಯಮವನ್ನು ಒಮ್ಮೆ ಹೇಳಿ ಮತ್ತು ಮಾದರಿಯು ಅದನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಬಿಡಿ.
  • Few-shot ಉದಾಹರಣೆಗಳ ಬದಲಿಗೆ ಟೂಲ್-ಚಾಲಿತ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು – ಟೂಲ್ ಸ್ಕೀಮಾದಲ್ಲಿ (tool schema) ಇನ್‌ಪುಟ್ ಮತ್ತು ಔಟ್‌ಪುಟ್ ರೂಪಗಳನ್ನು ವಿವರಿಸಿ ಮತ್ತು ಮಾದರಿಯು ಅವುಗಳನ್ನು ತುಂಬಲು ಬಿಡಿ.
  • ಪ್ರಗತಿಪರ ಬಹಿರಂಗೀಕರಣ (Progressive disclosure) – ಪ್ರಸ್ತುತ ಹಂತಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಕಾಂಟೆಕ್ಸ್ಟ್ ಅನ್ನು ಮಾತ್ರ ನೀಡಿ, ಅಗತ್ಯವಿದ್ದರೆ ನಂತರ ಹೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ.
  • ಸ್ಥಿರ ಮಾರ್ಗದರ್ಶನವನ್ನು ಟೂಲ್ ವಿವರಣೆಗಳಿಗೆ ವರ್ಗಾಯಿಸಿ – 'ವೇರಿಯೇಬಲ್‌ಗಳಿಗಾಗಿ camelCase ಬಳಸಿ' ಎಂಬಂತಹ ವಿಷಯಗಳು ಟೂಲ್‌ನ ಸ್ಪೆಸಿಫಿಕೇಶನ್‌ನಲ್ಲಿರಬೇಕೇ ಹೊರತು ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್‌ನಲ್ಲಿಲ್ಲ.
  • ಹಾರ್ಡ್‌ಕೋಡ್ ಮಾಡಲಾದ ನಿಯಮಗಳ ಬದಲಿಗೆ ಹ್ಯೂರಿಸ್ಟಿಕ್ಸ್ (heuristics) ಬಳಸಿ – ನಿಯಮವನ್ನು ಯಾವುದೇ ಷರತ್ತಿಲ್ಲದೆ ಜಾರಿಗೊಳಿಸುವ ಬದಲು, ನಿಯಮವು ಯಾವಾಗ ಅನ್ವಯವಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಮಾದರಿಯೇ ನಿರ್ಧರಿಸಲು ಬಿಡಿ.

ಈ ತಂತ್ರಗಳು ಕೆಲಸ ಮಾಡುತ್ತವೆ ಏಕೆಂದರೆ ಹಿಂದೆ ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳಬೇಕಾಗಿದ್ದ ಅನೇಕ ಸಂಪ್ರದಾಯಗಳನ್ನು (conventions) ಮಾದರಿಯು ಈಗಾಗಲೇ ತಿಳಿದಿದೆ.

ಅತಿಯಾಗಿ ಕತ್ತರಿಸುವಿಕೆಯ ಅಪಾಯ

ಮುಂಚೂಣಿ ಮಾದರಿಗಳಿಗೆ (frontier models) ಪ್ರಯೋಜನಕಾರಿಯಾದ ಅದೇ ಕತ್ತರಿಸುವಿಕೆಯು ಸಣ್ಣ ಮಾದರಿಗಳಿಗೆ ಹಾನಿ ಮಾಡಬಹುದು. Haiku ನಂತಹ ಮಾದರಿಗಳು ಸರಿಯಾದ ಹಾದಿಯಲ್ಲಿರಲು ಇಂದಿಗೂ ಸಮೃದ್ಧ ಪ್ರಾಂಪ್ಟ್‌ಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ ಎಂದು Anthropic ಗಮನಿಸಿದೆ. ಕಡಿಮೆ ಸಾಮರ್ಥ್ಯವಿರುವ ಮಾದರಿಯಿಂದ ಅತಿಯಾದ ಮಾರ್ಗದರ್ಶನವನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ, ಮೂಲ ಪ್ರಾಂಪ್ಟ್ ತಡೆಯಲು ಪ್ರಯತ್ನಿಸಿದ ತಪ್ಪುಗಳು ಮತ್ತೆ ಕಾಣಿಸಿಕೊಳ್ಳಬಹುದು: ಅಸಂಗತ ಹೆಸರಿಸುವಿಕೆ (inconsistent naming), ಅತಿಯಾದ ಕಾಮೆಂಟ್‌ಗಳು ಅಥವಾ ಮಿಸ್ ಆದ ಎಡ್ಜ್ ಕೇಸ್‌ಗಳು (edge cases).

ನಿಮ್ಮ ಸ್ವಂತ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು ಹೇಗೆ ಆಡಿಟ್ ಮಾಡುವುದು

ನೀವು ಕೋಡ್-ಜನರೇಷನ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದ್ದರೆ, ಪ್ರಾಂಪ್ಟ್ ಆಡಿಟ್ ಅನಗತ್ಯ ವಿಷಯಗಳನ್ನು (dead weight) ಬಹಿರಂಗಪಡಿಸಬಹುದು. ಒಂದು ಪ್ರಾಯೋಗಿಕ ಚೆಕ್‌ಲಿಸ್ಟ್ ಹೀಗಿದೆ:

  • ಸೂಚನೆಗಳ ಸಾಂದ್ರತೆಯನ್ನು (instruction density) ಮರುಹೊಂದಿಸಿ – ನೀವು ವಾಸ್ತವವಾಗಿ ಬಳಸುವ ಮಾದರಿಗೆ ಅನುಗುಣವಾಗಿ ಮಾರ್ಗದರ್ಶನದ ಪ್ರಮಾಣವನ್ನು ಹೊಂದಿಸಿ.
  • ಪುನರಾವರ್ತಿತ ಸೂಚನೆಗಳನ್ನು ಅಳಿಸಿ – ಒಂದು ನಿಯಮವು ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಮತ್ತು ಟೂಲ್ ವಿವರಣೆ ಎರಡರಲ್ಲೂ ಕಂಡುಬಂದರೆ, ಅದನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಇರಿಸಿ.
  • ಕೆಲಸ ಮಾಡಿದ ಉದಾಹರಣೆಗಳನ್ನು ಸಮೃದ್ಧ ಸ್ಕೀಮಾಗಳನ್ನಾಗಿ ಪರಿವರ್ತಿಸಿ – ನಿರ್ದಿಷ್ಟ ಉದಾಹರಣೆಗಳ ಬದಲಿಗೆ ಎನ್ಯುಮರೇಟೆಡ್ ಪ್ಯಾರಾಮೀಟರ್ ಟೈಪ್‌ಗಳು ಅಥವಾ ಎನ್ಯಮ್‌ಗಳನ್ನು (enums) ಬಳಸಿ.
  • ಸನ್ನಿವೇಶದ ವಿವರಗಳನ್ನು ಹೊರಗಿನದನ್ನಾಗಿ ಮಾಡಿ – ದೊಡ್ಡ ರೆಫರೆನ್ಸ್ ಬ್ಲಾಕ್‌ಗಳನ್ನು ಮಾದರಿಯು ಅಗತ್ಯವಿದ್ದಾಗ ಪಡೆಯಬಹುದಾದ ಪ್ರತ್ಯೇಕ ಫೈಲ್‌ಗಳಿಗೆ ವರ್ಗಾಯಿಸಿ.
  • ಅಳಿಸಿಹೋದ ವರ್ತನೆಗಳನ್ನು ಒಳಗೊಂಡ ನಿಯಮಗಳನ್ನು ತೆಗೆದುಹಾಕಿ – ಮಾದರಿಯು ಇನ್ನು ಮುಂದೆ ಅನಗತ್ಯ ಕಾಮೆಂಟ್‌ಗಳನ್ನು ಸೇರಿಸುತ್ತಿಲ್ಲದಿದ್ದರೆ, "no-comment" ನಿಯಮವನ್ನು ಕೈಬಿಡಿ.

ಕೇವಲ ಅಂದಾಜಿನ ಮೇಲೆ ಅವಲಂಬಿತರಾಗಬೇಡಿ. ಸರಳವಾದ "3-Test Rule" ಬಳಸಿ: ಐದು ವಾಸ್ತವಿಕ ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಮಾಡಿ, ಪ್ರತಿ ಅಳಿಕೆಯ ಮೊದಲು ಮತ್ತು ನಂತರದ ಫಲಿತಾಂಶಗಳನ್ನು ಹೋಲಿಸಿ ಮತ್ತು ಯಾವುದೇ ಹಿನ್ನಡೆಗಳನ್ನು (regressions) ಗಮನಿಸಿ.

  1. ಬೇಸ್‌ಲೈನ್ (Baseline) – ಪೂರ್ಣ ಪ್ರಾಂಪ್ಟ್‌ನೊಂದಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಳೆಯಿರಿ.
  2. ಅಳಿಸಿ (Delete) – ಒಂದು ಸಾಲು ಅಥವಾ ಬ್ಲಾಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ.
  3. ಮರು-ಚಾಲನೆ (Re-run) – ಅದೇ ಐದು ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಿ.

ಔಟ್‌ಪುಟ್ ಬದಲಾದರೆ, ನೀವು ಇನ್ನೂ ಪ್ರಾಮುಖ್ಯತೆ ಹೊಂದಿರುವ ಸಾಲನ್ನು ಗುರುತಿಸಿದ್ದೀರಿ ಎಂದರ್ಥ. ಬದಲಾಗದಿದ್ದರೆ, ಆ ಸಾಲನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಕೈಬಿಡಬಹುದು.

ಡೆವಲಪರ್‌ಗಳು ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು

ಸದ್ಯಕ್ಕೆ, ಸಂದೇಶ ಸ್ಪಷ್ಟವಾಗಿದೆ: ಸಿಸ್ಟಮ್ ಪ್ರಾಂಪ್ಟ್ ಎಂಬುದು ಒಂದು ಜೀವಂತ ದಾಖಲೆಯಾಗಿದೆ. ಪ್ರತಿಯೊಂದು ಸಾಲಿಗೂ ಒಂದು ಕಾಲಾವಧಿ (shelf life) ಇದೆ ಎಂದು ಪರಿಗಣಿಸಿ, ನಿಯಮಿತವಾಗಿ ಆಡಿಟ್ ಮಾಡಿ ಮತ್ತು ಮಾದರಿಯ ಬೆಳೆಯುತ್ತಿರುವ ಸಾಮರ್ಥ್ಯವು ಹೆಚ್ಚಿನ ಕೆಲಸವನ್ನು ಮಾಡಲಿ.

ಮೂಲ: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9