3. Technische specificaties
Om gebruik te kunnen maken van de AI-modellen ontwikkeld door DHD, moet aan een aantal technische vereisten worden voldaan. Elk ziekenhuis dient een lokale server in te richten.
Let op: De systeemvereisten en hardware van de benodigde server verschillen voor trainingsziekenhuizen- en inferentieziekenhuizen.
Inhoud:
Hier nog inhoudsopgave toevoegen
3.1 Inferentie ziekenhuis
Ziekenhuizen waar het AI-model wordt toegepast, maar waar het model niet wordt getraind noemen we inferentie ziekenhuizen. Deze ziekenhuizen maken dus alleen gebruik van het AI-model, zonder de data te leveren waarmee het model wordt getraind voor doorontwikkeling. Als het model wordt toegepast bij deze ziekenhuizen dan zet het ziekenhuis een dagopnamen dataset klaar op de lokale server van het ziekenhuis en stuurt DHD het model erheen om de resultaten op dezelfde server neer te zetten. Het ziekenhuis zorgt vervolgens voor de upload van de resultaten in het EPD.
Ziekenhuizen die als inferentie ziekenhuis deelnemen aan AI ondersteund coderen dienen lokaal een server in te richten om het model daar te hosten. De vereisten van deze server zijn lichter dan die van de servers van de trainingsziekenhuizen. Maar ook bij inferentie ziekenhuizen waar het AI-model wordt toegepast geldt dat de ongestructureerde data (zoals de ontslagbrieven) binnen de beveiligde IT-omgeving van het ziekenhuis blijven.
3.1.1 Systeemvereisten voor inferentie ziekenhuis
Voor de vantage6 node software, is een server nodig die (bij voorkeur) continue aanstaat. Dit mag ook een virtual machine zijn. De belangrijkste voorwaarden van de inferentieserver zijn: - Ubuntu 22.04 (Andere linux distributies zijn mogelijk indien de benodigde software geïnstalleerd kan worden) - Docker en Python (versie 3.10) moeten toegankelijk zijn - Toegang tot data
3.1.2 Hardware voor inferentie ziekenhuis
Specificaties voor de hardware voor een inferentieserver zijn als volgt:
≥ 16 cores x86/x64 CPU
≥ 64 GB CPU RAM
≥ 360 GB (SSD)
3.2 Trainingsziekenhuis
Bij trainingsziekenhuizen wordt de data gebruikt om het model te trainen en door te ontwikkelen. Als uw ziekenhuis deelneemt als trainingsziekenhuis, dan zijn zwaardere technische vereisten nodig dan om als inferentie ziekenhuis deel te nemen. Een veel gestelde vraag van IT-afdelingen is of het noodzakelijk is om de server te voorzien van een GPU. Een GPU versnelt het trainingsproces met een factor 100. Voor deelname aan het project als trainingsziekenhuis is het daarom noodzakelijk dat de server wordt opgeleverd voorzien van een GPU. Voor een uitwerking van de kosten van een GPU, zie onze installatiegids: 7. Kosten GPU voor trainingsziekenhuis AIOC — installatiegids_AIOC v1.0 documentatie
3.2.1 Systeemvereisten voor trainingsziekenhuis
Voor de vantage6 node software, is een server nodig die (bij voorkeur) continue aanstaat. Dit mag ook een virtual machine zijn. De belangrijkste voorwaarden van de trainingsserver zijn:
Ubuntu 22.04 (server of desktop)
Windows is helaas niet mogelijk. Eén van de hardware eisen van de trainingsserver is 1 GPU. Het is binnen Windows niet mogelijk om binnen Docker containers gebruik te maken van deze GPU.
Docker en Python moeten toegankelijk zijn
Toegang tot data
3.2.2 Hardware voor trainingsziekenhuis
Specificaties voor de hardware voor een trainingsserver zijn als volgt:
≥ 16 cores x86/x64 CPU
≥ 64 GB CPU RAM
1 GPU CUDA compatibel NVIDIA kaart
≥ 16 GB GPU RAM
≥ 360 GB (SSD)
3.2.3. Kosten GPU voor trainingsziekenhuis
Binnen het project AI ondersteund coderen is het de wens om zo veel mogelijk ziekenhuizen als trainingsziekenhuis aan te sluiten, zodat we het AI-modellen voor dagopnamen en klinische opnamen kunnen blijven verbeteren. Wanneer een ziekenhuis een trainingsziekenhuis wordt, in plaats van een inferentieziekenhuis zullen er een tweetal wijzigingen doorgevoerd moeten worden:
GPU toevoegen aan de server
Klaarzetten van 5 jaar aan historische data
Hieronder wordt duidelijkheid gegeven over wat het betekent voor ziekenhuizen om een GPU aan te schaffen.
Ten eerste is de setup van de techniek bepalend in wat voor een GPU een ziekenhuis dient aan te schaffen. Je hebt hierin twee smaken:
On-premise = een lokaal (vaste) computer/server aanwezig in het ziekenhuis
Cloud = een niet lokale computer/server, maar online, in de cloud buiten het ziekenhuis
Op dit moment hebben de meeste ziekenhuizen voor project AI ondersteund coderen een on-premise server klaargezet.
3.2.3.1 Prijsbepaling
Ten eerste is het belangrijk om te kijken naar de verschillende soorten GPUs die CUDA compatibel zijn voor NVIDIA GPUs. Hieronder een overzicht van de meest interessante:
GPU |
CPU |
Compute capability |
Azure ($/hour) |
Google ($/hour) |
---|---|---|---|---|
Tesla K80 |
6 |
3.7 |
0.90 |
0.85 |
Tesla P4 |
8 |
6.1 |
1.00 |
- |
NVIDIA T4 |
16 |
7.5 |
1.20 |
0.75 |
Tabel 1: CUDA compatible NVIDIA Data Center GPUs (bron 1, bron 2)
De NVIDIA T4 kaart is het meest aantrekkelijk en voldoet aan de technische specificaties van het project. Hieronder meer in detail prijsinformatie over deze type GPU.
3.2.3.2 Prijs on-premise
Belangrijk om hierbij aan te geven is dat wij de GPU niet 24/7 nodig hebben. In periodes van trainen verwachten wij de GPU maximaal 16 uur per maand nodig te hebben. Eventueel kan de GPU dus gedeeld worden met andere lokale servers in het ziekenhuis.
De eenmalige aanschafkosten van NVIDIA T4 videokaart voor een on-premise server zijn ongeveer €3.000,-.
Mochten jullie in het ziekenhuis een andere videokaarten beschikbaar hebben, neem dan contact met ons op of we ook met dit type kunnen werken.
3.2.3.3 Prijs per type cloud aanbieder
Belangrijk om hierbij aan te geven is dat wij de GPU niet 24/7 nodig hebben. In periodes van trainen verwachten wij de GPU maximaal 16 uur per maand nodig te hebben. Onderstaande prijzen zijn uitgegaan van 16 uur.
Per type cloud:
Google Cloud (bron: n1-highmem-16):
16 uur per maand = €17,84 per maand
Azure Cloud (bron: NC16as T4 v3)
16 uur per maand = €22,30 per maand
3.3 Specificaties software (voor trainings- en inferentie ziekenhuizen)
Specificaties voor de software zijn als volgt:
Docker (we gebruiken docker engine, docker desktop is niet mogelijk)
Hier een Link naar installatie Docker Engine op een Ubuntu server.
Python == 3.10 (we gebruiken de venv versie)
Vantage6 (zie hoofdstuk 3 voor installatie uitleg)
3.3.1 Testen of Docker werkt
Graag willen wij u vragen om na de installatie van Docker te controleren of Docker werkt. Dit kunt u als volgt doen. Type in Command Prompt:
docker run hello-world
of
docker ps
3.3.2 Testen of Python werkt
Graag willen wij u vragen om na de installatie van Python te controleren of Python werkt en of de juiste versie (3.10-venv versie) is gedownload. Dit kunt u als volgt doen. Type in Command Prompt:
python3 --version
3.4 Netwerk (zowel voor trainings- als inferentie ziekenhuizen)
Specificaties voor het netwerk zijn als volgt:
≥ 100Mbit ethernet
Port 443/TCP (https) open voor uitgaand verkeer naar de volgende vijf urls:
DHD Docker registry:
https://drplugindhdprd.azurecr.io
https://drplugindhdprd.westeurope.data.azurecr.io
DHD Blob storage:
https://stplugindhdp.blob.core.windows.net
DHD Vantage6 server:
https://plugin.dhd.nl
Container registry voor vantage6 updates:
https://harbor2.vantage6.ai/
3.5 Accounts (zowel voor trainings- als inferentie ziekenhuizen)
Op de lokale server zijn meerdere accounts nodig:
Een DHD-account (dit is nodig voor de installatie van de Vantage6 node)
Het is belangrijk dat dit account aan de Docker Group wordt toegevoegd. Voor meer informatie: Add user to Docker group
Persoonlijke accounts voor onze data scientisten en IT’ers.
Het is belangrijk dat deze accounts “lees” en “schrijf” toegang hebben tot de map waar de data wordt geplaatst.
Voor het opvragen welke personen van DHD een gebruikersaccount nodig hebben, kunt u een mail sturen naar ai-coderen@dhd.nl.
3.6 Installatie vantage6
In dit hoofdstuk wordt stap-voor-stap beschreven hoe het ziekenhuis zelf vantage6 kan installeren op de lokale ingerichte server.
3.6.1 Randvoorwaarden
Docker geïnstalleerd (zie hoofdstuk 2.3)
Huidige gebruiker heeft voldoende rechten om Docker te gebruiken (Let op! Bij een Linux server is het belangrijk dat het DHD-account wordt toegevoegd aan de Docker usergroup)
Python == 3.10
Tip
Voor de installatie van Python packages raden we een virtual environment aan. Zie de documentatie van de gebruikte Python distributie voor meer informaite over hoe dit op te zetten.
Distributie |
Documentatie |
---|---|
Python3 (vanilla) |
|
Anaconda |
3.6.2 Installatie van vantage6 software
Vantage6 nodes draaien als Docker container op de server. Om interactie met deze containers te vergemakkelijken, is er een command line interface (CLI) beschikbaar. Deze CLI is geschreven in Python3 en is als package beschikbaar via PyPI.
Het volgende commando installeert de laatste versie van CLI:
pip install --upgrade vantage6
Tip
Het volgende commando verifieert of installatie van de software succesvol was.
vnode --help
3.6.3 Configuratie van de node(s)
Binnen een vantage6 netwerk is het mogelijk om verschillende samenwerkingsverbanden te definieren. Per samenwerkingsverband wordt bepaald 1) welke data wordt gebruikt, en 2) wat er precies mee gedaan mag worden.
Per samenwerkingsverband, wordt een node geconfigureerd: de node heeft toegang tot de (juiste) data én houdt in de gaten dat alleen de toegestane algoritmes op de data worden toegepast.
Om een configuratiebestand voor een nieuwe node aan te maken wordt vanaf de command line het commando vnode new
gebruikt.
vnode new
Dit start een “wizard” die een aantal vragen stelt. Deze worden hieronder nader toegelicht.
Prompt |
Antwoord / Omschrijving |
---|---|
Please enter a configuration-name |
Naam van de node (en het configuratiebestand).
|
Please select the environment you want to configure |
Kies |
Enter given api-key |
De API-key wordt gebruikt voor authenticatie van de node bij de server. Deze ontvangt u van DHD. |
The base-URL of the server |
Kies voor AIOC: https://plugin.dhd.nl |
Enter port to which the server listens |
Kies/typ |
Path of the api |
Haal de standaardwaarde |
Task directory path |
Accepteer de voorgesteld waarde. |
Task directory path |
Accepteer de voorgesteld waarde. |
Do you want to add a database? |
Kies |
Enter unique label for the database |
Accepteer de voorgestelde waarde |
Database URI |
Voer de URI voor de database in. Dit is of een URI in de vorm |
Database type |
Kies het juiste database/bestands type. |
Do you want to add a database? |
Kies |
Which level of logging would you like? |
Kies |
Do you want to connect to a VPN server? |
Kies |
Subnet of the VPN server you want to connect to |
Kies voor AIOC: |
Enable encryption? |
Kies |
Path to private key file |
Geef een absoluut pad op naar de private key. Deze key maken we in de vervolgstap Aanmaken private key aan. |
Na afronding van de wizard, wordt de locatie van het aangemaakte configuratiebestand op het scherm getoond. Dit bestand kan m.b.v. een tekst-editor (bijv. Notepad of Visual Studio Code) worden geopend en aangepast.
De locatie van dit configuratiebestand kan ook worden teruggevonden met behulp van het volgende commando:
vnode files
3.6.4 Aanmaken private key
Het handmatig aanmaken van een private key kan via het volgende commando:
vnode create-private-key
Hiervoor heeft zijn de gebruikersnaam en password, verstrekt door DHD, IKNL, of EZA, noodzakelijk.
6.3.5 Starten en stoppen van een node
Om een node te starten, wordt het volgende commando gebruikt:
vnode start
Om een idee te krijgen van wat er op de achtergrond gebeurt, is het mogelijk om de output van de node naar het scherm te sturen. Dit kan op twee manieren:
vnode start --attach
Of op een later moment via het commando:
vnode attach
Voor het stoppen van een node bestaat een vergelijkbaar commando:
vnode stop
3.6.6 Meer informatie
Zie voor meer informatie de documentatie van vantage6
Let op: de specificaties in de officiële vantage6 documentatie kunnen afwijken van de specificaties in dit document.