DeepSeek, een Chinese AI-startup, heeft de wereldwijde AI-industrie opgeschud, met een waardedaling van $1 biljoen op Amerikaanse beurzen en een schokgolf bij techreuzen als Nvidia en OpenAI. Het bedrijf is snel uitgegroeid tot een koploper in tekstgeneratie, redeneren, vision-modellen en beeldgeneratie. Onlangs lanceerde DeepSeek state-of-the-art modellen, waaronder Janus, een multimodaal model dat visuele data kan begrijpen en beelden kan genereren uit tekst.
Afbeelding door auteur
In deze tutorial maken we kennis met de Janus-serie, zetten we het Janus-project op, bouwen we een Docker-container om het model lokaal te draaien en testen we de mogelijkheden met verschillende beeld- en tekstprompts.
Leer meer over DeepSeek-modellen die de wereldwijde AI-industrie verstoren:
De DeepSeek Janus-serie is een nieuwe lijn van multimodale modellen die ontworpen is om visueel begrip en generatietaken te verenigen met behulp van innovatieve frameworks. De serie omvat Janus, JanusFlow en het geavanceerde Janus-Pro, die elk voortbouwen op de vorige iteratie met opvallende verbeteringen in efficiëntie, prestaties en multimodale capaciteiten.
1. Janus
Janus is een innovatief autoregressief framework dat visuele encodering opsplitst in afzonderlijke paden voor begrip- en generatietaken, met een uniforme transformerarchitectuur. Deze aanpak lost conflicten tussen deze rollen op en vergroot de flexibiliteit en effectiviteit. Janus evenaart of overtreft taakspecifieke modellen en is daarmee een sterke kandidaat voor de volgende generatie multimodale systemen.
2. JanusFlow
JanusFlow combineert autoregressieve taalmodellering met rectified flow, een toonaangevende generatieve modelleringstechniek. Het minimalistische ontwerp maakt eenvoudige training binnen frameworks voor large language models mogelijk, zonder ingewikkelde aanpassingen. JanusFlow laat superieure prestaties zien op benchmarks in vergelijking met zowel gespecialiseerde als geïntegreerde benaderingen en verlegt effectief de grenzen van vision-language-modellering.
3. Janus-Pro
Janus-Pro bouwt voort op de eerdere modellen met geoptimaliseerde trainingsstrategieën, uitgebreidere trainingsdatasets en opschaling naar grotere modelgroottes. Deze verbeteringen zorgen voor aanzienlijk beter multimodaal begrip en het volgen van tekst-naar-beeldinstructies, terwijl de tekst-naar-beeldgeneratie stabieler wordt.
Janus is een relatief nieuw model en momenteel zijn er geen gequantiseerde versies of lokale AI-applicaties beschikbaar voor eenvoudig gebruik op laptops of desktops.
De Janus-repository op GitHub biedt echter een uitstekende Gradio webappdemonstratie die iedereen kan proberen. Het probleem is echter dat de demo vaak niet werkt door meerdere pakketconflicten.
Om dit op te lossen, passen we in dit project de originele code aan, bouwen we onze eigen Docker-image en draaien we de container lokaal met de Docker Desktop-applicatie.
1. Docker Desktop installeren
Download en installeer om te beginnen de nieuwste versie van Docker Desktop via de officiële Docker-website.
Opmerking voor Windows-gebruikers:
Als je Windows gebruikt, moet je ook het Windows-subsysteem voor Linux (WSL) installeren. Open je terminal en voer de volgende opdracht uit om WSL te installeren:
Navigeer naar de demo-map en open het bestand app_januspro.py in je favoriete code-editor. Breng de volgende wijzigingen aan:
Wijzig de modelnaam: vervang deepseek-ai/Janus-Pro-7B door deepseek-ai/Janus-Pro-1B.
Hiermee laad je de lichtere versie van het model, die slechts 4,1 GB groot is en daardoor geschikter voor lokaal gebruik.
Werk de laatste regel van het script bij: pas de demo.queue-functie als volgt aan:
demo.queue(concurrency_count=1, max_size=10).launch(
server_name="0.0.0.0", server_port=7860
)Mogelijk gemaakt door
Deze wijziging zorgt voor compatibiliteit met de Docker-URL en -poort.
4. Een Docker-image maken
Om de applicatie te containeriseren, maak je een Dockerfile in de hoofdmap van het project. Gebruik de volgende inhoud voor de Dockerfile:
# Use the PyTorch base image
FROM pytorch/pytorch:latest
# Set the working directory inside the container
WORKDIR /app
# Copy the current directory into the container
COPY ./app
# Install necessary Python packages
RUN pip install -e .[gradio]# Set the entrypoint for the container to launch your Gradio app
CMD ["python","demo/app_januspro.py"]Mogelijk gemaakt door
De Dockerfile zal:
Een Docker-image maken met de PyTorch-basisimage.
De werkmap binnen de container instellen.
Alle benodigde bestanden van je lokale machine kopiëren naar de map /app binnen de Docker-container.
Alle vereiste afhankelijkheden voor de applicatie installeren.
Ten slotte de Gradio-applicatie in de container starten.
De Docker-image bouwen en draaien
Zodra de Dockerfile klaar is, bouwen we de Docker-image en draaien we de container.
Je kunt de cursus Introduction to Docker volgen om de basis te leren van het bouwen en deployen van een Docker-image.
Voer de volgende opdracht in de terminal uit om de Docker-image te maken. Deze opdracht gebruikt de Dockerfile in de hoofdmap en geeft de naam janus aan de image:
Het duurt 10 tot 15 minuten, afhankelijk van je internetsnelheid, om de image vanaf nul te bouwen.
De volgende opdracht start een Docker-container voor de Janus-applicatie. Deze schakelt GPU-ondersteuning in, maakt poort 7860 vrij voor toegang tot de Gradio-app en zorgt voor persistente opslag voor Hugging Face-modellbestanden.
docker run -it -p 7860:7860 -d -v huggingface:/root/.cache/huggingface -w /app --gpus all --name janus janus:latestMogelijk gemaakt door
Als je de Docker Desktop-applicatie opent en naar het tabblad “Containers” gaat, zie je dat de janus-container draait. Hij is echter nog niet klaar voor gebruik.
Klik op de janus-container en ga vervolgens naar het tabblad “Logs” om de voortgang te controleren. Je ziet hier dat de container het modelbestand downloadt van de Hugging Face Hub.
Zodra het model succesvol is gedownload, tonen de logs een melding dat de applicatie draait.
Je kunt vervolgens je applicatie openen via de volgende URL in je browser: http://localhost:7860/.
De webapp heeft een frisse interface en alles lijkt soepel te werken. In dit gedeelte testen we het multimodale begrip en de tekst-naar-beeldgeneratie van Janus Pro.
Het multimodale begrip testen
Om het multimodale begrip van het model te evalueren, laden we eerst een afbeelding uit de DataCamp-tutorial en vragen we het model om deze uit te leggen. De resultaten zijn indrukwekkend—zelfs met het kleinere 1B-model is de reactie zeer accuraat en gedetailleerd.
Vervolgens laden we een andere afbeelding en vragen we het model om de inhoud van een infographic samen te vatten. Het model begrijpt de tekst in de afbeelding en geeft een zeer nauwkeurige en coherente reactie. Dit toont aan dat het model sterk is in het verwerken en interpreteren van zowel visuele als tekstuele elementen.
Tekst-naar-beeldgeneratie testen
Als je omlaag scrolt in de app, zie je de sectie “Text-to-Image Generation”. Hier kun je een prompt naar keuze invoeren en op de knop “Generate Images” klikken. Het model genereert vijf variaties van de afbeelding, wat enkele minuten kan duren.
De resultaten zijn opmerkelijk en vergelijkbaar met Stable Diffusion XL qua kwaliteit en detail.
“De afbeelding toont een verfijnd ontworpen oog tegen een cirkelvormige achtergrond met sierlijke krulpatronen die zowel realisme als surrealisme oproepen. Het middelpunt is een opvallend levendige blauwe iris, omringd door delicate adertjes die vanuit de pupil naar buiten lopen en zo diepte en intensiteit creëren. De wimpers zijn lang en donker en werpen subtiele schaduwen op de huid eromheen, die glad oogt maar licht getextureerd is, alsof ze in de loop van de tijd is verouderd of verweerd.
Boven het oog bevindt zich een steenachtig element dat doet denken aan klassieke architectuur, wat extra mysterie en tijdloze elegantie toevoegt aan de compositie. Dit architecturale element contrasteert scherp maar harmonieus met de organische krullen eromheen. Onder het oog ligt een ander decoratief motief dat aan barokke kunst herinnert, wat het algehele gevoel van eeuwigheid versterkt dat in elk minutieus uitgewerkt detail besloten ligt.
Al met al ademt de sfeer een mysterieus aura, naadloos verweven met elementen die tijdloosheid suggereren, bereikt door de juxtapositie van realistische texturen en surrealistische artistieke accenten. Elk onderdeel—van de ingewikkelde ontwerpen die het oog omlijsten tot het oud-ogende stenen stuk erboven—draagt op unieke wijze bij aan een visueel meeslepende tableau vol enigmatische aantrekkingskracht.”
Opnieuw zijn de resultaten verbluffend. De gegenereerde beelden vangen de fijne details en surrealistische artistieke elementen uit de prompt perfect.
Conclusie
Om de volledige mogelijkheden van het model te testen, heeft DeepSeek dezelfde versie van de webapplicatie gedeployed op Hugging Face Spaces. Je hebt er toegang toe via Chat With Janus-Pro-7B. Een van de opvallende kenmerken van het Janus Pro-model is de hoge nauwkeurigheid, zelfs bij kleinere varianten zoals het 1B-model.
In deze tutorial verkenden we Janus Pro, een multimodaal model dat zowel beelden kan begrijpen als beelden kan genereren op basis van tekstprompts. Daarnaast bouwden we onze eigen lokale oplossing om het model privé te gebruiken op een laptop-GPU. Deze setup is snel, efficiënt en stelt je in staat om vrij te experimenteren met beperkte middelen.
Bekijk onze nieuwste gids over Fine-tuning van DeepSeek R1 (Reasoning Model). Je leert het redeneermodel trainen op de medische chain-of-thought-dataset om in de toekomst betere AI-artsen te bouwen.
Als gecertificeerd data scientist haal ik met passie het maximale uit de nieuwste technologie om innovatieve machinelearning-toepassingen te bouwen. Met een sterke achtergrond in spraakherkenning, data-analyse en -rapportage, MLOps, conversationele AI en NLP heb ik mijn vaardigheden aangescherpt in het ontwikkelen van intelligente systemen die echt impact maken. Naast mijn technische expertise ben ik ook een sterke communicator met een talent om complexe concepten terug te brengen tot heldere, beknopte taal. Daardoor ben ik uitgegroeid tot een veelgelezen blogger over data science, waar ik mijn inzichten en ervaringen deel met een groeiende community van data-professionals. Op dit moment richt ik me op contentcreatie en redactie, waarbij ik met large language models werk aan krachtige en aansprekende content die zowel bedrijven als individuen helpt het beste uit hun data te halen.
Leer alles over LLMOps, van idee tot implementatie, krijg inzicht in de levenscyclus en uitdagingen, en ontdek hoe je deze concepten kunt toepassen op je apps.
DeepSeek, een Chinese AI-startup, heeft de wereldwijde AI-industrie opgeschud, met een waardedaling van $1 biljoen op Amerikaanse beurzen en een schokgolf bij techreuzen als Nvidia en OpenAI. Het bedrijf is snel uitgegroeid tot een koploper in tekstgeneratie, redeneren, vision-modellen en beeldgeneratie. Onlangs lanceerde DeepSeek state-of-the-art modellen, waaronder Janus, een multimodaal model dat visuele data kan begrijpen en beelden kan genereren uit tekst.
Afbeelding door auteur
In deze tutorial maken we kennis met de Janus-serie, zetten we het Janus-project op, bouwen we een Docker-container om het model lokaal te draaien en testen we de mogelijkheden met verschillende beeld- en tekstprompts.
Leer meer over DeepSeek-modellen die de wereldwijde AI-industrie verstoren:
Wat is de DeepSeek Janus-serie?
De DeepSeek Janus-serie is een nieuwe lijn van multimodale modellen die ontworpen is om visueel begrip en generatietaken te verenigen met behulp van innovatieve frameworks. De serie omvat Janus, JanusFlow en het geavanceerde Janus-Pro, die elk voortbouwen op de vorige iteratie met opvallende verbeteringen in efficiëntie, prestaties en multimodale capaciteiten.
1. Janus
Janus is een innovatief autoregressief framework dat visuele encodering opsplitst in afzonderlijke paden voor begrip- en generatietaken, met een uniforme transformerarchitectuur. Deze aanpak lost conflicten tussen deze rollen op en vergroot de flexibiliteit en effectiviteit. Janus evenaart of overtreft taakspecifieke modellen en is daarmee een sterke kandidaat voor de volgende generatie multimodale systemen.
2. JanusFlow
JanusFlow combineert autoregressieve taalmodellering met rectified flow, een toonaangevende generatieve modelleringstechniek. Het minimalistische ontwerp maakt eenvoudige training binnen frameworks voor large language models mogelijk, zonder ingewikkelde aanpassingen. JanusFlow laat superieure prestaties zien op benchmarks in vergelijking met zowel gespecialiseerde als geïntegreerde benaderingen en verlegt effectief de grenzen van vision-language-modellering.
3. Janus-Pro
Janus-Pro bouwt voort op de eerdere modellen met geoptimaliseerde trainingsstrategieën, uitgebreidere trainingsdatasets en opschaling naar grotere modelgroottes. Deze verbeteringen zorgen voor aanzienlijk beter multimodaal begrip en het volgen van tekst-naar-beeldinstructies, terwijl de tekst-naar-beeldgeneratie stabieler wordt.
Bron: deepseek-ai/Janus
Lees DeepSeek's Janus-Pro: functies, DALL-E 3-vergelijking & meer om meer te leren over de Janus-serie, hoe je er toegang toe krijgt en hoe deze zich verhoudt tot OpenAI's DALL-E 3.
Het Janus-project opzetten
Janus is een relatief nieuw model en momenteel zijn er geen gequantiseerde versies of lokale AI-applicaties beschikbaar voor eenvoudig gebruik op laptops of desktops.
De Janus-repository op GitHub biedt echter een uitstekende Gradio webappdemonstratie die iedereen kan proberen. Het probleem is echter dat de demo vaak niet werkt door meerdere pakketconflicten.
Om dit op te lossen, passen we in dit project de originele code aan, bouwen we onze eigen Docker-image en draaien we de container lokaal met de Docker Desktop-applicatie.
1. Docker Desktop installeren
Download en installeer om te beginnen de nieuwste versie van Docker Desktop via de officiële Docker-website.
Opmerking voor Windows-gebruikers:
Als je Windows gebruikt, moet je ook het Windows-subsysteem voor Linux (WSL) installeren. Open je terminal en voer de volgende opdracht uit om WSL te installeren:
2. De Janus-repository klonen
Kloon vervolgens de Janus-repository van GitHub en navigeer naar de projectmap:
3. De democode aanpassen
Navigeer naar de demo-map en open het bestand
app_januspro.pyin je favoriete code-editor. Breng de volgende wijzigingen aan:deepseek-ai/Janus-Pro-7Bdoordeepseek-ai/Janus-Pro-1B.Hiermee laad je de lichtere versie van het model, die slechts 4,1 GB groot is en daardoor geschikter voor lokaal gebruik.
demo.queue-functie als volgt aan:Deze wijziging zorgt voor compatibiliteit met de Docker-URL en -poort.
4. Een Docker-image maken
Om de applicatie te containeriseren, maak je een
Dockerfilein de hoofdmap van het project. Gebruik de volgende inhoud voor deDockerfile:De
Dockerfilezal:De Docker-image bouwen en draaien
Zodra de
Dockerfileklaar is, bouwen we de Docker-image en draaien we de container.Je kunt de cursus Introduction to Docker volgen om de basis te leren van het bouwen en deployen van een Docker-image.
Voer de volgende opdracht in de terminal uit om de Docker-image te maken. Deze opdracht gebruikt de
Dockerfilein de hoofdmap en geeft de naamjanusaan de image:Het duurt 10 tot 15 minuten, afhankelijk van je internetsnelheid, om de image vanaf nul te bouwen.
De volgende opdracht start een
Docker-container voor de Janus-applicatie. Deze schakelt GPU-ondersteuning in, maakt poort 7860 vrij voor toegang tot de Gradio-app en zorgt voor persistente opslag voor Hugging Face-modellbestanden.Als je de Docker Desktop-applicatie opent en naar het tabblad “Containers” gaat, zie je dat de
janus-container draait. Hij is echter nog niet klaar voor gebruik.Klik op de
janus-container en ga vervolgens naar het tabblad “Logs” om de voortgang te controleren. Je ziet hier dat de container het modelbestand downloadt van de Hugging Face Hub.Zodra het model succesvol is gedownload, tonen de logs een melding dat de applicatie draait.
Je kunt vervolgens je applicatie openen via de volgende URL in je browser: http://localhost:7860/.
Als je problemen ondervindt, bekijk dan de bijgewerkte versie van het Janus-project op kingabzpro/Janus: Janus-Series.
Het Janus Pro-model testen
De webapp heeft een frisse interface en alles lijkt soepel te werken. In dit gedeelte testen we het multimodale begrip en de tekst-naar-beeldgeneratie van Janus Pro.
Het multimodale begrip testen
Om het multimodale begrip van het model te evalueren, laden we eerst een afbeelding uit de DataCamp-tutorial en vragen we het model om deze uit te leggen. De resultaten zijn indrukwekkend—zelfs met het kleinere 1B-model is de reactie zeer accuraat en gedetailleerd.
Vervolgens laden we een andere afbeelding en vragen we het model om de inhoud van een infographic samen te vatten. Het model begrijpt de tekst in de afbeelding en geeft een zeer nauwkeurige en coherente reactie. Dit toont aan dat het model sterk is in het verwerken en interpreteren van zowel visuele als tekstuele elementen.
Tekst-naar-beeldgeneratie testen
Als je omlaag scrolt in de app, zie je de sectie “Text-to-Image Generation”. Hier kun je een prompt naar keuze invoeren en op de knop “Generate Images” klikken. Het model genereert vijf variaties van de afbeelding, wat enkele minuten kan duren.
De resultaten zijn opmerkelijk en vergelijkbaar met Stable Diffusion XL qua kwaliteit en detail.
Je kunt leren hoe je Stable Diffusion XL finetunet met DreamBooth en LoRA op je persoonlijke afbeeldingen.
Laten we een andere prompt proberen:
Prompt:
“De afbeelding toont een verfijnd ontworpen oog tegen een cirkelvormige achtergrond met sierlijke krulpatronen die zowel realisme als surrealisme oproepen. Het middelpunt is een opvallend levendige blauwe iris, omringd door delicate adertjes die vanuit de pupil naar buiten lopen en zo diepte en intensiteit creëren. De wimpers zijn lang en donker en werpen subtiele schaduwen op de huid eromheen, die glad oogt maar licht getextureerd is, alsof ze in de loop van de tijd is verouderd of verweerd.
Boven het oog bevindt zich een steenachtig element dat doet denken aan klassieke architectuur, wat extra mysterie en tijdloze elegantie toevoegt aan de compositie. Dit architecturale element contrasteert scherp maar harmonieus met de organische krullen eromheen. Onder het oog ligt een ander decoratief motief dat aan barokke kunst herinnert, wat het algehele gevoel van eeuwigheid versterkt dat in elk minutieus uitgewerkt detail besloten ligt.
Al met al ademt de sfeer een mysterieus aura, naadloos verweven met elementen die tijdloosheid suggereren, bereikt door de juxtapositie van realistische texturen en surrealistische artistieke accenten. Elk onderdeel—van de ingewikkelde ontwerpen die het oog omlijsten tot het oud-ogende stenen stuk erboven—draagt op unieke wijze bij aan een visueel meeslepende tableau vol enigmatische aantrekkingskracht.”
Opnieuw zijn de resultaten verbluffend. De gegenereerde beelden vangen de fijne details en surrealistische artistieke elementen uit de prompt perfect.
Conclusie
Om de volledige mogelijkheden van het model te testen, heeft DeepSeek dezelfde versie van de webapplicatie gedeployed op Hugging Face Spaces. Je hebt er toegang toe via Chat With Janus-Pro-7B. Een van de opvallende kenmerken van het Janus Pro-model is de hoge nauwkeurigheid, zelfs bij kleinere varianten zoals het 1B-model.
In deze tutorial verkenden we Janus Pro, een multimodaal model dat zowel beelden kan begrijpen als beelden kan genereren op basis van tekstprompts. Daarnaast bouwden we onze eigen lokale oplossing om het model privé te gebruiken op een laptop-GPU. Deze setup is snel, efficiënt en stelt je in staat om vrij te experimenteren met beperkte middelen.
Bekijk onze nieuwste gids over Fine-tuning van DeepSeek R1 (Reasoning Model). Je leert het redeneermodel trainen op de medische chain-of-thought-dataset om in de toekomst betere AI-artsen te bouwen.