ಸಣ್ಣ ಉತ್ತರ: AI ಮಾದರಿಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು, ಒಂದು ಪ್ರಾಥಮಿಕ ನಿರ್ಬಂಧವನ್ನು (ಲೇಟೆನ್ಸಿ, ವೆಚ್ಚ, ಮೆಮೊರಿ, ಗುಣಮಟ್ಟ, ಸ್ಥಿರತೆ ಅಥವಾ ಥ್ರೋಪುಟ್) ಆರಿಸಿ, ನಂತರ ಏನನ್ನಾದರೂ ಬದಲಾಯಿಸುವ ಮೊದಲು ವಿಶ್ವಾಸಾರ್ಹ ಬೇಸ್ಲೈನ್ ಅನ್ನು ಸೆರೆಹಿಡಿಯಿರಿ. ಮೊದಲು ಪೈಪ್ಲೈನ್ ಅಡಚಣೆಗಳನ್ನು ತೆಗೆದುಹಾಕಿ, ನಂತರ ಮಿಶ್ರ ನಿಖರತೆ ಮತ್ತು ಬ್ಯಾಚಿಂಗ್ನಂತಹ ಕಡಿಮೆ-ಅಪಾಯದ ಲಾಭಗಳನ್ನು ಅನ್ವಯಿಸಿ; ಗುಣಮಟ್ಟವು ಹಿಡಿದಿದ್ದರೆ, ಕಂಪೈಲರ್/ರನ್ಟೈಮ್ ಪರಿಕರಗಳಿಗೆ ತೆರಳಿ ಮತ್ತು ನಂತರ ಅಗತ್ಯವಿದ್ದಾಗ ಕ್ವಾಂಟೈಸೇಶನ್ ಅಥವಾ ಡಿಸ್ಟಿಲೇಷನ್ ಮೂಲಕ ಮಾದರಿ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಿ.
ಪ್ರಮುಖ ಅಂಶಗಳು:
ನಿರ್ಬಂಧ : ಒಂದು ಅಥವಾ ಎರಡು ಗುರಿ ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಆರಿಸಿ; ಆಪ್ಟಿಮೈಸೇಶನ್ ಎನ್ನುವುದು ವಿನಿಮಯದ ಭೂದೃಶ್ಯವಾಗಿದೆ, ಉಚಿತ ಗೆಲುವುಗಳಲ್ಲ.
ಮಾಪನ : p50/p95/p99, ಥ್ರೋಪುಟ್, ಬಳಕೆ ಮತ್ತು ಮೆಮೊರಿ ಶಿಖರಗಳೊಂದಿಗೆ ನೈಜ ಕೆಲಸದ ಹೊರೆಗಳನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿ.
ಪೈಪ್ಲೈನ್ : ಮಾದರಿಯನ್ನು ಸ್ಪರ್ಶಿಸುವ ಮೊದಲು ಟೋಕನೈಸೇಶನ್, ಡೇಟಾಲೋಡರ್ಗಳು, ಪೂರ್ವ-ಸಂಸ್ಕರಣೆ ಮತ್ತು ಬ್ಯಾಚಿಂಗ್ ಅನ್ನು ಸರಿಪಡಿಸಿ.
ಸೇವೆ : ಕ್ಯಾಶಿಂಗ್, ಉದ್ದೇಶಪೂರ್ವಕ ಬ್ಯಾಚಿಂಗ್, ಏಕಕಾಲಿಕ ಟ್ಯೂನಿಂಗ್ ಬಳಸಿ ಮತ್ತು ಟೈಲ್ ಲೇಟೆನ್ಸಿಯನ್ನು ಸೂಕ್ಷ್ಮವಾಗಿ ಗಮನಿಸಿ.
ಗಾರ್ಡ್ರೈಲ್ಗಳು : ಪ್ರತಿ ಕಾರ್ಯಕ್ಷಮತೆ ಬದಲಾವಣೆಯ ನಂತರ ಗೋಲ್ಡನ್ ಪ್ರಾಂಪ್ಟ್ಗಳು, ಕಾರ್ಯ ಮೆಟ್ರಿಕ್ಗಳು ಮತ್ತು ಸ್ಪಾಟ್ ಚೆಕ್ಗಳನ್ನು ರನ್ ಮಾಡಿ.

