פייסבוק מציגה כלי שממיר קוד משפת תכנות אחת לאחרת בעזרת AI

פייתון? ג’אווה? ++C? הכלי של פייסבוק, שמבוסס כמובן על בינה מלאכותית, ממיר קוד בין השפות השונות, ובעתיד עשוי לחסוך גם לא מעט זמן יקר וכסף. עכשיו רק נותר לראות מתי והאם הוא יגיע לקהל הרחב

מקור: Pixabay

המרה או תרגום של קוד הכתוב בשפה אחת לשפה אחרת היא פעולה אפשרית, אך היא דורשת הבנה ושליטה בשתי השפות, וגוזלת המון זמן. כמו בתחומים רבים אחרים, גם כאן הבינה המלאכותית יכולה לסייע, וחוקרים מפייסבוק מציגים מודל שפיתחו שיאפשר להמיר קוד הכתוב בשפה אחת לשפה אחרת, באופן אוטומטי וזריז.

עושה את העבודה השחורה בשבילכם

החוקרים בצוות ה-AI של פייסבוק פיתחו מה שהם מכנים טרנס-קומפיילר נוירוני – כלומר, מערכת המתרגמת קוד מקור הכתוב ב-Java, Python או ++C לשפה אחרת. השימוש בכלים מסוג זה אינו חדש, ולאורך השנים השתמשו בהם כדי להמיר קוד בסיס שנכתב בשפות ישנות כדוגמת COBOL או Python 2 לשפות עדכניות יותר. עם זאת, הם דורשים השגחה, התערבות ושינויים ידניים בשל חוסר דיוק וכשלים בהמרה. במחקר שלה, פייסבוק מציינת דוגמה כאובה לפיה בנק באוסטרליה השקיע לא פחות מ-750 מיליון דולר ו-5 שנות עבודה כדי להמיר את המערכת שלו מ-COBOL ל-Java.

המערכת של פייסבוק, ה-TransCoder מבוססת על למידת מכונה, אומנה על כמעט 3 מיליון ריפוז ב-GitHub, והשלימה מבחן שכלל 852 פונקציות מקבילות ב-3 שפות. כדי לסייע למערכת ללמוד, תהליך האימון כלל הכשרה שתכליתה לזהות ״נקודות עוגן״ המשותפות לשפות רבות כדוגמת ״for״, ״while״ “if״ ו-״try״, ספרות ומחרוזות באנגלית שמופיעים בקודי מקור רבים. לדברי החוקרים, האלטרנטיבה שלהם מתרגמת קוד באופן מדויק, מהיר, ועם כמה שפחות התערבות אנושית.

החוקרים מודים כי אמנם לא הושגה עדיין רמת תרגום של 100% בין המקור לגרסה המחודשת, אבל התוצאות לא רעות בכלל; כך למשל, המערכת הצטיינה בעת המרה של קוד שנכתב ב-Java ל++C ב-91.6% מהמקרים, בעוד שבתרגום ההפוך מ-++C ל-Java רמת הדיוק עמדה על 74.8%. אחוז ההצלחה הנמוך ביותר נמדד בעת תרגום קוד שנכתב ב-Python ל-Java והוא עומד על 56.1%.

דוגמה להמרה מוצלחת של קוד מ-++C ל-Python. מקור: Facebook

עם זאת, צוות החוקרים די אופטימי, ולדבריהם ניתן לתקן בקלות את הטעויות שנעשו על ידי המודל באמצעות הוספה של אילוצים ושינויים פשוטים, שיובילו לתוצאות מדויקות יותר. כמו כן, ניתן ללמד אותו לעבוד עם שפות נוספות.

בשלב הראשון מדובר בעבודה מחקרית-תיאורטית, ולכן, אנחנו עוד לא יודעים האם ומתי הכלי ישוחרר לציבור הרחב. אם אתם בעניין, תוכלו לקרוא עליו עוד – כאן.

Avatar

הילה חיימוביץ׳

גיקית, Deal With It

הגב

26 תגובות על "פייסבוק מציגה כלי שממיר קוד משפת תכנות אחת לאחרת בעזרת AI"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* היי, אנחנו אוהבים תגובות!
תיקונים, תגובות קוטלות וכמובן תגובות מפרגנות - בכיף.
חופש הביטוי הוא ערך עליון, אבל לא נוכל להשלים עם תגובות שכוללות הסתה, הוצאת דיבה, תגובות שכוללות מידע המפר את תנאי השימוש של Geektime, תגובות שחורגות מהטעם הטוב ותגובות שהן בניגוד לדין. תגובות כאלו יימחקו מייד.

סידור לפי:   חדש | ישן | הכי מדורגים
Asaf
Guest

91.6% הצלחה זה 8% טעויות שצריך לחפש בקוד.
גרוע ממתכנת מתחיל שבקושי מכיר את שפת התכנות.
הבעיה האמיתית היא כמובן לא להמיר את הקוד אלא לוודא שהלוגיקה עובדת כמו שצריך.
שיחזרו אלינו כשיש להם מערכת שמשווה לוגיקה באופן אוטומטי בין אפליקציות בשפות שונות.

אלון
Guest

כשהם יחזרו אליך, לא תהיה לך עבודה.
המכונה תעשה הכל במקומך.
עבודה תהיה רק למדעני מחשב ולא למתכנתים רגילים.

