Kaip sukurti gilaus mokymosi REST API naudojant „Word2Vec“ ir „Flask“.

Naudojant sudėtingus mašininio mokymosi modelius gamyboje, sunku išlaikyti tradicinius kūrimo metodus. Nešiojamojo kompiuterio ar vietinio kompiuterio kūrimas gali būti lėtas, norint išmokyti mašininio mokymosi modelį gilaus mokymosi inžinieriams. Todėl mes paprastai naudojame debesų įrenginius su galingesne aparatūra, kad galėtume mokyti ir vykdyti mašininio mokymosi modelius. Tai yra gera praktika, nes abstrahuojame sudėtingus skaičiavimus ir, jei reikia, pateikiame AJAX užklausas. Šiame vadove mes suteiksime iš anksto paruoštą giluminio mokymosi modelį, pavadintą Word2Vec, prieinamą kitoms paslaugoms, sukurdami REST API nuo pat pradžių.

Būtinos sąlygos

  • Ubuntu 16.04 serverio egzempliorius su mažiausiai 4 GB RAM. Testavimo ir kūrimo tikslais galite pasirinkti egzempliorių su 4 GB RAM
  • Supratimas, kaip naudoti Linux operacinę sistemą aplankams ir failams kurti/naršyti/redaguoti
  • sudovartotojas

Kas yra žodžių įterpimas?

Žodžių įterpimas yra naujausias natūralios kalbos apdorojimo ir gilaus mokymosi pokytis, kuris dėl sparčios pažangos padarė revoliuciją abiejose srityse. Žodžių įterpimai iš esmės yra vektoriai, kurių kiekvienas atitinka vieną žodį, todėl vektoriai reiškia žodžius. Tai gali parodyti tam tikri reiškiniai, pavyzdžiui, vektorius king - queen = boy - girl. Žodžių vektoriai naudojami kuriant viską nuo rekomendacijų variklių iki pokalbių robotų, kurie iš tikrųjų supranta anglų kalbą.

Žodžių įterpimai nėra atsitiktiniai; jie generuojami treniruojant neuroninį tinklą. Naujausias galingas žodžių įterpimo diegimas atsirado „Google“, pavadintas „Word2Vec“, kuris mokomas numatant žodžius, kurie atsiranda šalia kitų kalbos žodžių. Pavyzdžiui, žodžiui "cat"neuroninis tinklas numatys žodžius "kitten"ir "feline". Ši žodžių, atsirandančių šalia vienas kito, intuicija leidžia juos patalpinti vektorinėje erdvėje.

Tačiau praktikoje esame linkę naudoti iš anksto parengtus kitų didelių korporacijų, tokių kaip „Google“, modelius, kad galėtume greitai sukurti prototipą ir supaprastinti diegimo procesus. Šioje pamokoje atsisiųsime ir naudosime Google Word2Vec iš anksto paruoštus žodžių įterpimus. Tai galime padaryti vykdydami šią komandą savo darbo kataloge.

wget http://magnitude.plasticity.ai/word2vec/GoogleNews-vectors-negative300.magnitude

Kolbos ir dydžio paketų montavimas

Atsisiųstas žodžio įdėjimo modelis yra tokio .magnitudeformato. Šis formatas leidžia efektyviai pateikti modelio užklausą naudojant SQL, todėl yra optimalus gamybos serverių įterpimo formatas. Kadangi turime mokėti skaityti .magnitudeformatą, įdiegsime pymagnitudepaketą. Taip pat įdiegsime, flaskkad vėliau pateiktume modelio pateiktas gilaus mokymosi prognozes.

pip3 install pymagnitude flask

Taip pat pridėsime jį prie savo priklausomybės stebėjimo priemonės naudodami šią komandą. Tai sukuria failą pavadinimu requirements.txtir išsaugo mūsų Python bibliotekas, kad galėtume jas įdiegti vėliau.

pip3 freeze > requirements.txt

„Word2Vec“ modelio užklausa

Norėdami pradėti, sukursime failą, kad būtų galima atidaryti žodžių įterpimus ir pateikti užklausas.

touch model.py

