סקירה: Jetson Orin Nano – מחשב העל הקטן של אנוודיה
אז לפני כמה שבועות אורי ידידי ורעי הציע לי לסקר את ה-Jetson Orin Nano החדש והקטנטן ולכתוב עליו סקירה. הג׳טסון מגיע ארוז יפה מאוד למוצר שבסופו של דבר אמור להיות סוס עבודה במוצרים ולא מוצר consumer.
הוא מגיע עם שני כבלי חשמל שונים (אמריקאי ובריטי) אבל מתאם היה בנמצא (מדובר בכבל קומקום רגיל שמתחבר לספק הכח שלו). ראיתי שנשאל נושא החיבורים – הוא מגיע עם 4 כניסות USB-A (בספק 3.2), type C בודד (UFP, כלומר, לא יכול להתחבר למסך), ethernet, חשמל, וכניסת micro-sd שלקח לי שתי דקות למצוא ודורשת גמישות מפתיעה באצבעות. קיימת גם תמיכה ב-bluetooth וב-wifi.בהמשך יש לנו יציאת displayport, שאילצה אותי לחפש את ה-ksp הקרוב לביתי וקצת מפתיע שלא מדובר ב-hdmi (אני יכול לחשוב על המון סיבות, ועדין, מעיק).
החיבורים הנ״ל נועדו למקלדת+עכבר+מסך+רשת, למשל. יש גם תמיכה בזה זמן טוב להזכיר – כי אני הספקתי לשכוח – שמדובר במחשב קצה, ולא ב-GPU חיצוני. ועדין, נכון לכתיבת שורות אלו, התכנון שלי הוא להתחבר פעם אחת פיזית כדי לעדכן את מערכת ההפעלה של המכשיר ולהמשיך משם מעל ssh. יהיה מעניין לחזור לשורה הזאת.
בגזרת החיבורי-״חומרה״ בעלי הפינים, קיימים שלושה:
- שני חיבורי M.2. (ואחד שלישי שמחובר כבר לכרטיס רשת) – מיועדים לחיבור דיסק nVME.
- שני חיבורי מצלמה מסוג MIPI CSI-2 (בסה״כ 4 מצלמות נתמכות).
- חיבור ״ראשי״ של 40 פינים שיכול לשמש לחיבור לעולם של של חומרות קצה – ממנועים לחיישנים שונים.
החיבורים האחרונים טובים כדי להזכיר שלמרות שכולנו מחכים לראות כמה טוקנים לשניה אפשר לקבל עליו – המטרה של סדרת ה-Jeston היא להריץ מודלים מעל מוצרי קצה ״מורכבים״; אם זו שליטה במצלמות בסופרמרקט חכם או מעל מקצרה חכמה שנעה בשדה תירס. למי שכמוני חנון גדול לנושא – ממליץ לקרוא את המפרט המלא של המוצר כאן. ואגב שדות תירס – בואו נסתכל שניה על החומרה שלו לצד כמה מוצרים שאנחנו מכירים מעט יותר טוב. אז עדיין מדובר במכשיר חלש, ומי שקיווה לאיזה נס ב-250$ – ובכן כנראה שיותר משתלם משמעותית לחבר למחשב שלכם (למשל) את ה-5070 שהוכרז ב-CES בתחילת ינואר (שצפוי לעלות 500$). במילים אחרות: לא מדובר ב-GPU חיצוני או במוצר עם תמורה משוגעת לכסף למי שמתכנן להריץ עליו מודלי שפה מהלפטופ שלו. אבל…למי שרוצה לבנות קומביין חכם או לנטר אחר הכלים המלוכלכים בכיור כדאי להמשיך לקרוא. אולי.
התקנות
כל מי שהתקין בחייו דרייברים של נבידיה יודע שהחלק הזה עשוי להיות קשוח. לנבידיה כמה מדריכי התקנה – כשהחלק העיקרי באירוע הוא עדכון של גרסאת ה-firmware (נקרא גם UEFI) ואחריו עדכון (או flash) של חבילת הפיתוח כולה, מה שנקרא JetPack SDK – לגרסא 6.1. החלק האחרון חשוב כי הוא מעדכן דברים כמו CUDA/CuDNN לגרסאות הרלוונטיות שלהם – אבל חשוב מכך, הוא מאפשר להריץ את ה-Nano במצב של ״מתח גבוה״ (25W מול 15W ללא העדכון) – וזה בהתאמה מאפשר יכולות שונות (מהירות שעון גבוהה יותר וביצועים גבוהים יותר).
בסופו של דבר מתקבל מחשב ubuntu 22 שאפשר להתחבר אליו עם מקלדת+עכבר+מסך, ואני ניצלתי את זה כדי להגדיר מה שצריך כדי להתחבר אליו מהמחשב האישי שלי עם VSCode/Cursor דרך ssh.
הכיף מתחיל
טוב, לא באמת, כי עוד התקנות.
כמי שמתקין גרסאות CUDA על קופסאות לינוקס מ-2015 הייתי מוכן לסבל רב ולא התאכזבתי. ה-Jetson מריץ ארכיטקטורת aarm64 והמשמעות גם עבור פייתון עצמה היא שהרבה ספריות פייתון פופולריות לא נתמכות או מחייבות קימפול מחדש.
לשמחתי – לנבידיה יש simple index עבור חלק ניכר מההתקנות האלה שהם מתחזקים בעצמם. כמובן שזה כולל את torch, torchvision ו-torchaudio אבל גם את opencv, onnx-runtime, faiss, diffusers וכו׳. ובכן, למרות שליבי שייך לפיקסלים, בקשת הקהל הייתה לשחק עם טוקנים. אז ה-goto שלי היה לנסות לבנות עוזרת קולית משודרגת מעל ה-Jetson.
אני לא אעסוק בתזמונים של מודלים שונים כי הם קיימים בשפע באינטרנט. בסופו של דבר היה יחסית קל לחבר ל-Jetson מצלמת רשת, מיקרופון ורמקול דרך כניסות ה-USB הרגילות שלו ולעבוד מעליהן עם הספריות הרגילות לעיבוד תמונה ואודיו. המודלים של ollama רצים מצויין על ה-Jetson וכמובן שאפשר גם לעשות דרכו קריאות API לכל המודלים הרגילים של OpenAI/Anthropic. בהשוואה לפעם האחרונה בה פיתחתי מעל Jetson כלשהו – הפיתוח היום מעל ה-Orin Nano הרבה יותר קל.
כמה המכשיר חזק? את רוב ה-heavy lifting עשיתי עם Qwen-2-1.5B שעובד עליו מצויין, אבל מודלים יותר שמנמנים כבר לא היו מספיק מהירים בשביל עבודה realtime.
עוזרת קוּלית
אז כמתבקש – בניתי מעל ה-Jetson Orin Nano גרסא צנועה של אלקסה מעל Quen-2-1.5B כמודל שפה, koroko-83M כמודל TTS ו-faster-whisper כמודל STT. השילוב עבד יחסית בסדר גם ב-realtime. כדי לבחון את הקוד לאורך זמן בלי לשבת ולדבר איתו נתתי לו לרוץ על סרטוני יוטיוב שונים. הקוד שלי יהיה זמין בקרוב (ובנתיים מי שרוצה מוזמן לבקש ולקבל גישה).
ומעבר לקוליות, מה עושים איתו?
עבור מוצר ב-250$ אפשר לעשות עם ה-Jetson Orin Nano פרויקטים ביתיים מאוד חמודים שהם כמה רמות מעל כל דבר אחר שזמין במחיר הזה, וזה מאוד מרגש. היכולת להריץ מודלים אמיתיים, של מאות מליוני פרמטרים, עם unified memory במחיר הזה היא פשוט משהו חדש שלא היה קיים לפני כן.
האם הוא מיועד לשוק המייקרים או למוצרים אמיתיים? קשה לי להגיד;
מההיכרות שלי עם מוצרי Jetson ככלל – ה-claim to fame היא כמובן היכולת לחבר אותו לחומרות קצה ״תעשיתיות״ (כלומר כל מה שלא מחובר דרך USB). זה יכול להיות מצלמות בחיבורים סריאלים, סנסורים שונים, זרועות רובוטיות וכו. כמובן שגם מייקרים ביתיים יכולים לעוף לשמיים עם כל האפשרויות האלה.
המוצר הבא בסדרה עולה פי 3 ומציע כח חישוב כפול, והחבר היקר ביותר בסדרה שכבר מציע 275TOPs עולה 2500$. הקפיצה הזאת יכולה לאפשר להריץ מודלים כבדים יותר במקביל, למשל עבור שילוב של מודלי ווידאו וטקסט ביחד.
בהיבט עסקי יותר, העובדה שנבידיה מציעים ״Raspberry Pi עם GPU״ במחיר כל כך נגיש יכולה לגרום ליותר אנשים לנסות לבנות מעליו כלים (עד לאחרונה המוצר הכי זול בסדרת ה-Jetson עלה מעל 1000$ והיה חלש משמעותית). העוזרת הקולית הצ׳יקמוק שבניתי לא תהפוך מחר לאורחת של כבוד בסלון שלנו, אבל עם קצת ליטוש היא בהחלט תוכל להתיישב שם ובמחיר כל כך נגיש ייתכן שנתחיל לראות פרויקטים מגניבים שמיועדים למשתמשים ביתיים.
לדעתי עבור בנייה של מקצרה חכמה המוצרים המתקדמים יותר בסדרה יהיו עדיפים (עם קירור פאסיבי גדול יותר, שרידות גבוהה יותר מול איתני הטבע ועוד).
ומה אני הולך לעשות איתו?
השאיפה שלי היא להשאיר אותו אצלי ולשחק איתו קצת יותר בעולמות ה-computer vision. אני מבין לגמרי ש-text זה מה שחם כרגע ולכן השקעתי דווקא בעולמות האלה. ספציפית, להריץ מעליו מודל realtime pose estimation טוב יהיה מעניין. יש לי כמה תכנונים מגניבים, בקיצור. Stay tuned 🙂
רשימת רפרנסים ללא סדר
- Index — CTranslate2 4.5.0 documentation
- Faster Whisper transcription with CTranslate2
- https://pypi.jetson-ai-lab.dev/jp6/cu126
- Installing PyTorch for Jetson Platform – NVIDIA Docs
- PyTorch for Jetson Platform – NVIDIA Docs
- Build error with CUDA 10.2 Jetson Nano · Issue #1378 · OpenNMT/CTranslate2 · GitHub
- https://github.com/snakers4/silero-vad?tab=readme-ov-file
- FasterWhisperParser — 🦜🔗 LangChain documentation
- GitHub – huggingface/distil-whisper: Distilled variant of Whisper for speech recognition. 6x faster, 50% smaller, within 1% word error rate.
- https://github.com/OriNachum/autonomous-intelligence/blob/3c1d610e582fb5b8fecb328c3c6dabbfa5c31812/baby-tau/init_torch.sh#L44