Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA



Relevanta dokument
Tekniker för storskalig parsning

Tekniker för storskalig parsning

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)

Föreläsning 1: Introduktion till kursen

Projekt i språkteknologi Projektförslag Johanna Karlsson joka1954

Tekniker för storskalig parsning: Grundbegrepp

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

TDDD02 Språkteknologi för informationssökning (2016) Introduktion. Marco Kuhlmann Institutionen för datavetenskap

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

Värmedistribution i plåt

Parallellism i NVIDIAs Fermi GPU

Introduktionsmöte Innehåll

Spekulativ exekvering i CPU pipelining

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Kompilatorer och interpretatorer

KUNDCASE. Inovia gjorde sin AI-utveckling 10 gånger snabbare med Power-plattformen

Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2

Tekniker för storskalig parsning

SYSTEMVETENSKAPLIGA PROGRAMMET UTBILDNINGSPLANER

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Självhjälpsprogram för ADHD. Del 1 Att hitta din väg

Slutrapport Vertikala Sökmotorer Uppdrag från.se:s Internetfond Våren 2008

Hantering av hazards i pipelines

Inledande programmering med C# (1DV402) Introduktion till C#

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Kursvärdering 1DV433 Strukturerad programmering med C++ LP Lärare: Tommy Löfqvist 17 svar

Språkteknologi och Open Source

Mälardalens högskola

Betatestning - Solsystem

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Robotik och intelligenta system internationellt magisterprogram, 80 poäng (120 ECTS)

- A1N, Avancerad nivå, har endast kurs/er på grundnivå som förkunskapskrav

Skriv! Hur du enkelt skriver din uppsats

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

ROBOTIK OCH INTELLIGENTA SYSTEM, 120 HÖGSKOLEPOÄNG

Introduktion EFFSO Excelutbildning för inköpare

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

TDDC74 - Projektspecifikation

TYSK02, Tyska: Kandidatkurs, 30 högskolepoäng German: BA Course, 30 credits Grundnivå / First Cycle

Programmering II (ID1019) :00-11:00

För universitetsgemensamma regler för forskarutbildning se Regler för utbildning på forskarnivå vid Göteborgs universitet Doktorandreglerna.

Tentamen den 18 mars svar Datorteknik, EIT070

Inlämningsuppgift: Pronomenidentifierare

ÄFRD04, Franska 3, 30 högskolepoäng French 3, 30 credits Grundnivå / First Cycle

Logging Module into the PRIME Core

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

SPRÅKKONSULTPROGRAMMET

Felsökande av en Lego Mindstorm robot

ENGK01, Engelska: Kandidatkurs, 30 högskolepoäng English: Level 3 - B. A. Course, 30 credits Grundnivå / First Cycle

1:5 SLUTRAPPORT - POST MORTEN LARS EHRMAN WP

HUMANISTISKA FAKULTETEN. Språkteknologi, masterprogram, högskolepoäng

EDAA01 Programmeringsteknik - fördjupningskurs

Kravspecifikation Fredrik Berntsson Version 1.1

Kunskapsgraf. Fredrik Åkerberg Tommy Kvant 1 Introduktion. 2 Relaterade projekt.

Språkkonsultprogrammet

Föreläsning 13 Innehåll

HAND TRACKING MED DJUPKAMERA

Dependensregler - Lathund

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Konstruktion av datorspråk

Cristina Eriksson oktober 2001

Tentamen i Introduktion till programmering

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

TDP005: Introduktion till Make

Deklarativ programmering

Datalogiskt tänkande är mer än Programmering. Fredrik Heintz Linköpings universitet

Pipelining: Software Optimeringar Av: Gustaf Lagerblad

Automatiserad kvalitetsbedömning av SOS samtal. Frida Hermansson-TUCAP

SGGNV, Kandidatprogram i genusvetenskap, 180 högskolepoäng Bachelor of Science Programme in Gender Studies, 180 credits

SVEK11, Svenska: Språklig inriktning - kandidatkurs, 30 högskolepoäng Swedish Language: Level 3 - B. A. Course, 30 credits Grundnivå / First Cycle

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

Grundläggande textanalys. Joakim Nivre

Material från

Laboration i datateknik

Slutrapport Thunderbug

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier

Viktigt säkerhetsmeddelande till marknaden, Korrigering av medicinteknisk produkt #15483

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar

Undervisningsprogram Uppdaterad DATAVETENSKAP

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