י6דע
Guest

מה שאתה לא מבין, שכל הלמידת מכונה היא בחיתוליה וברגע שהעניין יפרוץ יצטרכו יותר מתכנתים מאשר אנשים שלומדים את זה כמו שעכשיו צריך יותר מתכנתים ממהנדסי חומרה

Asaf
Guest

יש היום גרעון תוכנה בעולם. מתכנתים יהפכו לארכיטקטים. כל מתכנת יהיה ראש צוות (של AI). זה רק חיובי.

ASD
Guest

בהנחה שהקוד מומר כהלכה, האם זה לא אומר שגם הלוגיקה באה איתו?

סה\
Guest

ממש לא או לא ממש או כל מה שבינהם- תבחר לבד…

ASD
Guest

……………………………..למה אבל?

ככה זה
Guest

לעשות לי מינוס לא יתן לך תשובה- אם אתה מעוניין לפתוח בדיון מתמטי ופילוסופי אתה מוזמן לתקן את המצב

כבר הגיעו לסינגולריות?
Guest
כבר הגיעו לסינגולריות?

להגיד שהרשת הזו למדה מתוך זה לוגיקה והגיון – זה כמו לטעון שלגוגל טרנסלייט אולי יש מודעות עצמית שמסתתרת עמוק בפנים בין המטריצות
בינתיים רשתות שמנסות ללמוד הגיון ומתמטיקה( בעיקר באמצעות reinforcement learning ) מגיעות לתוצאות שבמקרה הטוב הן מעוררות רחמים
מה שהרשת הזאת מנסה ללמוד לעשות זה seq2seq לקוד במקום לשפה( סוג של style transfer )
בכל מקרה זה כנראה לא עובד מספיק טוב בהשוואה לtranspiler אמיתי

אריאל
Guest

I agree to share with facebook the generated code

מעניין לקרוא את ה terms and conditions במוצר הזה.

עופר
Guest

I agree to share the generated code with Facebook

זה בהנחה ומי שכתב את זה לא תירגם מעברית לאנגלית.

משתמש אובונטו
Guest

הבעיה זה לא הקוד בפונקציות.
הבעיה זה השימוש בפרימוורקים, הספריות, הAPI, וכל הדברים הנלווים. את זה שום מכונה לא מסוגלת להמיר.

אור
Guest

זה לא בעיה , הבעיה היא שבJAVA ועוד כל מיני שפות , הספריות מוגנות בזכויות יוצרים . ואם תקח אותם ותתרגם לשפה אחרת , תקבל תביעה

נו באמת
Guest

את מה המכונה לא מסוגלת להמיר, את החיפוש היומי ב-StackOverflow? לא יודע…נראה לי די פשוט…

אביעד
Guest

מה הבעיה להמיר גם אותם?

משתמש אובונטו
Guest

לא יודע אביעד. נסה להמיר אפליקציית Spring Boot לnode.js עם אקספרס או מטאור והיברנט ועוד 700 פרימוורקים מוכרים יותר או פחות. או להמיר אנגולר לריאקט ולהפך. באמת, בהצלחה עם זה.

כל שורה שניה זו קריאה לאיזה משהו מספריה כלשהי שאין אותה בשפה המקבילה.

אביעד
Guest

לכן אתה מתרגם גם את הספרייה.

imr
Guest

למידת מכונה = בוא נזרוק כמה שיותר ג’אנק לרשת נוירונים יחד עם כמה היוריסטיקות מומצאות ונראה מה יוצא. יאללה תתקדמו כבר מהבאזוורד הזה

ai winter is coming
Guest

סתם הערה – אולי ניסית להשמע ציני אבל אתה ממש צודק- כדי למנוע over-fitting ולעזור לרשת ללמוד על דרך השלילה נהוג להאכיל אותן בהרבה ג’אנק

חזקיהו
Guest

אבל איך ה preformens לעומת המקור
איך הקריאות של הקוד וכו
רק להמיר בין שפות זה לא מספיק

חברה דמיקולו
Guest

שישלבו את זה עם הבוט שנאלצו לנתק כי פחדו שהמציא לבד שפה ושאולי פיתח מודעות עצמית יחד עם זיהוי פרצופים של חברים מהפייסוש והסטורי שהעתיקו מסנאפ-צאט ויקבלו חרטא בפיתה

שלר
Guest

המערכת מעבירה גם coments?
הרי כל העיקרון של קוד קריא לבני אנוש הוא שיהיה אפשר אח”כ להיכנס אליו שוב לתקן ולשנות…

משתמש אובונטו
Guest

מאוד קשה להמיר את הcomments.
באמת צריך AI בשביל זה…

חנבציהו השלישי
Guest
חנבציהו השלישי

אני יכול להמיר קוד של הודים לקודם של אוקראינים?

yaniv
Guest

אפשר להגיע לתוצאות טובות יותר עם פרסרים פשוטים ועבודה עם regex

נועם
Guest

מבטיח לכם, זה לא שווה כלום. וכך זה ימשך בעשרים השנים הקרובות.

יש דברים רבים שלא ניתן להמיר בלי שינוי מהותי בקוד, בפרט אם רוצים קוד קריא.

wpDiscuz

תגיות לכתבה: