Deep Learning REST API létrehozása Word2Vec és Flask segítségével

A fejlesztés hagyományos megközelítéseit nehéz fenntartani, ha összetett gépi tanulási modelleket használnak a termelésben. A laptopon vagy helyi gépen történő fejlesztés lassú lehet a gépi tanulási modell betanítása a mélytanulási mérnökök számára. Ennek eredményeként általában erősebb hardverrel rendelkező felhőgépeket használunk gépi tanulási modelljeink betanításához és futtatásához. Ez bevált gyakorlat, mivel az összetett számításokat elvonatkoztatjuk, és ehelyett szükség szerint AJAX kéréseket készítünk. Ebben az oktatóanyagban egy előre betanított Word2Vec nevű mély tanulási modellt teszünk elérhetővé más szolgáltatások számára egy REST API létrehozásával az alapoktól.

Előfeltételek

  • Egy Ubuntu 16.04 szerverpéldány legalább 4 GB RAM-mal. Tesztelési és fejlesztési célokra 4 GB RAM-mal rendelkező példányt választhat
  • A Linux operációs rendszer használatának megértése mappák és fájlok létrehozására/navigációjára/szerkesztésére
  • Egy sudofelhasználó

Mik azok a Word-beágyazások?

A szóbeágyazás a természetes nyelvi feldolgozás és a mélytanulás legújabb fejlesztése, amely a gyors fejlődésnek köszönhetően mindkét területet forradalmasította. A szóbeágyazások lényegében olyan vektorok, amelyek mindegyike egyetlen szónak felel meg, így a vektorok a szavakat jelentik. Ez bizonyos jelenségekkel igazolható, például a vektorral king - queen = boy - girl. A szóvektorokat az ajánlómotoroktól a chat-botokig, amelyek valóban megértik az angol nyelvet, mindent összeállítanak.

A Word beágyazása nem véletlenszerű; neurális hálózat betanításával jönnek létre. A Word2Vec nevű új, hatékony szóbeágyazási implementáció a Google-tól származik, amelyet a nyelv más szavai mellett megjelenő szavak előrejelzésével képez. Például a szó "cat"esetében a neurális hálózat megjósolja a "kitten"és a szavakat "feline". A szavak egymás közelében megjelenő intuíciója lehetővé teszi, hogy vektortérben helyezzük el őket.

A gyakorlatban azonban hajlamosak vagyunk más nagyvállalatok, például a Google előre kiképzett modelljeit használni a prototípus gyors elkészítéséhez és a telepítési folyamatok egyszerűsítéséhez. Ebben az oktatóanyagban letöltjük és használjuk a Google Word2Vec előre betanított szóbeágyazásait. Ezt a következő parancs futtatásával tehetjük meg a munkakönyvtárunkban.

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

A lombik és a mennyiségi csomagok beszerelése

Az általunk letöltött szó beágyazási modellje .magnitudeformátumban van. Ez a formátum lehetővé teszi a modell hatékony lekérdezését SQL használatával, ezért ez az optimális beágyazási formátum éles szerverek számára. Mivel tudnunk kell olvasni a .magnitudeformátumot, telepítjük a pymagnitudecsomagot. Azt is telepítjük, flaskhogy később kiszolgáljuk a modell által készített mély tanulási előrejelzéseket.

pip3 install pymagnitude flask

A következő paranccsal a függőségi nyomkövetőhöz is hozzáadjuk. Ez létrehoz egy nevű fájlt, requirements.txtés elmenti Python-könyvtárainkat, hogy később újratelepíthessük őket.

pip3 freeze > requirements.txt

A Word2Vec modell lekérdezése

Kezdésként létrehozunk egy fájlt, amely kezeli a szóbeágyazások megnyitását és lekérdezését.

touch model.py

Ezután a következő sorokat adjuk hozzá a model.pyMagnitude importálásához.

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

A módszer segítségével eljátszhatjuk a pymagnitudecsomagot és a mély tanulási modellt query, érveket adva egy szó mellett.

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

API-nk magjaként meghatározunk egy függvényt, amely visszaadja a két szó jelentésbeli különbségét. Ez a gerince a legtöbb mély tanulási megoldásnak, például ajánlómotorokhoz (azaz hasonló szavakkal való tartalom megjelenítéséhez).

Ezzel a funkcióval játszhatunk a similarityés most_similar függvények használatával.

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

A hasonlóság-kalkulátort a következőképpen valósítjuk meg. Ezt a metódust a Flask API hívja meg a következő részben. Vegye figyelembe, hogy ez a függvény 0 és 1 közötti valós értéket ad vissza.

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

REST API létrehozása

A szerverünket service.pya következő tartalommal rendelkező fájlban hozzuk létre . Szerver képességeinket importáljuk flaskés requestkezeljük, illetve a similaritymotort a korábban írt modulból importáljuk .

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)

Szerverünk meglehetősen csupasz, de könnyen bővíthető, ha több útvonalat készítünk a @app.routedekorátor segítségével.

API-hívások kezdeményezése

Flask szerverünket a következő parancsok futtatásával tudjuk futtatni a virtuális környezet aktiválásához, a csomagok telepítéséhez és a hozzá tartozó Python fájl futtatásához.

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

Szerverünk a címen lesz elérhető localhost:8000. Lekérdezhetjük adatbázisunkat a címen, localhost:8000/similarity?word1=cat&word2=dogés megtekinthetjük a választ a böngészőnkben vagy egy másik AJAX kliensen keresztül.

Hagyj kommentárt

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Egyéni Windows ISO létrehozása frissítésekkel az NTLite használatával

Ez az oktatóanyag végigvezeti Önt a Vultrs rendszerekkel kompatibilis Windows ISO létrehozásának folyamatán. Itt megtanulhatja az <>Windows ISO<> előállításának lépéseit az NTLite segítségével.

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A gépek felemelkedése: Az AI valós világbeli alkalmazásai

A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.

DDOS támadások: Rövid áttekintés

DDOS támadások: Rövid áttekintés

Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Gondolkozott már azon, hogyan keresnek pénzt a hackerek?

Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

A Google forradalmi találmányai, amelyek megkönnyítik az életét.

Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.

Essential péntek: Mi történt az AI-vezérelt autókkal?

Essential péntek: Mi történt az AI-vezérelt autókkal?

Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Technológiai szingularitás: az emberi civilizáció távoli jövője?

Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.

A Big Data Reference Architecture Layerek funkciói

A Big Data Reference Architecture Layerek funkciói

Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.

Az adattárolás fejlődése – Infografika

Az adattárolás fejlődése – Infografika

Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Az okosotthoni eszközök 6 lenyűgöző előnye az életünkben

Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.