🔗 AI ಮಾದರಿಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದು ಹೇಗೆ
ಮಾದರಿಗಳನ್ನು ನ್ಯಾಯಯುತವಾಗಿ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿ ನಿರ್ಣಯಿಸಲು ಪ್ರಮುಖ ಮಾನದಂಡಗಳು ಮತ್ತು ಹಂತಗಳು.
🔗 ನೈಜ ಮೆಟ್ರಿಕ್ಗಳೊಂದಿಗೆ AI ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಳೆಯುವುದು ಹೇಗೆ
ಹೋಲಿಸಲು ಮಾನದಂಡಗಳು, ಸುಪ್ತತೆ, ವೆಚ್ಚ ಮತ್ತು ಗುಣಮಟ್ಟದ ಸಂಕೇತಗಳನ್ನು ಬಳಸಿ.
🔗 ಉತ್ಪಾದನೆಗೆ ಮೊದಲು AI ಮಾದರಿಗಳನ್ನು ಹೇಗೆ ಪರೀಕ್ಷಿಸುವುದು
ಪ್ರಾಯೋಗಿಕ ಪರೀಕ್ಷೆಯ ಕಾರ್ಯಪ್ರವಾಹ: ಡೇಟಾ ವಿಭಜನೆಗಳು, ಒತ್ತಡದ ಪ್ರಕರಣಗಳು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ.
🔗 ವಿಷಯ ರಚನೆಗೆ AI ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು
ರಚನಾತ್ಮಕ ಪ್ರಾಂಪ್ಟ್ಗಳು ಮತ್ತು ಪುನರಾವರ್ತನೆಯೊಂದಿಗೆ ಆಲೋಚನೆಗಳನ್ನು ವೇಗವಾಗಿ ಡ್ರಾಫ್ಟ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸಿ.
1) ಆಚರಣೆಯಲ್ಲಿ "ಆಪ್ಟಿಮೈಜ್" ಎಂದರೆ ಏನು (ಏಕೆಂದರೆ ಪ್ರತಿಯೊಬ್ಬರೂ ಅದನ್ನು ವಿಭಿನ್ನವಾಗಿ ಬಳಸುತ್ತಾರೆ) 🧠
ಜನರು "AI ಮಾದರಿಯನ್ನು ಅತ್ಯುತ್ತಮಗೊಳಿಸಿ" ಎಂದು ಹೇಳಿದಾಗ, ಅವರು ಅರ್ಥೈಸಬಹುದು:
-
ಅದನ್ನು ವೇಗವಾಗಿ ಮಾಡಿ (ಸುಪ್ತತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಿ)
-
ಅದನ್ನು ಅಗ್ಗಗೊಳಿಸಿ (ಕಡಿಮೆ GPU-ಗಂಟೆಗಳು, ಕಡಿಮೆ ಕ್ಲೌಡ್ ಖರ್ಚು)
-
ಅದನ್ನು ಚಿಕ್ಕದಾಗಿಸಿ (ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತು, ಅಂಚಿನ ನಿಯೋಜನೆ)
-
ಅದನ್ನು ಹೆಚ್ಚು ನಿಖರವಾಗಿಸಿ (ಗುಣಮಟ್ಟದ ಸುಧಾರಣೆಗಳು, ಕಡಿಮೆ ಭ್ರಮೆಗಳು)
-
ಅದನ್ನು ಹೆಚ್ಚು ಸ್ಥಿರಗೊಳಿಸಿ (ವ್ಯತ್ಯಾಸ ಕಡಿಮೆ, ಉತ್ಪಾದನೆಯಲ್ಲಿ ಕಡಿಮೆ ವೈಫಲ್ಯಗಳು)
-
ಸರ್ವ್ ಮಾಡುವುದನ್ನು ಸುಲಭಗೊಳಿಸಿ (ಥ್ರೂಪುಟ್, ಬ್ಯಾಚಿಂಗ್, ಊಹಿಸಬಹುದಾದ ಕಾರ್ಯಕ್ಷಮತೆ)
ಸ್ವಲ್ಪ ಕಿರಿಕಿರಿ ಉಂಟುಮಾಡುವ ಸತ್ಯ ಇಲ್ಲಿದೆ: ನೀವು ಇವೆಲ್ಲವನ್ನೂ ಒಂದೇ ಬಾರಿಗೆ ಗರಿಷ್ಠಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಆಪ್ಟಿಮೈಸೇಶನ್ ಎಂದರೆ ಬಲೂನನ್ನು ಹಿಸುಕಿದಂತೆ - ಒಂದು ಬದಿಯನ್ನು ಒಳಗೆ ತಳ್ಳಿದರೆ ಇನ್ನೊಂದು ಬದಿ ಹೊರಬರುತ್ತದೆ. ಯಾವಾಗಲೂ ಅಲ್ಲ, ಆದರೆ ನೀವು ರಾಜಿ ವಿನಿಮಯಕ್ಕಾಗಿ ಯೋಜಿಸಬೇಕಾದಷ್ಟು ಬಾರಿ.
ಆದ್ದರಿಂದ ಏನನ್ನಾದರೂ ಮುಟ್ಟುವ ಮೊದಲು, ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ ನಿರ್ಬಂಧವನ್ನು :
-
ನೀವು ಬಳಕೆದಾರರಿಗೆ ಲೈವ್ ಸೇವೆ ನೀಡುತ್ತಿದ್ದರೆ, ನೀವು p95 ಲೇಟೆನ್ಸಿ ( AWS ಕ್ಲೌಡ್ವಾಚ್ ಶೇಕಡಾವಾರುಗಳು ) ಮತ್ತು ಟೈಲ್ ಕಾರ್ಯಕ್ಷಮತೆ ( “ಟೈಲ್ ಲೇಟೆನ್ಸಿ” ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸ ) ಬಗ್ಗೆ ಕಾಳಜಿ ವಹಿಸುತ್ತೀರಿ 📉
-
ನೀವು ತರಬೇತಿ ಪಡೆಯುತ್ತಿದ್ದರೆ, ಗುಣಮಟ್ಟದ ಸಮಯ ಮತ್ತು GPU ಬಳಕೆಯ ಬಗ್ಗೆ ನೀವು ಕಾಳಜಿ ವಹಿಸುತ್ತೀರಿ 🔥
-
ನೀವು ಸಾಧನಗಳಲ್ಲಿ ನಿಯೋಜಿಸುತ್ತಿದ್ದರೆ, ನೀವು RAM ಮತ್ತು ಪವರ್ 🔋
2) AI ಮಾದರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ನ ಉತ್ತಮ ಆವೃತ್ತಿ ಹೇಗಿದೆ ✅
ಉತ್ತಮ ಆಪ್ಟಿಮೈಸೇಶನ್ನ ಒಂದು ಉತ್ತಮ ಆವೃತ್ತಿಯು ಕೇವಲ "ಕ್ವಾಂಟೀಕರಣವನ್ನು ಅನ್ವಯಿಸಿ ಮತ್ತು ಪ್ರಾರ್ಥಿಸಿ" ಅಲ್ಲ. ಇದು ಒಂದು ವ್ಯವಸ್ಥೆ. ಅತ್ಯುತ್ತಮ ಸೆಟಪ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಇವುಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ:
-
ನೀವು ನಂಬುವ ಒಂದು ಮೂಲರೇಖೆ
ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಫಲಿತಾಂಶಗಳನ್ನು ಪುನರುತ್ಪಾದಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ನೀವು ಏನನ್ನಾದರೂ ಸುಧಾರಿಸಿದ್ದೀರಿ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿರುವುದಿಲ್ಲ. ಸರಳ… ಆದರೆ ಜನರು ಅದನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತಾರೆ. ನಂತರ ಅವರು ಸುರುಳಿಯಾಗುತ್ತಾರೆ. -
ಎಂಬ ಸ್ಪಷ್ಟ ಗುರಿ ಮೆಟ್ರಿಕ್
ಅಸ್ಪಷ್ಟವಾಗಿದೆ. "ಅದೇ ಗುಣಮಟ್ಟದ ಸ್ಕೋರ್ನಲ್ಲಿ p95 ಲೇಟೆನ್ಸಿಯನ್ನು 900ms ನಿಂದ 300ms ಗೆ ಕಡಿತಗೊಳಿಸಿ" ಎಂಬುದು ನಿಜವಾದ ಗುರಿಯಾಗಿದೆ. -
ಗುಣಮಟ್ಟಕ್ಕಾಗಿ ಗಾರ್ಡ್ರೈಲ್ಗಳು
ಪ್ರತಿಯೊಂದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಗೆಲುವು ಮೌನ ಗುಣಮಟ್ಟದ ಹಿಂಜರಿತವನ್ನು ಎದುರಿಸುತ್ತದೆ. ನಿಮಗೆ ಪರೀಕ್ಷೆಗಳು, ಮೌಲ್ಯಮಾಪನಗಳು ಅಥವಾ ಕನಿಷ್ಠ ಒಂದು ವಿವೇಕ ಸೂಟ್ ಅಗತ್ಯವಿದೆ. -
ಹಾರ್ಡ್ವೇರ್ ಅರಿವು
ಒಂದು GPU ನಲ್ಲಿರುವ "ವೇಗದ" ಮಾದರಿಯು ಇನ್ನೊಂದರಲ್ಲಿ ತೆವಳಬಹುದು. CPU ಗಳು ತಮ್ಮದೇ ಆದ ವಿಶೇಷ ರೀತಿಯ ಅವ್ಯವಸ್ಥೆ. -
ಪುನರಾವರ್ತಿತ ಬದಲಾವಣೆಗಳು, ಬಿಗ್-ಬ್ಯಾಂಗ್ ಪುನಃ ಬರೆಯುವಿಕೆ ಅಲ್ಲ
ನೀವು ಏಕಕಾಲದಲ್ಲಿ ಐದು ವಿಷಯಗಳನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಸುಧಾರಿಸಿದಾಗ, ಏಕೆ ಎಂದು ನಿಮಗೆ ತಿಳಿದಿರುವುದಿಲ್ಲ. ಅದು... ಆತಂಕಕಾರಿ.
ಆಪ್ಟಿಮೈಸೇಶನ್ ಗಿಟಾರ್ ಟ್ಯೂನ್ ಮಾಡಿದಂತೆ ಭಾಸವಾಗಬೇಕು - ಸಣ್ಣ ಹೊಂದಾಣಿಕೆಗಳು, ಗಮನವಿಟ್ಟು ಆಲಿಸಿ, ಪುನರಾವರ್ತಿಸಿ 🎸. ಅದು ಚಾಕುಗಳನ್ನು ಜಗ್ಲಿಂಗ್ ಮಾಡುವಂತೆ ಭಾಸವಾದರೆ, ಏನೋ ತಪ್ಪಾಗಿದೆ.
3) ಹೋಲಿಕೆ ಕೋಷ್ಟಕ: AI ಮಾದರಿಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಜನಪ್ರಿಯ ಆಯ್ಕೆಗಳು 📊
ಸಾಮಾನ್ಯ ಆಪ್ಟಿಮೈಸೇಶನ್ ಪರಿಕರಗಳು/ವಿಧಾನಗಳ ತ್ವರಿತ ಮತ್ತು ಸ್ವಲ್ಪ ಕೊಳಕು ಹೋಲಿಕೆ ಕೋಷ್ಟಕವನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ. ಇಲ್ಲ, ಇದು ಸಂಪೂರ್ಣವಾಗಿ "ನ್ಯಾಯಯುತ"ವಲ್ಲ - ನಿಜ ಜೀವನವೂ ಅಲ್ಲ.
| ಪರಿಕರ / ಆಯ್ಕೆ | ಪ್ರೇಕ್ಷಕರು | ಬೆಲೆ | ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ |
|---|---|---|---|
ಪೈಟಾರ್ಚ್ ಟಾರ್ಚ್.ಕಂಪೈಲ್ ( ಪೈಟಾರ್ಚ್ ಡಾಕ್ಸ್ ) |
ಪೈಟಾರ್ಚ್ ಜನರೇ | ಉಚಿತ | ಗ್ರಾಫ್ ಕ್ಯಾಪ್ಚರ್ + ಕಂಪೈಲರ್ ತಂತ್ರಗಳು ಓವರ್ಹೆಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು… ಕೆಲವೊಮ್ಮೆ ಇದು ಮ್ಯಾಜಿಕ್ ಆಗಿರುತ್ತದೆ ✨ |
| ONNX ರನ್ಟೈಮ್ ( ONNX ರನ್ಟೈಮ್ ಡಾಕ್ಸ್ ) | ನಿಯೋಜನಾ ತಂಡಗಳು | ಉಚಿತ | ಬಲವಾದ ನಿರ್ಣಯ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು, ವಿಶಾಲ ಬೆಂಬಲ, ಪ್ರಮಾಣೀಕೃತ ಸೇವೆಗೆ ಒಳ್ಳೆಯದು |
| ಟೆನ್ಸರ್ಆರ್ಟಿ ( ಎನ್ವಿಡಿಯಾ ಟೆನ್ಸರ್ಆರ್ಟಿ ದಾಖಲೆಗಳು ) | NVIDIA ನಿಯೋಜನೆ | ಪಾವತಿಸಿದ ವೈಬ್ಗಳು (ಸಾಮಾನ್ಯವಾಗಿ ಬಂಡಲ್ ಮಾಡಲಾಗುತ್ತದೆ) | ಆಕ್ರಮಣಕಾರಿ ಕರ್ನಲ್ ಸಮ್ಮಿಳನ + ನಿಖರ ನಿರ್ವಹಣೆ, ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತುಂಬಾ ವೇಗವಾಗಿರುತ್ತದೆ |
| ಡೀಪ್ಸ್ಪೀಡ್ ( ಜೆರೋ ಡಾಕ್ಸ್ ) | ತರಬೇತಿ ತಂಡಗಳು | ಉಚಿತ | ಮೆಮೊರಿ + ಥ್ರೋಪುಟ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು (ZeRO ಇತ್ಯಾದಿ). ಜೆಟ್ ಎಂಜಿನ್ನಂತೆ ಭಾಸವಾಗಬಹುದು |
| FSDP (ಪೈಟಾರ್ಚ್) ( ಪೈಟಾರ್ಚ್ FSDP ದಾಖಲೆಗಳು ) | ತರಬೇತಿ ತಂಡಗಳು | ಉಚಿತ | ಚೂರುಗಳ ನಿಯತಾಂಕಗಳು/ಇಳಿಜಾರುಗಳು, ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ಕಡಿಮೆ ಭಯಾನಕವಾಗಿಸುತ್ತದೆ |
| ಬಿಟ್ಸ್ಯಾಂಡ್ಬೈಟ್ಗಳ ಕ್ವಾಂಟೀಕರಣ ( ಬಿಟ್ಸ್ಯಾಂಡ್ಬೈಟ್ಗಳು ) | ಎಲ್ಎಲ್ಎಂ ಟಿಂಕರರ್ಸ್ | ಉಚಿತ | ಕಡಿಮೆ-ಬಿಟ್ ತೂಕ, ದೊಡ್ಡ ಮೆಮೊರಿ ಉಳಿತಾಯ - ಗುಣಮಟ್ಟವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ, ಆದರೆ ಅಯ್ಯೋ 😬 |
| ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆ ( ಹಿಂಟನ್ ಮತ್ತು ಇತರರು, 2015 ) | ಉತ್ಪನ್ನ ತಂಡಗಳು | "ಸಮಯದ ವೆಚ್ಚ" | ಚಿಕ್ಕ ವಿದ್ಯಾರ್ಥಿ ಮಾದರಿಯು ನಡವಳಿಕೆಯನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಉತ್ತಮ ROI ದೀರ್ಘಾವಧಿಯಲ್ಲಿ |
| ಪ್ರೂನಿಂಗ್ ( ಪೈಟಾರ್ಚ್ ಪ್ರೂನಿಂಗ್ ಟ್ಯುಟೋರಿಯಲ್ ) | ಸಂಶೋಧನೆ + ಉತ್ಪನ್ನ | ಉಚಿತ | ಸತ್ತ ತೂಕವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಮರುತರಬೇತಿಯೊಂದಿಗೆ ಜೋಡಿಸಿದಾಗ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ |
| ಫ್ಲ್ಯಾಶ್ ಅಟೆನ್ಷನ್ / ಫ್ಯೂಸ್ಡ್ ಕರ್ನಲ್ಗಳು ( ಫ್ಲ್ಯಾಶ್ ಅಟೆನ್ಷನ್ ಪೇಪರ್ ) | ಪ್ರದರ್ಶನದ ಬಗ್ಗೆ ನರ್ಡ್ಸ್ | ಉಚಿತ | ವೇಗವಾದ ಗಮನ, ಉತ್ತಮ ಸ್ಮರಣಶಕ್ತಿ. ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳಿಗೆ ನಿಜವಾದ ಗೆಲುವು |
| ಟ್ರೈಟಾನ್ ಇನ್ಫರೆನ್ಸ್ ಸರ್ವರ್ ( ಡೈನಾಮಿಕ್ ಬ್ಯಾಚಿಂಗ್ ) | ಕಾರ್ಯಾಚರಣೆಗಳು/ಇನ್ಫ್ರಾ | ಉಚಿತ | ಉತ್ಪಾದನಾ ಸೇವೆ, ಬ್ಯಾಚಿಂಗ್, ಬಹು-ಮಾದರಿ ಪೈಪ್ಲೈನ್ಗಳು - ಉದ್ಯಮಶೀಲತೆಯಂತೆ ಭಾಸವಾಗುತ್ತದೆ |
ವಿಚಿತ್ರ ತಪ್ಪೊಪ್ಪಿಗೆಯನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವುದು: "ಬೆಲೆ" ಅಶುದ್ಧವಾಗಿದೆ ಏಕೆಂದರೆ ಓಪನ್-ಸೋರ್ಸ್ ಇನ್ನೂ ವಾರಾಂತ್ಯದ ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ನಿಮಗೆ ವೆಚ್ಚ ಮಾಡಬಹುದು, ಅದು ... ಒಂದು ಬೆಲೆ. 😵💫
4) ಅಳತೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ: ನಿಮ್ಮ ಮಾತಿನಂತೆ ಪ್ರೊಫೈಲ್ 🔍
ಈ ಇಡೀ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ನೀವು ಒಂದೇ ಒಂದು ಕೆಲಸವನ್ನು ಮಾಡಿದರೆ, ಇದನ್ನು ಮಾಡಿ: ಸರಿಯಾಗಿ ಅಳೆಯಿರಿ.
ನನ್ನದೇ ಆದ ಪರೀಕ್ಷೆಯಲ್ಲಿ, ಅತಿ ದೊಡ್ಡ "ಆಪ್ಟಿಮೈಸೇಶನ್ ಪ್ರಗತಿಗಳು" ಸರಳವಾದದ್ದನ್ನು ಕಂಡುಹಿಡಿದಾಗ ಬಂದವು, ಉದಾಹರಣೆಗೆ:
-
ಡೇಟಾ ಲೋಡರ್ GPU ಅನ್ನು ಹಸಿವಿನಿಂದ ಬಳಲುತ್ತಿದೆ
-
CPU ಪೂರ್ವ-ಸಂಸ್ಕರಣಾ ಅಡಚಣೆ
-
ಸಣ್ಣ ಬ್ಯಾಚ್ ಗಾತ್ರಗಳು ಕರ್ನಲ್ ಉಡಾವಣೆಗೆ ಕಾರಣವಾಗುತ್ತವೆ ಓವರ್ಹೆಡ್
-
ನಿಧಾನ ಟೋಕನೈಸೇಶನ್ (ಟೋಕನೈಜರ್ಗಳು ಶಾಂತ ಖಳನಾಯಕರಾಗಬಹುದು)
-
ಮೆಮೊರಿ ವಿಘಟನೆ ( ಪೈಟಾರ್ಚ್ CUDA ಮೆಮೊರಿ ಹಂಚಿಕೆ ಟಿಪ್ಪಣಿಗಳು )
-
ಏಕ ಪದರದ ಪ್ರಾಬಲ್ಯ ಹೊಂದಿರುವ ಕಂಪ್ಯೂಟ್
ಏನು ಅಳೆಯಬೇಕು (ಕನಿಷ್ಠ ಸೆಟ್)
-
ಸುಪ್ತತೆ (p50, p95, p99) ( ಸುಪ್ತತೆಯ ಶೇಕಡಾವಾರುಗಳ ಮೇಲೆ SRE )
-
ಥ್ರೋಪುಟ್ (ಟೋಕನ್ಗಳು/ಸೆಕೆಂಡು, ವಿನಂತಿಗಳು/ಸೆಕೆಂಡು)
-
GPU ಬಳಕೆ (ಕಂಪ್ಯೂಟ್ + ಮೆಮೊರಿ)
-
VRAM / RAM ಶಿಖರಗಳು
-
ಪ್ರತಿ 1k ಟೋಕನ್ಗಳ ಬೆಲೆ (ಅಥವಾ ಅನುಮಾನದ ಪ್ರಕಾರ)
ಪ್ರಾಯೋಗಿಕ ಪ್ರೊಫೈಲಿಂಗ್ ಮನಸ್ಥಿತಿ
-
ನೀವು ಕಾಳಜಿ ವಹಿಸುವ ಒಂದು ಸನ್ನಿವೇಶವನ್ನು ವಿವರಿಸಿ (ಆಟಿಕೆ ಪ್ರಾಂಪ್ಟ್ ಅಲ್ಲ).
-
ಎಲ್ಲವನ್ನೂ ಒಂದು ಸಣ್ಣ "ಪರ್ಫ್ ಜರ್ನಲ್" ನಲ್ಲಿ ರೆಕಾರ್ಡ್ ಮಾಡಿ.
ಹೌದು ಇದು ಬೇಸರದ ಸಂಗತಿ... ಆದರೆ ಅದು ನಂತರ ನಿಮ್ಮನ್ನು ಗ್ಯಾಸ್ಲೈಟ್ ಮಾಡುವುದರಿಂದ ಉಳಿಸುತ್ತದೆ.
(ನೀವು ಪ್ರಾರಂಭಿಸಲು ಕಾಂಕ್ರೀಟ್ ಪರಿಕರವನ್ನು ಬಯಸಿದರೆ: PyTorch ಪ್ರೊಫೈಲರ್ ( torch.profiler docs ) ಮತ್ತು Nsight Systems ( NVIDIA Nsight Systems ) ಸಾಮಾನ್ಯ ಶಂಕಿತರು.)
5) ಡೇಟಾ + ತರಬೇತಿ ಆಪ್ಟಿಮೈಸೇಶನ್: ಶಾಂತ ಸೂಪರ್ ಪವರ್ 📦🚀
ಜನರು ಮಾದರಿ ವಾಸ್ತುಶಿಲ್ಪದ ಬಗ್ಗೆ ಗೀಳನ್ನು ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಪೈಪ್ಲೈನ್ ಅನ್ನು ಮರೆತುಬಿಡುತ್ತಾರೆ. ಅಷ್ಟರಲ್ಲಿ ಪೈಪ್ಲೈನ್ ಸದ್ದಿಲ್ಲದೆ GPU ನ ಅರ್ಧದಷ್ಟು ಸುಟ್ಟುಹೋಗುತ್ತದೆ.
ವೇಗವಾಗಿ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಸುಲಭ ಗೆಲುವುಗಳು
-
ಮಿಶ್ರ ನಿಖರತೆಯನ್ನು ಬಳಸಿ (FP16/BF16 ಸ್ಥಿರವಾಗಿದ್ದರೆ) ( PyTorch AMP / torch.amp )
ಸಾಮಾನ್ಯವಾಗಿ ವೇಗವಾಗಿರುತ್ತದೆ, ಆಗಾಗ್ಗೆ ಉತ್ತಮವಾಗಿರುತ್ತದೆ - ಆದರೆ ಸಂಖ್ಯಾತ್ಮಕ ವೈಶಿಷ್ಟ್ಯಗಳಿಗಾಗಿ ನೋಡಿ. -
ಬ್ಯಾಚ್ ಗಾತ್ರ ಸೀಮಿತವಾದಾಗ ಗ್ರೇಡಿಯಂಟ್ ಸಂಗ್ರಹಣೆ 🤗 ವೇಗವರ್ಧನೆ ಮಾರ್ಗದರ್ಶಿ )
ಮೆಮೊರಿಯನ್ನು ಸ್ಫೋಟಿಸದೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಸ್ಥಿರವಾಗಿರಿಸುತ್ತದೆ. -
ಗ್ರೇಡಿಯಂಟ್ ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ( torch.utils.checkpoint )
ಮೆಮೊರಿಗಾಗಿ ಟ್ರೇಡ್ಗಳು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತವೆ - ದೊಡ್ಡ ಸಂದರ್ಭಗಳನ್ನು ಕಾರ್ಯಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. -
ಪರಿಣಾಮಕಾರಿ ಟೋಕನೈಸೇಶನ್ ( 🤗 ಟೋಕನೈಜರ್ಗಳು )
ಟೋಕನೈಸೇಶನ್ ಪ್ರಮಾಣದಲ್ಲಿ ಅಡಚಣೆಯಾಗಬಹುದು. ಇದು ಆಕರ್ಷಕವಲ್ಲ; ಇದು ಮುಖ್ಯವಾಗಿದೆ. -
ಡೇಟಾಲೋಡರ್ ಟ್ಯೂನಿಂಗ್
ಹೆಚ್ಚಿನ ಕೆಲಸಗಾರರು, ಪಿನ್ ಮಾಡಿದ ಮೆಮೊರಿ, ಮೊದಲೇ ಪಡೆಯುವುದು - ತೋರಿಕೆಯಿಲ್ಲ ಆದರೆ ಪರಿಣಾಮಕಾರಿ 😴➡️💪 ( ಪೈಟಾರ್ಚ್ ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್ )
ನಿಯತಾಂಕ-ಸಮರ್ಥ ಸೂಕ್ಷ್ಮ ಶ್ರುತಿ
ನೀವು ದೊಡ್ಡ ಮಾದರಿಗಳನ್ನು ಉತ್ತಮವಾಗಿ ಟ್ಯೂನ್ ಮಾಡುತ್ತಿದ್ದರೆ, PEFT ವಿಧಾನಗಳು (LoRA-ಶೈಲಿಯ ಅಡಾಪ್ಟರುಗಳಂತೆ) ಆಶ್ಚರ್ಯಕರವಾಗಿ ಬಲವಾಗಿ ಉಳಿಯುವಾಗ ತರಬೇತಿ ವೆಚ್ಚವನ್ನು ಬೃಹತ್ ಪ್ರಮಾಣದಲ್ಲಿ ಕಡಿಮೆ ಮಾಡಬಹುದು ( 🤗 ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಸ್ PEFT ಮಾರ್ಗದರ್ಶಿ , LoRA ಪೇಪರ್ ). ಇದು “ನಾವು ಇದನ್ನು ಮೊದಲೇ ಏಕೆ ಮಾಡಲಿಲ್ಲ?” ಎಂಬ ಪ್ರಶ್ನೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
6) ಆರ್ಕಿಟೆಕ್ಚರ್-ಲೆವೆಲ್ ಆಪ್ಟಿಮೈಸೇಶನ್: ಮಾದರಿಯ ಬಲ-ಗಾತ್ರ 🧩
ಕೆಲವೊಮ್ಮೆ ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಉತ್ತಮ ಮಾರ್ಗವೆಂದರೆ... ಕೆಲಸಕ್ಕೆ ತುಂಬಾ ದೊಡ್ಡದಾದ ಮಾದರಿಯನ್ನು ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದು. ನನಗೆ ಗೊತ್ತು, ಧರ್ಮನಿಂದನೆ 😄.
ಕೆಲವು ಮೂಲಭೂತ ವಿಷಯಗಳ ಕುರಿತು ಕರೆ ಮಾಡಿ:
-
ನಿಮಗೆ ಸಂಪೂರ್ಣ ಸಾಮಾನ್ಯ-ಬುದ್ಧಿಮತ್ತೆಯ ವೈಬ್ಗಳು ಬೇಕೇ ಅಥವಾ ತಜ್ಞರ ಅಗತ್ಯವಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಿ.
-
ಸಂದರ್ಭ ವಿಂಡೋವನ್ನು ಎಷ್ಟು ಬೇಕೋ ಅಷ್ಟು ದೊಡ್ಡದಾಗಿ ಇರಿಸಿ, ದೊಡ್ಡದಾಗಿ ಅಲ್ಲ.
-
ಕೈಯಲ್ಲಿರುವ ಕೆಲಸಕ್ಕೆ ತರಬೇತಿ ಪಡೆದ ಮಾದರಿಯನ್ನು ಬಳಸಿ (ವರ್ಗೀಕರಣ ಕೆಲಸಕ್ಕಾಗಿ ವರ್ಗೀಕರಣ ಮಾದರಿಗಳು, ಇತ್ಯಾದಿ).
ಪ್ರಾಯೋಗಿಕ ಬಲ-ಗಾತ್ರ ತಂತ್ರಗಳು
-
ಹೆಚ್ಚಿನ ವಿನಂತಿಗಳಿಗೆ
ಸಣ್ಣ ಮೂಲಮಾದರಿಗೆ ಬದಲಿಸಿ ನಂತರ "ಕಠಿಣ ಪ್ರಶ್ನೆಗಳನ್ನು" ದೊಡ್ಡ ಮಾದರಿಗೆ ರೂಟ್ ಮಾಡಿ. -
ಎರಡು ಹಂತದ ಸೆಟಪ್ ಬಳಸಿ
ವೇಗದ ಮಾದರಿ ಡ್ರಾಫ್ಟ್ಗಳು, ಬಲವಾದ ಮಾದರಿ ಪರಿಶೀಲನೆಗಳು ಅಥವಾ ಸಂಪಾದನೆಗಳು.
ಇದು ಸುಲಭವಾಗಿ ಆಯ್ಕೆ ಮಾಡುವ - ಕಿರಿಕಿರಿ ಉಂಟುಮಾಡುವ, ಆದರೆ ಪರಿಣಾಮಕಾರಿಯಾದ ಸ್ನೇಹಿತನೊಂದಿಗೆ ಬರೆಯುವಂತಿದೆ. -
ಔಟ್ಪುಟ್ ಉದ್ದವನ್ನು ಕಡಿಮೆ ಮಾಡಿ
ಔಟ್ಪುಟ್ ಟೋಕನ್ಗಳು ಹಣ ಮತ್ತು ಸಮಯವನ್ನು ಖರ್ಚು ಮಾಡುತ್ತವೆ. ನಿಮ್ಮ ಮಾದರಿ ಅಡ್ಡಾದಿಡ್ಡಿಯಾಗಿ ನಡೆದರೆ, ನೀವು ಅಡ್ಡಾದಿಡ್ಡಿಯಾಗಿ ಖರ್ಚು ಮಾಡುತ್ತೀರಿ.
ಕಡಿಮೆ ಔಟ್ಪುಟ್ಗಳನ್ನು ಜಾರಿಗೊಳಿಸುವ ಮೂಲಕ ತಂಡಗಳು ವೆಚ್ಚವನ್ನು ನಾಟಕೀಯವಾಗಿ ಕಡಿತಗೊಳಿಸುವುದನ್ನು ನಾನು ನೋಡಿದ್ದೇನೆ. ಇದು ಕ್ಷುಲ್ಲಕವೆನಿಸುತ್ತದೆ. ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ.
7) ಕಂಪೈಲರ್ + ಗ್ರಾಫ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು: ವೇಗ ಎಲ್ಲಿಂದ ಬರುತ್ತದೆ 🏎️
ಇದು "ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸ್ಮಾರ್ಟ್ ಕಂಪ್ಯೂಟರ್ ಸ್ಟಫ್ ಮಾಡುವಂತೆ ಮಾಡಿ" ಎಂಬ ಪದರವಾಗಿದೆ.
ಸಾಮಾನ್ಯ ತಂತ್ರಗಳು:
-
ಆಪರೇಟರ್ ಫ್ಯೂಷನ್ (ಕರ್ನಲ್ಗಳನ್ನು ಸಂಯೋಜಿಸಿ) ( NVIDIA TensorRT "ಲೇಯರ್ ಫ್ಯೂಷನ್" )
-
ಸ್ಥಿರ ಮಡಿಸುವಿಕೆ (ಸ್ಥಿರ ಮೌಲ್ಯಗಳನ್ನು ಪೂರ್ವ-ಗಣನೆ) ( ONNX ರನ್ಟೈಮ್ ಗ್ರಾಫ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು )
-
ಕರ್ನಲ್ ಆಯ್ಕೆಯು ಹಾರ್ಡ್ವೇರ್ಗೆ ಟ್ಯೂನ್ ಆಗಿದೆ.
-
ಪೈಥಾನ್ ಓವರ್ಹೆಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಗ್ರಾಫ್ ಕ್ಯಾಪ್ಚರ್
torch.compileಅವಲೋಕನ )
ಸರಳವಾಗಿ ಹೇಳುವುದಾದರೆ: ನಿಮ್ಮ ಮಾದರಿಯು ಗಣಿತೀಯವಾಗಿ ವೇಗವಾಗಿರಬಹುದು, ಆದರೆ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ನಿಧಾನವಾಗಿರಬಹುದು. ಕಂಪೈಲರ್ಗಳು ಅದರಲ್ಲಿ ಕೆಲವನ್ನು ಸರಿಪಡಿಸುತ್ತವೆ.
ಪ್ರಾಯೋಗಿಕ ಟಿಪ್ಪಣಿಗಳು (ಅಕಾ ಗಾಯದ ಗುರುತುಗಳು)
-
ಈ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು ಮಾದರಿ ಆಕಾರ ಬದಲಾವಣೆಗಳಿಗೆ ಸೂಕ್ಷ್ಮವಾಗಿರಬಹುದು.
-
ಕೆಲವು ಮಾದರಿಗಳು ಬಹಳಷ್ಟು ವೇಗವನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ, ಕೆಲವು ಅಷ್ಟೇನೂ ಚಲಿಸುವುದಿಲ್ಲ.
-
ಕೆಲವೊಮ್ಮೆ ನೀವು ವೇಗವರ್ಧನೆ ಮತ್ತು ಗೊಂದಲಮಯ ದೋಷವನ್ನು ಪಡೆಯುತ್ತೀರಿ - ಗ್ರೆಮ್ಲಿನ್ ಒಳಗೆ ಬಂದಂತೆ 🧌
ಆದರೂ, ಅದು ಕೆಲಸ ಮಾಡುವಾಗ, ಅದು ಅತ್ಯಂತ ಸ್ವಚ್ಛವಾದ ಗೆಲುವುಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
8) ಪ್ರಮಾಣೀಕರಣ, ಸಮರುವಿಕೆ, ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆ: ಅಳದೆ ಚಿಕ್ಕದು (ತುಂಬಾ) 🪓📉
ಇದು ಜನರು ಬಯಸುವ ವಿಭಾಗ... ಏಕೆಂದರೆ ಇದು ಉಚಿತ ಪ್ರದರ್ಶನದಂತೆ ತೋರುತ್ತದೆ. ಅದು ಆಗಿರಬಹುದು, ಆದರೆ ನೀವು ಅದನ್ನು ಶಸ್ತ್ರಚಿಕಿತ್ಸೆಯಂತೆಯೇ ಪರಿಗಣಿಸಬೇಕು.
ಪ್ರಮಾಣೀಕರಣ (ಕಡಿಮೆ ನಿಖರತೆಯ ತೂಕ/ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಗಳು)
-
ನಿರ್ಣಯ ವೇಗ ಮತ್ತು ಸ್ಮರಣೆಗೆ ಉತ್ತಮವಾಗಿದೆ
-
ಅಪಾಯ: ಗುಣಮಟ್ಟ ಕುಸಿಯುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಅಂಚಿನ ಪ್ರಕರಣಗಳಲ್ಲಿ
-
ಉತ್ತಮ ಅಭ್ಯಾಸ: ವೈಬ್ಗಳಲ್ಲ, ನಿಜವಾದ ಪರೀಕ್ಷಾ ಸೆಟ್ನಲ್ಲಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ
ನೀವು ಕೇಳುವ ಸಾಮಾನ್ಯ ಸುವಾಸನೆಗಳು:
-
INT8 (ಸಾಮಾನ್ಯವಾಗಿ ಘನ) ( ಟೆನ್ಸರ್ಆರ್ಟಿ ಕ್ವಾಂಟೈಸ್ಡ್ ಪ್ರಕಾರಗಳು )
-
INT4 / ಕಡಿಮೆ-ಬಿಟ್ (ದೊಡ್ಡ ಉಳಿತಾಯ, ಗುಣಮಟ್ಟದ ಅಪಾಯ ಹೆಚ್ಚಾಗುತ್ತದೆ) ( ಬಿಟ್ಗಳು ಮತ್ತು ಬೈಟ್ಗಳು k-ಬಿಟ್ ಕ್ವಾಂಟೀಕರಣ )
-
ಮಿಶ್ರ ಕ್ವಾಂಟ್ (ಎಲ್ಲದಕ್ಕೂ ಒಂದೇ ರೀತಿಯ ನಿಖರತೆಯ ಅಗತ್ಯವಿಲ್ಲ)
ಸಮರುವಿಕೆ (ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಹಾಕಿ)
-
"ಮುಖ್ಯವಲ್ಲದ" ತೂಕ ಅಥವಾ ರಚನೆಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ( ಪೈಟಾರ್ಚ್ ಸಮರುವಿಕೆ ಟ್ಯುಟೋರಿಯಲ್ )
-
ಗುಣಮಟ್ಟವನ್ನು ಮರಳಿ ಪಡೆಯಲು ಸಾಮಾನ್ಯವಾಗಿ ಮರುತರಬೇತಿ ಅಗತ್ಯವಿದೆ
-
ಜನರು ಯೋಚಿಸುವುದಕ್ಕಿಂತ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ... ಎಚ್ಚರಿಕೆಯಿಂದ ಮಾಡಿದಾಗ
ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆ (ವಿದ್ಯಾರ್ಥಿಯು ಶಿಕ್ಷಕರಿಂದ ಕಲಿಯುವುದು)
ಇದು ನನ್ನ ವೈಯಕ್ತಿಕ ನೆಚ್ಚಿನ ದೀರ್ಘಕಾಲೀನ ಲಿವರ್. ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆಯು ಇದೇ ರೀತಿ ವರ್ತಿಸುವ ಸಣ್ಣ ಮಾದರಿಯನ್ನು ಉತ್ಪಾದಿಸಬಹುದು ಮತ್ತು ಇದು ಹೆಚ್ಚಾಗಿ ತೀವ್ರ ಕ್ವಾಂಟೀಕರಣಕ್ಕಿಂತ ( ನರ ಜಾಲದಲ್ಲಿ ಜ್ಞಾನವನ್ನು ಬಟ್ಟಿ ಇಳಿಸುವುದು ) ಹೆಚ್ಚು ಸ್ಥಿರವಾಗಿರುತ್ತದೆ.
ಒಂದು ಅಪೂರ್ಣ ರೂಪಕ: ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆಯು ಸಂಕೀರ್ಣವಾದ ಸೂಪ್ ಅನ್ನು ಫಿಲ್ಟರ್ ಮೂಲಕ ಸುರಿದು... ಸಣ್ಣ ಸೂಪ್ ಪಡೆಯುವಂತಿದೆ. ಸೂಪ್ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದು ಹಾಗಲ್ಲ, ಆದರೆ ನಿಮಗೆ ಕಲ್ಪನೆ ಅರ್ಥವಾಗುತ್ತದೆ 🍲.
9) ಸೇವೆ ಮತ್ತು ತೀರ್ಮಾನ: ನಿಜವಾದ ಯುದ್ಧ ವಲಯ 🧯
ನೀವು ಒಂದು ಮಾದರಿಯನ್ನು "ಆಪ್ಟಿಮೈಸ್" ಮಾಡಬಹುದು ಮತ್ತು ಅದನ್ನು ಕೆಟ್ಟದಾಗಿ ಪೂರೈಸಬಹುದು. ಸೇವೆ ಎಂದರೆ ವಿಳಂಬ ಮತ್ತು ವೆಚ್ಚವು ನಿಜವಾದದ್ದಾಗಿ ಸಿಗುತ್ತದೆ.
ಸೇವೆ ಮಾಡುವುದರಿಂದ ಮುಖ್ಯವಾಗುತ್ತದೆ
-
ಬ್ಯಾಚಿಂಗ್
ಥ್ರೋಪುಟ್ ಅನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಆದರೆ ನೀವು ಅದನ್ನು ಅತಿಯಾಗಿ ಮಾಡಿದರೆ ವಿಳಂಬವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಅದನ್ನು ಸಮತೋಲನಗೊಳಿಸಿ. ( ಟ್ರೈಟಾನ್ ಡೈನಾಮಿಕ್ ಬ್ಯಾಚಿಂಗ್ ) -
ಕ್ಯಾಶಿಂಗ್
ಪುನರಾವರ್ತಿತ ಸಂದರ್ಭಗಳಲ್ಲಿ ಪ್ರಾಂಪ್ಟ್ ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು KV-ಕ್ಯಾಶಿಂಗ್ ಮರುಬಳಕೆ ಬೃಹತ್ ಪ್ರಮಾಣದಲ್ಲಿರಬಹುದು. ( KV ಕ್ಯಾಶಿಂಗ್ ವಿವರಣೆ ) -
ಸ್ಟ್ರೀಮಿಂಗ್ ಔಟ್ಪುಟ್
ಒಟ್ಟು ಸಮಯ ಒಂದೇ ಆಗಿದ್ದರೂ ಬಳಕೆದಾರರು ಅದನ್ನು ವೇಗವೆಂದು ಭಾವಿಸುತ್ತಾರೆ. ಗ್ರಹಿಕೆ ಮುಖ್ಯ 🙂. -
ಟೋಕನ್-ಬೈ-ಟೋಕನ್ ಓವರ್ಹೆಡ್ ಕಡಿತ
ಕೆಲವು ಸ್ಟ್ಯಾಕ್ಗಳು ಪ್ರತಿ ಟೋಕನ್ಗೆ ಹೆಚ್ಚುವರಿ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತವೆ. ಆ ಓವರ್ಹೆಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಿ ಮತ್ತು ನೀವು ದೊಡ್ಡದನ್ನು ಗೆಲ್ಲುತ್ತೀರಿ.
ಟೈಲ್ ಲೇಟೆನ್ಸಿ ಬಗ್ಗೆ ಎಚ್ಚರದಿಂದಿರಿ
ನಿಮ್ಮ p99 ಒಂದು ದುರಂತವಾಗಿದ್ದರೆ ನಿಮ್ಮ ಸರಾಸರಿ ಉತ್ತಮವಾಗಿ ಕಾಣಿಸಬಹುದು. ದುರದೃಷ್ಟವಶಾತ್ ಬಳಕೆದಾರರು ಟೈಲ್ನಲ್ಲಿ ವಾಸಿಸುತ್ತಾರೆ. ( “ಟೈಲ್ ಲೇಟೆನ್ಸಿ” ಮತ್ತು ಸರಾಸರಿಗಳು ಏಕೆ ಸುಳ್ಳು )
10) ಹಾರ್ಡ್ವೇರ್-ಅವೇರ್ ಆಪ್ಟಿಮೈಸೇಶನ್: ಮಾದರಿಯನ್ನು ಯಂತ್ರಕ್ಕೆ ಹೊಂದಿಸಿ 🧰🖥️
ಹಾರ್ಡ್ವೇರ್ ಅರಿವಿಲ್ಲದೆ ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವುದು ಟೈರ್ಗಳನ್ನು ಪರಿಶೀಲಿಸದೆ ರೇಸ್ ಕಾರನ್ನು ಟ್ಯೂನ್ ಮಾಡಿದಂತೆ. ಖಂಡಿತ, ನೀವು ಅದನ್ನು ಮಾಡಬಹುದು, ಆದರೆ ಇದು ಸ್ವಲ್ಪ ಮೂರ್ಖತನ.
GPU ಪರಿಗಣನೆಗಳು
-
ಮೆಮೊರಿ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಹೆಚ್ಚಾಗಿ ಸೀಮಿತಗೊಳಿಸುವ ಅಂಶವಾಗಿದೆ, ಕಚ್ಚಾ ಕಂಪ್ಯೂಟ್ ಅಲ್ಲ
-
ದೊಡ್ಡ ಬ್ಯಾಚ್ ಗಾತ್ರಗಳು ಸಹಾಯ ಮಾಡಬಹುದು, ಆದರೆ ಅವುಗಳು ಹಾಗೆ ಮಾಡುವುದಿಲ್ಲ
-
ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳಿಗೆ ಕರ್ನಲ್ ಸಮ್ಮಿಳನ ಮತ್ತು ಗಮನ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು ದೊಡ್ಡದಾಗಿದೆ ( ಫ್ಲ್ಯಾಶ್ಅಟೆನ್ಷನ್: IO-ಅವೇರ್ ನಿಖರ ಗಮನ )
CPU ಪರಿಗಣನೆಗಳು
-
ಥ್ರೆಡಿಂಗ್, ವೆಕ್ಟರೈಸೇಶನ್ ಮತ್ತು ಮೆಮೊರಿ ಸ್ಥಳವು ಬಹಳ ಮುಖ್ಯ
-
ಟೋಕನೈಸೇಶನ್ ಓವರ್ಹೆಡ್ ಪ್ರಾಬಲ್ಯ ಸಾಧಿಸಬಹುದು ( 🤗 "ವೇಗದ" ಟೋಕನೈಜರ್ಗಳು )
-
ನಿಮಗೆ GPU ಗಿಂತ ವಿಭಿನ್ನ ಕ್ವಾಂಟೀಕರಣ ತಂತ್ರಗಳು ಬೇಕಾಗಬಹುದು
ಎಡ್ಜ್ / ಮೊಬೈಲ್ ಪರಿಗಣನೆಗಳು
-
ನೆನಪಿನ ಹೆಜ್ಜೆಗುರುತು ಆದ್ಯತೆಯಾಗಿ ಮೊದಲ ಸ್ಥಾನದಲ್ಲಿದೆ
-
ಸಾಧನಗಳು... ಮೂಡಿ ಆಗಿರುವುದರಿಂದ ಸುಪ್ತತೆಯ ವ್ಯತ್ಯಾಸವು ಮುಖ್ಯವಾಗಿದೆ
-
ಸಣ್ಣ, ವಿಶೇಷ ಮಾದರಿಗಳು ಸಾಮಾನ್ಯವಾಗಿ ದೊಡ್ಡ ಸಾಮಾನ್ಯ ಮಾದರಿಗಳನ್ನು ಸೋಲಿಸುತ್ತವೆ
11) ಗುಣಮಟ್ಟದ ಗಾರ್ಡ್ರೈಲ್ಗಳು: ನಿಮ್ಮನ್ನು ದೋಷವಾಗಿ "ಆಪ್ಟಿಮೈಸ್" ಮಾಡಿಕೊಳ್ಳಬೇಡಿ 🧪
ಪ್ರತಿ ವೇಗದ ಗೆಲುವನ್ನು ಗುಣಮಟ್ಟದ ಪರಿಶೀಲನೆಯೊಂದಿಗೆ ಪಡೆಯಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ ನೀವು ಆಚರಿಸುತ್ತೀರಿ, ಪ್ರೋತ್ಸಾಹಿಸುತ್ತೀರಿ ಮತ್ತು ನಂತರ "ಸಹಾಯಕ ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಕಡಲುಗಳ್ಳನಂತೆ ಏಕೆ ಮಾತನಾಡುತ್ತಾನೆ?" ಎಂಬ ಸಂದೇಶವನ್ನು ಪಡೆಯುತ್ತೀರಿ 🏴☠️
ಪ್ರಾಯೋಗಿಕ ಗಾರ್ಡ್ರೈಲ್ಗಳು:
-
ಗೋಲ್ಡನ್ ಪ್ರಾಂಪ್ಟ್ಗಳು (ನೀವು ಯಾವಾಗಲೂ ಪರೀಕ್ಷಿಸುವ ಸ್ಥಿರ ಪ್ರಾಂಪ್ಟ್ಗಳ ಸೆಟ್)
-
ಕಾರ್ಯ ಮಾಪನಗಳು (ನಿಖರತೆ, F1, BLEU, ಯಾವುದು ಸರಿಹೊಂದುತ್ತದೆಯೋ ಅದು)
-
ಮಾನವ ಸ್ಪಾಟ್ ತಪಾಸಣೆಗಳು (ಹೌದು, ಗಂಭೀರವಾಗಿ)
-
ಹಿಂಜರಿತ ಮಿತಿಗಳು ("X% ಕ್ಕಿಂತ ಹೆಚ್ಚು ಕುಸಿತವನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ")
ವೈಫಲ್ಯ ವಿಧಾನಗಳನ್ನು ಸಹ ಟ್ರ್ಯಾಕ್ ಮಾಡಿ:
-
ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಡ್ರಿಫ್ಟ್
-
ನಿರಾಕರಣೆ ವರ್ತನೆಯ ಬದಲಾವಣೆಗಳು
-
ಭ್ರಮೆಗಳ ಆವರ್ತನ
-
ಪ್ರತಿಕ್ರಿಯೆ ಉದ್ದದ ಹಣದುಬ್ಬರ
ಅತ್ಯುತ್ತಮೀಕರಣವು ನಡವಳಿಕೆಯನ್ನು ಆಶ್ಚರ್ಯಕರ ರೀತಿಯಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು. ವಿಚಿತ್ರವಾಗಿ. ಕಿರಿಕಿರಿಯುಂಟುಮಾಡುವಂತೆ. ಊಹಿಸಬಹುದಾದಂತೆ, ಹಿಂದಿನಿಂದ ನೋಡಿದರೆ.
12) ಪರಿಶೀಲನಾಪಟ್ಟಿ: AI ಮಾದರಿಗಳನ್ನು ಹಂತ ಹಂತವಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವುದು ಹೇಗೆ ✅🤖
AI ಮಾದರಿಗಳನ್ನು ಹೇಗೆ ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಸ್ಪಷ್ಟವಾದ ಕಾರ್ಯಾಚರಣೆಯ ಕ್ರಮವನ್ನು ನೀವು ಬಯಸಿದರೆ , ಜನರನ್ನು ಸ್ವಸ್ಥವಾಗಿಡಲು ಸಹಾಯ ಮಾಡುವ ಕೆಲಸದ ಹರಿವು ಇಲ್ಲಿದೆ:
-
ಯಶಸ್ಸನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ
1-2 ಪ್ರಾಥಮಿಕ ಮೆಟ್ರಿಕ್ಗಳನ್ನು ಆರಿಸಿ (ಸುಪ್ತತೆ, ವೆಚ್ಚ, ಥ್ರೋಪುಟ್, ಗುಣಮಟ್ಟ). -
ಬೇಸ್ಲೈನ್ ಪ್ರೊಫೈಲ್ ನೈಜ ಕೆಲಸದ ಹೊರೆಗಳನ್ನು ಅಳೆಯಿರಿ
, p50/p95 ದಾಖಲೆ, ಮೆಮೊರಿ, ವೆಚ್ಚ. ( ಪೈಟಾರ್ಚ್ ಪ್ರೊಫೈಲರ್ ) -
ಪೈಪ್ಲೈನ್ ಅಡಚಣೆಗಳನ್ನು ಸರಿಪಡಿಸಿ
ಡೇಟಾ ಲೋಡಿಂಗ್, ಟೋಕನೈಸೇಶನ್, ಪೂರ್ವ-ಸಂಸ್ಕರಣೆ, ಬ್ಯಾಚಿಂಗ್. -
ಕಡಿಮೆ-ಅಪಾಯದ ಕಂಪ್ಯೂಟ್ ಗೆಲುವುಗಳನ್ನು ಅನ್ವಯಿಸಿ
ಮಿಶ್ರ ನಿಖರತೆ, ಕರ್ನಲ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು, ಉತ್ತಮ ಬ್ಯಾಚಿಂಗ್. -
ಕಂಪೈಲರ್/ರನ್ಟೈಮ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ
ಗ್ರಾಫ್ ಕ್ಯಾಪ್ಚರ್, ಇನ್ಫರೆನ್ಸ್ ರನ್ಟೈಮ್ಗಳು, ಆಪರೇಟರ್ ಫ್ಯೂಷನ್. (torch.compileಟ್ಯುಟೋರಿಯಲ್ , ONNX ರನ್ಟೈಮ್ ಡಾಕ್ಸ್ ) -
ಮಾದರಿ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡಿ
ಎಚ್ಚರಿಕೆಯಿಂದ ಪ್ರಮಾಣೀಕರಿಸಿ, ಸಾಧ್ಯವಾದರೆ ಬಟ್ಟಿ ಇಳಿಸಿ, ಸೂಕ್ತವಾದರೆ ಕತ್ತರಿಸು. -
ಟ್ಯೂನ್ ಸರ್ವಿಂಗ್
ಕ್ಯಾಶಿಂಗ್, ಏಕಕಾಲಿಕತೆ, ಲೋಡ್ ಪರೀಕ್ಷೆ, ಟೈಲ್ ಲೇಟೆನ್ಸಿ ಪರಿಹಾರಗಳು. -
ಗುಣಮಟ್ಟವನ್ನು ಮೌಲ್ಯೀಕರಿಸಿ
ಹಿಂಜರಿತ ಪರೀಕ್ಷೆಗಳನ್ನು ಚಲಾಯಿಸಿ ಮತ್ತು ಔಟ್ಪುಟ್ಗಳನ್ನು ಅಕ್ಕಪಕ್ಕದಲ್ಲಿ ಹೋಲಿಕೆ ಮಾಡಿ. -
ಪುನರಾವರ್ತಿತ
ಸಣ್ಣ ಬದಲಾವಣೆಗಳು, ಸ್ಪಷ್ಟ ಟಿಪ್ಪಣಿಗಳು, ಪುನರಾವರ್ತನೆ. ಪ್ರದರ್ಶಿಸದ - ಪರಿಣಾಮಕಾರಿ.
"ರೇಕ್ಗಳ ಮೇಲೆ ಹೆಜ್ಜೆ ಹಾಕುವುದನ್ನು ಹೇಗೆ ನಿಲ್ಲಿಸುವುದು" ಎಂದು ಅನಿಸಿದರೂ ಸಹ, ಇದು ಇನ್ನೂ AI ಮಾದರಿಗಳನ್ನು ಹೇಗೆ ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು ಎಂಬುದಾಗಿದೆ
13) ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು (ಆದ್ದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಉಳಿದವರಂತೆ ಪುನರಾವರ್ತಿಸಬೇಡಿ) 🙃
-
ಅಳತೆ ಮಾಡುವ ಮೊದಲು ಅತ್ಯುತ್ತಮಗೊಳಿಸುವುದು
ನೀವು ಸಮಯವನ್ನು ವ್ಯರ್ಥ ಮಾಡುತ್ತೀರಿ. ತದನಂತರ ನೀವು ಆತ್ಮವಿಶ್ವಾಸದಿಂದ ತಪ್ಪು ವಿಷಯವನ್ನು ಅತ್ಯುತ್ತಮಗೊಳಿಸುತ್ತೀರಿ... -
ಒಂದೇ ಮಾನದಂಡವನ್ನು ಬೆನ್ನಟ್ಟುವುದು
ಮಾನದಂಡಗಳು ಲೋಪದಿಂದ ಸುಳ್ಳು. ನಿಮ್ಮ ಕೆಲಸದ ಹೊರೆ ಸತ್ಯ. -
ಮೆಮೊರಿ ಸಮಸ್ಯೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದರಿಂದ
ನಿಧಾನಗತಿ, ಕ್ರ್ಯಾಶ್ಗಳು ಮತ್ತು ನಡುಕ ಉಂಟಾಗುತ್ತದೆ. ( ಪೈಟಾರ್ಚ್ನಲ್ಲಿ CUDA ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ) -
ತುಂಬಾ ಬೇಗ ಅತಿ-ಕ್ವಾಂಟೀಕರಣ
ಕಡಿಮೆ-ಬಿಟ್ ಕ್ವಾಂಟನ್ನು ಮಾಡುವುದು ಅದ್ಭುತವಾಗಬಹುದು, ಆದರೆ ಮೊದಲು ಸುರಕ್ಷಿತ ಹಂತಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ. -
ಯಾವುದೇ ರೋಲ್ಬ್ಯಾಕ್ ಯೋಜನೆ ಇಲ್ಲ.
ನೀವು ಬೇಗನೆ ಹಿಂತಿರುಗಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಪ್ರತಿ ನಿಯೋಜನೆಯೂ ಒತ್ತಡದಾಯಕವಾಗುತ್ತದೆ. ಒತ್ತಡವು ದೋಷಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಮುಕ್ತಾಯ ಟಿಪ್ಪಣಿಗಳು: ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಮಾನವ ಮಾರ್ಗ 😌⚡
AI ಮಾದರಿಗಳನ್ನು ಹೇಗೆ ಆಪ್ಟಿಮೈಸ್ ಮಾಡುವುದು ಎಂಬುದು ಒಂದೇ ಹ್ಯಾಕ್ ಅಲ್ಲ. ಇದು ಒಂದು ಹಂತ ಹಂತದ ಪ್ರಕ್ರಿಯೆ: ಅಳತೆ ಮಾಡುವುದು, ಪೈಪ್ಲೈನ್ ಅನ್ನು ಸರಿಪಡಿಸುವುದು, ಕಂಪೈಲರ್ಗಳು ಮತ್ತು ರನ್ಟೈಮ್ಗಳನ್ನು ಬಳಸುವುದು, ಟ್ಯೂನ್ ಸರ್ವಿಂಗ್ ಮಾಡುವುದು, ನಂತರ ಅಗತ್ಯವಿದ್ದರೆ ಕ್ವಾಂಟೈಸೇಶನ್ ಅಥವಾ ಡಿಸ್ಟಿಲೇಷನ್ ಮೂಲಕ ಮಾದರಿಯನ್ನು ಕುಗ್ಗಿಸುವುದು. ಹಂತ ಹಂತವಾಗಿ ಮಾಡಿ, ಗುಣಮಟ್ಟದ ಗಾರ್ಡ್ರೈಲ್ಗಳನ್ನು ಇರಿಸಿ ಮತ್ತು "ಇದು ವೇಗವಾಗಿ ಭಾಸವಾಗುತ್ತದೆ" ಎಂದು ಮೆಟ್ರಿಕ್ ಆಗಿ ನಂಬಬೇಡಿ (ನಿಮ್ಮ ಭಾವನೆಗಳು ಸುಂದರವಾಗಿವೆ, ನಿಮ್ಮ ಭಾವನೆಗಳು ಪ್ರೊಫೈಲರ್ ಅಲ್ಲ).
ನೀವು ಕಡಿಮೆ ದೂರ ಪ್ರಯಾಣವನ್ನು ಬಯಸಿದರೆ:
-
ಮೊದಲು ಅಳತೆ ಮಾಡಿ 🔍
-
ಮುಂದೆ ಪೈಪ್ಲೈನ್ ಅನ್ನು ಅತ್ಯುತ್ತಮಗೊಳಿಸಿ 🧵
-
ನಂತರ ಮಾದರಿಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಿ 🧠
-
ನಂತರ ಸೇವೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಿ 🏗️
-
ಯಾವಾಗಲೂ ಗುಣಮಟ್ಟ ಪರಿಶೀಲನೆ ಮಾಡಿ ✅
ಮತ್ತು ಅದು ಸಹಾಯ ಮಾಡಿದರೆ, ನಿಮ್ಮನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ: ಗುರಿಯು "ಪರಿಪೂರ್ಣ ಮಾದರಿ" ಅಲ್ಲ. ಗುರಿಯು ವೇಗವಾದ, ಕೈಗೆಟುಕುವ ಮತ್ತು ವಿಶ್ವಾಸಾರ್ಹವಾದ ಮಾದರಿಯಾಗಿದ್ದು, ಅದು ನೀವು ರಾತ್ರಿಯಲ್ಲಿ ನಿದ್ರಿಸಬಹುದು... ಹೆಚ್ಚಿನ ರಾತ್ರಿಗಳು 😴.
ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು
ಪ್ರಾಯೋಗಿಕವಾಗಿ AI ಮಾದರಿಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು ಎಂದರೆ ಏನು
"ಆಪ್ಟಿಮೈಜ್" ಎಂದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ಪ್ರಾಥಮಿಕ ನಿರ್ಬಂಧವನ್ನು ಸುಧಾರಿಸುವುದು: ವಿಳಂಬ, ವೆಚ್ಚ, ಮೆಮೊರಿ ಹೆಜ್ಜೆಗುರುತು, ನಿಖರತೆ, ಸ್ಥಿರತೆ ಅಥವಾ ಸರ್ವಿಂಗ್ ಥ್ರೋಪುಟ್. ಕಠಿಣ ಭಾಗವೆಂದರೆ ರಾಜಿ ವಿನಿಮಯ - ಒಂದು ಪ್ರದೇಶವನ್ನು ತಳ್ಳುವುದರಿಂದ ಇನ್ನೊಂದು ಪ್ರದೇಶಕ್ಕೆ ಹಾನಿಯಾಗಬಹುದು. ಪ್ರಾಯೋಗಿಕ ವಿಧಾನವೆಂದರೆ ಸ್ಪಷ್ಟ ಗುರಿಯನ್ನು (p95 ವಿಳಂಬ ಅಥವಾ ಗುಣಮಟ್ಟದ ಸಮಯದಂತೆ) ಆರಿಸುವುದು ಮತ್ತು ಅದರ ಕಡೆಗೆ ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು. ಗುರಿಯಿಲ್ಲದೆ, "ಸುಧಾರಿಸುವುದು" ಸುಲಭ ಮತ್ತು ಇನ್ನೂ ಕಳೆದುಕೊಳ್ಳುವುದು.
ಗುಣಮಟ್ಟಕ್ಕೆ ಹಾನಿಯಾಗದಂತೆ AI ಮಾದರಿಗಳನ್ನು ಹೇಗೆ ಅತ್ಯುತ್ತಮವಾಗಿಸುವುದು
ಪ್ರತಿಯೊಂದು ವೇಗ ಅಥವಾ ವೆಚ್ಚ ಬದಲಾವಣೆಯನ್ನು ಸಂಭಾವ್ಯ ನಿಶ್ಯಬ್ದ ಹಿಂಜರಿತವೆಂದು ಪರಿಗಣಿಸಿ. ಗೋಲ್ಡನ್ ಪ್ರಾಂಪ್ಟ್ಗಳು, ಕಾರ್ಯ ಮಾಪನಗಳು ಮತ್ತು ತ್ವರಿತ ಮಾನವ ಸ್ಪಾಟ್ ಪರಿಶೀಲನೆಗಳಂತಹ ಗಾರ್ಡ್ರೈಲ್ಗಳನ್ನು ಬಳಸಿ. ಸ್ವೀಕಾರಾರ್ಹ ಗುಣಮಟ್ಟದ ಡ್ರಿಫ್ಟ್ಗಾಗಿ ಸ್ಪಷ್ಟ ಮಿತಿಯನ್ನು ಹೊಂದಿಸಿ ಮತ್ತು ಔಟ್ಪುಟ್ಗಳನ್ನು ಪಕ್ಕಪಕ್ಕದಲ್ಲಿ ಹೋಲಿಕೆ ಮಾಡಿ. ನೀವು ಸಾಗಿಸಿದ ನಂತರ "ಇದು ವೇಗವಾಗಿದೆ" "ಉತ್ಪಾದನೆಯಲ್ಲಿ ಅದು ಇದ್ದಕ್ಕಿದ್ದಂತೆ ವಿಚಿತ್ರವಾಗಿ ಏಕೆ ಆಯಿತು?" ಎಂದು ಬದಲಾಗದಂತೆ ಇದು ತಡೆಯುತ್ತದೆ.
ನೀವು ಆಪ್ಟಿಮೈಸೇಶನ್ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಏನು ಅಳೆಯಬೇಕು
ಲೇಟೆನ್ಸಿ ಪರ್ಸೆಂಟೇಲ್ಗಳು (p50, p95, p99), ಥ್ರೋಪುಟ್ (ಟೋಕನ್ಗಳು/ಸೆಕೆಂಡ್ ಅಥವಾ ವಿನಂತಿಗಳು/ಸೆಕೆಂಡ್), GPU ಬಳಕೆ ಮತ್ತು ಗರಿಷ್ಠ VRAM/RAM ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ. ವೆಚ್ಚವು ನಿರ್ಬಂಧವಾಗಿದ್ದರೆ ಪ್ರತಿ ಅನುಮಾನಕ್ಕೆ ಅಥವಾ 1k ಟೋಕನ್ಗಳಿಗೆ ವೆಚ್ಚವನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ. ಆಟಿಕೆ ಪ್ರಾಂಪ್ಟ್ ಅಲ್ಲ, ನೀವು ಒದಗಿಸುವ ನೈಜ ಸನ್ನಿವೇಶವನ್ನು ಪ್ರೊಫೈಲ್ ಮಾಡಿ. ಸಣ್ಣ "ಪರ್ಫ್ ಜರ್ನಲ್" ಅನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವುದು ತಪ್ಪುಗಳನ್ನು ಊಹಿಸುವುದನ್ನು ಮತ್ತು ಪುನರಾವರ್ತಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ತರಬೇತಿ ಕಾರ್ಯಕ್ಷಮತೆಗಾಗಿ ತ್ವರಿತ, ಕಡಿಮೆ-ಅಪಾಯದ ಗೆಲುವುಗಳು
ಮಿಶ್ರ ನಿಖರತೆ (FP16/BF16) ಸಾಮಾನ್ಯವಾಗಿ ವೇಗವಾದ ಮೊದಲ ಲಿವರ್ ಆಗಿದೆ, ಆದರೆ ಸಂಖ್ಯಾತ್ಮಕ ವೈಶಿಷ್ಟ್ಯಗಳಿಗಾಗಿ ನೋಡಿ. ಬ್ಯಾಚ್ ಗಾತ್ರ ಸೀಮಿತವಾಗಿದ್ದರೆ, ಗ್ರೇಡಿಯಂಟ್ ಸಂಗ್ರಹಣೆಯು ಮೆಮೊರಿಯನ್ನು ಸ್ಫೋಟಿಸದೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಸ್ಥಿರಗೊಳಿಸುತ್ತದೆ. ಗ್ರೇಡಿಯಂಟ್ ಚೆಕ್ಪಾಯಿಂಟಿಂಗ್ ಕಡಿಮೆ ಮೆಮೊರಿಗೆ ಹೆಚ್ಚುವರಿ ಕಂಪ್ಯೂಟ್ ಅನ್ನು ವ್ಯಾಪಾರ ಮಾಡುತ್ತದೆ, ದೊಡ್ಡ ಸಂದರ್ಭಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಟೋಕನೈಸೇಶನ್ ಮತ್ತು ಡೇಟಾಲೋಡರ್ ಟ್ಯೂನಿಂಗ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಬೇಡಿ - ಅವು GPU ಅನ್ನು ಸದ್ದಿಲ್ಲದೆ ಹಸಿವಿನಿಂದ ಬಿಡಬಹುದು.
torch.compile, ONNX ರನ್ಟೈಮ್ ಅಥವಾ ಟೆನ್ಸರ್ಆರ್ಟಿಯನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು
ಈ ಪರಿಕರಗಳು ಕಾರ್ಯಾಚರಣೆಯ ಓವರ್ಹೆಡ್ ಅನ್ನು ಗುರಿಯಾಗಿರಿಸಿಕೊಳ್ಳುತ್ತವೆ: ಗ್ರಾಫ್ ಕ್ಯಾಪ್ಚರ್, ಕರ್ನಲ್ ಸಮ್ಮಿಳನ ಮತ್ತು ರನ್ಟೈಮ್ ಗ್ರಾಫ್ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು. ಅವು ಶುದ್ಧವಾದ ನಿರ್ಣಯ ವೇಗವನ್ನು ನೀಡಬಲ್ಲವು, ಆದರೆ ಫಲಿತಾಂಶಗಳು ಮಾದರಿ ಆಕಾರ ಮತ್ತು ಹಾರ್ಡ್ವೇರ್ನಿಂದ ಬದಲಾಗುತ್ತವೆ. ಕೆಲವು ಸೆಟಪ್ಗಳು ಮ್ಯಾಜಿಕ್ನಂತೆ ಭಾಸವಾಗುತ್ತವೆ; ಇತರವುಗಳು ಅಷ್ಟೇನೂ ಚಲಿಸುವುದಿಲ್ಲ. ಆಕಾರ ಬದಲಾವಣೆಗಳಿಗೆ ಸೂಕ್ಷ್ಮತೆಯನ್ನು ನಿರೀಕ್ಷಿಸಿ ಮತ್ತು ಸಾಂದರ್ಭಿಕ "ಗ್ರೆಮ್ಲಿನ್" ದೋಷಗಳು - ನಿಮ್ಮ ನಿಜವಾದ ಕೆಲಸದ ಹೊರೆಯ ಮೊದಲು ಮತ್ತು ನಂತರ ಅಳೆಯಿರಿ.
ಕ್ವಾಂಟೀಕರಣವು ಯೋಗ್ಯವಾಗಿದೆಯೇ ಮತ್ತು ಹೆಚ್ಚು ದೂರ ಹೋಗುವುದನ್ನು ತಪ್ಪಿಸುವುದು ಹೇಗೆ
ಕ್ವಾಂಟೀಕರಣವು ಮೆಮೊರಿಯನ್ನು ಕಡಿತಗೊಳಿಸಬಹುದು ಮತ್ತು ನಿರ್ಣಯವನ್ನು ವೇಗಗೊಳಿಸಬಹುದು, ವಿಶೇಷವಾಗಿ INT8 ನೊಂದಿಗೆ, ಆದರೆ ಗುಣಮಟ್ಟವು ಅಂಚಿನಲ್ಲಿರುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ಜಾರಿಕೊಳ್ಳಬಹುದು. ಕಡಿಮೆ-ಬಿಟ್ ಆಯ್ಕೆಗಳು (INT4/k-bit ನಂತಹ) ಹೆಚ್ಚಿನ ಅಪಾಯದೊಂದಿಗೆ ದೊಡ್ಡ ಉಳಿತಾಯವನ್ನು ತರುತ್ತವೆ. ನಿಜವಾದ ಪರೀಕ್ಷಾ ಸೆಟ್ನಲ್ಲಿ ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದು ಮತ್ತು ಔಟ್ಪುಟ್ಗಳನ್ನು ಹೋಲಿಸುವುದು ಸುರಕ್ಷಿತ ಅಭ್ಯಾಸವಾಗಿದೆ, ಕರುಳಿನ ಭಾವನೆಯಲ್ಲ. ಮೊದಲು ಸುರಕ್ಷಿತ ಹಂತಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ, ನಂತರ ಅಗತ್ಯವಿದ್ದರೆ ಮಾತ್ರ ಕಡಿಮೆ ನಿಖರತೆಗೆ ಹೋಗಿ.
ಮಾದರಿ ಗಾತ್ರ ಕಡಿತಕ್ಕಾಗಿ ಸಮರುವಿಕೆ ಮತ್ತು ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸ
ಸಮರುವಿಕೆ "ಸತ್ತ ತೂಕ" ನಿಯತಾಂಕಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಗುಣಮಟ್ಟವನ್ನು ಪುನಃಸ್ಥಾಪಿಸಲು ಆಗಾಗ್ಗೆ ಮರು ತರಬೇತಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಆಕ್ರಮಣಕಾರಿಯಾಗಿ ಮಾಡಿದಾಗ. ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆಯು ದೊಡ್ಡ ಶಿಕ್ಷಕರ ನಡವಳಿಕೆಯನ್ನು ಅನುಕರಿಸಲು ಸಣ್ಣ ವಿದ್ಯಾರ್ಥಿ ಮಾದರಿಗೆ ತರಬೇತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ಇದು ತೀವ್ರ ಕ್ವಾಂಟೀಕರಣಕ್ಕಿಂತ ಬಲವಾದ ದೀರ್ಘಕಾಲೀನ ROI ಆಗಿರಬಹುದು. ನೀವು ಇದೇ ರೀತಿ ವರ್ತಿಸುವ ಮತ್ತು ಸ್ಥಿರವಾಗಿ ಉಳಿಯುವ ಸಣ್ಣ ಮಾದರಿಯನ್ನು ಬಯಸಿದರೆ, ಬಟ್ಟಿ ಇಳಿಸುವಿಕೆಯು ಹೆಚ್ಚಾಗಿ ಸ್ವಚ್ಛವಾದ ಮಾರ್ಗವಾಗಿದೆ.
ಸೇವೆಯ ಸುಧಾರಣೆಗಳ ಮೂಲಕ ಅನುಮಾನ ವೆಚ್ಚ ಮತ್ತು ವಿಳಂಬವನ್ನು ಹೇಗೆ ಕಡಿಮೆ ಮಾಡುವುದು
ಸೇವೆಯು ಆಪ್ಟಿಮೈಸೇಶನ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗುವ ಸ್ಥಳವಾಗಿದೆ: ಬ್ಯಾಚಿಂಗ್ ಥ್ರೋಪುಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಆದರೆ ಮಿತಿಮೀರಿದರೆ ವಿಳಂಬಕ್ಕೆ ಹಾನಿ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ಅದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಟ್ಯೂನ್ ಮಾಡಿ. ಸಂದರ್ಭಗಳು ಪುನರಾವರ್ತನೆಯಾದಾಗ ಕ್ಯಾಶಿಂಗ್ (ಪ್ರಾಂಪ್ಟ್ ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ಕೆವಿ-ಕ್ಯಾಶಿಂಗ್ ಮರುಬಳಕೆ) ಬೃಹತ್ ಪ್ರಮಾಣದಲ್ಲಿರಬಹುದು. ಒಟ್ಟು ಸಮಯ ಒಂದೇ ಆಗಿದ್ದರೂ ಸಹ ಸ್ಟ್ರೀಮಿಂಗ್ ಔಟ್ಪುಟ್ ಗ್ರಹಿಸಿದ ವೇಗವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ನಿಮ್ಮ ಸ್ಟ್ಯಾಕ್ನಲ್ಲಿ ಟೋಕನ್-ಬೈ-ಟೋಕನ್ ಓವರ್ಹೆಡ್ ಅನ್ನು ಸಹ ನೋಡಿ - ಪ್ರತಿ ಟೋಕನ್ಗೆ ಸಣ್ಣ ಕೆಲಸವು ವೇಗವಾಗಿ ಸೇರಿಸುತ್ತದೆ.
AI ಮಾದರಿಗಳನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸುವಾಗ ಟೈಲ್ ಲೇಟೆನ್ಸಿ ಏಕೆ ತುಂಬಾ ಮುಖ್ಯವಾಗುತ್ತದೆ
p99 ಒಂದು ವಿಪತ್ತು ಆದರೆ ಸರಾಸರಿಗಳು ಉತ್ತಮವಾಗಿ ಕಾಣಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರು ಬಾಲದಲ್ಲಿ ಬದುಕುತ್ತಾರೆ. ಬಾಲ ವಿಳಂಬವು ಹೆಚ್ಚಾಗಿ ನಡುಕದಿಂದ ಬರುತ್ತದೆ: ಮೆಮೊರಿ ವಿಘಟನೆ, CPU ಪೂರ್ವ-ಸಂಸ್ಕರಣಾ ಸ್ಪೈಕ್ಗಳು, ಟೋಕನೈಸೇಶನ್ ನಿಧಾನಗತಿಗಳು ಅಥವಾ ಕಳಪೆ ಬ್ಯಾಚಿಂಗ್ ನಡವಳಿಕೆ. ಅದಕ್ಕಾಗಿಯೇ ಮಾರ್ಗದರ್ಶಿ ಶೇಕಡಾವಾರು ಮತ್ತು ನೈಜ ಕೆಲಸದ ಹೊರೆಗಳನ್ನು ಒತ್ತಿಹೇಳುತ್ತದೆ. ನೀವು p50 ಅನ್ನು ಮಾತ್ರ ಅತ್ಯುತ್ತಮವಾಗಿಸಿದರೆ, ನೀವು ಇನ್ನೂ "ಯಾದೃಚ್ಛಿಕವಾಗಿ ನಿಧಾನವಾಗಿ ಭಾಸವಾಗುವ" ಅನುಭವವನ್ನು ರವಾನಿಸಬಹುದು
ಉಲ್ಲೇಖಗಳು
-
ಅಮೆಜಾನ್ ವೆಬ್ ಸೇವೆಗಳು (AWS) - AWS ಕ್ಲೌಡ್ವಾಚ್ ಶೇಕಡಾವಾರುಗಳು (ಅಂಕಿಅಂಶಗಳ ವ್ಯಾಖ್ಯಾನಗಳು) - docs.aws.amazon.com
-
ಗೂಗಲ್ - ದಿ ಟೈಲ್ ಅಟ್ ಸ್ಕೇಲ್ (ಟೈಲ್ ಲೇಟೆನ್ಸಿ ಬೆಸ್ಟ್ ಪ್ರಾಕ್ಟೀಸ್) - sre.google
-
ಗೂಗಲ್ - ಸೇವಾ ಮಟ್ಟದ ಉದ್ದೇಶಗಳು (SRE ಪುಸ್ತಕ) - ಸುಪ್ತತೆಯ ಶೇಕಡಾವಾರುಗಳು - sre.google
-
ಪೈಟಾರ್ಚ್ - ಟಾರ್ಚ್.ಕಂಪೈಲ್ - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಫುಲ್ಲಿಶಾರ್ಡ್ಡೇಟಾಪ್ಯಾರಲಲ್ (FSDP) - docs.pytorch.org
-
PyTorch - PyTorch ಪ್ರೊಫೈಲರ್ - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - CUDA ಶಬ್ದಾರ್ಥಗಳು: ಮೆಮೊರಿ ನಿರ್ವಹಣೆ (CUDA ಮೆಮೊರಿ ಹಂಚಿಕೆ ಟಿಪ್ಪಣಿಗಳು) - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಸ್ವಯಂಚಾಲಿತ ಮಿಶ್ರ ನಿಖರತೆ (torch.amp / AMP) - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - torch.utils.checkpoint - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಕಾರ್ಯಕ್ಷಮತೆ ಟ್ಯೂನಿಂಗ್ ಗೈಡ್ - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಪ್ರೂನಿಂಗ್ ಟ್ಯುಟೋರಿಯಲ್ - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - ಪೈಟಾರ್ಚ್ನಲ್ಲಿ CUDA ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು - docs.pytorch.org
-
ಪೈಟಾರ್ಚ್ - torch.compile ಟ್ಯುಟೋರಿಯಲ್ / ಅವಲೋಕನ - docs.pytorch.org
-
ONNX ರನ್ಟೈಮ್ - ONNX ರನ್ಟೈಮ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ - onnxruntime.ai
-
NVIDIA - ಟೆನ್ಸರ್ಆರ್ಟಿ ದಸ್ತಾವೇಜೀಕರಣ - docs.nvidia.com
-
NVIDIA - ಟೆನ್ಸರ್ಆರ್ಟಿ ಕ್ವಾಂಟೈಸ್ಡ್ ಪ್ರಕಾರಗಳು - docs.nvidia.com
-
NVIDIA - Nsight ಸಿಸ್ಟಮ್ಸ್ - developer.nvidia.com
-
NVIDIA - ಟ್ರೈಟಾನ್ ಇನ್ಫರೆನ್ಸ್ ಸರ್ವರ್ - ಡೈನಾಮಿಕ್ ಬ್ಯಾಚಿಂಗ್ - docs.nvidia.com
-
DeepSpeed - ZeRO ಹಂತ 3 ದಸ್ತಾವೇಜನ್ನು - deepspeed.readthedocs.io
-
ಬಿಟ್ಸ್ಆಂಡ್ಬೈಟ್ಸ್ (ಬಿಟ್ಸ್ಆಂಡ್ಬೈಟ್ಸ್-ಫೌಂಡೇಶನ್) - ಬಿಟ್ಸ್ಆಂಡ್ಬೈಟ್ಸ್ - github.com
-
ಅಪ್ಪಿಕೊಳ್ಳುವ ಮುಖ - ವೇಗವರ್ಧನೆ: ಗ್ರೇಡಿಯಂಟ್ ಸಂಚಯನ ಮಾರ್ಗದರ್ಶಿ - huggingface.co
-
ಹಗ್ಗಿಂಗ್ ಫೇಸ್ - ಟೋಕನೈಜರ್ಗಳ ದಸ್ತಾವೇಜನ್ನು - huggingface.co
-
ಅಪ್ಪಿಕೊಳ್ಳುವ ಮುಖ - ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು: PEFT ಮಾರ್ಗದರ್ಶಿ - huggingface.co
-
ಅಪ್ಪುಗೆಯ ಮುಖ - ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು: ಕೆವಿ ಕ್ಯಾಶ್ ವಿವರಣೆ - huggingface.co
-
ಹಗ್ಗಿಂಗ್ ಫೇಸ್ - ಟ್ರಾನ್ಸ್ಫಾರ್ಮರ್ಗಳು: “ವೇಗದ” ಟೋಕನೈಸರ್ಗಳು (ಟೋಕನೈಜರ್ ತರಗತಿಗಳು) - huggingface.co
-
arXiv - ನರಮಂಡಲ ಜಾಲದಲ್ಲಿ ಜ್ಞಾನವನ್ನು ಬಟ್ಟಿ ಇಳಿಸುವುದು (ಹಿಂಟನ್ ಮತ್ತು ಇತರರು, 2015) - arxiv.org
-
arXiv - LoRA: ದೊಡ್ಡ ಭಾಷಾ ಮಾದರಿಗಳ ಕೆಳ-ಶ್ರೇಣಿಯ ಅಳವಡಿಕೆ - arxiv.org
-
arXiv - ಫ್ಲ್ಯಾಶ್ಅಟೆನ್ಷನ್: IO-ಅವೇರ್ನೆಸ್ನೊಂದಿಗೆ ವೇಗದ ಮತ್ತು ಸ್ಮರಣಶಕ್ತಿ-ಸಮರ್ಥ ನಿಖರವಾದ ಗಮನ - arxiv.org