概要

以下の記事で、Azureの仮想マシンとNDLOCRを用いたGradioアプリについて紹介しました。

本記事では、このアプリの構築方法に関する備忘録です。

仮想マシンの構築

GPUを使用するにあたり、クォータの要求を行う必要がありました。

要求後、今回は「NC8as_T4_v3」を使用します。

Docker環境の構築

以下の記事を参考にします。

https://zenn.dev/koki_algebra/scraps/32ba86a3f867a4

Secure Boot の無効化

以下のように記載されています。

Secure Boot を無効化しないと NVIDIA Driver が正しくインストールされない.

実際、無効化しなかった場合、以下の画面が表示され、前に進めませんでした。

以下で、Secure Bootを無効化します。

NVIDIA Driver のインストール

ubuntu-drivers コマンドのインストールを行い、インストール可能な NVIDIA Driver を確認する。

ssuuubdduoontaaupp-ttd-rgiienvtsetruaspldldaetuvebiucnetsu-drivers-common

以下が結果です。

vmdddddeorrrrrndiiiiidevvvvvoleeeeerrrrrr:::::::NTnnnnxVUvvvvsI1iiiieD0ddddrI4iiiivAGaaaaeL----rCdddd-o[rrrrxrTiiiiopevvvvroseeeegrlrrrr-aa----vt5454iiT3737do45050en]--o-ss--eendrrdoivviuseesvtrrterrao--ounddn-oiionssnd-tt-ifrrfsroorteerenneooornnfe--rcffeorremeemeebeunidletdin

recommendedをインストールします。

sudoaptinstallnvidia-driver-535

再起動後、以下を実行し、インストールを確認します。

Su==nNGF=NP=VPa=/rG=NDIUn=0AoP=oeD=cU=cI=e=rANT=Ts=u2-ae=e4s=n2Smm=s7eGI=nMep=lCsID=i2I=a:=n3==g:5=T=13P=4CI=p05e=PID=r:.r=8=o41f==c28==e3==s2.==s00==e21==s4===P=f=I=o=D=u==nPP==dew==rr=T=s:=1y=iU=0p=ss=We=ta==eg=/=Dne==rc/=P=ieC=O7r=v-a=f0o=eMp=fWc=r=e=s=V=s=eB=0=ru=0n=ss=0a=i-=0m=oI=0e=nd=02=:=0M==1i=5M=:B=3e=0=5m=0/=.o=:=1r=01=8y=05=3D-=.3=.iU=06=0ss=0=1pa=OM=.g=fi=Ae=fB===C=U==DVG==AoP==lU==Va-==etU==rit=0=sli=%=iel==o==nU==:nC=GU=co=Ps=1om=Ua=2rp=Dg=.ruM=eMe=2.tI=fe=eG=am=E=uNo=CMM=l/r=C..=0tAy===

Docker のインストール

公式ドキュメントに従ってインストールします。

https://docs.docker.com/engine/install/ubuntu/

f#sssss#esssouuuuucuuurAdddddAh"$sddddooooodod(uooopdde.dkaaiccbaadgDppnuhtppoottsrmh[etttcic--tloeate--knkggadrceggeeeel-rc/eerdrttlfaeho/tto's+p=sercsui-Sro$-tuiukpnmLs(rcpnneods/ide/dsrfat0hetplaath.fta7ttokeptaeiiel5tcrgatellocl5p/ys/llisaesodac-:pt-od-olad/top&uowc-/r&rcokGcdkAickrePeeoepneeelrGrtwyttcsrd-tcnr-h.-dki/lisaolcoefaonoriecyipaguc"s:ctdsrh$tdda/./ciV.ootkddetEdcceeooseR/kksycc:cSdeerkktIorrcieeuOc--unrrrNkccrg..e_eeolsca)Cr-mosO.cpmcsDllo/iEiislgNseinAtcneModudE>nox-"tc/b)/akuydieb=senru/tve-nea/rcttbndouclu.m//elipga"looppsgt|de/o-kcvek2ye/rrpei-otnbdcgum/siaa/lnpdd-toxd/c-okkpceelkyruer.griainsncgcos]dn/otdhcaotkictenkprees-rr:cd./oa/mrsdpucoonwscne;l-opdalodu.gsdiuondcokearp.tc-ogme/tlirneumxo/vuebu$nptkug;\done

azureuser を Docker Group に追加します。その後、Docker の再起動を行います。

snsueudwdogorupssyedsrotmceokmdecrt-laGredsotcakretrd$oUcSkEeRr

SSH で再接続する。

NVIDIA Container Toolkit のインストール

公式ドキュメントに従ってインストールします。

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

Configuring Docker

ssd===CCTBhASuuo===Uohytu==ddc==DnitcnNGF=NP=ook=C=AtsppoVPa=/rG=Ne=U=auspDIUn=0AoP=onsr=D=Vicl:yeD=cU=vy=A=enol/cI=e=risr==reni/oANT=Ts=udtu===srtndf2-ae=e3s=nien===iage2Smm=s3eGI=namoiivtMep=lCsID=i-cnmnaeh2I=a:=nct-aenli3==gtlr1grdos:5=T=km2ep13P=4CI=pr.iuel65e=PID=rre4Cmsri:.r=8=ous-.oai.c51f==cntg1pgnne28==etapyegvn3==siruris2.==smtsiatde00==eegnhi21==sdahdeai4==colt.s=P=foclicc=I=onk(toom=D=ufencsnma==nirv)t/dPP==dgicaneew==ud2oigrr=T=ri0nncas:=y=ea1te/viU=9p=/6ernass=We=c-n,vita==-u2tileg=/=rd0sydaDne==ua2oibrc/=P=n:3aualieC=O7r=t1,r-ev-a=f0o=i2eadeMp=fWc=m.Nceir=e=e4Vgcens==.IoepV=s=d1Dvp-teB=0=o-Ietlhru=0n=ccAreiss=0a=kuntasi-=0m=edCehroI=0e=rnOdencnd=02=nRio:=0M=-Pbtnn=1i=rOyegt5M=:B=uRr-a3e=0=nAtmci5m=0/=tThson.o=:=iIene1r=01=mOatr8y=05=eNNna3D-=.3=-Vdia.iU=06=u&Int0ss=0=bDce1pa=OM=uAIor/.g=fi=nFAn-NAe=fB=tFdlG==uIDiiCC=2Letc-U==2IeieDDVG==.AponLAoP==0Tns-lU==4ELseCVa-==SeOetU==n.aoNrit=0=vrfTsli=%=iAnAiel==dlitIo==ilnhNnU==agiE:nC=GU=-rsRco=Ps=siC-1om=Ua=mgolL2rp=Dg=ihniI.ruM=eMe=ttcC4.tI=fe=saeEeG=am=inNE=uNo=rnsSCMM=l/r=eeeEC..=0tAy=sr:==efrLovirecdey.nosuer.convenience.

ドメイン設定

今回は作成するGradioアプリは、Traefikを用いてHTTPS 化します。

ここでは、Route53を用いて、仮想マシンのIPアドレスにドメインを設定します。

NDLOCRアプリの起動

ここまでが環境設定です。ここからNDLOCRアプリの起動を行います。

以下により、ソースコードをダウンロードします。

gcidtncdllooncer_c-lriecursivehttps://github.com/ndl-lab/ndlocr_cli

Gradioアプリのソースコードをダウンロード

以下でGradioアプリのソースコードを公開しています。

https://github.com/nakamura196/ndlocr2_gradio

これをダウンロードして、所定の場所にコピーします。

gcciphtm-ocrdlpo6nn0ed0lhotc/trtp2rs_a:ge/rf/aigdkiitahcumbe..cjosmo/nnakamura196/ndlocr2_gradio

その後、./traefik/traefik.yml./docker-compose.yml内のドメイン名やメールアドレスを修正します。

そして、以下を実行します。

dockercomposeup

これにより、設定したURLで、Gradioアプリが起動します。以下が例です。

https://ndlocr.aws.ldas.jp/

まとめ

不完全な部分もあるかと思いますが、NDLOCRアプリをGradioアプリ化等において、参考になりましたら幸いです。