Karatasi hii inashiriki zaidi uzoefu wa vitendo wa Intel na JD katika kujenga mfumo wa uchimbaji wa kipengele cha picha kwa kiwango kikubwa kulingana na cheche na teknolojia ya kujifunza kwa kina.backgroundUchimbaji wa kipengele cha picha hutumiwa sana katika urejeshaji wa picha sawa, unakili na kadhalika. Kabla ya kutumia mfumo wa bigdl (ambao utatajwa baadaye), tulijaribu kutengeneza na kupeleka programu za uchimbaji wa vipengele kwenye mashine nyingi, kadi nyingi za GPU na nguzo ya GPU mtawalia. Walakini, mifumo iliyo hapo juu ina hasara dhahiri:
Katika nguzo ya GPU, mkakati wa ugawaji wa rasilimali kulingana na kadi ya GPU ni changamano sana, na ugawaji wa rasilimali huathiriwa na matatizo, kama vile kumbukumbu ya kutosha ya video iliyosalia, na kusababisha oom na programu kuacha kufanya kazi. Kwa upande wa mashine moja, ikilinganishwa na hali ya nguzo, watengenezaji wanahitaji kufanya ugawaji wa data kwa mikono, upakiaji na uvumilivu wa makosa. Utumiaji wa modi ya GPU, ukichukua Caffe kama mfano, ina tegemezi nyingi, ikiwa ni pamoja na CUDA, ambayo huongeza ugumu wa kupeleka na matengenezo. Kwa mfano, wakati kuna matatizo na matoleo tofauti ya mfumo wa uendeshaji na matoleo ya GCC, yanahitaji kukusanywa tena na kufungwa.
Shida zilizo hapo juu hufanya programu ya mbele kulingana na GPU kukabili changamoto nyingi za kiufundi za usanifu.
Hebu tuangalie tukio lenyewe. Kwa sababu usuli wa picha nyingi ni changamano na uwiano wa vitu vya somo kwa kawaida ni mdogo, ili kupunguza mwingiliano wa usuli kwenye usahihi wa uchimbaji wa kipengele, somo linahitaji kutengwa na picha. Kwa kawaida, mfumo wa uchimbaji wa kipengele cha picha umegawanywa katika hatua mbili. Kwanza, lengo hugunduliwa na algoriti ya utambuzi inayolengwa, na kisha kipengele kinacholengwa kinatolewa na algoriti ya uchimbaji wa kipengele. Hapa, tunatumia SSD [1] (kigundua kisanduku kimoja cha risasi moja) kugundua lengwa na mtandao wa kina kirefu [2] kwa uchimbaji wa vipengele.
Jingdong ina idadi kubwa ya (zaidi ya mamia ya mamilioni ya) picha za bidhaa katika hifadhidata kuu iliyosambazwa ya chanzo huria. Kwa hivyo, jinsi ya kurejesha na kuchakata data kwa ufanisi katika mazingira yaliyosambazwa kwa kiasi kikubwa ni tatizo kuu la bomba la uchimbaji wa kipengele cha picha. Masuluhisho yaliyopo ya GPU yanakabiliwa na changamoto nyingine katika kutatua mahitaji ya hali zilizo hapo juu: Upakuaji wa data huchukua muda mrefu, na mpango unaotegemea GPU hauwezi kuuboresha vizuri. Kwa data ya picha katika hifadhidata ya chanzo huria iliyosambazwa, data ya mapema. mchakato wa usindikaji wa mpango wa GPU ni ngumu sana, na hakuna mfumo wa programu iliyokomaa kwa usimamizi wa rasilimali, uchakataji wa data iliyosambazwa na udhibiti wa kuvumilia makosa.
Kwa sababu ya mapungufu ya programu ya GPU na mfumo wa maunzi, ni changamoto sana kupanua mpango wa GPU ili kukabiliana na picha kubwa.Mpango wa kuunganisha BigdlKatika mazingira ya uzalishaji, kutumia programu zilizopo na vifaa vya maunzi kutaboresha sana ufanisi wa uzalishaji (kama vile kupunguza R & D wakati wa bidhaa mpya) na kupunguza gharama. Katika hali hii, data huhifadhiwa kwenye hifadhidata ya chanzo huria iliyosambazwa katika kundi kubwa la data. Ikiwa programu ya kujifunza kwa kina inaweza kutumia nguzo kubwa ya data iliyopo (kama vile Hadoop au spark cluster) kwa kompyuta, inaweza kutatua changamoto zilizo hapo juu kwa urahisi.
Mradi wa Bigdl wa chanzo huria wa Intel [3] ni mfumo wa kujifunza kwa kina kwenye cheche, ambao hutoa usaidizi wa kina wa algorithm ya kujifunza. Bigdl inaweza kupanuliwa kwa mamia au maelfu ya nodi kwa kuenea kwa jukwaa la cheche. Wakati huo huo, bigdl hutumia maktaba ya kompyuta ya Intel MKL ya kompyuta ya hisabati na teknolojia ya kompyuta sambamba ili kufikia utendakazi wa juu kwenye seva ya Intel Xeon (nguvu ya kompyuta inaweza kulinganishwa na utendakazi wa GPU ya kawaida). Katika hali yetu, bigdl imebinafsishwa ili kusaidia miundo mbalimbali (kugundua na uainishaji); Muundo huo umepandikizwa kutoka kwa kutumika tu kwa mazingira maalum hadi mazingira ya bigdl kubwa ya data inayounga mkono muundo wa jumla (cafe, tochi, tensorflow); Mchakato mzima wa bomba umeboreshwa na kuharakishwa. Bomba la uchimbaji wa kipengele katika mazingira ya cheche kupitia bigdl linaonyeshwa kwenye Kielelezo. 1:
Tumia cheche kusoma mamia ya mamilioni ya picha asili kutoka kwa hifadhidata ya chanzo huria iliyosambazwa na kuunda cheche za RDDUse ili kuchakata picha, ikiwa ni pamoja na kubadilisha ukubwa, kutoa thamani ya wastani, na kutunga data katika kundiKutumia bigdl kupakia muundo wa SSD, kwa kiasi kikubwa na kusambazwa. utambuzi wa lengo unafanywa kwenye picha kwa njia ya cheche, na mfululizo wa kuratibu za kutambua na alama zinazolingana hupatikana.
Matokeo ya ugunduzi yaliyo na alama za juu zaidi hudumishwa kama lengo la somo, na picha inayolengwa hupatikana kwa kukata picha asili kulingana na viwianishi vya ugunduziTangulia RDD ya picha inayolengwa, ikiwa ni pamoja na kubadilisha ukubwa, ili kuunda kundiBigdl hutumiwa kupakia kina kirefu. mfano, na cheche hutumiwa kutoa vipengele vilivyosambazwa vya picha inayolengwa ili kupata vipengele vinavyolingana.
Matokeo ya ugunduzi (kipengele lengwa kilichotolewa RDD) huhifadhiwa kwenye HDFSBomba zima la uchanganuzi wa data, ikijumuisha usomaji wa data, ugawaji wa data, uchakataji wa awali, ubashiri na uhifadhi wa matokeo, yanaweza kutekelezwa kwa urahisi kwa cheche kupitia bigdl. Kwenye kundi kubwa la data lililopo (Hadoop/spark), watumiaji wanaweza kuendesha programu za kujifunza kwa kina kwa kutumia bigdl bila kurekebisha usanidi wowote wa nguzo. Zaidi ya hayo, bigdl inaweza kupanuliwa kwa idadi kubwa ya nodi na kazi kwa urahisi kwa kutumia scalability ya juu ya jukwaa la cheche, kwa hivyo inaharakisha sana mchakato wa uchambuzi wa data. Mbali na usaidizi wa ujifunzaji wa kina uliosambazwa, bigdl pia hutoa nyingi rahisi- zana za kutumia, kama vile maktaba ya kuchakata picha, zana za upakiaji za modeli (ikiwa ni pamoja na miundo ya upakiaji ya mfumo wa kujifunza kwa kina wa wahusika wengine), ambayo ni rahisi zaidi kwa watumiaji kuunda bomba zima.
Image preprocessingBigdl hutoa maktaba ya kuchakata picha [4] Kulingana na OpenCV [5], ambayo inasaidia ugeuzaji picha wa kawaida na vitendaji vya uboreshaji wa picha. Watumiaji wanaweza kutumia vipengele hivi vya msingi kwa urahisi kuunda bomba la kuchakata picha. Kwa kuongeza, watumiaji wanaweza pia kupigia simu kitendakazi cha opencv kilichotolewa na maktaba ili kuendesha ubadilishaji wa picha maalum. Bomba la usindikaji wa awali la sampuli hii hubadilisha RDD asili kuwa kundi la RDD kupitia mfululizo wa mabadiliko. Kati yao, bytetomat inabadilisha picha ya baiti kuwa umbizo la uhifadhi wa mkeka wa OpenCV, kurekebisha ukubwa wa picha hadi 300x300, na mattofloats huhifadhi saizi kwenye mkeka katika muundo wa safu ya kuelea na kutoa thamani ya wastani ya chaneli inayolingana. Hatimaye, roiimagetobatch huunda data katika kundi, ambalo hutumika kama ingizo la kielelezo kwa utabiri au mafunzo.
Inapakia modelUsers wanaweza kutumia bigdl kwa urahisi kupakia kielelezo kilichofunzwa awali na kuitumia moja kwa moja kwenye Spark Program. Kwa kuzingatia faili ya kielelezo cha bigdl, unaweza kupiga simu module.load ili kupata model.Aidha, bigdl pia inasaidia uletaji wa miundo ya mfumo wa kujifunza kwa kina wa wahusika wengine, kama vile Caffe, tochi na tensorflow.
Watumiaji wanaweza kupakia kwa urahisi kielelezo kilichofunzwa kwa utabiri wa data, uchimbaji wa vipengele, urekebishaji wa muundo na kadhalika. Kwa kuchukua Caffe kama mfano, kielelezo cha Caffe kina faili mbili, faili ya ufafanuzi wa mfano wa prototext na faili ya kigezo cha mfano. Kama inavyoonyeshwa hapa chini, watumiaji wanaweza kupakia kwa urahisi muundo wa Caffe uliofunzwa awali kwenye cheche na bigdl programs.performanceTunalinganisha utendakazi wa suluhisho la nguzo la GPU kulingana na Caffe na suluhu ya nguzo ya Xeon kulingana na bigdl. Majaribio yanaendeshwa katika mazingira ya kundi la ndani la JD.
Jaribio la standardEnd hadi kumaliza uchakataji na uchanganuzi wa picha, ikijumuisha:Kusoma picha kutoka kwa hifadhidata ya chanzo huria iliyosambazwa (kupakua picha kutoka chanzo cha picha hadi kumbukumbu)
Ingizo kwa muundo lengwa wa ugunduzi na modeli ya uchimbaji wa vipengele Hifadhi matokeo (njia za picha na vipengele) kwenye mfumo wa failiKumbuka: kipengele cha upakuaji kimekuwa kipengele muhimu kinachoathiri utokaji wa mwisho hadi mwisho. Katika kesi hii, sehemu hii ya muda wa usindikaji inachukua karibu nusu ya muda wote wa usindikaji (vipengele vya kugundua vya kupakua). Seva ya GPU haiwezi kutumia GPU ili kuharakisha uchakataji wa upakuaji.
mazingira ya majaribioGPU: NVIDIA Tesla K40, kadi 20 zinazotekelezwa kwa wakati mmojaCPU: Intel (R) Xeon (R) CPU e5-2650 V4 @ 2.20GHz, chembe za kimantiki 1200 kwa jumla (kila seva ina chembe 24 za kimwili, huwezesha nyuzi nyuzi, na imesanidiwa kama Cores 50 za kimantiki za uzi)
matokeo ya mtihaniKielelezo 2 kinaonyesha kuwa matokeo ya Caffe ya picha 20 za uchakataji wa K40 ni takriban picha 540 kwa sekunde, ilhali matokeo ya bigdl kwenye nguzo ya uzi (Xeon) yenye viini 1200 vya kimantiki ni takriban picha 2070 / s. Uzalishaji wa bigdl kwenye nguzo ya Xeon ni takriban mara 3.83 ya nguzo ya GPU, ambayo hupunguza kwa kiasi kikubwa muda wa kuchakata picha za kiwango kikubwa.Matokeo ya majaribio yanaonyesha kuwa bigdl hutoa usaidizi bora katika programu za uchimbaji wa vipengele vya picha kwa kiasi kikubwa. Uwezo wa juu wa Bigdl, utendakazi wa hali ya juu na urahisi wa kutumia huisaidia JD kukabiliana kwa urahisi na ukuaji mkubwa na wa kulipuka wa saizi ya picha. Kulingana na matokeo kama hayo ya majaribio, JD inasasisha utekelezji wa kipengele cha utoaji wa kipengele cha picha cha Caffe kulingana na nguzo ya GPU hadi mpango wa bigdl kulingana na nguzo ya Xeon na kukitumia ili kuibua mazingira ya uzalishaji wa nguzo.
Mchoro wa 2 kulinganisha uboreshaji wa K40 na Xeon katika kipengele cha picha cha uchimbaji bomba la Bigdl, utendakazi wa juu na urahisi wa utumiaji husaidia JD kutumia kwa urahisi zaidi teknolojia ya kujifunza kwa kina kuchakata picha kubwa. JD itaendelea kutumia bigdl kwa anuwai ya maombi ya kujifunza kwa kina, kama vile mafunzo ya kielelezo yaliyosambazwa. quote
[1]. Liu, Wei, et al. SSD: Kitambua Risasi Moja MulTIbox. Mkutano wa Ulaya juu ya maono ya kompyuta. Springer, Cham, 2016.[2] Lin, Kevin, et al. Kujifunza vifafanuzi vya mfumo wa binary na mitandao ya kina ya neva isiyosimamiwa. Mijadala ya Kongamano la IEEE kuhusu Maono ya Kompyuta na Utambuzi wa Muundo, 2016.[3]. https://github.com/intel-analyTIcs/BigDL
[4]. https://github.com/intel-analytics/analytics-zoo/tree/master/transform/vision[5].
Shenzhen TigerWong Technology Co., Ltd
Tel:86 13717037584
E-Maile: info@sztigerwong.com
Ongeza: Ghorofa ya 1, Jengo A2, Hifadhi ya Viwanda ya Silicon Valley Power Digital, Na. 22 Dafu Road, Guanlan Street, Longhua District,
Shenzhen, Mkoa wa Guangdong, Uchina