De senaste modellerna för djupinlärning (DL) har gått bortom statiska nätverksarkitekturer till dynamiska, hantering av data där nätverksstrukturen ändrar varje exempel, såsom sekvenser av varierande längder, träd och grafer. Befintliga dataflödesbaserade programmeringsmodeller för DL-både statisk och dynamisk deklaration-antingen kan lätt uttrycka dessa dynamiska modeller, eller är ineffektiva på grund av upprepade dataflöde graf konstruktion och bearbetning, och svårigheter i batched utförande. Vi presenterar Cavs, ett vertexcentrisk programmeringsgränssnitt och optimerad systemimplementering för dynamiska DL-modeller. Cavs representerar dynamisk nätverksstruktur som en statisk vertex funktion F och en dynamisk instans-specifik graf G, och utför backpropagation genom att schemalägga genomförandet av F efter beroenden i G. Cavs kringgår dyra graf konstruktion och förbehandling overhead, möjliggör användning av statisk graf optimering tekniker på fördefinierade operationer i F, och naturligt exponerar batched utförande möjligheter över olika grafer. Experiment som jämför Cavs med två state-of-the-art ramar för dynamiska NNs (TensorFlow Vik och DyNet) visar effektiviteten av detta tillvägagångssätt: Cavs uppnår en nästan en storleksordning hastighetshöjning på utbildning av olika dynamiska NN arkitekturer, och ablationer visar bidraget från våra föreslagna batching och minneshantering strategier.
Cavs REF föreslår ett vertex-centrerat programmeringsgränssnitt som bryter ner ett dynamiskt neuralt nätverk med två komponenter: en statisk vertex-funktion som kan batchas ihop, och en provspecifik graf som är dynamisk.
Cavs: A Vertex-centric Programming Interface for Dynamic Neural Networks
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Mathematics', 'Computer Science']}