איין אַספּעקט פון דעם סצענאַר איז קריייטינג אַ מאַשין לערנען מאָדעל. עס מוזן זיין ניצלעך אין דער עמעס וועלט און בנימצא פֿאַר קאָנסומערס און דעוועלאָפּערס.
די סימפּלאַסט און מערסט פאָלקס וועג צו צעוויקלען מאַשין לערנען מאָדעלס איז צו אַרייַננעמען זיי אין אַ REST API.
מיט אַ פאָלקס ביבליאָטעק גערופֿן FastAPI, דאָס איז פּונקט וואָס מיר וועלן דערגרייכן הייַנט.
אָבער, וואָס איז פאַסטאַפּי?
די FastAPI Python וועב פריימווערק איז באשאפן פֿון דער ערד אַרויף צו נוצן די הייַנטצייַטיק פּיטהאָן קייפּאַבילאַטיז.
פֿאַר ייסינגקראַנאַס, קאַנקעראַנט קאָמוניקאַציע מיט קלייאַנץ, עס אַדכירז צו די ASGI נאָרמאַל, בשעת עס איז אויך טויגעוודיק צו נוצן WSGI.
ענדפּאָינץ און רוץ קענען ביידע נוצן אַסינק פאַנגקשאַנז. אַדדיטיאָנאַללי, FastAPI ינייבאַלז די פּראָדוקטיוו שאַפונג פון וועב אַפּפּס אין טיפּ-הינטעד, ריין, הייַנטצייַטיק פּיטהאָן קאָד.
דער הויפּט נוצן פאַל פון FastAPI איז, ווי דער נאָמען סאַגדזשעסץ, קריייטינג אַפּי ענדפּאָינץ.
ניצן די OpenAPI נאָרמאַל, וואָס כולל אַן ינטעראַקטיוו סוואַגער וי, אָדער צושטעלן פּיטהאָן ווערטערבוך דאַטן ווי JSON זענען ביידע פּשוט וועגן צו דערגרייכן דעם. אָבער, FastAPI איז ניט בלויז פֿאַר אַפּיס.
עס קענען זיין גענוצט צו פאָרשלאָגן נאָרמאַל וועב זייַטלעך מיט די Jinja2 מוסטער מאָטאָר און צו דינען אַפּפּס ניצן וועבסאָקקעץ, אין אַדישאַן צו כּמעט אַלץ וואָס אַ וועב פריימווערק קענען טאָן.
אין דעם אַרטיקל, מיר וועלן אַנטוויקלען אַ סטרייטפאָרווערד מאַשין לערנען מאָדעל און דערנאָך נוצן FastAPI צו צעוויקלען עס. לאמיר אנהייבן.
ייַנמאָנטירונג פון FastAPI און שאַפונג פון דער ערשטער אַפּי
ינסטאָלינג די ביבליאָטעק און אַן ASGI סערווער איז פארלאנגט ערשטער; אָדער Uvuicorn אָדער Hypercorn וועט אַרבעטן. עס אַרבעט דורך אַרייַן די פאלגענדע באַפֿעל אין די טערמינאַל:
איצט אַז די אַפּי איז באשאפן, איר קענען נוצן דיין בילכער קאָד רעדאַקטאָר און בלעטער דורך עס. שאַפֿן אַ פּיטהאָן שריפט גערופן ml_model.py צו אָנהייבן. איר זענט באַגריסונג צו געבן דיין אַ אַנדערש נאָמען, אָבער פֿאַר דעם פּאָסטן, איך וועל אָפּשיקן צו דעם טעקע ווי ml_model.py.
צו שאַפֿן אַ סטרייטפאָרווערד אַפּי מיט צוויי ענדפּאָינץ, איר מוזן פאַרענדיקן די פאלגענדע טאַסקס:
- אַרייַנפיר די FastAPI און Uvicorn לייברעריז.
- שטעלן אַרויף אַ פאַסטאַפּי קלאַס בייַשפּיל.
- דערקלערן דער ערשטער מאַרשרוט, וואָס, אויף די אינדעקס בלאַט, טראגט אַ סטרייטפאָרווערד JSON כייפעץ.
- דערקלערן די רגע מאַרשרוט, וואָס גיט אַ סטרייטפאָרווערד JSON כייפעץ מיט אַ קאַסטאַמייזד אָנזאָג. דער נאָמען פּאַראַמעטער איז גענומען גלייַך פון די URL (למשל, https://127.0.0.1:8000/Jay).
- ניצן Uvicorn צו לויפן די API.
ימפּלאַמענטינג די פינף סטאַגעס איז געוויזן אין די פאלגענדע ביסל פון קאָד י.ע. קריייטינג אַ פּשוט אַפּי
אלעס געטון! זאל ס קאַטער אונדזער אַפּי מיד. עפֿענען אַ טערמינאַל פֿענצטער ווייַטער צו די ml model.py טעקע צו ויספירן דעם. דערנאָך אַרייַן די פאלגענדע:
די אַרייַן key. איידער איר מאַך אויף, לאָזן אונדז אָפּשאַצן דעם באַשטעטיקן. דער ערשטער אַפּ ניצט די פּיטהאָן טעקע נאָמען אַליין, אָן די פאַרלענגערונג. די רגע אַפּ מוזן האָבן די זעלבע נאָמען ווי דיין FastAPI בייַשפּיל.
דורך ניצן -רעלאָאַד, איר זאָגן די אַפּי אַז איר ווילן עס צו אויטאָמאַטיש רילאָוד ווען איר ראַטעווען די טעקע אלא ווי אָנהייב פֿון קראַצן.
איצט קאַטער אַ בלעטערער און נאַוויגירן צו https://127.0.0.1:8000; דער רעזולטאַט זאָל זיין ווי גייט:
איר איצט פֿאַרשטיין ווי צו שאַפֿן אַ פּשוט אַפּי ניצן FastAPI.
בויען און טריינינג די מאַשין לערנען מאָדעל
אָן קאַלעקטינג אָדער אַנאַלייזינג קיין דאַטן, מיר וועלן נאָר באַן אַ פּשוט מאָדעל. די זענען אַנרילייטיד צו די דיפּלוימאַנט פון מאָדעלס און זענען נישט יקערדיק פֿאַר די טעמע אין האַנט.
א מאָדעל באזירט אויף די יריס דאַטאַסעט קענען זיין אינסטאַלירן מיט די זעלבע נעוראַל נעץ ייַנמאָנטירונג אופֿן.
און מיר וועלן טאָן דאָס: אראפקאפיע די יריס דאַטאַסעט און באַן די מאָדעל. דאָס וועט נישט זיין פּשוט. צו אָנהייבן, מאַכן אַ טעקע מיטן נאָמען jaysmlmodel.py.
אין עס, איר וועט טאָן די פאלגענדע:
- ימפּאָרץ - איר וועט דאַרפֿן פּאַנדאַס, sikit-RandomForecastClassifier, לערן ס פּידאַנטיק ס באַסעמאָדעל (איר וועט אַנטדעקן וואָס אין די פאלגענדע שריט), און אַרבעט ליב פֿאַר סטאָרינג און לאָודינג מאָדעלס.
- דערקלערן אַן IrisSpecies קלאַס וואָס ינכעראַץ פון די באַזע מאָדעל. דער קלאַס כּולל בלויז פעלדער וואָס זענען דארף צו פאָרויסזאָגן אַ איין בלום מינים (מער וועגן דעם אין דער ווייַטער אָפּטיילונג)
- שאַפֿן אַ קלאַס. IrisModel איז אַ מאָדעל טריינינג און פּראָגנאָז געצייַג.
- דערקלערן אַ אופֿן געהייסן _טראַין מאָדעל אין IrisModel. עס איז געניצט צו באַן מאָדעלס ניצן די Random Forests טעכניק. די טריינד מאָדעל איז אומגעקערט דורך די פּראָצעדור.
- דערקלערן אַ פּרעדיקטעד מינים פונקציע אין IrisModel. עס איז געניצט צו פאָרויסזאָגן באזירט אויף 4 אַרייַנשרייַב סיבות (בלום מעזשערמאַנץ). ביידע די פאָרויסזאָגן (בלום מינים) און די פּראָגנאָז מאַשמאָעס זענען אומגעקערט דורך די אַלגערידאַם.
- טוישן די קאָנסטרוקטאָר אין IrisModel אַזוי אַז עס לאָודז די יריס דאַטאַסעט און טריינז די מאָדעל אויב עס איז פעלנדיק אין דער טעקע. דעם סאַלווז די פּראָבלעם פון ריפּיטידלי טריינינג נייַ מאָדעלס. די דזשאָבליב ביבליאָטעק איז געניצט פֿאַר מאָדעל לאָודינג און שפּאָרן.
דאָ איז די גאנצע קאָד:
איך האָפֿן די אויבן רשימה און די באַמערקונגען געמאכט עס גרינג צו אָנכאַפּן כאָטש דאָס איז געווען אַ סייזאַבאַל סומע פון קאָד צו שאַפֿן. איצט אַז דער מאָדעל איז דעוועלאָפּעד, לאָזן אונדז אַרויסגעבן זייַן פאָרויסזאָגן קייפּאַבילאַטיז איבער אַ REST API.
קאַנסטראַקטינג אַ פול REST API
צוריקקומען צו די ml_model.py טעקע און ויסמעקן אַלע די דאַטן. די באָילערפּלאַטע וועט זיין יסענשאַלי די זעלבע ווי וואָס איר האָט פריער, אָבער מיר זאָל אָנהייבן איבער מיט אַ ליידיק טעקע.
איר וועט בלויז דעפינירן איין ענדפּוינט דעם מאָל, וואָס איז דער איינער געניצט צו באַשליסן די טיפּ פון בלום. IrisModel.predict species(), וואָס איז געווען דערקלערט אין די פריערדיקע אָפּטיילונג, איז גערופן דורך דעם ענדפּוינט צו דורכפירן די פּראָגנאָז.
דער בקשה טיפּ איז די אנדערע גרויס ענדערונג. אין סדר צו אַריבערפירן פּאַראַמעטערס אין JSON אלא ווי URL, עס איז רעקאַמענדיד צו נוצן POST ווען איר נוצן מאַשין וויסן אַפּיס.
דער אויבן זאַץ קען האָבן געבלאזן ווי גיבבעריש אויב איר זענט אַ דאַטן געלערנטער, אָבער דאָס איז אָלרייט. צו פּלאַן און צעוויקלען מאָדעלס, איר טאָן ניט דאַווקע זיין אַ מומחה אויף הטטפּ ריקוועס און REST APIs.
די טאַסקס פֿאַר ml model.py זענען ווייניק און פּשוט:
- איר מוזן אַרייַנפיר די פאלגענדע פון די פריער באשאפן jaymlmodel.py טעקע: uvicorn, FastAPI, IrisModel און IrisSpecies.
- שאַפֿן ינסטאַנסיז פון FastAPI און IrisModel.
- דערקלערן אַ פֿונקציע ביי https://127.0.0.1:8000/predict צו מאַכן פֿאָרויסזאָגן.
- די IrisModel.predict species() מעטאָד נעמט אַן אָביעקט פון טיפּ IrisSpecies, פארוואנדלט עס אין אַ ווערטערבוך און קערט עס דערנאָך צוריק. רעטורנס זענען די דערוואַרט קלאַס און פּרעדיקטעד מאַשמאָעס.
- ניצן ווויקאָרן צו ויספירן די API.
נאָך ווידער, דאָ איז די גאנצע טעקע ס קאָד צוזאַמען מיט זייַן באַמערקונגען:
דאָס איז אַלע איר דאַרפֿן צו טאָן. אין דער ווייַטער שריט, לאָמיר פּרובירן די API.
טעסטינג די API
אַרייַן די פאלגענדע שורה אין די טערמינאַל צו ויספירן די אַפּי: uvicorn ml_model:app –reload
דאָס איז ווי די דאַקיומענטיישאַן בלאַט אויס:
אַזוי אַז ס עס פֿאַר הייַנט. אין דעם טייל נאָך דעם, לאָמיר פאַרענדיקן.
סאָף
הייַנט, איר געלערנט וואָס FastAPI איז און ווי צו נוצן עס, ניצן ביידע אַ פּשוט אַפּי ביישפּיל און אַ פּשוט מאַשין לערנען ביישפּיל. איר האָט אויך געלערנט ווי צו שאַפֿן און זען אַפּי דאַקיומענטיישאַן, און ווי צו פּרובירן עס.
דאָס איז אַ פּלאַץ פֿאַר אַ איין שטיק, אַזוי טאָן ניט זיין סאַפּרייזד אויב עס נעמט אַ ביסל רידינגז צו ריכטיק פֿאַרשטיין.
גליקלעך קאָדירונג.
לאָזן אַ ענטפֿערן