למה AI On-Premise? ריבונות דיגיטלית ופרטיות
המונח AI On-Premise מתאר הרצה של מודלים ומערכות בינה מלאכותית על שרתים מקומיים בבעלות הארגון, במקום לשלוח נתונים לשרתי ענן של צד שלישי. בעידן שבו ריבונות דיגיטלית הופכת לנושא מרכזי בישראל ובעולם, יותר ויותר ארגונים מבינים שהנתונים שלהם — ובמיוחד נתוני לקוחות — צריכים להישאר בשליטתם המלאה.
עבור מערכת סוכן קולי AI, פריסה מקומית משמעותה שכל מילה שנאמרת בשיחה טלפונית — מספרי תעודת זהות, פרטים רפואיים, מידע פיננסי, תלונות אישיות — נשארת על השרת של הארגון. אין שליחה של הקלטות ל-OpenAI, לגוגל, לאמזון או לכל ספק ענן אחר.
חוקי הפרטיות בישראל
חוק הגנת הפרטיות הישראלי ותקנות אבטחת המידע מטילים חובות מחמירות על ארגונים המעבדים מידע אישי. במגזר הבריאות, חוק זכויות החולה מוסיף שכבת הגנה נוספת. במגזר הפיננסי, הוראות בנק ישראל ורשות שוק ההון מגבילות את העברת נתונים לשרתים בחו״ל. פריסת AI On-Premise מבטיחה עמידה מלאה בכל הדרישות הרגולטוריות — הנתונים לא עוזבים את גבולות הארגון.
עלות לטווח ארוך
מעבר לפרטיות, AI On-Premise מציע יתרון כלכלי משמעותי בטווח הבינוני והארוך. בעוד שפתרונות ענן גובים לפי דקת שיחה (0.05-0.15 דולר), פתרון מקומי דורש השקעה חד-פעמית בחומרה ועלות שוטפת מינימלית. עבור עסק עם מאות שיחות ביום, ההחזר על ההשקעה מגיע תוך חודשים ספורים.
ביצועים ללא עיכוב רשת
כשכל הרכיבים — STT, LLM ו-TTS — רצים על אותו שרת, אין עיכוב רשת. הנתונים עוברים בין הרכיבים בזיכרון המקומי במהירות של מיקרושניות, לא במילישניות כמו ברשת. התוצאה: 335 אלפיות השנייה זמן תגובה מורגש, לעומת 800-1200 אלפיות השנייה בפתרונות ענן.
דרישות חומרה: GPU, RAM, אחסון ורשת
הלב של מערכת AI On-Premise הוא כרטיס ה-GPU. המודלים של בינה מלאכותית — זיהוי דיבור, מודל שפה, סינתזת דיבור — מריצים חישובים מקביליים אינטנסיביים שמתאימים לארכיטקטורת GPU. הנה הדרישות המפורטות:
GPU — הרכיב הקריטי
ה-GPU הוא הגורם שקובע את ביצועי המערכת. הפרמטר החשוב ביותר הוא כמות ה-VRAM — הזיכרון הייעודי של כרטיס המסך. מודל LLM של 7 מיליארד פרמטרים בכימות Q4 דורש כ-5GB VRAM. מודל STT דורש כ-3GB. מודל TTS דורש כ-4GB. סה״כ: לפחות 16GB VRAM לריצה בו-זמנית של כל הרכיבים.
| GPU | VRAM | מחיר משוער | מתאים ל- |
|---|---|---|---|
| RTX 4090 | 24GB GDDR6X | 8,000-10,000 ש״ח | עסק בינוני, עד 50 שיחות במקביל |
| RTX 4080 Super | 16GB GDDR6X | 5,000-6,500 ש״ח | עסק קטן, עד 20 שיחות במקביל |
| NVIDIA L40S | 48GB GDDR6 | 25,000-35,000 ש״ח | ארגון גדול, מודלים גדולים יותר |
| NVIDIA A100 | 40/80GB HBM2e | 40,000-60,000 ש״ח | Enterprise, מאות שיחות במקביל |
| NVIDIA H100 | 80GB HBM3 | 120,000+ ש״ח | מודלים ענקיים, אלפי שיחות |
RAM — זיכרון מערכת
מעבר ל-VRAM של ה-GPU, המערכת דורשת RAM של המערכת לניהול תהליכים, חוצצים של שמע, היסטוריית שיחות ו-Docker. ההמלצה: 32GB RAM מינימום, 64GB מומלץ לנפחים גדולים.
אחסון
SSD NVMe מומלץ בחום. המודלים תופסים שטח: Qwen 2.5 7B כ-5GB, Whisper Large כ-3GB, XTTS v2 כ-2GB. יחד עם מערכת ההפעלה, Docker ולוגים, מומלץ 500GB SSD לפחות. אם שומרים הקלטות שיחות, יש להוסיף אחסון בהתאם (כ-0.5MB לדקת שיחה בפורמט דחוס).
רשת
עבור טלפוניה SIP, הרשת צריכה להיות יציבה עם latency נמוך. חיבור אינטרנט של 100Mbps מספיק לעשרות שיחות במקביל. חשוב יותר מרוחב הפס: jitter נמוך (תנודות בזמן ההגעה של חבילות) ו-packet loss אפסי. מומלץ חיבור ייעודי או QoS עבור תעבורת SIP.
ביצועי RTX 4090: Benchmarks מפורטים
בדקנו את המערכת שלנו על שרת עם NVIDIA RTX 4090 (24GB VRAM) והשגנו את הביצועים הבאים. אלו מדידות אמיתיות של מערכת פרודקשן, לא benchmarks סינתטיים:
| רכיב | מודל | זמן ממוצע | הערות |
|---|---|---|---|
| STT | Faster-Whisper (distilled-large-v3) | 170ms | CUDA float16, אודיו 8kHz |
| LLM | Qwen 2.5 7B (Q4_K_M) | 361ms | 80 טוקנים מקסימום, temp 0.7 |
| TTS chunk ראשון | XTTS v2 + DeepSpeed | 84ms | סטרימינג PCM |
| TTS כולל | XTTS v2 + DeepSpeed | 728ms | עבור תשובה של 2 משפטים |
| זמן תגובה מורגש | כל הצינור | 335ms | מהיר מנציג אנושי ממוצע |
הזמן המורגש למתקשר הוא 335 אלפיות השנייה — מרגע שסיים לדבר ועד שהוא שומע את תחילת התשובה. זה כולל את זמן ה-STT (170ms), חלק מזמן ה-LLM, ואת ה-chunk הראשון של ה-TTS (84ms). הטריק: סטרימינג — ה-TTS מתחיל לסנתז ברגע שהמילים הראשונות של התשובה מוכנות, לא מחכה לכל התשובה.
לשם השוואה עם תגובה אנושית: אדם מגיב בממוצע תוך 200ms (מהיר) עד 800ms (איטי). המערכת שלנו נמצאת בטווח התגובה המהיר של אנושי — כלומר המתקשר לא מרגיש שהוא מדבר עם מכונה.
מחסנית תוכנה: ארבעת הרכיבים המרכזיים
Ollama — מודל שפה גדול (LLM)
Ollama היא פלטפורמה בקוד פתוח להרצת מודלי שפה גדולים על חומרה מקומית. היא מנהלת את ההורדה, האחסון וההרצה של מודלים כמו Qwen, Llama, Mistral ועוד. היתרון המרכזי: פשטות — פקודה אחת מורידה ומריצה מודל.
- מודל מומלץ: Qwen 2.5 7B Instruct (Q4_K_M) — איזון מצוין בין ביצועים לגודל (4.7GB)
- פורט: 11434
- Keep-alive: -1 (המודל נשאר ב-VRAM לצמיתות לביצועים מקסימליים)
- טוקנים מקסימום: 80 (תשובות קצרות וטבעיות לשיחה טלפונית)
Faster-Whisper — זיהוי דיבור (STT)
Faster-Whisper הוא מימוש מהיר יותר של מודל Whisper של OpenAI, מבוסס על CTranslate2. הוא מזהה דיבור ביותר מ-40 שפות כולל עברית, עם דיוק גבוה גם במבטאים שונים.
- מודל מומלץ: Systran distilled-large-v3 — מודל מזוקק שמציע ביצועים קרובים ל-large-v3 בחצי זמן ההרצה
- פורט: 6000
- חישוב: CUDA float16 (מהיר ומדויק)
- ממשק: HTTP POST עם קובץ שמע, מחזיר JSON עם תמלול
XTTS v2 — סינתזת דיבור (TTS)
XTTS v2 הוא מודל סינתזת דיבור מתקדם של Coqui TTS שמסוגל לייצר קול טבעי ביותר מ-16 שפות. הוא תומך בשכפול קול (Voice Cloning) — למידת קול מדגימה קצרה של דובר ויצירת דיבור חדש באותו קול.
- פורט: 5002
- אופטימיזציה: DeepSpeed להאצה של פי 2-3
- סטרימינג: ה-chunk הראשון מוכן תוך 84ms
- דגימת קול: קובץ WAV קצר (10-30 שניות) של הקול הרצוי
Asterisk — טלפוניה ו-PBX
Asterisk הוא מרכזיה טלפונית בקוד פתוח שמנהלת את חיבורי ה-SIP, ניתוב שיחות, הקלטות ואינטגרציה עם ספקי טלפוניה. ממשק EAGI (Enhanced AGI) מאפשר גישה בזמן אמת לזרם השמע של השיחה.
- פרוטוקול: PJSIP (מודרני, ביצועים גבוהים)
- פורט: 5060 (SIP), 10000-10100 (RTP)
- ממשק AI: EAGI — גישה ישירה לשמע ב-8kHz/16-bit/mono
פריסה עם Docker: מההתקנה להפעלה
כל המחסנית ארוזה ב-Docker image אחד שמכיל את כל הרכיבים מותקנים ומוגדרים. הפריסה פשוטה — פקודה אחת:
docker run -d --name grandma-fr --gpus all -p 5060:5060/udp -p 5060:5060/tcp -p 10000-10100:10000-10100/udp -p 5002:5002 -p 6000:6000 -p 11434:11434 aaron770/aaron770-terminal2:grandma-fr-finalised-v1.0
הפקודה מפעילה את כל המערכת: Asterisk, Ollama, Whisper ו-XTTS. Supervisor מנהל את השירותים הפנימיים ומוודא שכל רכיב פועל ומתאושש אוטומטית מתקלות.
סדר הפעלת שירותים
| שירות | עדיפות | פורט | תפקיד |
|---|---|---|---|
| Ollama | 10 (ראשון) | 11434 | שרת LLM |
| Ollama Preload | 15 | — | טעינת מודל ל-VRAM |
| XTTS | 20 | 5002 | שרת TTS |
| Whisper | 22 | 6000 | שרת STT |
| Asterisk | 30 | 5060 | מרכזיה טלפונית |
| Warmup | 40 (אחרון) | — | חימום כל הרכיבים |
סדר ההפעלה חשוב: Ollama צריך לפעול לפני ה-preload שטוען את המודל ל-VRAM. XTTS ו-Whisper צריכים לפעול לפני Asterisk שתלוי בהם. ה-Warmup האחרון שולח בקשות מדומות לכל הרכיבים כדי לוודא שהם מוכנים ופועלים.
כוונון ביצועים
DeepSpeed — האצת TTS
DeepSpeed של מיקרוסופט מאיץ את ה-inference של XTTS v2 פי 2-3. הוא עושה זאת על ידי אופטימיזציות של ה-GPU kernel, ניהול יעיל של זיכרון ו-batching אוטומטי. חשוב: כאשר DeepSpeed מופעל, אין להפעיל את torch.compile או FP16 (XTTS_HALF) כי הם מתנגשים.
Model Quantization — כימות מודלים
כימות (Quantization) מקטין את גודל המודל ומאיץ את ההרצה על חשבון ירידה קלה בדיוק. מודל Qwen 2.5 7B בכימות Q4_K_M תופס 4.7GB VRAM במקום 14GB בנקודה צפה מלאה (FP16), ומריץ פי 3 יותר מהר — עם ירידה של פחות מ-2 אחוזים בדיוק.
GPU Memory Management
ניהול נכון של זיכרון ה-GPU חיוני. ההמלצות:
- Keep-alive: הגדירו keep_alive=-1 ב-Ollama כדי שהמודל ישאר ב-VRAM לצמיתות. טעינה מחדש לוקחת 5-10 שניות.
- Speaker Embeddings Cache: שמרו את ה-embeddings של הקול ב-cache (speaker_embeddings.pt) כדי למנוע חישוב מחדש בכל שיחה.
- ניטור: השתמשו ב-nvidia-smi לניטור צריכת VRAM בזמן אמת.
Batch Sizes
עבור מערכת שמשרתת שיחה אחת בכל פעם, batch size של 1 מספיק ומעניק את זמן התגובה המהיר ביותר. עבור ריבוי שיחות במקביל, ניתן להגדיל את ה-batch size כדי לנצל טוב יותר את ה-GPU — אך זה מגדיל מעט את ה-latency לכל שיחה בודדת.
Benchmarks של Latency לפי GPU ומודל
הטבלה הבאה מציגה benchmarks מוערכים לפי GPU שונים ומודלי LLM בגדלים שונים:
| GPU | LLM מודל | STT | LLM | TTS chunk ראשון | סה״כ מורגש |
|---|---|---|---|---|---|
| RTX 4090 | Qwen 7B Q4 | 170ms | 361ms | 84ms | 335ms |
| RTX 4090 | Llama 13B Q4 | 170ms | 520ms | 84ms | 450ms |
| RTX 4080 Super | Qwen 7B Q4 | 210ms | 480ms | 110ms | 460ms |
| L40S | Qwen 7B Q4 | 160ms | 340ms | 80ms | 310ms |
| A100 80GB | Qwen 7B Q4 | 140ms | 280ms | 70ms | 260ms |
| A100 80GB | Llama 70B Q4 | 140ms | 650ms | 70ms | 500ms |
| H100 | Qwen 7B Q4 | 100ms | 180ms | 50ms | 180ms |
בחירת מודל LLM לפי חומרה
מחשב בינוני: Qwen 2.5 7B
עבור שרת עם RTX 4090 או RTX 4080, מודל Qwen 2.5 7B בכימות Q4_K_M הוא הבחירה המומלצת. הוא מציע הבנה מצוינת של עברית ואנגלית, תשובות מדויקות ומהירות, ותופס רק 4.7GB VRAM — משאיר מספיק מקום ל-STT ו-TTS.
חלופות בגודל דומה: Mistral 7B (ביצועי עברית מעט נחותים), Llama 3.1 8B (ביצועים טובים אך יותר "אנגלוצנטרי").
שרת חזק: Llama 70B או Qwen 72B
עבור שרת עם A100 80GB או שני RTX 4090, ניתן להריץ מודלים גדולים יותר כמו Llama 3.1 70B או Qwen 2.5 72B. מודלים אלה מציעים הבנה מעמיקה יותר, תשובות מורכבות יותר ויכולת reasoning משופרת — אך ה-latency גבוה יותר (500-700ms).
ההמלצה: השתמשו במודל 70B רק אם התרחישים דורשים reasoning מורכב (ייעוץ משפטי, ניתוח פיננסי). לרוב תרחישי השירות (קביעת תורים, מענה על שאלות, ניתוב שיחות), מודל 7B מספיק ומצטיין.
טבלת המלצות
| GPU | VRAM | LLM מומלץ | תרחיש |
|---|---|---|---|
| RTX 4080 (16GB) | 16GB | Qwen 2.5 7B Q4 | שירות בסיסי, מענה, ניתוב |
| RTX 4090 (24GB) | 24GB | Qwen 2.5 7B Q4 / Q8 | שירות מלא, CRM, בסיס ידע |
| L40S (48GB) | 48GB | Qwen 2.5 32B Q4 | תרחישים מורכבים, ריבוי שפות |
| A100 (80GB) | 80GB | Llama 70B Q4 / Qwen 72B Q4 | Enterprise, reasoning, ייעוץ |
אבטחה: הגנה על המערכת והנתונים
חומת אש (Firewall)
הגדירו firewall שחוסם את כל הפורטים מלבד אלה הנדרשים: 5060 (SIP), 10000-10100 (RTP), ואולי 443 (HTTPS לניהול). הפורטים הפנימיים — 5002 (XTTS), 6000 (Whisper), 11434 (Ollama) — חייבים להיות חסומים מבחוץ. הם מיועדים לתקשורת פנימית בלבד בתוך ה-Docker container.
הצפנת שיחות
השתמשו ב-TLS עבור SIP (SIPS) וב-SRTP עבור הקול כדי להצפין את השיחות מקצה לקצה. Asterisk תומך בשני הפרוטוקולים. זה מונע האזנה לשיחות גם אם מישהו מצליח ליירט את התעבורה ברשת.
גיבוי
הגדירו גיבוי אוטומטי של:
- קבצי הגדרות Asterisk (extensions.conf, pjsip.conf)
- System Prompt ובסיס הידע של ה-LLM
- דגימת הקול של ה-TTS
- לוגים והקלטות (אם נשמרים)
מומלץ: גיבוי יומי לאחסון חיצוני (NAS, דיסק חיצוני או ענן מוצפן) עם שמירה של 30 ימים.
ניטור
הגדירו ניטור 24/7 שמתריע כאשר:
- אחד השירותים נפל (Ollama, XTTS, Whisper, Asterisk)
- צריכת GPU או RAM חורגת מסף מוגדר
- זמן תגובה עולה מעבר לסף (למשל מעל 500ms)
- ניסיונות גישה לא מורשים (brute force על SIP)
סקאלאביליות: מעבר לשרת בודד
ריבוי שרתים
שרת בודד עם RTX 4090 יכול לתמוך בעד 50 שיחות במקביל (תלוי באורך השיחות ובמורכבות התשובות). כאשר הנפח עולה, ניתן להוסיף שרתים נוספים ולהשתמש ב-Load Balancer שמחלק את השיחות ביניהם.
Load Balancing
שתי גישות עיקריות:
- ברמת ה-SIP: Kamailio או OpenSIPS כ-SIP proxy שמחלק שיחות בין מספר שרתי Asterisk.
- ברמת ה-DNS: DNS round-robin לחלוקה פשוטה. פחות מתוחכם אך קל ליישום.
זמינות גבוהה (High Availability)
עבור ארגונים שדורשים זמינות של 99.9 אחוזים ומעלה, מומלץ:
- שרת גיבוי (Standby): שרת שני זהה שמוכן לקבל שיחות אם השרת הראשי נפל.
- Failover אוטומטי: Keepalived או VRRP למעבר אוטומטי לשרת הגיבוי.
- סנכרון הגדרות: rsync או Git לשמירת הגדרות זהות בין השרתים.
השוואת עלויות: On-Premise מול Cloud APIs
ניתוח עלויות מפורט על פני 1, 2 ו-3 שנים. הנחות: 500 שיחות ביום, 3 דקות ממוצע, 22 ימי עבודה בחודש (33,000 דקות לחודש).
| פריט | On-Premise (RTX 4090) | OpenAI APIs | Vapi SaaS |
|---|---|---|---|
| הקמה חד-פעמית | 35,000 ש״ח | 5,000 ש״ח | 5,000 ש״ח |
| עלות חודשית | 500 ש״ח | 6,600 ש״ח | 12,000 ש״ח |
| סה״כ שנה 1 | 41,000 ש״ח | 84,200 ש״ח | 149,000 ש״ח |
| סה״כ שנתיים | 47,000 ש״ח | 163,400 ש״ח | 293,000 ש״ח |
| סה״כ 3 שנים | 53,000 ש״ח | 242,600 ש״ח | 437,000 ש״ח |
| חיסכון ב-3 שנים | — | 189,600 ש״ח | 384,000 ש״ח |
ספקי אירוח עם GPU בישראל
אם אין לכם מקום פיזי או תשתית לשרת מקומי, ניתן לשכור שרת ייעודי עם GPU בישראל. זה שומר על הנתונים בתוך ישראל תוך כדי שאתם נהנים מתחזוקת חומרה של ספק מקצועי.
אפשרויות בישראל
- מרכזי נתונים ישראליים: חברות כמו Bynet, Bezeq International ו-Partner Communications מציעות שרתים ייעודיים, אך לא תמיד עם GPU. יש לבדוק זמינות.
- Colocation: ניתן לרכוש שרת משלכם ולהציב אותו במרכז נתונים ישראלי (colocation). תשלמו עבור חשמל, קירור ורוחב פס — כ-1,500-3,000 ש״ח לחודש.
- ענן ישראלי: Google Cloud ו-Oracle Cloud מציעים אזורי זמינות בישראל (Tel Aviv region), כולל מכונות עם GPU. העלות גבוהה יותר מ-colocation אך ההקמה מהירה יותר.
חלופה: שרת בבית או במשרד
עבור עסקים קטנים ובינוניים, שרת במשרד הוא אפשרות מצוינת. שרת עם RTX 4090 צורך כ-300-450 וואט תחת עומס, שזה כ-200-300 ש״ח חשמל בחודש. צריך חיבור אינטרנט יציב (סיבים מומלץ) וחדר עם מיזוג אוויר.
שאלות נפוצות
AI On-Premise פירושו הרצת מודלים של בינה מלאכותית על שרת מקומי בבעלות הארגון, במקום לשלוח נתונים לשרתי ענן. זה חשוב מכמה סיבות: פרטיות מלאה (הנתונים לא עוזבים את הארגון), ביצועים מהירים (335ms ללא עיכוב רשת), עלות ריצה נמוכה (כ-500 ש״ח לחודש), ועמידה בדרישות רגולטוריות ישראליות.
לעסק בינוני: RTX 4090 עם 24GB VRAM מספיק ומעניק ביצועים מצוינים (335ms זמן תגובה). לארגון גדול: NVIDIA A100 (40GB או 80GB) או L40S (48GB). הגורם המכריע הוא כמות ה-VRAM — מודל LLM של 7 מיליארד פרמטרים דורש כ-5GB, ויחד עם STT ו-TTS צריך לפחות 16GB VRAM.
ההשקעה הראשונית כוללת שרת עם GPU (15,000-40,000 ש״ח), הטמעה ואינטגרציה (10,000-30,000 ש״ח). העלות השוטפת כ-500 ש״ח לחודש (חשמל ותחזוקה). לעומת זאת, פתרונות ענן עולים 8,000-25,000 ש״ח לחודש. ההחזר על ההשקעה מגיע תוך 3-4 חודשים.
כן, Docker מפשט משמעותית את הפריסה. במקום להתקין ולהגדיר כל רכיב בנפרד (Asterisk, Ollama, Whisper, XTTS), כל המערכת ארוזה ב-Docker image אחד. הפקודה docker run אחת מפעילה את כל המערכת. Supervisor מנהל את השירותים הפנימיים ומוודא שהם פועלים תמיד.
אבטחה ב-AI On-Premise כוללת: חומת אש שחוסמת גישה לפורטים לא נדרשים, הצפנת SIP עם TLS ו-SRTP, VPN לגישה מרחוק, גיבויים אוטומטיים של הגדרות ומודלים, ניטור 24/7 עם התראות, fail2ban נגד התקפות brute force, ועדכוני אבטחה שוטפים. כל זה נשאר בשליטה מלאה של הארגון.
כן. שרת בודד עם RTX 4090 תומך בעד 50 שיחות במקביל. להרחבה, ניתן להוסיף שרתים נוספים עם load balancer (Kamailio/OpenSIPS) שמחלק את השיחות ביניהם. ארכיטקטורת Docker מאפשרת פריסה מהירה של שרתים נוספים. לזמינות גבוהה, מוסיפים שרת גיבוי עם failover אוטומטי באמצעות Keepalived.