
הבאג של 89 מיליון דולר: מה אפל וגולדמן זאקס לא הבינו לגבי AI בעולם הפיננסי
ישבתי במשרד הביתי שלי בערב יום שלישי באוקטובר האחרון כשהודעת העיתונות של ה-CFPB נחתה בפיד שלי. אפל וגולדמן זאקס, נדרשות לשלם יותר מ-89 מיליון דולר בגין כשלים מערכתיים באופן שבו טיפלו במחלוקות חיוב על Apple Card. קראתי את צו ההסכמה פעמיים. ואז קראתי אותו בפעם השלישית, כי לא הצלחתי להאמין למה שראיתי.
הכשל המרכזי לא היה איזושהי הנדסה פיננסית אקזוטית שהשתבשה. זה לא היה אלגוריתם סורר שקיבל החלטות אשראי מפלות. זה היה כפתור. טופס משני באפליקציית Apple Wallet שכאשר צרכנים לא השלימו אותו, גרם למחלוקות החיוב שלהם להיעלם לתוך חלל דיגיטלי. עשרות אלפי אנשים דיווחו על חיובים לא מורשים, והמערכת פשוט... בלעה אותם. בלי חקירה. בלי אישור קבלה. בלי פתרון. הצרכנים נשארו עם החשבון.
אני בונה מערכות AI למחייתי. החברה שלי, Veriprajna, מתמקדת במה שאנחנו מכנים AI עמוק — ארכיטקטורות נוירו-סימבוליות המשלבות את הגמישות של מודלי שפה גדולים עם הקפדנות המתמטית של אימות פורמלי. כשקראתי את צו ההסכמה, לא הרגשתי שהצדק איתי. חשתי בחילה. כי כל מה שהשתבש ב-Apple Card היה ניתן למניעה. לא באמצעות בדיקות טובות יותר. לא באמצעות עוד מהנדסים. אלא באמצעות דרך חשיבה שונה מהיסוד על האופן שבו צריך לבנות מערכות AI לתעשיות מפוקחות.
מה באמת קרה למחלוקת החיוב שלכם על Apple Card?

הרשו לי לפרוס בפניכם את הכשל, כי הפרטים חשובים יותר מהמספר שבכותרת.
אפל וגולדמן זאקס חתמו על הסכם השותפות שלהן ב-2017. אפל תחזיק בחוויית הצרכן — ממשק ה-Wallet המלוטש, מערכת ההודעות, כל החזית. גולדמן זאקס תהיה הבנק שמאחורי הקלעים: תנפיק אשראי, תעבד עסקאות ותחקור מחלוקות כשמשהו משתבש.
ביוני 2020 אפל הפיצה עדכון לתהליך "Report an Issue". לפני העדכון, הייתם מקישים על עסקה חשודה, לוחצים על "Report an Issue" ומנותבים לצ'אט מבוסס Messages עם גולדמן זאקס. פשוט וברור. אחרי העדכון, אפל הוסיפה טופס משני — שלב נוסף שצרכנים היו אמורים להשלים אחרי ההודעה הראשונית.
וכאן זה נשבר: כשאנשים הגישו את מחלוקת החיוב שלהם דרך Messages אבל לא סיימו את הטופס המשני, המערכת התייחסה למחלוקת כלא שלמה. היא מעולם לא העבירה את התלונה לגולדמן זאקס. מבחינה רגולטורית, רבות מההודעות האלה נחשבו להודעות שגיאת חיוב תקפות לפי חוק האמת בהלוואות. מבחינה משפטית, הן היו אמורות להפעיל חקירה בתוך מסגרות זמן מוגדרות. במקום זאת, הן נעלמו.
עשרות אלפי מחלוקות צרכניות תקפות מבחינה משפטית נבלעו על ידי מכונת מצבים שאיש מעולם לא אימת פורמלית.
אני זוכר שקראתי את הפרט הזה וחשבתי על כל שיחה שניהלתי עם מנהלים בשירותים פיננסיים שאומרים לי שהמערכות שלהם "נבחנו בשטח". נבחנו מול מה? מול התרחיש הספציפי שבו שינוי בממשק המשתמש מכניס מצב מת לתוך תהליך מבוזר? זה לא סוג הדבר שתופסים עם בדיקות יחידה וספרינטים של QA.
סעיף ה-25 מיליון דולר ששבר הכול
יש פרט קבור בצו ההסכמה שאני חוזר אליו שוב ושוב. החוזה של אפל עם גולדמן זאקס כלל הוראה של 25 מיליון דולר פיצויים מוסכמים על כל עיכוב של 90 יום שגולדמן תגרום לו בהשקת Apple Card.
עשרים וחמישה מיליון דולר. לרבעון. על איחור.
הייתי בחדרים שבהם לחץ מסחרי מעוות החלטות הנדסיות. ראיתי צוותים משגרים דברים שידעו שאינם מוכנים, כי עלות העיכוב הרגישה מוחשית יותר מעלות הכישלון. אבל מעולם לא ראיתי מבנה תמריצים מנוסח כל כך במפורש. גולדמן זאקס נקנסה למעשה מראש על זהירות.
Apple Card עלה לאוויר ב-20 באוגוסט 2019. צוותים פנימיים בגולדמן העלו חששות לגבי מוכנות המערכת. תורי ההודעות בין אפליקציית Wallet למערכת העורפית של גולדמן לא נבדקו מספיק. פרוטוקולי הסנכרון היו שבירים. אבל החשבון היה פשוט: לשגר עכשיו ולתקן אחר כך, או לשלם 25 מיליון דולר ולתקן קודם.
הם שיגרו. ובמשך יותר משנה, המערכת רצה עם חור שאיש לא יכול היה לראות מבחוץ.
אני חושב על זה כשאנשים שואלים אותי למה Veriprajna מתעקשת על אימות פורמלי לפני פריסה. "זה לא איטי?" הם שואלים. "אי אפשר פשוט לנטר בייצור ולתפוס תקלות?" בטח. אפשר גם לנהוג בלי בלמים ולתכנן לעקוף מכשולים בהיגוי. זה עובד עד שזה מפסיק לעבוד. וכשזה מפסיק לעבוד בשירותים פיננסיים, אנשים אמיתיים נפגעים.
למה אף אחד לא תפס את זה?
זו השאלה שרודפת אותי. שתיים מהחברות המתוחכמות ביותר טכנולוגית על פני כדור הארץ — אפל, עם תרבות ההנדסה האגדית שלה, וגולדמן זאקס, עם עוצמת האש הכמותית שלה — ואף אחת מהן לא שמה לב שאלפי מחלוקות נופלות לתוך חור שחור?
התשובה, אני חושב, היא ארכיטקטונית. המערכת תוכננה כממסר: אפל מטפלת בחזית, גולדמן מטפלת במערכת העורפית, והודעות זורמות ביניהן. אבל אף אחד לא היה אחראי על המרחב בין שתי המערכות. לאיש לא היה מודל פורמלי של מה אמור לקרות כשמחלוקת נכנסת למצב A ("הודעה הוגשה") אבל מעולם לא הגיעה למצב B ("טופס הושלם"). במכונת מצבים מתוכננת היטב, זה מעבר שלוקחים בחשבון במפורש. במערכת של Apple Card, זה היה פער שאיש לא הגדיר, ולכן איש לא ניטר.
עבדתי עד מאוחר בלילה לפני כשנה — הצוות שלי ואני בנינו תהליך ציות עבור לקוח, ואחת המהנדסות שלנו, פריה, סימנה משהו דומה. היא מידלה את מעברי המצבים בתהליך סקירת מסמכים ומצאה נתיב שבו הגשה יכולה להיתקע במצב "ממתין להעשרה" ללא הגבלת זמן אם API של צד שלישי חורג מהזמן הקצוב. זה לא היה באג בקוד. הקוד עשה בדיוק מה שאמרו לו. זה היה באג בתכנון — מצב שהמפרט לא לקח בחשבון.
תפסנו את זה כי אנחנו משתמשים בכלים לאימות פורמלי — ליתר דיוק, אנחנו ממדלים תהליכי עבודה כמכונות מצבים ומריצים אותם דרך פותרי SMT שבודקים באופן ממצה כל נתיב אפשרי. הפותר מצא את המצב המת של פריה תוך שניות. במערכת של Apple Card, המצב המת הזה רץ בייצור במשך חודשים.
הכשל של Apple Card לא היה באג בקוד. הקוד עשה בדיוק מה שאמרו לו. זה היה באג בתכנון — מצב שאיש לא הגדיר, ולכן איש לא ניטר.
למה אי אפשר פשוט להשתמש ב-GPT בשביל זה?

אני מקבל את השאלה הזאת כל הזמן. משקיע אמר לי אותה כמעט מילה במילה בפגישת פיץ': "למה אי אפשר פשוט לעשות fine-tune ל-GPT-4 על רגולציות TILA ולתת לו לטפל במחלוקות?"
לקחתי נשימה. ואז שאלתי אותו: "אם GPT-4 אומר לצרכן שמחלוקת החיוב שלו נפתרה, אבל בפועל היא מעולם לא הועברה לבנק, מי אחראי?"
לא הייתה לו תשובה. וגם לאף אחד אחר אין, כי השאלה חושפת את הבעיה היסודית בגישה שאני מכנה "מגה-פרומפט" ל-AI בתעשיות מפוקחות. אתם לוקחים מודל שפה גדול, תוחבים את הרגולציות הרלוונטיות לחלון ההקשר שלו, ומקווים שהוא יטפל בהכול נכון. בלי שכבת ממשל. בלי אימות פורמלי. בלי שום ערובה מתמטית שהפלטים של המערכת עקביים עם החוק.
במקרה של Apple Card, הכשל היה שגיאת לוגיקה במכונת מצבים מבוזרת. מעטפת LLM לא הייתה מתקנת את זה — היא אולי הייתה מחמירה אותו. תארו לעצמכם LLM שאומר לצרכן בביטחון מלא "מחלוקת החיוב שלך הוגשה ונמצאת בבדיקה" כשבמציאות המחלוקת מעולם לא עזבה את השרתים של אפל. זה לא תרחיש היפותטי. ככה נראית הזיה בהקשר פיננסי, וזה מפחיד.
אתרי ההסברים הפיננסיים הפופולריים והתוכן שמשותף בהרחבה על AI בבנקאות מפספסים כמעט תמיד את ההבחנה הזאת. הם מדברים על AI ש"מאוטמט" ציות כאילו החלק הקשה הוא לקרוא את הרגולציות. החלק הקשה הוא לא לקרוא אותן. החלק הקשה הוא להוכיח שהמערכת שלכם מצייתת להן בכל תרחיש אפשרי, כולל תרחישים שעדיין לא חשבתם עליהם.
למבט מעמיק יותר על האופן שבו הכשל של אפל-גולדמן ממופה להפרות רגולטוריות ספציפיות ולפערים ארכיטקטוניים, כתבתי ניתוח אינטראקטיבי שעובר על צו ההסכמה לפרטי פרטים.
מה "נכון באופן מוכח" באמת אומר
כשאני אומר ש-Veriprajna בונה מערכות ציות "נכונות באופן מוכח", אני לא מתכוון "נבדקות היטב". אני מתכוון מוכחות מתמטית. יש הבדל, והוא חשוב עד מאוד.
בדיקות בוחנות תרחישים ספציפיים. אתם כותבים בדיקה שאומרת "אם משתמש מגיש מחלוקת חיוב ומשלים את הטופס, ודא שהיא מגיעה לגולדמן זאקס". הבדיקה עוברת. מצוין. אבל לא בדקתם את התרחיש שבו המשתמש מגיש מחלוקת ולא משלים את הטופס. או שבו הוא משלים אותו אבל הרשת מפילה את החבילה. או שבו שתי מחלוקות מגיעות בו-זמנית ואחת דורסת את השנייה.
אימות פורמלי לא בודק תרחישים. הוא בודק תכונות. אתם מגדירים תכונה — "כל מחלוקת שהוגשה חייבת להגיע בסופו של דבר למצב חקירה" — ופותר מתמטי מוכיח באופן ממצה שהתכונה מתקיימת בכל הרצה אפשרית של המערכת. כל נתיב. כל מקרה קצה. כל תנאי מרוץ. אם יש ולו דוגמה נגדית אחת, הפותר מוצא אותה ומראה לכם בדיוק איך המערכת יכולה להיכשל.
אנחנו משתמשים בכלים כמו Imandra, שמאפשר לנו לבנות מה שהוא למעשה תאום דיגיטלי של לוגיקת הציות. התאום רץ לצד מערכת הייצור, ואם קוד הייצור מנסה אי פעם פעולה שסוטה מהמודל המאומת — כמו הפלת מחלוקת בגלל שלב ממשק לא שלם — המערכת תופסת את זה בזמן אמת.
זו סוג הגישה שהייתה תופסת את הבאג של Apple Card לפני שזה השפיע ולו על צרכן אחד. בשלב התכנון, פותר SMT היה מזהה מיד שהמשתנה "CompletedFormB" אינו שדה חובה לפי TILA. לוגיקת ההעברה דרשה אותו, אבל החוק לא. אי-ההתאמה הזאת היא פגם ניתן להוכחה, והיא הייתה מסומנת לפני הפריסה.
הארכיטקטורה שאנחנו באמת בונים

אני רוצה להיות ספציפי לגבי איך נראית מערכת ציות של "AI עמוק" בפועל, כי טענות מעורפלות על "ציות מונע AI" הן חלק מהבעיה.
Veriprajna משתמשת בארכיטקטורה רבת-סוכנים. במקום AI מונוליטי אחד שמנסה לעשות הכול, אנחנו פורסים סוכנים מתמחים עם תפקידים וגבולות מוגדרים. תחשבו על זה פחות כמו לגייס גאון אחד ויותר כמו להרכיב צוות שבו לכל אחד יש תפקיד ספציפי ומפקח שבודק את עבודתו.
סוכן קליטה מטפל בחלק המבולגן והאנושי — פענוח מחלוקות בשפה טבעית. כשמישהו כותב "מעולם לא קניתי את הקפה הזה בסיאטל; הייתי בלונדון באותו יום", הסוכן מחלץ את הישויות המרכזיות: העסקה, בית העסק, התאריך, טיב הטענה. כאן מודלי שפה גדולים באמת מצטיינים.
אבל אז — וכאן אנחנו נבדלים מכל גישה מבוססת-מעטפת שראיתי — המידע שחולץ עובר למנוע מדיניות סימבולי שאינו מנבא ואינו מנחש. הוא מעריך את המחלוקת מול קידודי לוגיקה מסדר ראשון של החוק הפדרלי. האם ההודעה הזאת מכילה מספיק מידע כדי להוות הודעת שגיאת חיוב תקפה לפי TILA? המנוע לא מעריך בקירוב. הוא מוכיח.
סוכן תהליך אוכף את רצף הפעולות. סוכן אימות מריץ בדיקות מתמטיות בזמן אמת. סוכן ביקורת מתעד כל אינטראקציה במה שאנחנו מכנים "קופסת זכוכית" — שקיפות מלאה עבור הרגולטורים.
והכי קריטי, סוכן זקיף מנטר בדיוק את סוג המצב המת שהרג את מערכת Apple Card. אם מחלוקת יושבת במצב "הוגשה אך לא הועברה" יותר מסף מוגדר, הזקיף לא מחכה שאדם ישים לב. הוא קובע באופן אוטונומי אם המידע הקיים מספיק כדי להתקדם, אורז אותו, ומעביר אותו דרך ערוץ מאומת.
במערכת שנבנתה לציות מוחלט, החוק — לא ממשק המשתמש — קובע אם מחלוקת תקפה. אם צרכן סיפר לכם על חיוב לא מורשה, היעדרו של טופס מושלם הוא הבעיה שלכם, לא שלו.
למה תזמון הוא דרישה משפטית, לא מדד ביצועים
יש לזה ממד נוסף שרוב הדיונים הטכניים מפספסים לחלוטין. בציות פיננסי, זמן הוא חוק. Regulation Z לא רק אומרת שאתם חייבים לחקור מחלוקות. היא אומרת שאתם חייבים לאשר את קבלתן בתוך פרקי זמן מוגדרים וליישב אותן בתוך 60 יום. גולדמן זאקס נקנסה בין היתר מפני שלא שלחה הודעות אישור קבלה בתוך החלונות האלה.
הצוות שלי בילה חודשים בפיתוח מה שאנחנו מכנים ניתוח השהיה סימבולית — דרך להוכיח מתמטית שמערכת מבוזרת תשלים את עבודתה בתוך דדליין רגולטורי בתנאי המקרה הגרוע ביותר. לא תנאים ממוצעים. לא "אחוזון 95". המקרה הגרוע ביותר.
ניטור מסורתי אומר לכם אם המערכת שלכם הייתה איטית. השהיה סימבולית אומרת לכם אם המערכת שלכם יכולה להיות איטית. אם שינוי בקוד הממשק מגדיל את זמן העיבוד במקרה הגרוע ביותר מעבר לחלון הרגולטורי של 60 יום, הפריסה נדחית אוטומטית. אתם לא מגלים בדיעבד. אתם מגלים לפני שאתם משגרים.
אני זוכר את הוויכוח שניהלנו פנימית על השאלה אם רמת הקפדנות הזאת נחוצה. אחד המהנדסים שלי — בחור מבריק שבילה שנים אצל ספק ענן גדול — התנגד בתוקף. "אתה מוסיף שבועות למחזור הפריסה בשביל תרחיש שאולי לעולם לא יקרה", הוא אמר. הצבעתי על צו ההסכמה של Apple Card. "זה קרה", אמרתי. "לאפל. לגולדמן זאקס. לעשרות אלפי צרכנים שלא עשו שום דבר רע."
הוא לא התווכח אחרי זה.
לפירוט הטכני המלא של גישת האימות הפורמלי שלנו, כולל מתודולוגיית Performal לחסמי השהיה, ראו את מאמר המחקר שלנו.
"אבל זה ייקח יותר מדי זמן לבנות"
אנשים תמיד מתנגדים בנקודה הזאת, ואני מבין למה. Apple Card הושק תוך חודשים. ארכיטקטורת ציות מאומתת פורמלית לוקחת 18 עד 36 חודשים לאופטימיזציה מלאה בסביבה עתירת מערכות מדור קודם. זה מרגיש כמו נצח בעולם שבו מתחרים משגרים מדי שבוע.
אבל תנו לי למסגר מחדש את החשבון. אפל וגולדמן זאקס בילו שנים בבנייה ובהשקה של Apple Card. ואז בילו שנים בהתמודדות עם ההשלכות — חקירות פנימיות, בדיקות רגולטוריות, עלויות משפטיות, נזק תדמיתי, ובסופו של דבר 89.8 מיליון דולר בקנסות ובפיצוי לצרכנים. הגישה ה"מהירה" לא הייתה מהירה. היא הייתה מהירות בהתחלה ואסון בסוף.
גישת הפריסה המדורגת שלנו מכירה במציאות. אי אפשר לעקור את מערכות הליבה של בנק. מיינפריימים של COBOL שרצים מאז שנות ה-80 לא הולכים לשום מקום בן לילה. לכן אנחנו משתלבים בשכבות: מבקרים את הארכיטקטורה הקיימת, בונים שער API חכם, מריצים את מערכת ה-AI במצב צל כדי לתקף את הפלטים של המערכת מדור קודם, ומעבירים בהדרגה סמכות החלטה ככל שההוכחות הפורמליות מצטברות.
השלב הראשון — הערכה ומידול פורמלי — לוקח 14 עד 20 שבועות. עד סופו יש לכם מודל מתמטי של לוגיקת הציות שלכם שיכול לתפוס את סוג הבאגים של מצבים מתים שפקדו את Apple Card. זה לא 36 חודשים. זה פחות מחמישה חודשים למערכת בטוחה יותר מהיסוד.
הרגע ששינה את האופן שבו אני חושב על זה
יש רגע מסוים שאני חוזר אליו שוב ושוב. זה היה לפני כשמונה חודשים, והרצנו הוכחת היתכנות עבור לקוח בשירותים פיננסיים. מידלנו את תהליך יישוב המחלוקות שלהם כמכונת מצבים מבוזרת והרצנו את חבילת האימות הפורמלי.
הפותר מצא אחד-עשר מצבים מתים.
אחד-עשר נתיבים במערכת שבהם תלונה של צרכן יכולה להיתקע בלי פתרון ובלי התראה. צוות ההנדסה של הלקוח הריץ את המערכת הזאת שלוש שנים. הם עיבדו מיליוני עסקאות. היו להם לוחות ניטור, מערכות התראה, ביקורות רבעוניות. ואף אחד מהם לא תפס את אחד-עשר החורים האלה.
בחדר השתררה דממה כשהראיתי להם את התוצאות. ראשת הציות שלהם — אישה שבילתה עשרים שנה ברגולציה בנקאית — הביטה במסך ואמרה: "כמה צרכנים נפלו לתוך המצבים האלה?"
לא ידענו. גם הם לא ידעו. זה העניין במצבים מתים במערכות מבוזרות: אם אף אחד לא מחפש אותם, הם בלתי נראים. הצרכנים שנפגעו אולי התקשרו לשירות הלקוחות, קיבלו סחבת, ובסוף ויתרו. או שאולי הם עדיין משלמים על חיובים שמעולם לא ביצעו.
ככה נראה הכשל של Apple Card מבפנים. לא פיצוץ דרמטי. הצטברות איטית ושקטה של נזק שאיש לא יכול לראות עד שרגולטור פותח בכוח את הקופסה השחורה.
איך נראות חמש השנים הבאות
הפעולה של ה-CFPB נגד אפל וגולדמן זאקס אינה אירוע מבודד. זו תחילתה של התחשבנות רגולטורית עם האופן שבו חברות טכנולוגיה מנהלות תשתית פיננסית. ככל שהבנקאות הופכת מוטמעת יותר — בטלפונים, באפליקציות, בפלטפורמות שלא תוכננו במקור כשירותים פיננסיים — הפער בין "עובד רוב הזמן" לבין "מוכח שעובד כל הזמן" הופך לחבות הנמדדת במאות מיליוני דולרים.
אני חושב על ההתנגדות שאני שומע לרוב: "אימות פורמלי הוא לא אוברקיל לרוב המערכות הפיננסיות?" והתשובה שלי נעשתה פשוטה יותר עם הזמן. Apple Card הוא אחד המוצרים הפיננסיים הצרכניים הבולטים בעולם, שנבנה על ידי שתי חברות עם משאבי הנדסה כמעט בלתי מוגבלים. אם הן לא הצליחו לתפוס מצב מת בתהליך מחלוקות באמצעות בדיקות וניטור מסורתיים, מה גורם לכם לחשוב שהמערכת שלכם שונה?
התעשייה נעה לעבר מה שאני מכנה ציות מוחלט — לא ציות כתרגיל של סימון וי, אלא ציות כתכונה ארכיטקטונית. מערכת שבה עמידה בחוק אינה משהו שמאמתים בדיעבד אלא משהו שמוכיחים לפני הפריסה. שבה הפער בין ממשק המשתמש לבין הרגולציה נגשר לא על ידי ערנות אנושית אלא על ידי ודאות מתמטית.
עידן ה"שגר מהר ותקן אחר כך" אינו מתיישב עם דרישות ה"הזז כסף והגן על אנשים" של הפיננסים הגלובליים. Apple Card הוכיח את זה. השאלה היא אם התעשייה תלמד את הלקח לפני הקנס הבא של 89 מיליון דולר או אחריו.
אנחנו בונים את העתיד הזה ב-Veriprajna. לא כי זה קל — אימות פורמלי של מערכות פיננסיות מבוזרות הוא קשה באמת, ומי שאומר לכם אחרת מוכר לכם משהו. אלא כי החלופה היא מה שראינו באוקטובר 2024: שתיים מהחברות החזקות בעולם, כפתור שבור, ועשרות אלפי אנשים שנשארו עם החשבון על חיובים שמעולם לא ביצעו.
זו לא בעיה טכנולוגית. זו בעיה של אתיקה הנדסית. והפתרון אינו ניטור טוב יותר או טלאים מהירים יותר. הוא בניית מערכות שנכונות מעצם הבנייה — מערכות שבהן המתמטיקה מבטיחה ששום מחלוקת של שום צרכן לא תיעלם לתוך חלל.
הקנס של 89 מיליון דולר כבר שולם. העלות האמיתית היא האמון שנשבר. לבנות אותו מחדש דורש יותר מהבטחות. זה דורש הוכחה.