KURSINFO. Manual för program KursInfo > webben (Vill studera) Versionsförteckning. Datum Version Beskrivning Författare

Priskamp. En prisjämförelsesite Björn Larsson

Ett granssnitt med Naturligt sprak till en TV programs-databas

SPRÅKTEKNOLOGIPROGRAMMET (STP)

Metoder. Inledande programmering med C# (1DV402)

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Transkript:

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk kan vara tidskrävande. Fördelen med mycket träning är att säkerheten i språket blir bättre än vad den hade varit om man bara tränat liten stund. Detta projekt handlar om att effektivisera träningen med hjälp av parallellisering. Målet är att uppnå ungefär samma säkerhet man får vid mycket träning trots att man bara ägnat lite tid till träningen. 1.1 Motivering Det tar tid att träna parsrar på stora korpusar. Syftet med detta projekt är att eektivisera träning och parsning med hjälp av parallellisering på NVIDIAgrakkort bestående av era grakprocessorer (GPU). Parallellisering innebär att processorerna samarbetar för att lösa ett givet problem, i detta fall parsning och träning. 1.2 Projektets mål Målet med projektet är att utveckla en parallelliserad parser för dependensträd vars tränings- och parsningstid har eektiviserats med hjälp av parallellisering. Den nya parserns tränings- och parsningsalgoritm kommer att baseras på kombinationer av beam-search, tillståndsbaserad dependensparsning och grafbaserad parsning. Den parallelliserade parsern kommer att köras på NVIDIA-grakkort och testas på språken engelska och svenska. Resultaten tillsammans med tidsåtgången kommer att rapporteras och jämföras med MaltParser och MSTParser. 2 Bakgrund I tidigare kurser har jag lärt mig hur man kan implementera parallelliserade algoritmer och hur man skriver program för grakkort. I det här avsnittet har jag skrivit om material som kan vara användbara i det här projektet. 1

2.1 Parallelliserade tränings- och parsningsalgoritmer I artikeln Very High Accuracy and Fast Dependency Parsing is not a Contradiction i Proceedings of the 23rd International Conference on Computational Linguistics (Coling 2010) undersökte Bernd Bohnet i vilken fas en dependensparser förbrukar mycket tid och kom fram till att hanteringen av särdragen och dess mappning mot vikterna i SVM var tidskrävande. För att försöka lösa detta problem implementerade han en ny algoritm baserad på en hashkärna. Denna algoritm tog hänsyn till de parsträd med negativa särdrag, vilket resulterade till högre parsningsresultat. Därefter parallelliserade han särdragsextraktionen vilket bidrog till en snabbare träningstid. För att eektivisera parsningstiden parallelliserade han även parsningsalgoritmen. 2.2 Beam-search You Zhang och Stephen Clark har i artikeln A Tale of Two Parsers: investigating and combining graph-based and transition-based dependency parsing using beamsearch i Proceedings of the 2008 Conference on Empirical Methods in Natural Language Processing illustrerat hur beam-search kan tillämpas på en tillståndsbaserad dependensparser och på en grafbaserad parser. De kombinerade även båda parsningteknikerna tillsammans med beam-search och visade att den nya parsern gav ett bättre resultat. I det här projektet kommer parallelliserade versioner av ovanstående tekniker att implementeras och testas på språken engelska och svenska. 2.3 CUDA CUDA står för Compute Unied Device Architecture och är en parallelliserad arkitektur för beräkningar som stöds av NVIDIA-grakkort med era grakprocessorer. Många avancerade beräkningsproblem kan eektivt lösas med CUDA och CUDA kan integreras i bland annat programmeringsspråket C. I det här projektet kommer de parallelliserade algoritmerna implementeras i CUDA 1.1. Mer information om CUDA nns programmeringsguiden NVIDIA CUDA Compute Unied Device Architecture som man kan ladda ner från http://developer.download. nvidia.com/compute/cuda/1_1/nvidia_cuda_programming_guide_ 1.1.pdf. 3 Metod Projektet innehåller följande moment: Inläsning: I detta moment kommer jag att läsa om de parallelliserade algoritmerna i Bohnets artikel och om följande parsningstekniker för dependensträd i Zhang och Clarks artikel: beam-search kombinerad med tillståndsbaserad dependensparsning beam-search kombinerad med grafbaserad parsning beam-search kombinerad med tillståndsbaserad dependensparsning och grafbaserad parsning samtidigt 2

Utöver detta kommer jag att fördjupa mig mer i CUDA 1.1. Design och implementering: Utvecklingen av den parallelliserade parsern planeras att ske i två steg. I det första steget utvecklas gränssnittet mellan programmet och grakkortet. I det andra steget implementeras de parallelliserade versionerna av beam-search kombinerad med tillståndsbaserad dependensparsning, beam-search kombinerad med grafbaserad parsning och slutligen beam-search kombinerad med tillståndsbaserad dependensparsning och grafbaserad parsning samtidigt. Steg 1: För att utveckla gränssnittet mot grakkortet kommer jag att utveckla ett program som vid träning läser in en träningskorpus och lagrar dess innehåll i en lämplig datastruktur för parallellisering. Efter inläsningen kommer programmet att exekvera en av träningsteknikerna på grakkortet och träna upp en modell med hjälp av korpusen. När träningen är färdig returnerar programmet den tränade modellen. För att parsa data i en l börjar programmet med att läsa in den tränade modellen och den data som ska parsas och spara dem i lämpliga datastrukturer. Därefter kommer programmet att exekvera motsvarande parsningsalgoritm till träningsalgoritmen och parsa datan med hjälp av modellen. När parsningen är färdig returnerar programmet resultatet av parsningen. Steg 2: I detta steg kommer koden för de parallelliserade versionerna av tränings- och parsningsalgoritmerna att implementeras i CUDA 1.1. Testdel: Följande experiment planeras att utföras för engelska och svenska på grakkorten NVIDIA Geforce 8400M GS och NVIDIA Geforce G 3

103M: Köra experiment med MaltParser Köra experiment med MSTParser Köra experiment med den parallelliserade versionen med beam-search kombinerat med tillståndsbaserad dependensparsning Köra experiment med den parallelliserade versionen med beam-search kombinerat med grafbaserad parsning Köra experiment med den parallelliserade versionen med beam-search, kombinerat med tillståndsbaserad dependensparsning och grafbaserad parsning samtidigt. Korpusen för engelska är WSJ där sektion 02-21 används till träning, sektion 00 till utvecklingstest och sektion 23 till testdata. För språket svenska kommer Talbanken och SUC att användas. För varje experiment rapporteras LAS, UAS samt tidsåtgång för träning och parsning. Uppsatsdel: Uppsatsen planeras att innehålla introduktion, bakgrund, algoritmer för parallelliseringarna av de olika tränings- och parsningsteknikerna, programmets struktur, resultatet av testkörningarna på språken engelska och svenska samt diskussion. 4 Omfattning I det här projekt kommer en parallelliserad dependensparser baserad på kombinationer av teknikerna beam-search, tillståndsbaserad dependensparsning och grafbaserad parsning att utvecklas. Testerna planeras att exekveras på grakkorten NVIDIA Geforce 8400M GS och NVIDIA Geforce G 103M för språken engelska och svenska. Information om de parallelliserade algoritmerna och programmet inklusive testresultaten kommer att skrivas i en uppsats. 5 Leverans Resultatet av detta projekt är en parallelliserad parser som kan träna och parsa större mängd data parallellt på NVIDIA-grakkort. Då algoritmerna för parallelliseringen implementeras i CUDA 1.1 behöver användaren ha tillgång till ett NVIDIA-grakkort som minst stödjer version 1.1. Användaren kommer att kunna välja vilken tränings- och parsningsteknik programmet ska använda under körning. De nya parsern planeras att testas på engelska och svenska och de förväntade testresultaten för LAS och UAS beräknas vara snarlik MaltParser och MSTParsen medan tränings- och parsningstiden borde vara bli kortare. Källkoden till den parallelliserade parsern och uppsatsen inklusive manual planeras att släppas efter projektets slut. 4

6 Tidsplan Vecka 1-2: Inläsning av material Vecka 3: Designa strukturen för gränssnittet mot CUDA 1.1 Vecka 4-5: Implementera gränssnittet Vecka 6-7: Designa strukturen för de parallelliserade tränings- och parsningsteknikerna Vecka 8-12: Implementera de parallelliserade tränings- och parsningsteknikerna Vecka 13-14: Testa och utvärdera Vecka 15-18: Skriva rapport Vecka 19-20: Reservtid 7 Budget Då jag redan har tillgång till kompilatorer, CUDA 1.1 och grakkorten NVIDIA Geforce 8400M GS och NVIDIA Geforce G 103M är inga utgifter planerade. 5