Tada pridėsime šias eilutes, model.pykad importuosime dydį.

from pymagnitude import Magnitude
vectors = Magnitude('GoogleNews-vectors-negative300.magnitude')

pymagnitudeNaudodami querymetodą galime žaisti su paketu ir giluminio mokymosi modeliu , pateikdami argumentą už žodį.

cat_vector = vectors.query('cat')
print(cat_vector)

API esme apibrėžsime funkciją, grąžinančią dviejų žodžių prasmės skirtumą. Tai yra daugumos giluminio mokymosi sprendimų, tokių kaip rekomendacijų varikliai (ty turinio rodymas panašiais žodžiais), pagrindas.

Su šia funkcija galime žaisti naudodami similarityir most_similar funkcijas.

print(vectors.similarity("cat", "dog"))
print(vectors.most_similar("cat", topn=100))

Panašumo skaičiuoklę įgyvendiname taip. Šį metodą iškvies Flask API kitame skyriuje. Atminkite, kad ši funkcija grąžina tikrąją reikšmę nuo 0 iki 1.

def similarity(word1, word2):
    return vectors.similarity(word1, word2)

REST API kūrimas

Mes sukursime savo serverį faile, pavadintame service.pytokiu turiniu. Mes importuojame flaskir requesttvarkome savo serverio galimybes ir importuojame similarityvariklį iš modulio, kurį parašėme anksčiau.

from flask import Flask, request
from model import similarity

app = Flask(__name__)

@app.route("/", methods=['GET'])
def welcome():
    return "Welcome to our Machine Learning REST API!"

@app.route("/similarity", methods=['GET'])
def similarity_route():
    word1 = request.args.get("word1")
    word2 = request.args.get("word2")
    return str(similarity(word1, word2))

if __name__ == "__main__":
    app.run(port=8000, debug=True)

Mūsų serveris yra gana plikas, tačiau jį galima nesunkiai išplėsti sukuriant daugiau maršrutų naudojant @app.routedekoratorių.

API skambučių atlikimas

Galime paleisti savo „Flask“ serverį vykdydami šias komandas, kad suaktyvintume virtualią aplinką, įdiegtume paketus ir paleistume susijusį „Python“ failą.

source venv/bin/activate
pip3 install -r requirements.txt
python3 service.py

Mūsų serveris bus pasiekiamas adresu localhost:8000. Mes galime pateikti užklausą savo duomenų bazėje adresu localhost:8000/similarity?word1=cat&word2=dogir peržiūrėti atsakymą savo naršyklėje arba per kitą AJAX klientą.


Įdiekite „Plesk“ „CentOS 7“.

Įdiekite „Plesk“ „CentOS 7“.

Naudojate kitą sistemą? Plesk yra patentuotas žiniatinklio prieglobos valdymo skydelis, leidžiantis vartotojams administruoti savo asmenines ir (arba) klientų svetaines, duomenų bazes

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Nustatykite „Cacti“ naudodami „Debian Jessie“.

Įvadas Cacti yra atvirojo kodo stebėjimo ir grafikų sudarymo įrankis, visiškai pagrįstas RRD duomenimis. Naudodami „Cacti“ galite stebėti beveik bet kokio tipo įrenginius

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įdiekite „Lets Encrypt SSL“ „WordPress“ programoje vienu spustelėjimu

Įvadas „Lets Encrypt“ yra sertifikatų išdavimo tarnyba, siūlanti nemokamus TLS/SSL sertifikatus. Diegimo procesą supaprastina Certbot,

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Kaip nustatyti „Tekkit Classic“ serverį „Ubuntu 16.10“.

Naudojate kitą sistemą? Kas yra Tekkit Classic? „Tekkit Classic“ yra visų žinomo ir mėgstamo žaidimo modifikacijų paketas; Minecraft. Jame yra keletas ver

„Debian Wheezy“ nustatykite „iRedMail“.

„Debian Wheezy“ nustatykite „iRedMail“.

Naudojate kitą sistemą? Ši pamoka parodys, kaip įdiegti grupinę programinę įrangą iRedMail naujai įdiegus Debian Wheezy. Turėtumėte naudoti tarnavimą

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Jekyll tinklaraščio kūrimas Ubuntu 16.04

Naudojate kitą sistemą? „Jekyll“ yra puiki „WordPress“ alternatyva dienoraščių rašymui ar turinio dalijimuisi. Tam nereikia jokių duomenų bazių ir tai labai paprasta

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Kaip įdiegti „Squid“ tarpinį serverį „CentOS“.

Squid yra populiari nemokama „Linux“ programa, leidžianti sukurti persiuntimo žiniatinklio tarpinį serverį. Šiame vadove pamatysite, kaip įdiegti „Squid“ „CentOS“, kad paverstumėte jus

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Kaip įdiegti „Lighttpd“ (LLMP Stack) „CentOS 6“.

Įvadas Lighttpd yra „Apache“ šakutė, skirta daug mažiau išteklių imti. Jis yra lengvas, todėl jo pavadinimas ir yra gana paprastas naudoti. Įdiegti

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

Trys nemokami serverio valdymo skydeliai (greitasis diegimas)

1. Virtualmin/Webmin Virtualmin yra galingas ir lankstus interneto prieglobos valdymo skydelis, skirtas Linux ir UNIX sistemoms, pagrįstas gerai žinoma atvirojo kodo žiniatinklio baze

Yii programos nustatymas Ubuntu 14.04

Yii programos nustatymas Ubuntu 14.04

Yii yra PHP sistema, leidžianti greičiau ir lengviau kurti programas. „Yii“ įdiegimas „Ubuntu“ yra nesudėtingas, nes sužinosite tiksliai

Ekrano naudojimas Ubuntu 14.04

Ekrano naudojimas Ubuntu 14.04

Ekranas yra programa, leidžianti kelis kartus naudoti terminalo seansus viename lange. Tai leidžia imituoti kelis terminalo langus, kur tai ma

Logrotate naudojimas žurnalo failams tvarkyti

Logrotate naudojimas žurnalo failams tvarkyti

Įvadas Logrotate yra „Linux“ programa, supaprastinanti žurnalo failų administravimą. Paprastai jis veikia kartą per dieną per cron darbą ir tvarko žurnalų bazę

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

Statinio tinklo ir IPv6 konfigūravimas CentOS 7

VULTR neseniai atliko pakeitimus, ir dabar viskas turėtų veikti gerai, kai įjungta „NetworkManager“. Jei norite išjungti

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

„Icinga2“ modifikavimas, kad būtų naudojamas pagrindinis / kliento modelis „CentOS 6“ arba „CentOS 7“.

Icinga2 yra galinga stebėjimo sistema, o kai naudojama pagrindinio kliento modelyje, ji gali pakeisti NRPE pagrįstų stebėjimo patikrų poreikį. Meistras-klientas

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Kaip įdiegti Apache Cassandra 3.11.x Ubuntu 16.04 LTS

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Kaip įdiegti „Apache Cassandra 3.11.x“ „CentOS 7“.

Naudojate kitą sistemą? Apache Cassandra yra nemokama ir atviro kodo NoSQL duomenų bazių valdymo sistema, skirta užtikrinti mastelio keitimą, hig.

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Kaip įdiegti MODX Revolution Ubuntu 16.04 LAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta i.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Kaip įdiegti „Mattermost 4.1“ „CentOS 7“.

Naudojate kitą sistemą? Mattermost yra atvirojo kodo, savarankiškai priglobta alternatyva Slack SAAS pranešimų paslaugai. Kitaip tariant, naudodami Mattermost, jūs apytiksliai

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Kaip įdiegti MODX Revolution FreeBSD 11 FAMP VPS

Naudojate kitą sistemą? MODX Revolution yra greita, lanksti, keičiamo dydžio atvirojo kodo, įmonės lygio turinio valdymo sistema (TVS), parašyta PHP. Tai i

Leidžia šifruoti Plesk

Leidžia šifruoti Plesk

„Plesk“ valdymo skydelyje yra labai graži „Lets Encrypt“ integracija. „Lets Encrypt“ yra vienas iš vienintelių SSL teikėjų, išduodančių visus sertifikatus

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį