<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>LeaderGPU® | GPU-oplossingen voor high-performance computing</title>
    <link>https://www.leadergpu.nl</link>
    <description>Een catalogus van oplossingen waarin u de beste bibliotheken, programma&#39;s en hulpmiddelen voor high-performance computing in verschillende categorieën en gebieden kunt vinden.</description>
    <language>nl</language>
    <item>
      <title>Qwen3-Coder: een gebroken paradigma</title>
      <link>https://www.leadergpu.nl/catalog/628-qwen3-coder-een-gebroken-paradigma</link>
      <description>&lt;p&gt;We zijn gewend te denken dat open-source modellen qua kwaliteit altijd achterblijven bij hun commerciële tegenhangers. Het lijkt misschien alsof ze uitsluitend worden ontwikkeld door enthousiastelingen die het zich niet kunnen veroorloven om enorme bedragen te investeren in het maken van datasets van hoge kwaliteit en het trainen van modellen op tienduizenden moderne GPU&#39;s.&lt;/p&gt;
&lt;p&gt;Het is een ander verhaal wanneer grote bedrijven zoals OpenAI, Anthropic of Meta de taak op zich nemen. Zij hebben niet alleen de middelen, maar ook &#39;s werelds beste neurale netwerkspecialisten. Helaas zijn de modellen die ze maken, vooral de laatste versies, closed-source. Ontwikkelaars verklaren dit door te wijzen op de risico&#39;s van ongecontroleerd gebruik en de noodzaak om de veiligheid van AI te waarborgen.&lt;/p&gt;
&lt;p&gt;Aan de ene kant is hun redenering begrijpelijk: veel ethische vragen zijn nog niet opgelost en de aard van neurale netwerkmodellen laat alleen indirecte invloed toe op de uiteindelijke output. Aan de andere kant is het gesloten houden van modellen en alleen toegang bieden via hun eigen API ook een solide bedrijfsmodel.&lt;/p&gt;
&lt;p&gt;Niet alle bedrijven gedragen zich echter zo. Het Franse bedrijf Mistral AI biedt bijvoorbeeld zowel commerciële als open-source modellen aan, zodat onderzoekers en enthousiastelingen ze kunnen gebruiken in hun projecten. Maar er moet speciale aandacht worden besteed aan de prestaties van Chinese bedrijven, waarvan de meeste open-gewicht en open-source modellen bouwen die serieus kunnen concurreren met propriëtaire oplossingen.&lt;/p&gt;
&lt;h2&gt;DeepSeek, Qwen3 en Kimi K2&lt;/h2&gt;
&lt;p&gt;De eerste grote doorbraak kwam met DeepSeek-V3. Dit multimodale taalmodel van DeepSeek AI werd ontwikkeld met behulp van de Mixture of Experts (MoE) benadering en indrukwekkende 671B parameters, met 37B meest relevante parameters geactiveerd voor elk token. Het belangrijkste is dat alle componenten (modelgewichten, inferentiecode en trainingspijplijnen) openbaar zijn gemaakt.&lt;/p&gt;
&lt;p&gt;Dit maakte het meteen een van de meest aantrekkelijke LLM&#39;s voor ontwikkelaars van AI-toepassingen en onderzoekers. De volgende headline-grabber was DeepSeek-R1 - het eerste open-source redeneringsmodel. Op de dag van de release deed het de Amerikaanse aandelenmarkt schudden nadat de ontwikkelaars beweerden dat het trainen van zo&#39;n geavanceerd model slechts $6 miljoen had gekost.&lt;/p&gt;
&lt;p&gt;Hoewel de hype rond DeepSeek uiteindelijk afkoelde, waren de volgende releases niet minder belangrijk voor de wereldwijde AI-industrie. We hebben het natuurlijk over Qwen 3. We hebben de functies in detail besproken in onze &lt;a href=&quot;https://www.leadergpu.nl/catalog/624-nieuw-in-qwen-3&quot; target=&quot;_blank&quot;&gt;Nieuw in Qwen 3&lt;/a&gt; review, dus we zullen er hier niet verder op ingaan. Kort daarna verscheen er een andere speler: Kimi K2 van Moonshot AI.&lt;/p&gt;
&lt;p&gt;Met zijn MoE architectuur, 1T parameters (32B geactiveerd per token) en open-source code trok Kimi K2 al snel de aandacht van de gemeenschap. Moonshot AI richtte zich niet zozeer op redeneren, maar streefde naar state-of-the-art prestaties op het gebied van wiskunde, programmeren en diepgaande interdisciplinaire kennis.&lt;/p&gt;
&lt;p&gt;De troef van Kimi K2 was de optimalisatie voor integratie in AI-agenten. Dit netwerk is letterlijk ontworpen om optimaal gebruik te maken van alle beschikbare hulpmiddelen. Het blinkt uit in taken die niet alleen het schrijven van code vereisen, maar ook iteratief testen in elke ontwikkelingsfase. Het heeft echter ook zwakke punten, die we later zullen bespreken.&lt;/p&gt;
&lt;p&gt;Kimi K2 is in alle opzichten een groot taalmodel. Voor het uitvoeren van de volledige versie is ~2 TB VRAM nodig (FP8: ~1 TB). Om voor de hand liggende redenen is dit niet iets wat je thuis kunt doen, en zelfs veel GPU-servers kunnen dit niet aan. Het model heeft ten minste 8 NVIDIA® H200 versnellers nodig. Gekwantiseerde versies kunnen helpen, maar ten koste van de nauwkeurigheid.&lt;/p&gt;
&lt;h2&gt;Qwen3-coder&lt;/h2&gt;
&lt;p&gt;Toen Alibaba het succes van Moonshot AI zag, ontwikkelde het zijn eigen Kimi K2-achtige model, maar met belangrijke voordelen die we binnenkort zullen bespreken. Aanvankelijk werd het in twee versies uitgebracht:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct&quot; target=&quot;_blank&quot;&gt;Qwen3-Coder-480B-A35B-Instruct&lt;/a&gt; (~250 GB VRAM)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8&quot; target=&quot;_blank&quot;&gt;Qwen3-Coder-480B-A35B-Instruct-FP8&lt;/a&gt; (~120 GB VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Een paar dagen later verschenen er kleinere modellen zonder het redeneermechanisme, die veel minder VRAM nodig hadden:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct&quot; target=&quot;_blank&quot;&gt;Qwen3-Coder-30B-A3B-Instruct&lt;/a&gt; (~32 GB VRAM)&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://huggingface.co/Qwen/Qwen3-Coder-30B-A3B-Instruct-FP8&quot; target=&quot;_blank&quot;&gt;Qwen3-Coder-30B-A3B-Instruct-FP8&lt;/a&gt; (~18 GB VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qwen3-Coder is ontworpen voor integratie met ontwikkeltools. Het bevat een speciale parser voor functie-aanroepen (qwen3coder_tool_parser.py, analoog aan OpenAI&#39;s functie-aanroepen). Naast het model werd een console-hulpprogramma uitgebracht, dat in staat is om te proeven van codecompilatie tot het opvragen van een kennisbank. Dit idee is niet nieuw, in wezen is het een sterk herwerkte uitbreiding van Anthropic&#39;s Gemini code app.&lt;/p&gt;
&lt;p&gt;Het model is compatibel met de OpenAI API, waardoor het lokaal of op een externe server kan worden ingezet en kan worden verbonden met de meeste systemen die deze API ondersteunen. Dit omvat zowel kant-en-klare client apps als machine learning bibliotheken. Dit maakt het niet alleen levensvatbaar voor het B2C-segment maar ook voor het B2B-segment en biedt een naadloze drop-in vervanging voor het product van OpenAI zonder wijzigingen in de applicatielogica.&lt;/p&gt;
&lt;p&gt;Een van de meest gevraagde functies is de uitgebreide contextlengte. Standaard ondersteunt het 256k tokens, maar het kan worden uitgebreid tot 1M met behulp van het &lt;b translate=&quot;no&quot;&gt;YaRN&lt;/b&gt; (Yet another RoPe extensioN) mechanisme. Moderne LLM&#39;s worden meestal getraind op korte datasets (2k-8k tokens) en grote contextlengtes kunnen ervoor zorgen dat ze eerdere inhoud uit het oog verliezen.&lt;/p&gt;
&lt;p&gt;YaRN is een elegante &quot;truc&quot; die het model laat denken dat het werkt met de gebruikelijke korte reeksen, terwijl het in werkelijkheid veel langere reeksen verwerkt. Het sleutelidee is om de positionele ruimte &quot;uit te rekken&quot; of te &quot;verwijden&quot; met behoud van de wiskundige structuur die het model verwacht. Dit maakt effectieve verwerking van reeksen van tienduizenden tokens mogelijk zonder hertraining of extra geheugen dat nodig is bij traditionele methoden voor contextuitbreiding.&lt;/p&gt;
&lt;h2&gt;Inference downloaden en uitvoeren&lt;/h2&gt;
&lt;p&gt;Zorg ervoor dat je CUDA® van tevoren hebt geïnstalleerd, met behulp van de officiële instructies van NVIDIA® of de gids &lt;a href=&quot;https://www.leadergpu.nl/articles/615-cuda-toolkit-installeren-in-linux&quot; target=&quot;_blank&quot;&gt;CUDA-toolkit installeren in Linux&lt;/a&gt;. Controleer of de benodigde compiler aanwezig is:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nvcc --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verwachte uitvoer:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0&lt;/pre&gt;
&lt;p&gt;Als je krijgt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Command &#39;nvcc&#39; not found, but can be installed with:
sudo apt install nvidia-cuda-toolkit&lt;/pre&gt;
&lt;p&gt;moet je de CUDA® binaries toevoegen aan $PATH van je systeem.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export PATH=/usr/local/cuda-12.4/bin:$PATH&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit is een tijdelijke oplossing. Bewerk voor permanent &lt;b translate=&quot;no&quot;&gt;~/.bashrc&lt;/b&gt; en voeg dezelfde twee regels toe aan het einde.&lt;/p&gt;
&lt;p&gt;Bereid nu je systeem voor op het beheren van virtuele omgevingen. Je kunt Python&#39;s ingebouwde venv gebruiken of het meer geavanceerde Miniforge. Ervan uitgaande dat Miniforge is geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda create -n venv python=3.10&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda activate venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer PyTorch met CUDA® ondersteuning die bij je systeem past:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer vervolgens de essentiële bibliotheken:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Transformers&lt;/b&gt; - De belangrijkste modelbibliotheek van Hugging Face&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Accelerate&lt;/b&gt; - maakt multi-GPU inferentie mogelijk&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;HuggingFace Hub&lt;/b&gt; - voor het downloaden/uploaden van modellen &amp;amp; datasets&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Safetensors&lt;/b&gt; - veilig formaat voor modelgewicht&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;vLLM&lt;/b&gt; - aanbevolen inferentie bibliotheek voor Qwen&lt;/li&gt;
&lt;/ul&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install transformers accelerate huggingface_hub safetensors vllm&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download het model:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;hf download Qwen/Qwen3-Coder-30B-A3B-Instruct --local-dir ./Qwen3-30B&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Inferentie uitvoeren met tensorparallellisme (laag tensors verdelen over GPU&#39;s, bijvoorbeeld 8):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;python -m vllm.entrypoints.openai.api_server \
--model /home/usergpu/Qwen3-30B \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.9 \
--dtype auto \
--host 0.0.0.0 \
--port 8000&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hiermee wordt de vLLM OpenAI API Server gestart.&lt;/p&gt;
&lt;h2&gt;Testen en integratie&lt;/h2&gt;
&lt;h3&gt;cURL&lt;/h3&gt;
&lt;p&gt;Installeer &lt;b translate=&quot;no&quot;&gt;jq&lt;/b&gt; voor het mooi afdrukken van JSON:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;sudo apt -y install jq&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Test de server:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;curl -s http://127.0.0.1:8000/v1/chat/completions -H &quot;Content-Type: application/json&quot; -d &#39;{
  &quot;model&quot;: &quot;/home/usergpu/Qwen3-30B&quot;,
  &quot;messages&quot;: [
    {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;You are a helpful assistant.&quot;},
    {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Hello! What can you do?&quot;}
  ],
  &quot;max_tokens&quot;: 180
}&#39; | jq -r &#39;.choices[0].message.content&#39;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;VSCode&lt;/h3&gt;
&lt;p&gt;Om te integreren met &lt;b translate=&quot;no&quot;&gt;Visual Studio Code&lt;/b&gt;, installeer de &lt;b translate=&quot;no&quot;&gt;Continue&lt;/b&gt; extensie en voeg toe aan &lt;b translate=&quot;no&quot;&gt;config.yaml&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;- name: Qwen3-Coder 30B
  provider: openai
  apiBase: http://[server_IP_address]:8000/v1
  apiKey: none
  model: /home/usergpu/Qwen3-30B
  roles:
    - chat
    - edit
    - apply&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/183/original/sh_qwen3_coder_a_broken_paradigm_1.png?1755000294&quot; alt=&quot;Continue extension&quot;&gt;
&lt;h3&gt;Qwen-Agent&lt;/h3&gt;
&lt;p&gt;Voor een GUI gebaseerde setup met Qwen-Agent (inclusief RAG, MCP en code interpreter):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install -U &quot;qwen-agent[gui,rag,code_interpreter,mcp]&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de nano editor:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;nano script.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voorbeeld Python script om Qwen-Agent te starten met een Gradio WebUI:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI

llm_cfg = {
    &#39;model&#39;: &#39;/home/usergpu/Qwen3-30B&#39;,
    &#39;model_server&#39;: &#39;http://localhost:8000/v1&#39;,
    &#39;api_key&#39;: &#39;EMPTY&#39;,
    &#39;generate_cfg&#39;: {&#39;top_p&#39;: 0.8},
}

tools = [&#39;code_interpreter&#39;]

bot = Assistant(
    llm=llm_cfg,
    system_message=&quot;You are a helpful coding assistant.&quot;,
    function_list=tools
)

WebUI(bot).run()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;python script.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De server zal beschikbaar zijn op: http://127.0.0.1:7860&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/184/original/sh_qwen3_coder_a_broken_paradigm_2.png?1755000323&quot; alt=&quot;Qwen-Agent with tools&quot;&gt;
&lt;p&gt;Je kunt Qwen3-Coder ook integreren in agent frameworks zoals CrewAI voor het automatiseren van complexe taken met toolsets zoals web search of vector database memory.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/627-crewai-installeren-met-gui&quot;&gt;CrewAI installeren met GUI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/602-hoe-de-langflow-toepassing-monitoren&quot;&gt;Hoe de LangFlow-toepassing monitoren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/182/original/il_qwen3_coder_a_broken_paradigm.png?1755000263"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 12 Aug 2025 14:11:06 +0200</pubDate>
      <guid isPermaLink="false">628</guid>
      <dc:date>2025-08-12 14:11:06 +0200</dc:date>
    </item>
    <item>
      <title>CrewAI installeren met GUI</title>
      <link>https://www.leadergpu.nl/catalog/627-crewai-installeren-met-gui</link>
      <description>&lt;p&gt;De mogelijkheden van neurale netwerkmodellen groeien met de dag. Onderzoekers en commerciële bedrijven investeren steeds meer in het trainen ervan. Maar op zichzelf kunnen deze modellen niet autonoom handelen. Om specifieke taken op te lossen, hebben ze begeleiding nodig: contextuitbreiding en richtingbepaling. Deze aanpak is niet altijd efficiënt, vooral niet voor complexe problemen.&lt;/p&gt;
&lt;p&gt;Maar wat als we een neuraal netwerk autonoom zouden laten handelen? En wat als we het veel tools zouden geven om te interageren met de buitenwereld? Dan zou je een AI-agent krijgen die taken kan oplossen door zelfstandig te bepalen welke hulpmiddelen hij moet gebruiken. Klinkt ingewikkeld, maar het werkt heel goed. Maar zelfs voor een gevorderde gebruiker kan het creëren van een AI-agent vanaf nul een niet-triviale taak zijn.&lt;/p&gt;
&lt;p&gt;De reden hiervoor is dat de meeste populaire bibliotheken geen grafische gebruikersinterface hebben. Ze vereisen interactie via een programmeertaal zoals Python. Dit verhoogt de instapdrempel drastisch en maakt AI-agenten te complex voor onafhankelijke implementatie. Dit is precies het geval bij CrewAI.&lt;/p&gt;
&lt;h2&gt;Wat is CrewAI&lt;/h2&gt;
&lt;p&gt;CrewAI is een zeer populaire en handige bibliotheek, maar heeft standaard geen GUI. Dit zette onafhankelijke ontwikkelaars aan om een onofficiële interface te maken. De open source aard van CrewAI maakte de taak veel gemakkelijker, en al snel bracht de gemeenschap het project CrewAI Studio uit.&lt;/p&gt;
&lt;p&gt;Ontwikkelaars en enthousiastelingen kregen meer inzicht in de architectuur van het systeem en konden tools bouwen die op maat gemaakt waren voor specifieke taken. Gewone gebruikers konden AI-agenten maken zonder ook maar één regel code te schrijven. Het werd eenvoudiger om taken toe te wijzen en de toegang tot neurale netwerken en tools te beheren. Het werd ook mogelijk om agents te exporteren en importeren van server naar server en ze te delen met vrienden, collega&#39;s of de open source gemeenschap.&lt;/p&gt;
&lt;p&gt;Een ander voordeel van CrewAI Studio is de flexibiliteit van de implementatie. Het kan worden geïnstalleerd als een gewone app of als een Docker-container - de voorkeursmethode omdat deze alle benodigde bibliotheken en componenten bevat om het systeem te laten draaien.&lt;/p&gt;
&lt;h2&gt;Installatie&lt;/h2&gt;
&lt;p&gt;Update je OS-pakketten en geïnstalleerde apps naar de nieuwste versies:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gebruik het script voor automatische installatie van het stuurprogramma of volg onze handleiding &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot; target=&quot;_blank&quot;&gt;Installeer Nvidia-stuurprogramma&#39;s in Linux&lt;/a&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de server opnieuw op zodat de wijzigingen van kracht worden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown - r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nadat u opnieuw verbinding hebt gemaakt via SSH, installeert u Apache 2 webserverhulpprogramma&#39;s, waardoor u toegang krijgt tot de &lt;b translate=&quot;no&quot;&gt;.htpasswd&lt;/b&gt; bestandsgenerator die wordt gebruikt voor basisgebruikersauthenticatie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install -y apache2-utils&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer Docker Engine met het officiële shellscript:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://get.docker.com/ | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Docker Compose toevoegen aan het systeem:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install -y docker-compose&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kloon de repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/strnad/CrewAI-Studio.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Navigeer naar de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd CrewAI-Studio&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een &lt;b translate=&quot;no&quot;&gt;.htpasswd&lt;/b&gt; bestand aan voor de &lt;b translate=&quot;no&quot;&gt;usergpu&lt;/b&gt; gebruiker. Je wordt twee keer gevraagd om een wachtwoord in te voeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;htpasswd -c .htpasswd usergpu&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bewerk nu het container deployment bestand. Standaard zijn er twee containers:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano docker-compose.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verwijder de sectie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;ports:
  - &quot;5432:5432&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En voeg de volgende service toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;
nginx:
  image: nginx:latest
  container_name: crewai_nginx
  ports:
    - &quot;80:80&quot;
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro
    - ./.htpasswd:/etc/nginx/.htpasswd:ro
  depends_on:
    - web&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nginx heeft een config-bestand nodig, dus maak er een aan:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano nginx.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Plak het volgende erin:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;events {}

http {
  server {
    listen 80;

    location / {
      proxy_pass http://web:8501;

      # WebSocket headers
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection &quot;upgrade&quot;;

      # Forward headers
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;

      auth_basic &quot;Restricted Content&quot;;
      auth_basic_user_file /etc/nginx/.htpasswd;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alle belangrijke servicevariabelen voor CrewAI zijn gedefinieerd in het bestand &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt;. Open het bestand &lt;b translate=&quot;no&quot;&gt;.env_example&lt;/b&gt; om het te bewerken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano .env_example&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de volgende regels toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;OLLAMA_HOST=&quot;http://open-webui:11434&quot;
OLLAMA_MODELS=&quot;ollama/llama3.2:latest&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En voeg Postgres config toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;POSTGRES_USER=&quot;admin&quot;
POSTGRES_PASSWORD=&quot;your_password&quot;
POSTGRES_DB=&quot;crewai_db&quot;
AGENTOPS_ENABLED=&quot;False&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer nu het voorbeeldbestand en hernoem het naar &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt; zodat het systeem het kan lezen tijdens het uitrollen van de container:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cp .env_example .env&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In dit voorbeeld gebruiken we lokale modellen met inferentie afgehandeld door Ollama. We raden onze gids &lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot; target=&quot;_blank&quot;&gt;Open WebUI: Alles in één&lt;/a&gt;, en voeg tijdens de implementatie &lt;b translate=&quot;no&quot;&gt;-e OLLAMA_HOST=0.0.0.0&lt;/b&gt; toe zodat CrewAI rechtstreeks verbinding kan maken met de Ollama-container. Download het gewenste model (bijvoorbeeld llama3.2:latest) via WebUI of door verbinding te maken met de containerconsole en uit te voeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;ollama pull llama3.2:latest&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zodra alles is ingesteld, start je de deployment:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker-compose up -d --build&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als u nu &lt;b translate=&quot;no&quot;&gt;http://[your_server_ip]/&lt;/b&gt; bezoekt, wordt u gevraagd in te loggen. Na correcte invoer verschijnt de CrewAI interface.&lt;/p&gt;
&lt;h2&gt;Functies&lt;/h2&gt;
&lt;p&gt;Laten we eens kijken naar de belangrijkste entiteiten die CrewAI gebruikt. Dit zal je helpen te begrijpen hoe je workflows kunt configureren. De centrale entiteit in de &lt;b translate=&quot;no&quot;&gt;Agent&lt;/b&gt;, een autonome taakuitvoerder. Elke agent heeft attributen die hem helpen zijn taken uit te voeren:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Role&lt;/b&gt;. Een korte taakbeschrijving van 2-3 woorden.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Backstory&lt;/b&gt;. Optioneel; helpt het taalmodel te begrijpen hoe de agent zich moet gedragen en op welke ervaringen hij moet vertrouwen.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Goal&lt;/b&gt;. Het doel dat de agent moet nastreven.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Allow delegation&lt;/b&gt;. Stelt de agent in staat om taken (of delen daarvan) aan anderen te delegeren.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Verbose&lt;/b&gt;. Vertelt de agent om gedetailleerde acties te loggen.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;LLM Provider and Model&lt;/b&gt;. Specificeert het model en de provider om te gebruiken.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Temperature&lt;/b&gt;. Bepaalt de creativiteit van het antwoord. Hoger = creatiever.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Max iterations&lt;/b&gt;. Aantal pogingen dat de agent moet doen om te slagen, als beveiliging (bijvoorbeeld tegen oneindige lussen).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agenten werken door iteratief input te analyseren, te redeneren en conclusies te trekken met behulp van beschikbare hulpmiddelen.&lt;/p&gt;
&lt;p&gt;Input wordt gedefinieerd door een &lt;b translate=&quot;no&quot;&gt;Task&lt;/b&gt; entiteit. Elke taak bevat een beschrijving, een toegewezen agent en optioneel een verwacht resultaat. Taken worden standaard sequentieel uitgevoerd, maar kunnen worden geparallelliseerd met de vlag &lt;b translate=&quot;no&quot;&gt;Async execution&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Autonoom agent werk wordt ondersteund door &lt;b translate=&quot;no&quot;&gt;Tools&lt;/b&gt; die real-world interactie mogelijk maakt. CrewAI bevat tools voor het zoeken op het web, het parsen van sites, API-oproepen en bestandsverwerking, die de context verbeteren en agenten helpen doelen te bereiken.&lt;/p&gt;
&lt;p&gt;Tot slot is er de &lt;b translate=&quot;no&quot;&gt;Crew entity&lt;/b&gt;. Deze verenigt agenten met verschillende rollen in een team om complexe problemen aan te pakken. Ze kunnen met elkaar communiceren, delegeren, beoordelen en corrigeren, en vormen zo een collectieve intelligentie.&lt;/p&gt;
&lt;h2&gt;Met behulp van&lt;/h2&gt;
&lt;p&gt;Nu je bekend bent met de entiteiten, laten we een minimale CrewAI workflow bouwen en uitvoeren. In dit voorbeeld volgen we de wereldwijde voortgang in de ontwikkeling van medicijnen tegen kanker.&lt;/p&gt;
&lt;p&gt;We gebruiken drie agenten:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Oncology Drug Pipeline Analyst&lt;/b&gt; - volgt nieuwe ontwikkelingen van vroege stadia tot klinische proeven.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Regulatory and Approval Watchdog&lt;/b&gt; - volgt nieuwe goedkeuringen van medicijnen en wijzigingen in de regelgeving.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Scientific Literature and Innovation Scout&lt;/b&gt; - scant wetenschappelijke publicaties en patenten met betrekking tot oncologie.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Open de sectie Agenten en maak de eerste agent aan:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/174/original/sh_how_to_install_crewai_with_gui_1.png?1753263006&quot; alt=&quot;Agent creation&quot;&gt;
&lt;p&gt;Voor nu gebruiken we het eerder gedownloade &lt;b translate=&quot;no&quot;&gt;llama3.2:latest&lt;/b&gt; model, maar in een echt scenario kiest u het model dat het beste bij de taak past. Herhaal het proces voor de overige agents en ga verder met het maken van de taak.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/175/original/sh_how_to_install_crewai_with_gui_2.png?1753263034&quot; alt=&quot;Task creation&quot;&gt;
&lt;p&gt;Verzamel alle agenten in een ploeg en wijs hen de voorbereide taak toe:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/176/original/sh_how_to_install_crewai_with_gui_3.png?1753263057&quot; alt=&quot;Crew creation&quot;&gt;
&lt;p&gt;Activeer de benodigde gereedschappen uit de lijst:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/177/original/sh_how_to_install_crewai_with_gui_4.png?1753263096&quot; alt=&quot;Tools selection&quot;&gt;
&lt;p&gt;Ga tot slot naar de pagina &lt;b translate=&quot;no&quot;&gt;Kickoff!&lt;/b&gt; en klik op &lt;b translate=&quot;no&quot;&gt;Run Crew!&lt;/b&gt; Na enkele iteraties zal het systeem een resultaat teruggeven, zoals:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/178/original/sh_how_to_install_crewai_with_gui_5.png?1753263118&quot; alt=&quot;Example CrewAI result&quot;&gt;
&lt;p&gt;Voordat we afsluiten, controleren we de sectie &lt;b translate=&quot;no&quot;&gt;Import/export&lt;/b&gt;. Je workflow of crew kan geëxporteerd worden als JSON om over te zetten naar een andere CrewAI server. Je kunt ook met één klik een Single-Page Application (SPA) maken - perfect voor productie-implementatie:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/179/original/sh_how_to_install_crewai_with_gui_6.png?1753263147&quot; alt=&quot;Import and export settings&quot;&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;CrewAI vereenvoudigt het maken van AI-agenten aanzienlijk en maakt integratie in elke applicatie of standalone gebruik mogelijk. De bibliotheek is gebaseerd op het idee van gedistribueerde intelligentie, waarbij elke agent een domeinexpert is en het gecombineerde team beter presteert dan een enkele generalistische agent.&lt;/p&gt;
&lt;p&gt;Omdat CrewAI in Python is geschreven, kan het gemakkelijk worden geïntegreerd met ML-platforms en -tools. Het open source karakter maakt uitbreiding door modules van derden mogelijk. Inter-agent communicatie vermindert het tokengebruik door contextverwerking te verdelen.&lt;/p&gt;
&lt;p&gt;Hierdoor worden complexe taken sneller en efficiënter uitgevoerd. De lagere instapdrempel van CrewAI Studio vergroot het bereik van AI-agents en multi-agent systemen. En ondersteuning voor lokale modellen zorgt voor betere controle over gevoelige gegevens.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/622-hoe-installeer-ik-n8n&quot;&gt;Hoe installeer ik N8N?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/623-mcp-server-gebaseerd-op-n8n&quot;&gt;MCP-server gebaseerd op N8N&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/180/original/il_how_to_install_crewai_with_gui.png?1753275220"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 23 Jul 2025 15:05:43 +0200</pubDate>
      <guid isPermaLink="false">627</guid>
      <dc:date>2025-07-23 15:05:43 +0200</dc:date>
    </item>
    <item>
      <title>Nieuw in Qwen 3</title>
      <link>https://www.leadergpu.nl/catalog/624-nieuw-in-qwen-3</link>
      <description>&lt;p&gt;De wereldwijde AI-race gaat steeds sneller. Onderzoeksinstellingen, privébedrijven en zelfs hele naties strijden nu om het leiderschap op het gebied van AI. In grote lijnen kan deze race in verschillende fasen worden verdeeld. In de eerste fase werd smalle AI gecreëerd. Bestaande neurale netwerkmodellen zoals GPT, MidJourney en AlphaFold laten zien dat deze fase met succes is bereikt.&lt;/p&gt;
&lt;p&gt;De volgende stap is de evolutie van AI naar AGI (Artificial General Intelligence). AGI moet menselijke intelligentie evenaren in het oplossen van een breed scala aan taken, van het schrijven van verhalen en het uitvoeren van wetenschappelijke berekeningen tot het begrijpen van sociale situaties en zelfstandig leren. Op het moment van schrijven is dit niveau nog niet bereikt.&lt;/p&gt;
&lt;p&gt;Het ultieme stadium in de ontwikkeling van AI wordt ASI (Artificial Super Intelligence) genoemd. Het zou de menselijke vermogens op alle gebieden ver overtreffen. Dit zou het mogelijk maken om technologieën te ontwikkelen die we ons nu nog niet eens kunnen voorstellen en om wereldwijde systemen te beheren met een precisie die de menselijke vermogens te boven gaat. Dit zou echter pas werkelijkheid kunnen worden na tientallen jaren (of zelfs eeuwen) van voortdurende vooruitgang.&lt;/p&gt;
&lt;p&gt;Daarom richten de meeste deelnemers aan de AI-race zich op het bereiken van AGI terwijl ze er controle over houden. De ontwikkeling van AGI is nauw verbonden met een groot aantal complexe technische, ethische en juridische uitdagingen. Toch wegen de potentiële beloningen ruimschoots op tegen de kosten en daarom investeren bedrijven als Alibaba Group zwaar in dit gebied.&lt;/p&gt;
&lt;p&gt;De release van &lt;a href=&quot;https://github.com/QwenLM/Qwen3&quot; target=&quot;_blank&quot;&gt;Qwen 3&lt;/a&gt; markeert een belangrijke mijlpaal, niet alleen voor de neurale netwerken van één bedrijf, maar ook op het wereldtoneel. Vergeleken met zijn voorganger introduceert het model een aantal belangrijke innovaties.&lt;/p&gt;
&lt;h2&gt;Kenmerken&lt;/h2&gt;
&lt;p&gt;Qwen 2.5 was voorgetraind op een dataset van 18B tokens, terwijl het nieuwe model die hoeveelheid heeft verdubbeld tot 36B tokens. De grootste dataset heeft de nauwkeurigheid van het basismodel aanzienlijk verbeterd. Interessant is dat het systeem niet alleen is getraind op openbare internetgegevens die zijn verzameld door middel van parsing, maar ook op PDF-documenten. Deze zijn doorgaans goed gestructureerd en bevatten veel kennis, waardoor het model nauwkeurigere antwoorden kan geven en complexe formuleringen beter begrijpt.&lt;/p&gt;
&lt;p&gt;Een van de meest veelbelovende richtingen in de ontwikkeling van AI is het bouwen van modellen die kunnen redeneren en die de taakcontext kunnen uitbreiden door middel van een iteratief proces. Aan de ene kant maakt dit uitgebreidere probleemoplossing mogelijk, maar aan de andere kant heeft redeneren de neiging om het proces aanzienlijk te vertragen. Daarom hebben de ontwikkelaars van Qwen 3 twee operationele modi geïntroduceerd:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Thinking mode.&lt;/b&gt; Het model bouwt stap voor stap context op voordat het een definitief antwoord geeft. Dit maakt het mogelijk om complexe problemen aan te pakken die diepgaand begrip vereisen.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Non-thinking mode.&lt;/b&gt; Het model reageert vrijwel direct, maar kan meer oppervlakkige antwoorden geven zonder diepgaande analyse.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Deze handmatige controle over het gedrag van het model verbetert de gebruikerservaring bij het uitvoeren van veel routinetaken. Het verminderen van het gebruik van de denkmodus verlaagt ook de GPU-belasting aanzienlijk, waardoor meer tokens verwerkt kunnen worden binnen hetzelfde tijdsbestek.&lt;/p&gt;
&lt;p&gt;Naast deze binaire keuze is er ook een soft-switching mechanisme. Met dit hybride gedrag kan het model zich aanpassen aan de context met behulp van interne wegingsmechanismen. Als het model een taak moeilijk vindt, zal het automatisch redeneren of zelfs zelfverificatie activeren. Het kan ook reageren op aanwijzingen van de gebruiker zoals &quot;Laten we stap voor stap denken&quot;.&lt;/p&gt;
&lt;p&gt;Een andere belangrijke verbetering is de uitgebreide meertalige ondersteuning. Waar Qwen 2.5 slechts 29 talen ondersteunde, kan versie 3 nu tekst in 119 talen en dialecten begrijpen en genereren. Dit heeft het volgen van instructies en contextueel begrip sterk verbeterd. Hierdoor kan Qwen 3 nu effectief gebruikt worden in niet-Engelse omgevingen.&lt;/p&gt;
&lt;p&gt;Daarnaast is Qwen 3 nu aanzienlijk beter geïntegreerd met MCP servers, waardoor het model tools heeft om dieper in te gaan op het oplossen van problemen en het uitvoeren van acties. Het kan nu communiceren met externe bronnen en complexe processen direct beheren.&lt;/p&gt;
&lt;h2&gt;Model training&lt;/h2&gt;
&lt;h3&gt;Pre-training&lt;/h3&gt;
&lt;p&gt;Zo&#39;n grote sprong voorwaarts zou niet mogelijk zijn geweest zonder een meerfasig trainingssysteem. In eerste instantie werd het model voorgetraind op 30B tokens met een contextlengte van 4K, zodat het algemene kennis en basale taalvaardigheden kon opdoen.&lt;/p&gt;
&lt;p&gt;Dit werd gevolgd door een verfijningsfase met meer wetenschappelijke en goed gestructureerde gegevens. Tijdens deze fase kreeg het model ook de vaardigheid om effectief toepassingen te schrijven in meerdere programmeertalen.&lt;/p&gt;
&lt;p&gt;Tot slot werd het getraind op een dataset van hoge kwaliteit met uitgebreide context. Het resultaat is dat Qwen 3 nu een effectieve contextlengte van 128K tokens ondersteunt, wat neerkomt op ongeveer 350 pagina&#39;s getypte tekst, afhankelijk van de taal. Cyrillische talen hebben bijvoorbeeld vaak kortere tokens vanwege de morfologie en het gebruik van voor- en achtervoegsels, etc.&lt;/p&gt;
&lt;h3&gt;Pijplijn voor redeneren&lt;/h3&gt;
&lt;p&gt;Het bouwen van redeneerbare modellen is een fascinerend maar arbeidsintensief proces dat verschillende bestaande technieken combineert die gericht zijn op het simuleren van menselijk denken. Gebaseerd op publiek beschikbare informatie, kunnen we aannemen dat de redeneertraining van Qwen 3 uit vier hoofdfasen bestond:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Cold start for long chains of thought.&lt;/b&gt; Het model trainen om problemen op te splitsen in meerdere stappen zonder voorafgaande aanpassing. Hierdoor leert het iteratief denken en ontwikkelt het een basislaag van redeneervaardigheden.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Reinforcement learning based on reasoning.&lt;/b&gt; In dit stadium hangen beloningen niet alleen af van het uiteindelijke antwoord, maar ook van hoe goed het model logische, interpreteerbare en gestructureerde redeneerketens opbouwt. De afwezigheid van fouten en hallucinaties wordt ook geëvalueerd.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Merging reasoning modes.&lt;/b&gt; Mensen vertrouwen typisch op twee denkstijlen: snel (intuïtief) en langzaam (analytisch). Afhankelijk van het type taak moet het neurale model leren om tussen deze stijlen te schakelen en ze te integreren. Dit wordt meestal gedaan met behulp van voorbeelden die beide stijlen combineren of door middel van speciale tokens die aangeven welke stijl moet worden toegepast.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;General reinforcement learning.&lt;/b&gt; Deze laatste fase lijkt op een zandbakomgeving waarin het model leert om te gaan met hulpmiddelen, taken uit te voeren die uit meerdere stappen bestaan en adaptief gedrag te ontwikkelen. Hier wordt het ook afgestemd op de voorkeuren van de gebruiker.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Qwen 3 is een belangrijke mijlpaal voor Alibaba Group. De kwaliteit van de training en de methodologie maken het een serieuze concurrent voor gevestigde spelers als OpenAI en Anthropic. De verbeteringen ten opzichte van de vorige versie zijn substantieel.&lt;/p&gt;
&lt;p&gt;Een bijkomend voordeel is het open-source karakter, waarbij de codebase openbaar beschikbaar is op GitHub onder de Apache 2.0 licentie.&lt;/p&gt;
&lt;p&gt;Verdere ontwikkeling van de Qwen modelfamilie zal helpen om de positie in de wereldwijde AI-arena te versterken en de kloof met closed-source commerciële modellen te verkleinen. En alle huidige prestaties zijn, op de een of andere manier, stappen in de richting van de vooruitgang van de mensheid in het bouwen van AGI.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/579-qwen-2-vs-llama-3&quot;&gt;Qwen 2 vs Llama 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/168/original/il_whats_new_in_qwen_3.png?1752240562"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 14 Jul 2025 08:05:08 +0200</pubDate>
      <guid isPermaLink="false">624</guid>
      <dc:date>2025-07-14 08:05:08 +0200</dc:date>
    </item>
    <item>
      <title>MCP-server gebaseerd op N8N</title>
      <link>https://www.leadergpu.nl/catalog/623-mcp-server-gebaseerd-op-n8n</link>
      <description>&lt;p&gt;De ontwikkeling van generatieve neurale netwerken is de afgelopen jaren in een stroomversnelling geraakt. Ze zijn merkbaar sneller en nauwkeuriger geworden in hun reacties en hebben geleerd om te redeneren. Hun mogelijkheden worden echter nog steeds fundamenteel beperkt door hun architectuur. Bijvoorbeeld, elke bestaande LLM op het moment van schrijven heeft een kennis cutoff datum. Dit betekent dat met elke dag die voorbijgaat, de kans groter wordt dat zo&#39;n LLM onjuiste antwoorden geeft, simpelweg omdat het informatie mist over gebeurtenissen die na die datum hebben plaatsgevonden.&lt;/p&gt;
&lt;p&gt;Door deze beperking moet het model helemaal opnieuw worden getraind op versere gegevens, wat duur en tijdrovend is. Maar er is een andere manier. Als je het model in staat stelt om met de buitenwereld te communiceren, kan het zelfstandig de informatie vinden en bijwerken die tijdens een gebruikersgesprek wordt gevraagd, zonder dat het opnieuw getraind hoeft te worden.&lt;/p&gt;
&lt;p&gt;Dit is ongeveer hoe het RAG-mechanisme (Retrieval Augmented Generation) werkt. Bij het beantwoorden van een vraag bevraagt het model eerst een vooraf voorbereide vectordatabase en als het relevante informatie vindt, verwerkt het deze in de prompt. Door de vectorgegevensbank uit te leggen en bij te werken, kan de kwaliteit van LLM antwoorden dus sterk worden verbeterd.&lt;/p&gt;
&lt;p&gt;Maar er is een andere, nog interessantere manier om actuele context in prompts te verwerken. Het heet MCP, wat staat voor Model Context Protocol. Het werd oorspronkelijk ontwikkeld door Anthropic voor zijn Claude-model. Het sleutelmoment kwam toen de broncode voor MCP open-source werd gemaakt, waardoor duizenden AI-onderzoekers aangepaste servers konden bouwen voor verschillende doeleinden.&lt;/p&gt;
&lt;p&gt;De essentie van MCP is om een neuraal netwerkmodel toegang te geven tot hulpmiddelen waarmee het zelfstandig zijn kennis kan bijwerken en verschillende acties kan uitvoeren om gegeven taken efficiënt op te lossen. Het model beslist zelf welk gereedschap het gebruikt en of het geschikt is in elke situatie.&lt;/p&gt;
&lt;p&gt;Ondersteuning voor MCP verscheen al snel in verschillende IDE&#39;s zoals Cursor, maar ook in automatiseringsplatforms zoals N8N. Dit laatste is vooral intuïtief omdat workflows visueel worden gemaakt, waardoor het gemakkelijker te begrijpen is. Binnen N8N kun je verbinding maken met een bestaande MCP-server of je eigen server maken. Bovendien kun je zelfs een directe verbinding binnen één workflow organiseren. Maar laten we stap voor stap te werk gaan.&lt;/p&gt;
&lt;h2&gt;Een eenvoudige AI-agent maken&lt;/h2&gt;
&lt;p&gt;Voordat je aan de slag gaat, moet je ervoor zorgen dat aan de belangrijkste vereiste is voldaan: je hebt een LLM klaarstaan voor verbindingen. Dit kan een lokaal draaiend model zijn met Ollama of een externe service zoals OpenAI&#39;s ChatGPT. In het eerste geval moet je het lokale Ollama API adres weten (en optioneel de authenticatie), en in het tweede geval heb je een actief OpenAI account nodig met voldoende credits.&lt;/p&gt;
&lt;p&gt;Het bouwen van een agent begint met de belangrijkste AI Agent node. Deze moet op zijn minst verbonden zijn met twee andere knooppunten, één om als trigger te fungeren en de andere om verbinding te maken met de LLM. Als je geen trigger opgeeft, maakt het systeem er automatisch een aan en wordt de agent getriggerd zodra hij een bericht ontvangt in de interne chat:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/158/original/sh_mcp_server_based_on_n8n_1.png?1751458377&quot; alt=&quot;AI Agent only&quot;&gt;
&lt;p&gt;Het enige ontbrekende onderdeel is de LLM. Je kunt bijvoorbeeld onze &lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot;&gt;Open WebUI: Alles in één&lt;/a&gt; gids gebruiken om Ollama in te stellen met een webinterface. De enige vereiste wijziging is dat de containers voor N8N en Open WebUI zich op hetzelfde netwerk moeten bevinden. Als de N8N container bijvoorbeeld op een netwerk met de naam &lt;b translate=&quot;no&quot;&gt;web&lt;/b&gt; staat, vervang dan in het deployment commando voor Open WebUI &lt;b translate=&quot;no&quot;&gt;--network=host&lt;/b&gt; door &lt;b translate=&quot;no&quot;&gt;--network=web&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;In sommige gevallen moet je ook handmatig de &lt;b translate=&quot;no&quot;&gt;OLLAMA_HOST&lt;/b&gt; omgevingsvariabele instellen, bijvoorbeeld: &lt;b translate=&quot;no&quot;&gt;-e OLLAMA_HOST=0.0.0.0&lt;/b&gt;. Dit maakt verbindingen met de Ollama API niet alleen mogelijk vanaf localhost, maar ook vanaf andere containers. Stel dat Ollama wordt ingezet in een container met de naam &lt;b translate=&quot;no&quot;&gt;ollama-webui&lt;/b&gt;. Dan zou de basis URL voor verbinden vanuit N8N zijn:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;http://open-webui:11434&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vergeet niet om minstens één model te downloaden voordat je de Ollama Chat Model node verbindt. Je kunt dit doen via de webinterface of via de CLI van de container. Het volgende commando zal het Llama 3.1 model met 8 miljard parameters downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;ollama pull llama3.1:8b&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Eenmaal gedownload en geïnstalleerd, zal het model automatisch verschijnen in de lijst met beschikbare modellen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/159/original/sh_mcp_server_based_on_n8n_2.png?1751458416&quot; alt=&quot;Model select&quot;&gt;
&lt;p&gt;Een minimaal werkende AI Agent workflow ziet er als volgt uit:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/160/original/sh_mcp_server_based_on_n8n_3.png?1751458451&quot; alt=&quot;Minimal working AI Agent&quot;&gt;
&lt;p&gt;In deze vorm kan de agent slechts één model gebruiken en slaat hij geen invoergegevens op of verbetert hij prompts met behulp van externe tools. Het is dus zinvol om ten minste het knooppunt &lt;b translate=&quot;no&quot;&gt;Simple Memory&lt;/b&gt; toe te voegen. Voor lichte belastingen is het voldoende om verzoeken en antwoorden op te slaan.&lt;/p&gt;
&lt;p&gt;Maar laten we teruggaan naar MCP. Maak om te beginnen een server met het speciale knooppunt &lt;b translate=&quot;no&quot;&gt;MCP Server Trigger&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/161/original/sh_mcp_server_based_on_n8n_4.png?1751458483&quot; alt=&quot;MCP Server Trigger only&quot;&gt;
&lt;p&gt;Dit knooppunt is volledig zelfstandig en heeft geen externe activering nodig. Het wordt alleen geactiveerd door een inkomend extern verzoek naar zijn webhookadres. Standaard zijn er twee URL&#39;s: &lt;b translate=&quot;no&quot;&gt;Test URL&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Production URL&lt;/b&gt;. De eerste wordt gebruikt tijdens de ontwikkeling, terwijl de tweede alleen werkt als de workflow is opgeslagen en geactiveerd.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/162/original/sh_mcp_server_based_on_n8n_5.png?1751458569&quot; alt=&quot;MCP Server Trigger settings&quot;&gt;
&lt;p&gt;De trigger is nutteloos op zichzelf, hij heeft verbonden tools nodig. Laten we bijvoorbeeld een van de eenvoudigste gereedschappen aansluiten: een rekenmachine. Deze verwacht een wiskundige uitdrukking als invoer. Knooppunten communiceren met behulp van gewone JSON, dus als de rekenmachine 2 + 2 wil berekenen, moet de invoer zijn:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;[
  {
    &quot;query&quot;: {
      &quot;input&quot;: &quot;2 + 2&quot;
    }
  }
]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;LLM&#39;s kunnen eenvoudig zulke JSON genereren uit platte tekst taakbeschrijvingen en deze naar het knooppunt sturen, dat de berekeningen uitvoert en het resultaat terugstuurt. Laten we de MCP-client verbinden met de agent:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/163/original/sh_mcp_server_based_on_n8n_6.png?1751458623&quot; alt=&quot;AI Agent with tools&quot;&gt;
&lt;p&gt;Het is de moeite waard om op te merken dat dit knooppunt geen extra verbindingen nodig heeft. Het is voldoende om in de instellingen het eindpuntadres op te geven waar het gegevens van de AI Agent naartoe zal sturen. In ons voorbeeld wijst dit adres naar de container met de naam &lt;b translate=&quot;no&quot;&gt;n8n&lt;/b&gt;.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/164/original/sh_mcp_server_based_on_n8n_7.png?1751458735&quot; alt=&quot;MCP Client Settings&quot;&gt;
&lt;p&gt;Natuurlijk kun je in dit stadium elk beschikbaar extern MCP serveradres opgeven. Maar voor dit artikel gebruiken we een lokale instantie die binnen N8N draait. Laten we eens kijken hoe de client en server zich gedragen wanneer de AI Agent wordt gevraagd om een eenvoudige wiskundige bewerking uit te voeren:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/165/original/sh_mcp_server_based_on_n8n_8.png?1751458808&quot; alt=&quot;MCP Client calculations example&quot;&gt;
&lt;p&gt;Na ontvangst van het verzoek zal de AI Agent:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Zoeken in Simple Memory om te zien of de gebruiker dit eerder heeft gevraagd of dat een context kan worden hergebruikt.&lt;/li&gt;
    &lt;li&gt;De vraag naar de LLM sturen, die de wiskundige uitdrukking correct zal afbreken en de bijbehorende JSON zal voorbereiden.&lt;/li&gt;
    &lt;li&gt;Stuur de JSON naar het rekenprogramma en ontvang het resultaat.&lt;/li&gt;
    &lt;li&gt;Gebruik de LLM om het uiteindelijke antwoord te genereren en voeg het resultaat in het antwoord in.&lt;/li&gt;
    &lt;li&gt;Sla het resultaat op in Simple Memory.&lt;/li&gt;
    &lt;li&gt;Voer het bericht uit in de chat.&lt;/li&gt;
&lt;/ol&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/166/original/sh_mcp_server_based_on_n8n_9.png?1751458859&quot; alt=&quot;MCP Client calculations JSON&quot;&gt;
&lt;p&gt;Op dezelfde manier kunnen agents werken met andere tools op de MCP-server. In plaats van Simple Memory kun je geavanceerdere opties gebruiken zoals MongoDB, Postgres, Redis of zelfs zoiets als Zep. Deze vereisen natuurlijk minimaal database-onderhoud, maar de algehele prestaties zullen aanzienlijk toenemen.&lt;/p&gt;
&lt;p&gt;Er zijn ook veel meer opties voor de selectie van gereedschappen. Out of the box ondersteunt het knooppunt &lt;b translate=&quot;no&quot;&gt;MCP Server Trigger&lt;/b&gt; meer dan 200 tools. Dit kan van alles zijn, van eenvoudige HTTP verzoeken tot voorgebouwde integraties met openbare internetdiensten. Binnen een enkele workflow kun je zowel een server als een client maken. Een belangrijk ding om op te merken: deze knooppunten kunnen niet visueel worden verbonden in de editor, en dat is verwacht gedrag:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/167/original/sh_mcp_server_based_on_n8n_10.png?1751458939&quot; alt=&quot;MCP Server and Client with tools&quot;&gt;
&lt;p&gt;In plaats van de standaard trigger kun je andere opties gebruiken, zoals het ontvangen van een bericht via een messenger, het indienen van een website formulier of het uitvoeren volgens een schema. Hiermee kun je workflows opzetten die reageren op gebeurtenissen of routinehandelingen uitvoeren, zoals het dagelijks exporteren van gegevens van Google Ads.&lt;/p&gt;
&lt;p&gt;En dat is nog niet alles wat er mogelijk is met AI agents. Je kunt multi-agent systemen bouwen met verschillende neurale netwerkmodellen die samenwerken om taken nauwkeuriger op te lossen, rekening houdend met veel meer beïnvloedende factoren in het proces.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/622-hoe-installeer-ik-n8n&quot;&gt;Hoe installeer ik N8N&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/602-hoe-de-langflow-toepassing-monitoren&quot;&gt;Hoe de LangFlow-toepassing monitoren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/157/original/il_mcp_server_based_on_n8n.png?1751457996"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 02 Jul 2025 15:28:18 +0200</pubDate>
      <guid isPermaLink="false">623</guid>
      <dc:date>2025-07-02 15:28:18 +0200</dc:date>
    </item>
    <item>
      <title>Hoe installeer ik N8N?</title>
      <link>https://www.leadergpu.nl/catalog/622-hoe-installeer-ik-n8n</link>
      <description>&lt;p&gt;AI-agenten in 2025 blijven een van de meest veelbelovende benaderingen voor het oplossen van complexe taken met behulp van grote taalmodellen. Deze agents zijn autonoom en kunnen zelfstandig verschillende tools selecteren om toegewezen taken uit te voeren. Deze aanpak maakt het mogelijk om resultaten te bereiken met minder menselijke betrokkenheid en een hogere kwaliteit. Het opent ook mogelijkheden voor het ontdekken van originelere en effectievere manieren om problemen aan te pakken.&lt;/p&gt;
&lt;p&gt;In plaats van alleen een taak te formuleren, geef je het neurale netwerk de opdracht om deze zelfstandig op te lossen, op basis van de middelen die aan het netwerk zijn toegewezen. Maar om dit schema te laten werken, moet er een mechanisme zijn dat neurale netwerkinterfaces verbindt met verschillende tools, of het nu zoeken op het web is of een vector database voor het opslaan van tussenresultaten.&lt;/p&gt;
&lt;p&gt;n8n is een automatiseringsplatform dat integratie met verschillende neurale netwerken en openbare diensten ondersteunt. Gebruikers kunnen visueel ontwerpen hoe gegevens worden verwerkt en welk eindresultaat moet worden bereikt. In tegenstelling tot klassieke no-code oplossingen, maakt n8n het mogelijk om willekeurige code op te nemen in elke fase van het proces, wat vooral handig is als ingebouwde functionaliteit niet voldoende is.&lt;/p&gt;
&lt;p&gt;Het resultaat is een systeem dat de eenvoud van no-code combineert met de flexibiliteit van traditioneel programmeren. Om het volledig te begrijpen, moet je echter nog wat tijd besteden aan het verkennen en bekijken van workflowvoorbeelden voor een beter begrip. In dit artikel laten we u zien hoe u n8n kunt implementeren op LeaderGPU servers.&lt;/p&gt;
&lt;h2&gt;De server voorbereiden&lt;/h2&gt;
&lt;h3&gt;Het systeem bijwerken&lt;/h3&gt;
&lt;p&gt;Werk de pakketlijst bij en upgrade alle geïnstalleerde pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer automatisch het aanbevolen NVIDIA® stuurprogramma (eigen) of gebruik onze stap-voor-stap handleiding &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot; target=&quot;_blank&quot;&gt;Installeer Nvidia-stuurprogramma&#39;s in Linux&lt;/a&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start nu de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Docker installeren&lt;/h3&gt;
&lt;p&gt;Je kunt het officiële installatiescript gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://get.docker.com/ | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we NVIDIA® container toolkit GPG-sleutel en repository toevoegen voor Docker-integratie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed &#39;s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g&#39; | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Werk de pakketlijst bij en installeer de NVIDIA® container toolkit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y install nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start Docker opnieuw op om de wijzigingen toe te passen en de geïnstalleerde toolkit in te schakelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Installeer n8n&lt;/h3&gt;
&lt;p&gt;Om het systeem gegevens te laten opslaan, moet je een volume aanmaken voordat je de container start:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker volume create n8n_data&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we nu een container starten die poort 5678 zal openen voor externe verbindingen en het aangemaakte &lt;b translate=&quot;no&quot;&gt;n8n_data&lt;/b&gt; volume zal mounten in de map &lt;b translate=&quot;no&quot;&gt;/home/node/.n8n&lt;/b&gt; in de container:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De eerste keer dat je de applicatie start, ben je misschien verbaasd over de volgende foutmelding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/152/original/sh_how_to_install_n8n_1.png?1750667132&quot; alt=&quot;TLS-error N8N&quot;&gt;
&lt;p&gt;Dit is niet echt een fout, het is meer een waarschuwing over hoe je het systeem goed moet configureren voor toegang. Het probleem is dat het systeem standaard geen TLS/HTTPS-certificaat heeft. Zonder dat is de verbinding niet veilig. Je hebt dus drie opties:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Connect your own certificate&lt;/b&gt;. Je kunt dit doen door de paden naar de certificaatbestanden op te geven via omgevingsvariabelen, of door een reverse proxy server te configureren.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Create an SSH tunnel and forward port 5678&lt;/b&gt; naar localhost op de computer waarvandaan je verbinding maakt. Op deze manier krijg je direct een beveiligde persoonlijke verbinding. Niemand anders heeft echter toegang tot de server van buitenaf.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Bypass the warning&lt;/b&gt;. Als dit een testserver is die niet bedoeld is voor productiegebruik en je niets geeft om beveiliging, kun je de waarschuwing uitschakelen door de omgevingsvariabele &lt;b translate=&quot;no&quot;&gt;N8N_SECURE_COOKIE&lt;/b&gt; in te stellen op &lt;b translate=&quot;no&quot;&gt;FALSE&lt;/b&gt;. Dit wordt sterk afgeraden omdat het de server kwetsbaar maakt voor mogelijke aanvallen. Toch kan het acceptabel zijn in specifieke scenario&#39;s.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Dit artikel zal elke optie in detail bespreken zodat je de juiste kunt kiezen.&lt;/p&gt;
&lt;h2&gt;Verbinding maken met de server&lt;/h2&gt;
&lt;p&gt;Als u nog geen SSL-certificaat hebt, raden wij u aan er een te bestellen bij &lt;a href=&quot;https://www.leaderssl.com/&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;LeaderSSL. Het kan worden gebruikt voor elke website, online winkel of om de echtheid van een e-mail te verifiëren.&lt;/p&gt;
&lt;h3&gt;Omgevingsvariabelen gebruiken&lt;/h3&gt;
&lt;p&gt;De eenvoudigste manier om HTTPS te configureren is door je certificaat te uploaden naar de server en het te specificeren via Docker omgevingsvariabelen. Begin met het aanmaken van een map voor de certificaatbestanden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir ~/n8n-certs&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je kunt deze bestanden (meestal cert.crt en privkey.key) naar deze directory uploaden met elke methode. Zie voor meer gedetailleerde informatie:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/495-bestandsuitwisseling-vanuit-windows&quot;&gt;Bestandsuitwisseling vanuit Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/494-bestandsuitwisseling-vanuit-linux&quot;&gt;Bestandsuitwisseling vanuit Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/496-bestandsuitwisseling-vanuit-macos&quot;&gt;Bestandsuitwisseling vanuit macOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Laten we nu de container starten met één volledig commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-v ~/n8n-certs:/certs \
-e N8N_PROTOCOL=https \
-e N8N_SSL_CERT=&quot;/certs/cert.crt&quot; \
-e N8N_SSL_KEY=&quot;/certs/privkey.key&quot; \
docker.n8n.io/n8nio/n8n&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hier is een uitsplitsing van elk argument:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;sudo docker run -d&lt;/b&gt; lanceert de Docker-container in daemon (achtergrond) modus&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--name n8n&lt;/b&gt; kent de naam toe aan de container &lt;b translate=&quot;no&quot;&gt;n8n&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p 5678:5678&lt;/b&gt; stuurt poort &lt;b translate=&quot;no&quot;&gt;5678&lt;/b&gt; door naar de container&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v n8n_data:/home/node/.n8n&lt;/b&gt; creëert en koppelt een volume met de naam &lt;b translate=&quot;no&quot;&gt;n8n_data&lt;/b&gt; aan de verborgen directory &lt;b translate=&quot;no&quot;&gt;/home/node/.n8n&lt;/b&gt; in de container&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v ~/n8n-certs:/certs&lt;/b&gt; koppelt de certificaatmap&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-e N8N_PROTOCOL=https&lt;/b&gt; dwingt N8N om het HTTPS-protocol te gebruiken&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-e N8N_SSL_CERT=&quot;/certs/cert.crt&quot;&lt;/b&gt; stelt het pad naar het certificaatbestand in&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-e N8N_SSL_KEY=&quot;/certs/privkey.key&quot;&lt;/b&gt; stelt het pad naar de certificaatsleutel in&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;docker.n8n.io/n8nio/n8n&lt;/b&gt; bron van containerafbeelding&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Traefik&lt;/h3&gt;
&lt;p&gt;Een iets complexere maar flexibele opstelling maakt gebruik van de Traefik reverse proxy server om de verbinding met N8N te beveiligen. Het configuratiebestand is gebaseerd op de officiële methode in de documentatie. Installeer eerst het hulpprogramma &lt;b translate=&quot;no&quot;&gt;docker-compose&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install docker-compose&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We implementeren Traefik en N8N samen en ze moeten zich op hetzelfde netwerk bevinden. Maak een netwerk aan met de naam &lt;b translate=&quot;no&quot;&gt;web&lt;/b&gt;.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker network create web&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak nu een &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; bestand om beide containers te definiëren en uit te voeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano docker-compose.yml&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;services:
  traefik:
    image: &quot;traefik&quot;
    container_name: &quot;proxy&quot;
    restart: always
    command:
      - &quot;--api.insecure=true&quot;
      - &quot;--providers.docker=true&quot;
      - &quot;--providers.docker.exposedbydefault=false&quot;
      - &quot;--entrypoints.web.address=:80&quot;
      - &quot;--entrypoints.web.http.redirections.entryPoint.to=websecure&quot;
      - &quot;--entrypoints.web.http.redirections.entrypoint.scheme=https&quot;
      - &quot;--entrypoints.websecure.address=:443&quot;
      - &quot;--certificatesresolvers.mytlschallenge.acme.tlschallenge=true&quot;
      - &quot;--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}&quot;
      - &quot;--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json&quot;
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
    volumes:
      - traefik_data:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - web

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: &quot;n8n&quot;
    restart: always
    ports:
      - &quot;127.0.0.1:5678:5678&quot;
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
      - traefik.http.routers.n8n.tls=true
      - traefik.http.routers.n8n.entrypoints=web,websecure
      - traefik.http.routers.n8n.tls.certresolver=mytlschallenge
      - traefik.http.middlewares.n8n.headers.SSLRedirect=true
      - traefik.http.middlewares.n8n.headers.STSSeconds=315360000
      - traefik.http.middlewares.n8n.headers.browserXSSFilter=true
      - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
      - traefik.http.middlewares.n8n.headers.forceSTSHeader=true
      - traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
      - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
      - traefik.http.middlewares.n8n.headers.STSPreload=true
      - traefik.http.routers.n8n.middlewares=n8n@docker
    environment:
      - N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - NODE_ENV=production
      - WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
      - GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
    volumes:
      - n8n_data:/home/node/.n8n
      - ./local-files:/files
    networks:
      - web

volumes:
  n8n_data:
  traefik_data:

networks:
  web:
    name: web&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Naast het bestand &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; maken we nog een bestand aan met de naam &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt;. Dit bestand zal variabelen bevatten zoals de domeinnaam en het e-mailadres dat wordt gebruikt om een SSL-certificaat aan te vragen bij Let&#39;s Encrypt. Als we ooit iets moeten veranderen, zoals de domeinnaam, dan hoeven we dat alleen maar in dit bestand aan te passen en daarna de container opnieuw te maken.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano .env&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;DOMAIN_NAME=example.com
SUBDOMAIN=n8n
GENERIC_TIMEZONE=Europe/Amsterdam
SSL_EMAIL=user@example.com&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Implementeer tenslotte beide containers:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker-compose up -d&lt;/code&gt;&lt;/pre&gt;
Nu is N8N hier beschikbaar: &lt;b translate=&quot;no&quot;&gt;https://n8n.example.com&lt;/b&gt;.&lt;h3&gt;Nginx Proxy Manager&lt;/h3&gt;
&lt;p&gt;In tegenstelling tot Traefik, die geconfigureerd wordt via bestanden, biedt Nginx Proxy Manager een gebruiksvriendelijke webinterface. Het detecteert services echter niet dynamisch, je moet ze handmatig toevoegen. Toch werkt het goed voor statische services zoals N8N.&lt;/p&gt;
&lt;p&gt;Maak nog een &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; bestand in een aparte directory met de volgende inhoud:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;services:
  app:
    image: &#39;jc21/nginx-proxy-manager:latest&#39;
    container_name: proxy
    restart: unless-stopped
    ports:
      - &#39;80:80&#39;
      - &#39;443:443&#39;
      - &#39;81:81&#39;
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - web

  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - WEBHOOK_URL=https://n8n.example.com/
      - N8N_PROTOCOL=http
    volumes:
      - n8n_data:/home/node/.n8n
    networks:
      - web

volumes:
  n8n_data:

networks:
  web:
    external: true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Deploy with:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker-compose up -d&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open dan web-interface bij: &lt;b translate=&quot;no&quot;&gt;http://your_hostname_or_ip:81&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Gebruikersnaam: &lt;b translate=&quot;no&quot;&gt;admin@example.com&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;Wachtwoord: &lt;b translate=&quot;no&quot;&gt;changeme&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je wordt gevraagd om je referenties bij te werken. Open daarna &lt;b translate=&quot;no&quot;&gt;Hosts → Proxy Hosts → Add Proxy Host&lt;/b&gt;, voer je domeinnaam in (bijv. &lt;b translate=&quot;no&quot;&gt;n8n.example.com&lt;/b&gt;):&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/153/original/sh_how_to_install_n8n_2.png?1750667229&quot; alt=&quot;Add domain N8N&quot;&gt;
&lt;p&gt;Vul de benodigde velden in:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Stel &lt;b translate=&quot;no&quot;&gt;Destination/IP&lt;/b&gt; in op &lt;b translate=&quot;no&quot;&gt;n8n&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Stel &lt;b translate=&quot;no&quot;&gt;Port&lt;/b&gt; in op &lt;b translate=&quot;no&quot;&gt;5678&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Kies &lt;b translate=&quot;no&quot;&gt;Request a new SSL certificate with Let’s Encrypt&lt;/b&gt; onder het tabblad &lt;b translate=&quot;no&quot;&gt;SSL&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Voer je e-mailadres in en ga akkoord met de voorwaarden.&lt;/li&gt;
    &lt;li&gt;Klik op &lt;b&gt;Websockets support&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Klik optioneel op &lt;b translate=&quot;no&quot;&gt;Force SSL&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nadat u op &lt;b translate=&quot;no&quot;&gt;Save&lt;/b&gt; hebt gedrukt, wordt het certificaat aangevraagd en geïnstalleerd:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/154/original/sh_how_to_install_n8n_3.png?1750667362&quot; alt=&quot;Nginx Proxy Manager ready&quot;&gt;
&lt;p&gt;Zodra dit is gebeurd, leidt het openen van je domein naar de N8N-interface.&lt;/p&gt;
&lt;h3&gt;SSH-tunnel&lt;/h3&gt;
&lt;p&gt;Als je N8N niet extern toegankelijk hoeft te maken, kun je poort 5678 forwarden via SSH. Dit versleutelt al het verkeer, en N8N zal beschikbaar zijn op &lt;b translate=&quot;no&quot;&gt;http://localhost:5678/&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Opmerking: Deze opstelling werkt niet voor integraties met externe diensten zoals messengers die openbare HTTPS-toegang vereisen.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;De eenvoudigste manier om de poort door te sturen is met de populaire SSH-client &lt;a href=&quot;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&quot; target=&quot;_blank&quot;&gt;PuTTY&lt;/a&gt;. Eenmaal geïnstalleerd, open &lt;b translate=&quot;no&quot;&gt;SSH → Tunnels&lt;/b&gt; en stel &lt;b translate=&quot;no&quot;&gt;Source port - 5678&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Destination&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;localhost:5678&lt;/b&gt; in. Klik vervolgens op &lt;b translate=&quot;no&quot;&gt;Add&lt;/b&gt;.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/155/original/sh_how_to_install_n8n_4.png?1750667446&quot; alt=&quot;PuTTY port forwarding&quot;&gt;
&lt;p&gt;Ga terug naar &lt;b translate=&quot;no&quot;&gt;Session&lt;/b&gt;, voer het IP-adres van je server in en klik op &lt;b translate=&quot;no&quot;&gt;Open&lt;/b&gt;. Na authenticatie is de tunnel actief. Open &lt;b translate=&quot;no&quot;&gt;http://localhost:5678&lt;/b&gt; in een browser om toegang te krijgen tot N8N.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Opmerking: De verbinding werkt alleen zolang de SSH-sessie actief is. Het afsluiten van PuTTY zal de tunnel beëindigen.&lt;/i&gt;&lt;/p&gt;
&lt;h3&gt;omzeilen&lt;/h3&gt;
&lt;p&gt;Deze methode wordt niet aangeraden voor gebruik op openbare netwerken. Als je de container start met de &lt;b translate=&quot;no&quot;&gt;N8N_SECURE_COOKIE=false&lt;/b&gt; omgevingsvariabele, zal de waarschuwing verdwijnen en krijg je toegang via HTTP:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -d --name n8n -p 5678:5678 -e N8N_SECURE_COOKIE=false -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Warning:&lt;/b&gt; Dit stelt het beheerpaneel van N8N bloot via onversleutelde HTTP, waardoor het kwetsbaar is voor MITM-aanvallen (Man-In-The-Middle) en een aanvaller mogelijk je server volledig kan overnemen.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot;&gt;Open WebUI: Alles in één&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/602-hoe-de-langflow-toepassing-monitoren&quot;&gt;Hoe de LangFlow-toepassing monitoren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/151/original/il_how_to_install_n8n.png?1750667003"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 23 Jun 2025 14:30:26 +0200</pubDate>
      <guid isPermaLink="false">622</guid>
      <dc:date>2025-06-23 14:30:26 +0200</dc:date>
    </item>
    <item>
      <title>Triton™ Inference Server</title>
      <link>https://www.leadergpu.nl/catalog/614-triton-inference-server</link>
      <description>&lt;p&gt;Zakelijke eisen kunnen verschillen, maar ze hebben allemaal één kernprincipe gemeen: systemen moeten snel werken en de hoogst mogelijke kwaliteit leveren. Als het gaat om neurale netwerkinferentie, is efficiënt gebruik van computermiddelen van cruciaal belang. Onderbenutting of inactiviteit van GPU&#39;s leidt direct tot financiële verliezen.&lt;/p&gt;
&lt;p&gt;Neem een marktplaats als voorbeeld. Deze platformen hosten talloze producten, elk met meerdere attributen: tekstbeschrijvingen, technische specificaties, categorieën en multimedia-inhoud zoals foto&#39;s en video&#39;s. Alle inhoud moet gemodereerd worden om eerlijk te blijven. Alle inhoud moet worden gemodereerd om eerlijke voorwaarden te handhaven voor verkopers en om te voorkomen dat verboden goederen of illegale inhoud op het platform verschijnen.&lt;/p&gt;
&lt;p&gt;Handmatige moderatie is mogelijk, maar het is traag en inefficiënt. In de huidige competitieve omgeving moeten verkopers hun productaanbod snel uitbreiden: hoe sneller items op de marktplaats verschijnen, hoe groter de kans dat ze ontdekt en gekocht worden. Handmatige moderatie is ook duur en gevoelig voor menselijke fouten, waardoor mogelijk ongepaste inhoud wordt doorgelaten.&lt;/p&gt;
&lt;p&gt;Automatische moderatie met behulp van speciaal getrainde neurale netwerken biedt een oplossing. Deze aanpak heeft meerdere voordelen: het vermindert de kosten voor moderatie aanzienlijk en verbetert tegelijkertijd de kwaliteit. Neurale netwerken verwerken inhoud veel sneller dan mensen, waardoor verkopers de moderatiefase sneller kunnen doorlopen, vooral bij grote productvolumes.&lt;/p&gt;
&lt;p&gt;De aanpak heeft ook zijn uitdagingen. Het implementeren van geautomatiseerde moderatie vereist het ontwikkelen en trainen van neurale netwerkmodellen, wat zowel geschoold personeel als aanzienlijke computerbronnen vereist. De voordelen worden echter snel duidelijk na de eerste implementatie. Het toevoegen van geautomatiseerde modelimplementatie kan de lopende werkzaamheden aanzienlijk stroomlijnen.&lt;/p&gt;
&lt;h2&gt;Inferentie&lt;/h2&gt;
&lt;p&gt;Stel dat we de procedures voor machinaal leren hebben bedacht. De volgende stap is bepalen hoe modelinferentie op een gehuurde server moet worden uitgevoerd. Voor een enkel model kies je meestal een tool die goed werkt met het specifieke framework waarop het gebouwd is. Als je echter te maken hebt met meerdere modellen die in verschillende frameworks zijn gemaakt, heb je twee opties.&lt;/p&gt;
&lt;p&gt;Je kunt alle modellen converteren naar één formaat of een tool kiezen die meerdere frameworks ondersteunt. Triton™ Inference Server past perfect bij de tweede benadering. Het ondersteunt de volgende backends:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;TensorRT™&lt;/li&gt;
    &lt;li&gt;TensorRT-LLM&lt;/li&gt;
    &lt;li&gt;vLLM&lt;/li&gt;
    &lt;li&gt;Python&lt;/li&gt;
    &lt;li&gt;PyTorch (LibTorch)&lt;/li&gt;
    &lt;li&gt;ONNX-runtime&lt;/li&gt;
    &lt;li&gt;Tensorflow&lt;/li&gt;
    &lt;li&gt;FIL&lt;/li&gt;
    &lt;li&gt;DALI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bovendien kun je elke toepassing als backend gebruiken. Als je bijvoorbeeld nabewerking nodig hebt met een C/C++ toepassing, kun je die naadloos integreren.&lt;/p&gt;
&lt;h2&gt;Schalen&lt;/h2&gt;
&lt;p&gt;Triton™ Inference Server beheert computermiddelen efficiënt op een enkele server door meerdere modellen tegelijkertijd uit te voeren en de werklast over GPU&#39;s te verdelen.&lt;/p&gt;
&lt;p&gt;Installatie gebeurt via een Docker-container. DevOps-technici kunnen de GPU-toewijzing bij het opstarten regelen en ervoor kiezen om alle GPU&#39;s te gebruiken of hun aantal te beperken. Hoewel de software niet direct horizontale schaalbaarheid behandelt, kun je hiervoor traditionele loadbalancers zoals HAproxy gebruiken of applicaties in een Kubernetes-cluster implementeren.&lt;/p&gt;
&lt;h2&gt;Het systeem voorbereiden&lt;/h2&gt;
&lt;p&gt;Om Triton™ in te stellen op een LeaderGPU server met Ubuntu 22.04, moet je eerst het systeem updaten met dit commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer eerst de NVIDIA® drivers met behulp van het autoinstaller script:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de server opnieuw op om de wijzigingen toe te passen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zodra de server weer online is, installeer je Docker met het volgende installatiescript:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://get.docker.com/ | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aangezien Docker standaard geen GPU&#39;s kan doorgeven aan containers, heb je de NVIDIA® Container Toolkit nodig. Voeg de Nvidia-repository toe door de GPG-sleutel ervan te downloaden en te registreren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed &#39;s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g&#39; | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Update de packages cache en installeer de toolkit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y install nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start Docker opnieuw op om de nieuwe mogelijkheden in te schakelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het besturingssysteem is nu klaar voor gebruik.&lt;/p&gt;
&lt;h2&gt;Triton™ inferentieserver installeren&lt;/h2&gt;
&lt;p&gt;Laten we de projectrepository downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/triton-inference-server/server&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Deze repository bevat vooraf geconfigureerde neurale netwerkvoorbeelden en een downloadscript voor modellen. Navigeer naar de map examples:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd server/docs/examples&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de modellen door het volgende script uit te voeren, dat ze opslaat op &lt;b translate=&quot;no&quot;&gt;~/server/docs/examples/model_repository&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./fetch_models.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De architectuur van Triton™ Inference Server vereist dat modellen afzonderlijk worden opgeslagen. Je kunt ze lokaal opslaan in een servermap of op netwerkopslag. Bij het opstarten van de server moet je deze map koppelen aan de container op het koppelpunt /models. Dit dient als opslagplaats voor alle modelversies.&lt;/p&gt;
&lt;p&gt;Start de container met dit commando&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run --gpus=all --rm -p8000:8000 -p8001:8001 -p8002:8002 -v ~/server/docs/examples/model_repository:/models nvcr.io/nvidia/tritonserver:25.01-py3 tritonserver --model-repository=/models&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hier is wat elke parameter doet:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gpus=all&lt;/b&gt; specificeert dat alle beschikbare GPU&#39;s worden gebruikt in de server;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--rm&lt;/b&gt; vernietigt de container nadat het proces is voltooid of gestopt;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8000:8000&lt;/b&gt; stuurt poort 8000 door om HTTP-verzoeken te ontvangen;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8001:8001&lt;/b&gt; stuurt poort 8001 door om gRPC verzoeken te ontvangen;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8002:8002&lt;/b&gt; stuurt poort 8002 door om metriek op te vragen;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v ~/server/docs/examples/model_repository:/models&lt;/b&gt; stuurt de directory met modellen door;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;nvcr.io/nvidia/tritonserver:25.01-py3&lt;/b&gt; adres van de container uit de NGC™ catalogus;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;tritonserver --model-repository=/models&lt;/b&gt; start de Triton™ Inference Server met de locatie van de models repository op /models.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De uitvoer van het commando toont alle beschikbare modellen in de repository, elk klaar om verzoeken te accepteren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;+----------------------+---------+--------+
| Model                | Version | Status |
+----------------------+---------+--------+
| densenet_onnx        | 1       | READY  |
| inception_graphdef   | 1       | READY  |
| simple               | 1       | READY  |
| simple_dyna_sequence | 1       | READY  |
| simple_identity      | 1       | READY  |
| simple_int8          | 1       | READY  |
| simple_sequence      | 1       | READY  |
| simple_string        | 1       | READY  |
+----------------------+---------+--------+&lt;/pre&gt;
&lt;p&gt;De drie diensten zijn succesvol gestart op poorten 8000, 8001 en 8002:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;I0217 08:00:34.930188 1 grpc_server.cc:2466] Started GRPCInferenceService at 0.0.0.0:8001
I0217 08:00:34.930393 1 http_server.cc:4636] Started HTTPService at 0.0.0.0:8000
I0217 08:00:34.972340 1 http_server.cc:320] Started Metrics Service at 0.0.0.0:8002&lt;/pre&gt;
&lt;p&gt;Met het hulpprogramma nvtop kunnen we controleren of alle GPU&#39;s klaar zijn om de belasting te accepteren:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/132/original/sh_triton_inference_server_1.png?1740580538&quot; alt=&quot;8 x A6000 Triton Inference Server examples&quot;&gt;
&lt;h2&gt;De client installeren&lt;/h2&gt;
&lt;p&gt;Om toegang te krijgen tot onze server, moeten we een geschikt verzoek genereren met de client die bij de SDK zit. We kunnen deze SDK downloaden als een Docker-container:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker pull nvcr.io/nvidia/tritonserver:25.01-py3-sdk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de container in interactieve modus om toegang te krijgen tot de console:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -it --gpus=all --rm --net=host nvcr.io/nvidia/tritonserver:25.01-py3-sdk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we dit eens testen met het DenseNet-model in ONNX-indeling, met behulp van de INCEPTION-methode voor het voorbewerken en analyseren van afbeeldingen &lt;b translate=&quot;no&quot;&gt;mug.jpg&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;/workspace/install/bin/image_client -m densenet_onnx -c 3 -s INCEPTION /workspace/images/mug.jpg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De client neemt contact op met de server, die een batch aanmaakt en deze verwerkt met behulp van de beschikbare GPU&#39;s van de container. Hier is de uitvoer:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;Request 0, batch size 1
Image &#39;/workspace/images/mug.jpg&#39;:
   15.349562 (504) = COFFEE MUG
   13.227461 (968) = CUP
   10.424891 (505) = COFFEEPOT&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;De repository voorbereiden&lt;/h2&gt;
&lt;p&gt;Om Triton™ modellen correct te laten beheren, moet je het archief op een specifieke manier voorbereiden. Dit is de mapstructuur:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;model_repository/ 
        └── your_model/ 
                ├── config.pbtxt 
                └── 1/
                    └── model.*&lt;/pre&gt;
&lt;p&gt;Elk model heeft zijn eigen map nodig met daarin een &lt;b translate=&quot;no&quot;&gt;config.pbtxt&lt;/b&gt; configuratiebestand met zijn beschrijving. Hier is een voorbeeld:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;name: &quot;Test&quot;
platform: &quot;pytorch_libtorch&quot;
max_batch_size: 8
input [
  {
    name: &quot;INPUT_0&quot;
    data_type: TYPE_FP32
    dims: [ 3, 224, 224 ]
  }
]
output [
  {
    name: &quot;OUTPUT_0&quot;
    data_type: TYPE_FP32
    dims: [ 1000 ]
  }
]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In dit voorbeeld zal een model met de naam &lt;b translate=&quot;no&quot;&gt;Test&lt;/b&gt; draaien op de PyTorch backend. De parameter &lt;b translate=&quot;no&quot;&gt;max_batch_size&lt;/b&gt; stelt het maximum aantal items in dat gelijktijdig kan worden verwerkt, zodat de belasting van de bronnen efficiënt kan worden verdeeld. Door deze waarde op nul te zetten, wordt batching uitgeschakeld, waardoor het model aanvragen sequentieel verwerkt.&lt;/p&gt;
&lt;p&gt;Het model accepteert één invoer en produceert één uitvoer, beide gebruikmakend van het FP32 nummertype. De parameters moeten precies overeenkomen met de vereisten van het model. Voor beeldverwerking is een typische maatspecificatie &lt;b translate=&quot;no&quot;&gt;dims: [ 3, 224, 224 ]&lt;/b&gt;, waarbij:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;3&lt;/b&gt; - aantal kleurkanalen (RGB);&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;224&lt;/b&gt; - afbeeldingshoogte in pixels;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;224&lt;/b&gt; - beeldbreedte in pixels.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;De uitvoer &lt;b translate=&quot;no&quot;&gt;dims: [ 1000 ]&lt;/b&gt; is een eendimensionale vector van 1000 elementen, die geschikt is voor beeldclassificatietaken. Raadpleeg de documentatie van je model om de juiste dimensionaliteit te bepalen. Als het configuratiebestand onvolledig is, probeert Triton™ ontbrekende parameters automatisch te genereren.&lt;/p&gt;
&lt;h2&gt;Een aangepast model starten&lt;/h2&gt;
&lt;p&gt;Laten we de inferentie starten van het gedistilleerde DeepSeek-R1 model dat we eerder &lt;a href=&quot;https://www.leadergpu.nl/catalog/613-deepseek-r1-toekomst-van-llm-s&quot;&gt;bespraken&lt;/a&gt;. Eerst maken we de noodzakelijke mappenstructuur aan:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir ~/model_repository &amp;&amp; mkdir ~/model_repository/deepseek &amp;&amp; mkdir ~/model_repository/deepseek/1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Navigeer naar de modeldirectory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/model_repository/deepseek&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een configuratiebestand &lt;b translate=&quot;no&quot;&gt;config.pbtxt&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano config.pbtxt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Plak het volgende:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;# Copyright 2023, NVIDIA CORPORATION &amp; AFFILIATES. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#  * Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#  * Neither the name of NVIDIA CORPORATION nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS&#39;&#39; AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    
# Note: You do not need to change any fields in this configuration.
    
backend: &quot;vllm&quot;
    
# The usage of device is deferred to the vLLM engine
instance_group [
  {
    count: 1
    kind: KIND_MODEL
  }
]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op door te drukken op &lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt;, daarna de editor met &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;. Navigeer naar de directory &lt;b translate=&quot;no&quot;&gt;1&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd 1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een modelconfiguratiebestand &lt;b translate=&quot;no&quot;&gt;model.json&lt;/b&gt; met de volgende parameters:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;{
    &quot;model&quot;:&quot;deepseek-ai/DeepSeek-R1-Distill-Llama-8B&quot;,
    &quot;disable_log_requests&quot;: true,
    &quot;gpu_memory_utilization&quot;: 0.9,
    &quot;enforce_eager&quot;: true
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Merk op dat de &lt;b translate=&quot;no&quot;&gt;gpu_memory_utilization&lt;/b&gt; waarde varieert per GPU en experimenteel bepaald moet worden. Voor deze handleiding gebruiken we &lt;b translate=&quot;no&quot;&gt;0.9&lt;/b&gt;. De directorystructuur binnen &lt;b translate=&quot;no&quot;&gt;~/model_repository&lt;/b&gt; zou er nu als volgt uit moeten zien:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;└── deepseek
        ├── 1
        │   └── model.json
        └── config.pbtxt&lt;/pre&gt;
&lt;p&gt;Stel voor het gemak de variabele &lt;b translate=&quot;no&quot;&gt;LOCAL_MODEL_REPOSITORY&lt;/b&gt; in:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;LOCAL_MODEL_REPOSITORY=~/model_repository/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de inferentieserver met deze opdracht:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run --rm -it --net host --shm-size=2g  --ulimit memlock=-1 --ulimit stack=67108864 --gpus all -v $LOCAL_MODEL_REPOSITORY:/opt/tritonserver/model_repository  nvcr.io/nvidia/tritonserver:25.01-vllm-python-py3 tritonserver --model-repository=model_repository/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hier is wat elke parameter doet:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--rm&lt;/b&gt; verwijdert de container automatisch na het stoppen;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-it&lt;/b&gt; draait de container in interactieve modus met terminaluitvoer;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--net&lt;/b&gt; host gebruikt de netwerkstack van de host in plaats van containerisolatie;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--shm-size=2g&lt;/b&gt; stelt gedeeld geheugen in op 2 GB;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--ulimit memlock=-1&lt;/b&gt; verwijdert geheugen lock limiet;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--ulimit stack=67108864&lt;/b&gt; stelt stackgrootte in op 64 MB;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gpus all&lt;/b&gt; maakt toegang tot alle GPU&#39;s van de server mogelijk;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v $LOCAL_MODEL_REPOSITORY:/opt/tritonserver/model_repository&lt;/b&gt; koppelt de lokale modeldirectory in de container;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;nvcr.io/nvidia/tritonserver:25.01-vllm-python-py3&lt;/b&gt; specificeert de container met vLLM backend ondersteuning;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;tritonserver --model-repository=model_repository/&lt;/b&gt; start de Triton-inferentieserver met de locatie van de modellenopslagplaats op model_repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Test de server door een verzoek te sturen met &lt;b translate=&quot;no&quot;&gt;curl&lt;/b&gt;, met een eenvoudige prompt en een antwoordlimiet van 4096 token:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -X POST localhost:8000/v2/models/deepseek/generate -d &#39;{&quot;text_input&quot;: &quot;Tell me about the Netherlands?&quot;, &quot;max_tokens&quot;: 4096}&#39;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De server ontvangt en verwerkt het verzoek met succes.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/133/original/sh_triton_inference_server_2.png?1740580601&quot; alt=&quot;Triton Inference Server processed the test request&quot;&gt;
&lt;p&gt;De interne Triton™ taakplanner handelt alle binnenkomende verzoeken af als de server belast is.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Triton™ Inference Server blinkt uit in het inzetten van machine learning-modellen in productie door verzoeken efficiënt te verdelen over beschikbare GPU&#39;s. Dit maximaliseert het gebruik van gehuurde serverresources en verlaagt de kosten van de rekeninfrastructuur. Dit maximaliseert het gebruik van gehuurde serverbronnen en verlaagt de kosten van de computerinfrastructuur. De software werkt met verschillende backends, waaronder vLLM voor grote taalmodellen.&lt;/p&gt;
&lt;p&gt;Omdat het wordt geïnstalleerd als een Docker-container, kun je het eenvoudig integreren in elke moderne CI/CD-pijplijn. Probeer het zelf door &lt;a href=&quot;https://www.leadergpu.nl/#chose-best&quot;&gt;een server&lt;/a&gt; van LeaderGPU te huren.&lt;/p&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/134/original/il_triton_inference_server.png?1740583888"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 26 Feb 2025 16:40:21 +0100</pubDate>
      <guid isPermaLink="false">614</guid>
      <dc:date>2025-02-26 16:40:21 +0100</dc:date>
    </item>
    <item>
      <title>DeepSeek-R1: toekomst van LLM&#39;s</title>
      <link>https://www.leadergpu.nl/catalog/613-deepseek-r1-toekomst-van-llm-s</link>
      <description>&lt;p&gt;Hoewel generatieve neurale netwerken zich snel hebben ontwikkeld, is hun vooruitgang in de afgelopen jaren vrij stabiel gebleven. Dit veranderde met de komst van DeepSeek, een Chinees neuraal netwerk dat niet alleen de aandelenmarkt beïnvloedde maar ook de aandacht trok van ontwikkelaars en onderzoekers wereldwijd. In tegenstelling tot andere grote projecten werd de code van DeepSeek vrijgegeven onder de permissieve MIT-licentie. Deze stap naar open source oogstte lof van de gemeenschap, die gretig de mogelijkheden van het nieuwe model begon te verkennen.&lt;/p&gt;
&lt;p&gt;Het meest indrukwekkende aspect was dat het trainen van dit nieuwe neurale netwerk naar verluidt 20 keer minder kostte dan concurrenten met een vergelijkbare kwaliteit. Het model had slechts 55 dagen en 5,6 miljoen dollar nodig om te trainen. Toen DeepSeek werd uitgebracht, veroorzaakte het een van de grootste dalingen op één dag in de geschiedenis van de Amerikaanse aandelenmarkt. Hoewel de markten zich uiteindelijk stabiliseerden, was de impact aanzienlijk.&lt;/p&gt;
&lt;p&gt;In dit artikel wordt onderzocht hoe nauwkeurig de koppen in de media de werkelijkheid weerspiegelen en welke LeaderGPU-configuraties geschikt zijn om dit neurale netwerk zelf te installeren.&lt;/p&gt;
&lt;h2&gt;Architectonische kenmerken&lt;/h2&gt;
&lt;p&gt;DeepSeek heeft gekozen voor maximale optimalisatie, wat niet verwonderlijk is gezien de exportbeperkingen van China. Door deze beperkingen kan het land de meest geavanceerde GPU-modellen niet officieel gebruiken voor AI-ontwikkeling.&lt;/p&gt;
&lt;p&gt;Het model maakt gebruik van MTP-technologie (Multi Token Prediction), die meerdere tokens voorspelt in een enkele inferentiestap in plaats van slechts één. Dit werkt door middel van parallelle token decodering in combinatie met speciale gemaskeerde lagen die autoregressiviteit behouden.&lt;/p&gt;
&lt;p&gt;Testen met MTP hebben opmerkelijke resultaten laten zien, waarbij de generatiesnelheden 2-4 keer hoger zijn dan bij traditionele methoden. De uitstekende schaalbaarheid van de technologie maakt het waardevol voor huidige en toekomstige toepassingen voor de verwerking van natuurlijke taal.&lt;/p&gt;
&lt;p&gt;Het Multi-Head Latent Attention (MLA) model heeft een verbeterd aandachtsmechanisme. Terwijl het model lange redeneerketens opbouwt, behoudt het in elke fase gerichte aandacht voor de context. Deze verbetering verbetert de verwerking van abstracte concepten en tekstafhankelijkheden.&lt;/p&gt;
&lt;p&gt;De belangrijkste eigenschap van MLA is de mogelijkheid om dynamisch aandachtsgewichten aan te passen op verschillende abstractieniveaus. Bij het verwerken van complexe zoekopdrachten bekijkt MLA gegevens vanuit meerdere perspectieven: woordbetekenissen, zinsstructuren en de algehele context. Deze perspectieven vormen verschillende lagen die de uiteindelijke uitvoer beïnvloeden. Om helderheid te behouden, balanceert MLA zorgvuldig de impact van elke laag terwijl het zich blijft concentreren op de primaire taak.&lt;/p&gt;
&lt;p&gt;De ontwikkelaars van DeepSeek hebben Mixture of Experts (MoE) technologie in het model verwerkt. Het bevat 256 voorgetrainde neurale netwerken van experts, elk gespecialiseerd voor verschillende taken. Het systeem activeert 8 van deze netwerken voor elke tokeninvoer, waardoor gegevens efficiënt worden verwerkt zonder dat de computerkosten toenemen.&lt;/p&gt;
&lt;p&gt;In het volledige model met 671b parameters worden slechts 37b geactiveerd voor elk token. Het model selecteert op intelligente wijze de meest relevante parameters voor het verwerken van elk binnenkomend token. Deze efficiënte optimalisatie bespaart rekenkracht met behoud van hoge prestaties.&lt;/p&gt;
&lt;p&gt;Een cruciaal kenmerk van elke neurale netwerkchatbot is de lengte van het contextvenster. Llama 2 heeft een contextlimiet van 4.096 tokens, GPT-3.5 verwerkt 16.284 tokens, terwijl GPT-4 en DeepSeek tot 128.000 tokens kunnen verwerken (ongeveer 100.000 woorden, gelijk aan 300 pagina&#39;s getypte tekst).&lt;/p&gt;
&lt;h2&gt;R - staat voor Redeneren&lt;/h2&gt;
&lt;p&gt;DeepSeek-R1 heeft een redeneermechanisme dat vergelijkbaar is met OpenAI o1, waardoor het complexe taken efficiënter en nauwkeuriger kan afhandelen. In plaats van direct antwoorden te geven, breidt het model de context uit door stapsgewijze redeneringen in kleine alinea&#39;s te genereren. Deze aanpak verbetert het vermogen van het neurale netwerk om complexe gegevensrelaties te identificeren, wat resulteert in uitgebreidere en nauwkeurigere antwoorden.&lt;/p&gt;
&lt;p&gt;Wanneer DeepSeek wordt geconfronteerd met een complexe taak, gebruikt het zijn redeneermechanisme om het probleem op te splitsen in componenten en deze afzonderlijk te analyseren. Het model synthetiseert vervolgens deze bevindingen om een gebruikersreactie te genereren. Hoewel dit een ideale benadering lijkt voor neurale netwerken, brengt het aanzienlijke uitdagingen met zich mee.&lt;/p&gt;
&lt;p&gt;Alle moderne LLM&#39;s delen een zorgwekkende eigenschap - kunstmatige hallucinaties. Wanneer het model een vraag krijgt die het niet kan beantwoorden, kan het, in plaats van zijn beperkingen te erkennen, fictieve antwoorden genereren die worden ondersteund door verzonnen feiten.&lt;/p&gt;
&lt;p&gt;Toegepast op een redenerend neuraal netwerk kunnen deze hallucinaties het denkproces in gevaar brengen door conclusies te baseren op fictieve in plaats van feitelijke informatie. Dit kan leiden tot onjuiste conclusies - een uitdaging die onderzoekers en ontwikkelaars van neurale netwerken in de toekomst zullen moeten aangaan.&lt;/p&gt;
&lt;h2&gt;VRAM-verbruik&lt;/h2&gt;
&lt;p&gt;Laten we eens kijken hoe we DeepSeek R1 kunnen uitvoeren en testen op een speciale server, waarbij we ons concentreren op de vereisten voor GPU-videogeheugen.&lt;/p&gt;
&lt;table style=&quot;margin: auto;&quot; width=&quot;50%&quot;&gt;
    &lt;th&gt;Model&lt;/th&gt;
    &lt;th&gt;VRAM (Mb)&lt;/th&gt;
    &lt;th&gt;Modelgrootte (Gb)&lt;/th&gt;
    &lt;tr&gt;
        &lt;td&gt;deepseek-r1:1.5b&lt;/td&gt;
        &lt;td&gt;1,952&lt;/td&gt;
        &lt;td&gt;1.1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;deepseek-r1:7b&lt;/td&gt;
        &lt;td&gt;5,604&lt;/td&gt;
        &lt;td&gt;4.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;diepzeek-r1:8b&lt;/td&gt;
        &lt;td&gt;6,482&lt;/td&gt;
        &lt;td&gt;4.9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;diepzeek-r1:14b&lt;/td&gt;
        &lt;td&gt;10,880&lt;/td&gt;
        &lt;td&gt;9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;diepzeek-r1:32b&lt;/td&gt;
        &lt;td&gt;21,758&lt;/td&gt;
        &lt;td&gt;20&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;diepzeek-r1:70b&lt;/td&gt;
        &lt;td&gt;39,284&lt;/td&gt;
        &lt;td&gt;43&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;diepzeek-r1:671b&lt;/td&gt;
        &lt;td&gt;470,091&lt;/td&gt;
        &lt;td&gt;404&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;De eerste drie opties (1.5b, 7b, 8b) zijn basismodellen die de meeste taken efficiënt aankunnen. Deze modellen draaien probleemloos op elke consumenten-GPU met 6-8 GB videogeheugen. De mid-tier versies (14b en 32b) zijn ideaal voor professionele taken, maar vereisen meer VRAM. De grootste modellen (70b en 671b) vereisen gespecialiseerde GPU&#39;s en worden voornamelijk gebruikt voor onderzoek en industriële toepassingen.&lt;/p&gt;
&lt;h2&gt;Server kiezen&lt;/h2&gt;
&lt;p&gt;Om u te helpen bij het kiezen van een server voor DeepSeek-inferentie, vindt u hier de ideale LeaderGPU-configuraties voor elke modelgroep:&lt;/p&gt;
&lt;h3&gt;1,5b / 7b / 8b / 14b / 32b / 70b&lt;/h3&gt;
&lt;p&gt;Voor deze groep is elke server met de volgende GPU-typen geschikt. De meeste LeaderGPU-servers zullen deze neurale netwerken zonder problemen uitvoeren. De prestaties zijn voornamelijk afhankelijk van het aantal CUDA® cores. Wij raden servers met meerdere GPU&#39;s aan, zoals:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/?fltr_type%5B%5D=a40#filter_block&quot;&gt;A40&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/?fltr_type%5B%5D=l20#filter_block&quot;&gt;L20&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;671b&lt;/h3&gt;
&lt;p&gt;Nu het meest uitdagende geval: hoe voer je inferentie uit op een model met een basisgrootte van 404 GB? Dit betekent dat er ongeveer 470 GB videogeheugen nodig is. LeaderGPU biedt meerdere configuraties met de volgende GPU&#39;s die deze belasting aankunnen:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/?fltr_type%5B%5D=a100#filter_block&quot;&gt;A100&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/?fltr_type%5B%5D=h100#filter_block&quot;&gt;H100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Beide configuraties verwerken de modelbelasting efficiënt en verdelen deze gelijkmatig over meerdere GPU&#39;s. Zo ziet een server met 8xH100 er bijvoorbeeld uit na het laden van het deepseek-r1:671b model:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/126/original/sh_deepseek-r1_future_of_LLMs_1.png?1739199426&quot; alt=&quot;deepseek-r1:671b on 8xH100&quot;&gt;
&lt;p&gt;De rekenbelasting wordt dynamisch verdeeld over de GPU&#39;s, terwijl snelle NVLink® interconnecties knelpunten in de gegevensuitwisseling voorkomen, waardoor maximale prestaties worden gegarandeerd.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;DeepSeek-R1 combineert veel innovatieve technologieën zoals Multi Token Prediction, Multi-Head Latent Attention en Mixture of Experts in één significant model. Deze open-source software laat zien dat LLM&#39;s efficiënter kunnen worden ontwikkeld met minder rekenkracht. Het model heeft verschillende versies van kleinere 1,5b tot enorme 671b die gespecialiseerde hardware vereisen met meerdere high-end GPU&#39;s die parallel werken.&lt;/p&gt;
&lt;p&gt;Door een server van LeaderGPU te huren voor DeepSeek-R1-inferentie, krijgt u een breed scala aan configuraties, betrouwbaarheid en fouttolerantie. Ons technische ondersteuningsteam zal u helpen met eventuele problemen of vragen, terwijl de automatische installatie van het besturingssysteem de implementatietijd verkort.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.leadergpu.nl/#chose-best&quot;&gt;Kies uw LeaderGPU server&lt;/a&gt; en ontdek de mogelijkheden die opengaan bij het gebruik van moderne neurale netwerkmodellen. Als u vragen heeft, aarzel dan niet om ze te stellen in onze chat of &lt;a href=&quot;mailto:info@leadergpu.com&quot;&gt;e-mail&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/125/original/il_deepseek-r1_future_of_LLMs.png?1739198303"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 19 Feb 2025 15:10:33 +0100</pubDate>
      <guid isPermaLink="false">613</guid>
      <dc:date>2025-02-19 15:10:33 +0100</dc:date>
    </item>
    <item>
      <title>Intel Habana Gaudi 2: installeren en testen</title>
      <link>https://www.leadergpu.nl/catalog/611-intel-habana-gaudi-2-installeren-en-testen</link>
      <description>&lt;p&gt;Voordat je begint met het installeren van de Gaudi 2 accelerators software, is er één belangrijke functie die het vermelden waard is. We zijn gewend aan het feit dat training en inferentie van neurale netwerken kan worden uitgevoerd met behulp van GPU&#39;s. Intel Habana Gaudi 2 is echter heel anders dan GPU&#39;s en vertegenwoordigt een andere klasse apparaten die uitsluitend zijn ontworpen voor het versnellen van AI-taken.&lt;/p&gt;
&lt;p&gt;Veel bekende toepassingen en frameworks zullen niet werken zonder eerst het besturingssysteem voor te bereiden en, in sommige gevallen, zonder een speciale &lt;a href=&quot;https://docs.habana.ai/en/latest/PyTorch/PyTorch_Model_Porting/GPU_Migration_Toolkit/GPU_Migration_Toolkit.html&quot;&gt;GPU Migration Toolkit&lt;/a&gt;. Dit verklaart het grote aantal voorbereidende stappen die we in dit artikel beschrijven. Laten we in volgorde beginnen.&lt;/p&gt;
&lt;h2&gt;Stap 1. SynapseAI Software Stack installeren&lt;/h2&gt;
&lt;p&gt;Om aan de slag te gaan met Intel Habana Gaudi 2 versnellers, moet u de SynapseAI stack installeren. Deze bevat een speciale grafiekcompiler die de topologie van het neurale netwerkmodel transformeert om de uitvoering op de Gaudi-architectuur effectief te optimaliseren, API-bibliotheken voor horizontale schaling en een aparte SDK voor het maken van krachtige algoritmen en modellen voor machinaal leren.&lt;/p&gt;
&lt;p&gt;Apart vermelden we dat SynapseAI het onderdeel is waarmee je een brug kunt slaan tussen populaire frameworks zoals PyTorch/TensorFlow en de Gaudi 2 AI-versnellers. Hierdoor kun je werken met bekende abstracties, en Gaudi 2 optimaliseert zelfstandig berekeningen Specifieke operatoren waarvoor versnellers geen hardware-ondersteuning hebben, worden uitgevoerd op de CPU.&lt;/p&gt;
&lt;p&gt;Om de installatie van individuele SynapseAI componenten te vereenvoudigen, is er een handig shellscript gemaakt. Laten we het downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget -nv https://vault.habana.ai/artifactory/gaudi-installer/latest/habanalabs-installer.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak het bestand uitvoerbaar:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;chmod +x habanalabs-installer.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./habanalabs-installer.sh install --type base&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Volg de aanwijzingen van het systeem tijdens de installatie. Je vindt een gedetailleerd rapport in het logbestand. Hierin kun je zien welke pakketten zijn geïnstalleerd en of de versnellers met succes zijn gevonden en geïnitialiseerd.&lt;/p&gt;
&lt;p&gt;Logs hier: /var/log/habana_logs/install-YYYY-MM-DD-HH-MM-SS.log&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;[  +3.881647] habanalabs hl5: Found GAUDI2 device with 96GB DRAM
[  +0.008145] habanalabs hl0: Found GAUDI2 device with 96GB DRAM
[  +0.032034] habanalabs hl3: Found GAUDI2 device with 96GB DRAM
[  +0.002376] habanalabs hl4: Found GAUDI2 device with 96GB DRAM
[  +0.005174] habanalabs hl1: Found GAUDI2 device with 96GB DRAM
[  +0.000390] habanalabs hl2: Found GAUDI2 device with 96GB DRAM
[  +0.007065] habanalabs hl7: Found GAUDI2 device with 96GB DRAM
[  +0.006256] habanalabs hl6: Found GAUDI2 device with 96GB DRAM&lt;/pre&gt;
&lt;p&gt;Net zoals het nvidia-smi hulpprogramma informatie geeft over geïnstalleerde GPU&#39;s en draaiende rekenprocessen, heeft SynapseAI een vergelijkbaar programma. Je kunt het draaien om een rapport te krijgen over de huidige staat van de Gaudi 2 AI versnellers:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;hl-smi&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/981/original/sh_intel_habana_gaudi_2_install_and_test_1.png?1714555709&quot; alt=&quot;hl-smi screenshot&quot;&gt;
&lt;h2&gt;Stap 2. TensorFlow test&lt;/h2&gt;
&lt;p&gt;TensorFlow is een van de populairste platforms voor machinaal leren. Met hetzelfde installatiescript kunt u een vooraf gebouwde versie van TensorFlow installeren met ondersteuning voor Gaudi 2-acceleratoren. Laten we beginnen met het installeren van de algemene afhankelijkheden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./habanalabs-installer.sh install -t dependencies&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vervolgens installeren we de afhankelijkheden voor TensorFlow:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./habanalabs-installer.sh install -t dependencies-tensorflow&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer het TensorFlow platform in een virtuele omgeving die geïmplementeerd is met behulp van het Python Virtual Environment (venv) mechanisme:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./habanalabs-installer.sh install --type tensorflow --venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we de gecreëerde virtuele omgeving activeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;source habanalabs-venv/bin/activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een eenvoudig Python-codevoorbeeld dat gebruikmaakt van de mogelijkheden van de Gaudi 2-versnellers:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;nano example.py&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;
import torch
import torch.nn as nn
import torch.optim as optim
import torch.nn.functional as F
import torchvision
import torchvision.transforms as transforms
import os
# Import Habana Torch Library
import habana_frameworks.torch.core as htcore
class SimpleModel(nn.Module):
   def __init__(self):
       super(SimpleModel, self).__init__()
       self.fc1   = nn.Linear(784, 256)
       self.fc2   = nn.Linear(256, 64)
       self.fc3   = nn.Linear(64, 10)
   def forward(self, x):
       out = x.view(-1,28*28)
       out = F.relu(self.fc1(out))
       out = F.relu(self.fc2(out))
       out = self.fc3(out)
       return out
def train(net,criterion,optimizer,trainloader,device):
   net.train()
   train_loss = 0.0
   correct = 0
   total = 0
   for batch_idx, (data, targets) in enumerate(trainloader):
       data, targets = data.to(device), targets.to(device)
       optimizer.zero_grad()
       outputs = net(data)
       loss = criterion(outputs, targets)
       loss.backward()
       # API call to trigger execution
       htcore.mark_step()
       optimizer.step()
       # API call to trigger execution
       htcore.mark_step()
       train_loss += loss.item()
       _, predicted = outputs.max(1)
       total += targets.size(0)
       correct += predicted.eq(targets).sum().item()
   train_loss = train_loss/(batch_idx+1)
   train_acc = 100.0*(correct/total)
   print(&quot;Training loss is {} and training accuracy is {}&quot;.format(train_loss,train_acc))
def test(net,criterion,testloader,device):
   net.eval()
   test_loss = 0
   correct = 0
   total = 0
   with torch.no_grad():
       for batch_idx, (data, targets) in enumerate(testloader):
           data, targets = data.to(device), targets.to(device)
           outputs = net(data)
           loss = criterion(outputs, targets)
           # API call to trigger execution
           htcore.mark_step()
           test_loss += loss.item()
           _, predicted = outputs.max(1)
           total += targets.size(0)
           correct += predicted.eq(targets).sum().item()
   test_loss = test_loss/(batch_idx+1)
   test_acc = 100.0*(correct/total)
   print(&quot;Testing loss is {} and testing accuracy is {}&quot;.format(test_loss,test_acc))
def main():
   epochs = 20
   batch_size = 128
   lr = 0.01
   milestones = [10,15]
   load_path = &#39;./data&#39;
   save_path = &#39;./checkpoints&#39;
   if(not os.path.exists(save_path)):
       os.makedirs(save_path)
   # Target the Gaudi HPU device
   device = torch.device(&quot;hpu&quot;)
   # Data
   transform = transforms.Compose([
       transforms.ToTensor(),
   ])
   trainset = torchvision.datasets.MNIST(root=load_path, train=True,
                                           download=True, transform=transform)
   trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size,
                                           shuffle=True, num_workers=2)
   testset = torchvision.datasets.MNIST(root=load_path, train=False,
                                       download=True, transform=transform)
   testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size,
                                           shuffle=False, num_workers=2)
   net = SimpleModel()
   net.to(device)
   criterion = nn.CrossEntropyLoss()
   optimizer = optim.SGD(net.parameters(), lr=lr,
                       momentum=0.9, weight_decay=5e-4)
   scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer, milestones=milestones, gamma=0.1)
   for epoch in range(1, epochs+1):
       print(&quot;=====================================================================&quot;)
       print(&quot;Epoch : {}&quot;.format(epoch))
       train(net,criterion,optimizer,trainloader,device)
       test(net,criterion,testloader,device)
       torch.save(net.state_dict(), os.path.join(save_path,&#39;epoch_{}.pth&#39;.format(epoch)))
       scheduler.step()
if __name__ == &#39;__main__&#39;:
   main()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer tot slot de toepassing uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;python3 example.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het volgende commando uit om de virtuele omgeving af te sluiten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;deactivate&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 3. Trainingsarchief klonen&lt;/h2&gt;
&lt;p&gt;Kloon het archief met de MLperf code:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/mlcommons/training_results_v3.0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een aparte map die gebruikt zal worden door de Docker container met MLperf:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir -p mlperf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wijzig de directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd mlperf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we enkele omgevingsvariabelen exporteren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export MLPERF_DIR=/home/usergpu/mlperf&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export SCRATCH_DIR=/home/usergpu/mlperf/scratch&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export DATASETS_DIR=/home/usergpu/mlperf/datasets&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak nieuwe mappen aan met de aangemaakte variabelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir -p $MLPERF_DIR/Habana&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir -p $SCRATCH_DIR&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir -p $DATASETS_DIR&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer de benchmark app naar $MLPERF_DIR/Habana:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cp -R training_results_v3.0/Intel-HabanaLabs/benchmarks/ $MLPERF_DIR/Habana&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Exporteer een andere variabele die een link opslaat om de gewenste versie van de Docker-container te downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export MLPERF_DOCKER_IMAGE=vault.habana.ai/gaudi-docker-mlperf/ver3.1/pytorch-installer-2.0.1:1.13.99-41&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 4. Docker installeren&lt;/h2&gt;
&lt;p&gt;Onze instantie draait Ubuntu Linux 22.04 LTS en ondersteunt Docker niet standaard. Dus voordat je containers kunt downloaden en uitvoeren, moet je Docker-ondersteuning installeren. Laten we de pakketcache verversen en een aantal basispakketten installeren die je later nodig hebt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y install apt-transport-https ca-certificates curl software-properties-common&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om Docker te installeren, moet je een digitaal ondertekende projectrepository toevoegen. Download de digitale handtekeningsleutel en voeg deze toe aan de sleutelopslag van het besturingssysteem:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Docker kan draaien op platformen met verschillende architecturen. Het volgende commando detecteert de architectuur van je server en voegt de overeenkomstige repository regel toe aan de APT package manager lijst:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;echo &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Werk de pakketcache en het beleid bij en installeer docker-ce (Docker Community Edition):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; apt-cache policy docker-ce &amp;&amp; sudo apt install docker-ce&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer tot slot of de Docker daemon draait:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status docker&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 5. Docker-container uitvoeren&lt;/h2&gt;
&lt;p&gt;Laten we de container starten in bevoorrechte modus met behulp van de eerder opgegeven variabelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run --privileged --security-opt seccomp=unconfined \
  --name mlperf3.0 -td                    \
  -v /dev:/dev                            \
  --device=/dev:/dev                      \
  -e LOG_LEVEL_ALL=6                      \
  -v /sys/kernel/debug:/sys/kernel/debug  \
  -v /tmp:/tmp                            \
  -v $MLPERF_DIR:/root/MLPERF             \
  -v $SCRATCH_DIR:/root/scratch           \
  -v $DATASETS_DIR:/root/datasets/        \
  --cap-add=sys_nice --cap-add=SYS_PTRACE \
  --user root --workdir=/root --net=host  \
  --ulimit memlock=-1:-1 $MLPERF_DOCKER_IMAGE&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voor het gemak kun je via SSH toegang krijgen tot de terminal in de container:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker exec mlperf3.0 bash -c &quot;service ssh start&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het volgende commando uit om een commandoshell (bash) te openen in de huidige sessie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker exec -it mlperf3.0 bash&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 6. Een dataset voorbereiden&lt;/h2&gt;
&lt;p&gt;Om Bert implementatietests uit te voeren vanuit MLperf, hebt u een voorbereide dataset nodig. De optimale methode is om een dataset te genereren van vooraf geladen gegevens. De MLperf-repository bevat een speciaal script, prepare_data.sh, dat een specifieke set pakketten nodig heeft om te functioneren. Laten we naar de volgende directory navigeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /root/MLPERF/Habana/benchmarks/bert/implementations/PyTorch&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer alle vereiste pakketten met behulp van de vooraf gegenereerde lijst en de pip package manager:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stel de PYTORCH_BERT_DATA variabele in om het script te instrueren waar de gegevens opgeslagen moeten worden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export PYTORCH_BERT_DATA=/root/datasets/pytorch_bert&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;bash input_preprocessing/prepare_data.sh -o $PYTORCH_BERT_DATA&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De generatieprocedure duurt vrij lang en kan enkele uren in beslag nemen. Wees geduldig en onderbreek het proces niet. Als je van plan bent om de verbinding met de SSH-sessie te verbreken, is het aan te raden om het &lt;a href=&quot;https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/&quot;&gt;schermhulpprogramma&lt;/a&gt; te gebruiken vlak voordat je de Docker-container start.&lt;/p&gt;
&lt;h2&gt;Stap 7. De dataset verpakken&lt;/h2&gt;
&lt;p&gt;De volgende stap is het &quot;knippen&quot; van de dataset in gelijke stukken voor de daaropvolgende lancering van MLperf. Laten we een aparte map maken voor ingepakte gegevens:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir $PYTORCH_BERT_DATA/packed&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het verpakkingsscript uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 pack_pretraining_data_pytorch.py \
  --input_dir=$PYTORCH_BERT_DATA/hdf5/training-4320/hdf5_4320_shards_uncompressed \
  --output_dir=$PYTORCH_BERT_DATA/packed \
  --max_predictions_per_seq=76&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 8. Voer een test uit&lt;/h2&gt;
&lt;p&gt;Nu de dataset is voorbereid, is het tijd om de test uit te voeren. Het is echter onmogelijk om dit te doen zonder voorafgaande voorbereiding. De auteurs van de Bert-test hebben een aantal hardgecodeerde waarden in het script laten staan, die de uitvoering van de test zullen verstoren. Hernoem eerst de volgende directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mv $PYTORCH_BERT_DATA/packed $PYTORCH_BERT_DATA/packed_data_500_pt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wijzig de directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /root/MLPERF/Habana/benchmarks/bert/implementations/HLS-Gaudi2-PT&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Omdat de GNU Nano editor niet in de container is geïnstalleerd, moet deze apart worden geïnstalleerd. Als alternatief kunt u de ingebouwde Vi editor gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;apt update &amp;&amp; apt -y install nano&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bewerk nu het testscript:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano launch_bert_pytorch.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zoek de eerste regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;DATA_ROOT=/mnt/weka/data/pytorch/bert_mlperf/packed_data&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vervang door het volgende:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;DATA_ROOT=/root/datasets/pytorch_bert&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zoek de tweede regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;INPUT_DIR=$DATA_ROOT/packed&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vervang door het volgende:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;INPUT_DIR=$DATA_ROOT/packed_data_500_pt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en sluit af.&lt;/p&gt;
&lt;p&gt;De testcode bevat een begrenzingsfunctie die ervoor zorgt dat de gradiënt bepaalde waarden niet overschrijdt, waardoor potentiële exponentiële groei wordt voorkomen. Om ons onbekende redenen is deze functie afwezig in de PyTorch-versie die wordt gebruikt in de container, waardoor de test abnormaal eindigt tijdens de opwarmfase.&lt;/p&gt;
&lt;p&gt;Een mogelijke oplossing is om deze functie tijdelijk te verwijderen uit de code in het fastddp.py bestand. Open hiervoor het bestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano ../PyTorch/fastddp.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zoek en becommentarieer de volgende drie regels code met behulp van het # (shebang symbool) zodat ze er als volgt uitzien:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;#from habana_frameworks.torch import _hpex_C
#    clip_global_grad_norm = _hpex_C.fused_lamb_norm(grads, 1.0)
#    _fusion_buffer.div_((clip_global_grad_norm * _all_reduce_group_size).to(_fusion_buffer.dtype))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla ook het bestand op en sluit af. Verander de map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ../HLS-Gaudi2-PT&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer tot slot het script uit. Het zal ongeveer 20 minuten duren om te voltooien:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./launch_bert_pytorch.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/606-wat-is-kennisdistillatie&quot;&gt;Wat is kennisdistillatie&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/607-voordelen-en-nadelen-van-gpu-delen&quot;&gt;Voordelen en nadelen van GPU delen&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/609-nvidia-rtx-50-verwachtingen-en-realiteit&quot;&gt;NVIDIA® RTX™ 50: verwachtingen en realiteit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/980/original/il_intel_habana_gaudi_2_install_and_test.png?1714555676"
        length="0"
        type="image/jpeg"/>
      <pubDate>Thu, 23 Jan 2025 13:41:09 +0100</pubDate>
      <guid isPermaLink="false">611</guid>
      <dc:date>2025-01-23 13:41:09 +0100</dc:date>
    </item>
    <item>
      <title>NVIDIA® RTX™ 50: verwachtingen en realiteit</title>
      <link>https://www.leadergpu.nl/catalog/609-nvidia-rtx-50-verwachtingen-en-realiteit</link>
      <description>&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;The highlight of CES 2025 was NVIDIA® CEO Jensen Huang’s speech. The revelation of new GPU specifications within minutes caught many off guard. In this article, we’ll examine how expert predictions matched the actual announcements.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Laten we eerst eens kijken naar de line-up. De RTX™ 40-serie werd gelanceerd met 6 modellen, variërend van de RTX™ 4060 tot de RTX™ 4090. Hoewel velen een soortgelijke reeks verwachtten voor de RTX™ 50-serie, gebeurde dat niet. In plaats daarvan omvat de RTX™ 50-serie slechts 4 modellen: RTX™ 5070, RTX™ 5070 Ti, RTX™ 5080 en RTX™ 5090. Mogelijk zien we in de toekomst zowel de RTX™ 5050 als RTX5060, maar er zijn nog geen officiële bronnen die deze grafische kaarten hebben geverifieerd.&lt;/p&gt;
&lt;h2&gt;Technologisch proces&lt;/h2&gt;
&lt;p&gt;De wet van Moore, de empirische observatie dat &quot;het aantal transistors in een geïntegreerd circuit ongeveer elke twee jaar verdubbelt&quot;, wordt vaak gezegd dat deze niet langer relevant is voor de prestaties van chips. Sinds 2022 heeft Jensen Huang de wet van Moore herhaaldelijk doodverklaard. In plaats daarvan stelde hij een nieuw concept voor dat de nadruk legt op de gelijktijdige ontwikkeling van architectuur, microchips, softwarebibliotheken en algoritmen.&lt;/p&gt;
&lt;p&gt;Samen zorgt deze verschuiving ervoor dat we ons kunnen richten op de algehele systeemprestaties in plaats van alleen op het aantal transistors. Het concept van computerefficiëntie heeft geleid tot voortdurende discussies in de technische gemeenschap. Hoewel de meningen over dit onderwerp uiteenlopen, wordt de industrie duidelijk geconfronteerd met zowel fysieke als economische barrières voor verdere miniaturisatie.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/098/original/sh_nvidia_rtx_50_expectation_and_reality_1.png?1736938750&quot; alt=&quot;RTX 5090 vs RTX 4090 - Core clock and boost clock&quot;&gt;
&lt;p&gt;Laten we eens kijken naar de nieuwe generatie GPU-procestechnologie. De presentatie vermeldde dit niet specifiek, maar alle kaarten van de vorige generatie waren gebouwd op het 4N-proces. &lt;b translate=&quot;no&quot;&gt;The RTX™ 50 series uses a different 4NP process technology&lt;/b&gt;. Tegelijkertijd is het belangrijk om te begrijpen dat 4N en 4NP slechts marketingnamen zijn. De transistors zelf blijven 5 nm groot.&lt;/p&gt;
&lt;p&gt;De verbeterde 4NP procestechnologie maakt vooral een hogere transistordichtheid op de chip en hogere kloksnelheden mogelijk. Hoewel experts voorspelden dat de RTX™ 50 dezelfde procestechnologie zou gebruiken als de RTX™ 40, hadden ze het technisch gezien mis, zij het niet veel, aangezien de transistorgrootte ongewijzigd blijft en TSMC de fabrikant blijft.&lt;/p&gt;
&lt;h2&gt;Aantal kernen&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/099/original/sh_nvidia_rtx_50_expectation_and_reality_2.png?1736938790&quot; alt=&quot;RTX 5090 vs RTX 4090 - CUDA cores count&quot;&gt;
&lt;p&gt;Voorafgaand aan de release van de RTX™ 50-serie onthulden talrijke datalekken de basiskenmerken van de GPU. Eerste insiderrapporten uit juli 2024 suggereerden dat het vlaggenschip 24.576 cores zou hebben, 192 Ray-tracing cores en 768 Tensor cores. Latere lekken hebben deze getallen echter aangepast naar meer realistische waarden.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/100/original/sh_nvidia_rtx_50_expectation_and_reality_3.png?1736938814&quot; alt=&quot;RTX 5090 vs RTX 4090 - AI cores count&quot;&gt;
&lt;p&gt;De uiteindelijke RTX™ 5090 werd geleverd met &lt;b translate=&quot;no&quot;&gt;21,760 CUDA® cores&lt;/b&gt; (tegenover 16.384 van de RTX™ 4090), &lt;b translate=&quot;no&quot;&gt;170 Ray-tracing cores&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;680 Tensor cores&lt;/b&gt;. Dit komt overeen met de recente strategie van het bedrijf om de prestaties te verbeteren, niet alleen door het aantal transistors te verhogen, maar door de architectuur uitgebreid te optimaliseren.&lt;/p&gt;
&lt;h2&gt;Geheugen&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/101/original/sh_nvidia_rtx_50_expectation_and_reality_4.png?1736938865&quot; alt=&quot;RTX 5090 vs RTX 4090 - Memory capacity&quot;&gt;
&lt;p&gt;Het gebruik van GDDR7-geheugen door de nieuwe GPU&#39;s kwam niet als een verrassing. Industrie-experts hadden deze stap in 2024 voorspeld nadat de drie grootste fabrikanten (Samsung, Micron en SK hynix) hun GDDR7-prototypes na elkaar hadden getoond. NVIDIA® was gul met geheugenverdeling: het basismodel &lt;b translate=&quot;no&quot;&gt;RTX™ 5070&lt;/b&gt; heeft &lt;b translate=&quot;no&quot;&gt;12 GB GDDR7&lt;/b&gt; op een &lt;b translate=&quot;no&quot;&gt;192-bit&lt;/b&gt; bus, terwijl de &lt;b translate=&quot;no&quot;&gt;RTX™ 5070 Ti and RTX™ 5080&lt;/b&gt; beide &lt;b translate=&quot;no&quot;&gt;16 GB GDDR7&lt;/b&gt; op een &lt;b translate=&quot;no&quot;&gt;256-bit&lt;/b&gt; bus hebben. Aan de bovenkant wordt het vlaggenschip &lt;b translate=&quot;no&quot;&gt;RTX™ 5090&lt;/b&gt; geleverd met een enorme &lt;b translate=&quot;no&quot;&gt;32 GB GDDR7&lt;/b&gt; op een &lt;b translate=&quot;no&quot;&gt;512-bit&lt;/b&gt; bus.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/102/original/sh_nvidia_rtx_50_expectation_and_reality_5.png?1736938884&quot; alt=&quot;RTX 5090 vs RTX 4090 - Memory throughput&quot;&gt;
&lt;p&gt;Experts voorspelden aanvankelijk dat de maximale doorvoer van deze geheugenconfiguratie 1,5 Tbps zou zijn. De werkelijkheid overtrof deze verwachtingen echter, &lt;b translate=&quot;no&quot;&gt;achieving a throughput of 1,7 Tbps&lt;/b&gt;. Deze drastische verbetering komt vooral ten goede aan de AI-verwerkingsmogelijkheden van de GPU en niet zozeer aan de gamingprestaties. De combinatie van hoge capaciteit en snel geheugen van de nieuwe generatie is vooral waardevol voor grote taalmodellen en generatieve neurale netwerken.&lt;/p&gt;
&lt;h2&gt;Technologieën&lt;/h2&gt;
&lt;h3&gt;Voor gamers&lt;/h3&gt;
&lt;p&gt;Real-time ray tracing is een van de meest revolutionaire GPU-technologieën geworden en markeert het begin van de RTX-lijn. Voor veel consumenten is deze functie een belangrijke factor geweest in hun aankoopbeslissing. In de RTX™ 50-serie kaarten kan DLSS (Deep Learning Super Sampling) versie 4 een even belangrijke rol spelen. Deze technologie verhoogt de GPU-prestaties in games aanzienlijk door de hybride frame rendering aanpak.&lt;/p&gt;
&lt;p&gt;Als DLSS is ingeschakeld, wordt in plaats van elk frame conventioneel te renderen, een aantal frames in realtime gegenereerd met behulp van AI. Vroege versies van deze technologie konden frames alleen opschalen naar hogere resoluties, maar DLSS 3 introduceerde een geavanceerdere mogelijkheid: voor elk conventioneel gerenderd frame kan het een extra door AI gemaakt frame genereren.&lt;/p&gt;
&lt;p&gt;DLSS 4 genereert drie AI-frames voor elk traditioneel gerenderd frame. &lt;b translate=&quot;no&quot;&gt;This significantly increases the frame per second (FPS) without putting heavy load on the GPU.&lt;/b&gt; De AI analyseert object- en scènebewegingen om ervoor te zorgen dat de gegenereerde frames goed overeenkomen met conventioneel gerenderde frames.&lt;/p&gt;
&lt;p&gt;Dit roept een belangrijke vraag op: hoe gaan we om met input lag? Omdat het genereren van frames tijd kost, draagt elke iteratie bij aan de reactietijd. Een vloeiend beeld met een trage reactie op acties van spelers kan de spelervaring ernstig beïnvloeden. &lt;b translate=&quot;no&quot;&gt;To address this, NVIDIA® has improved their Reflex 2 technology alongside DLSS to minimize latency.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Daarom is Frame Warp in het systeem geïntegreerd. Deze technologie vermindert de latentie van games door gerenderde frames vlak voor weergave bij te werken met de laatste muisinvoer. Het verbetert zowel de multiplayer-competitie als de reactiesnelheid van de singleplayer.&lt;/p&gt;
&lt;h3&gt;Voor makers van content&lt;/h3&gt;
&lt;p&gt;De RTX™ 50-serie is niet alleen voor gaming. Makers van videocontent zullen aanzienlijke waarde vinden in deze nieuwe GPU&#39;s. Het vlaggenschip, de RTX™ 5090, is uitgerust met 3 encoders en 2 decoders, vergeleken met de 2 encoders en 1 decoder van de RTX™ 4090. Deze componenten zijn verbeterd door samenwerking met marktleiders: Adobe, Blackmagic Design, ByteDance en Wondershare. &lt;b translate=&quot;no&quot;&gt;As a result, the RTX™ 5090 renders video 60% faster than the RTX™ 4090 and four times faster than the RTX™ 3090.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Naast ruwe snelheidsverbeteringen is ook de kwaliteit verbeterd. &lt;b translate=&quot;no&quot;&gt;The 9th generation NVENC encoder delivers 5% better quality in HEVC and AV1 tasks. The AV1 Ultra Quality mode achieves better data compression while maintaining image quality, reducing file sizes by 5%.&lt;/b&gt; Dit betekent snellere videoweergave op de RTX™ 5090 en kortere tijd tussen montage en productie.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Als we zes maanden terugkijken, zijn de voorspellingen en verwachtingen van de experts te optimistisch gebleken. Naarmate de releasedatum naderde, werd het duidelijk dat de nieuwe GPU&#39;s meer zouden bieden dan alleen extra rekeneenheden. &lt;b translate=&quot;no&quot;&gt;The key innovation would be new optimization and AI technologies enhancing existing frame rendering systems.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Op CES 2025 werd tijdens de presentatie van de GPU 50-serie een nieuw AI-tijdperk onthuld. Deze visie schetste een wereld waarin digitale assistenten en robots complexe taken uitvoeren. De kern zou bestaan uit een ecosysteem dat supercomputers voor AI-training combineert met betaalbare inferentieversnellers voor consumentenapparaten en veelzijdige software die zowel lokaal als in de cloud werkt. Hoewel de volledige omvang van deze toekomst onzeker blijft, is één ding duidelijk: we staan op de drempel om science fiction werkelijkheid te laten worden.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;LeaderGPU remains committed to providing reliable access to these cutting-edge technologies. Order your first GPU server today and begin transforming your ideas into reality.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/606-wat-is-kennisdistillatie&quot;&gt;Wat is kennisdistillatie&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/607-voordelen-en-nadelen-van-gpu-delen&quot;&gt;Voordelen en nadelen van GPU delen&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/611-intel-habana-gaudi-2-installeren-en-testen&quot;&gt;Intel Habana Gaudi 2: installeren en testen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/098/original/sh_nvidia_rtx_50_expectation_and_reality_1.png?1736938750"
        length="0"
        type="image/jpeg"/>
      <pubDate>Thu, 23 Jan 2025 13:34:30 +0100</pubDate>
      <guid isPermaLink="false">609</guid>
      <dc:date>2025-01-23 13:34:30 +0100</dc:date>
    </item>
    <item>
      <title>Voordelen en nadelen van GPU delen</title>
      <link>https://www.leadergpu.nl/catalog/607-voordelen-en-nadelen-van-gpu-delen</link>
      <description>&lt;p&gt;De Wet van Moore is al bijna een halve eeuw relevant. Processorchips blijven meer transistors bevatten en technologieën gaan dagelijks vooruit. Naarmate de technologie zich ontwikkelt, verandert ook onze benadering van computergebruik. De opkomst van bepaalde computertaken heeft de ontwikkeling van hardware aanzienlijk beïnvloed. Apparaten die oorspronkelijk ontworpen waren voor grafische verwerking zijn nu bijvoorbeeld belangrijke, betaalbare hulpmiddelen voor moderne neurale netwerken.&lt;/p&gt;
&lt;p&gt;Het beheer van computermiddelen is ook veranderd. Massadiensten gebruiken nu zelden nog mainframes, zoals in de jaren 1970 en 1980. In plaats daarvan geven ze de voorkeur aan clouddiensten of het bouwen van hun eigen infrastructuur. Deze verschuiving heeft de eisen van de klant veranderd, met een focus op snel, on-demand schalen en het maximaliseren van het gebruik van toegewezen computerbronnen.&lt;/p&gt;
&lt;p&gt;Virtualisatie- en containerisatietechnologieën zijn als oplossingen naar voren gekomen. Applicaties worden nu verpakt in containers met alle benodigde bibliotheken, wat het uitrollen en schalen vereenvoudigt. Handmatig beheer werd echter onpraktisch toen het aantal containers in de duizenden steeg. Gespecialiseerde orchestrators zoals Kubernetes zorgen nu voor effectief beheer en schaling. Deze tools zijn een essentieel onderdeel geworden van elke moderne IT-infrastructuur.&lt;/p&gt;
&lt;h2&gt;Servervirtualisatie&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/075/original/sh_advantages_and_disadvantages_of_gpu_sharing_1.png?1731504150&quot; alt=&quot;Server virtualization&quot;&gt;
&lt;p&gt;Tegelijkertijd ontwikkelden virtualisatietechnologieën zich, waardoor het mogelijk werd om geïsoleerde omgevingen te creëren binnen een enkele fysieke server. Virtuele machines gedragen zich identiek aan gewone fysieke servers, waardoor het gebruik van standaard beheertools mogelijk is. Afhankelijk van de hypervisor wordt vaak een gespecialiseerde API meegeleverd, die het automatiseren van routineprocedures vergemakkelijkt.&lt;/p&gt;
&lt;p&gt;Deze flexibiliteit gaat echter gepaard met verminderde beveiliging. Aanvallers hebben hun focus verlegd van het aanvallen van individuele virtuele machines naar het uitbuiten van zwakke plekken in de hypervisor. Door de controle over een hypervisor te krijgen, kunnen aanvallers naar believen toegang krijgen tot alle gekoppelde virtuele machines. Ondanks voortdurende verbeteringen in de beveiliging blijven moderne hypervisors aantrekkelijke doelwitten.&lt;/p&gt;
&lt;p&gt;Traditionele virtualisatie pakt twee belangrijke problemen aan. Eerste probleem: het zorgt voor de isolatie van virtuele machines van elkaar. Bare-metal oplossingen omzeilen dit probleem omdat klanten volledige fysieke servers onder hun beheer huren. Maar voor virtuele machines is isolatie softwaregebaseerd op het niveau van de hypervisor. Een fout in de code of een willekeurige bug kan deze isolatie in gevaar brengen, waardoor gegevens kunnen uitlekken of beschadigd raken.&lt;/p&gt;
&lt;p&gt;Het tweede probleem betreft resource management. Hoewel het mogelijk is om de toewijzing van resources aan specifieke virtuele machines te garanderen, vormt het beheer van een groot aantal machines een dilemma. Resources kunnen onderbenut raken, wat resulteert in minder virtuele machines per fysieke server. Dit scenario is onrendabel voor de infrastructuur en leidt onvermijdelijk tot prijsverhogingen.&lt;/p&gt;
&lt;p&gt;Als alternatief kun je mechanismen voor automatisch resourcebeheer gebruiken. Hoewel een virtuele machine specifieke gedeclareerde karakteristieken krijgt toegewezen, wordt in feite alleen het vereiste minimum geleverd binnen deze limieten. Als de machine meer processortijd of RAM nodig heeft, zal de hypervisor proberen dit te leveren, maar kan dit niet garanderen. Deze situatie is vergelijkbaar met het overboeken van vliegtuigen, waarbij luchtvaartmaatschappijen meer tickets verkopen dan er stoelen beschikbaar zijn.&lt;/p&gt;
&lt;p&gt;De logica is identiek. Als statistieken aantonen dat ongeveer 10% van de passagiers niet op tijd komt voor hun vlucht, kunnen luchtvaartmaatschappijen 10% meer tickets verkopen met een minimaal risico. Als alle passagiers komen, zullen sommige passagiers niet aan boord passen. De luchtvaartmaatschappij zal kleine gevolgen ondervinden in de vorm van compensatie, maar zal waarschijnlijk doorgaan met deze praktijk.&lt;/p&gt;
&lt;p&gt;Veel infrastructuuraanbieders hanteren een vergelijkbare strategie. Sommigen zijn er transparant over en geven aan dat ze geen constante beschikbaarheid van computermiddelen garanderen, maar wel aanzienlijk lagere prijzen bieden. Anderen gebruiken soortgelijke mechanismen zonder er reclame voor te maken. Ze gokken erop dat niet alle klanten consequent 100% van hun serverresources zullen gebruiken, en zelfs als sommigen dat doen, zullen ze in de minderheid zijn. Ondertussen genereren ongebruikte bronnen winst.&lt;/p&gt;
&lt;p&gt;In deze context hebben bare-metal oplossingen een voordeel. Ze garanderen dat toegewezen resources volledig worden beheerd door de klant en niet worden gedeeld met andere gebruikers van de infrastructuurleverancier. Dit elimineert scenario&#39;s waarbij een hoge belasting door een gebruiker van een naburige server de prestaties negatief beïnvloedt.&lt;/p&gt;
&lt;h2&gt;GPU-virtualisatie&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/076/original/sh_advantages_and_disadvantages_of_gpu_sharing_2.png?1731504219&quot; alt=&quot;GPU virtualization&quot;&gt;
&lt;p&gt;Klassieke virtualisatie wordt onvermijdelijk geconfronteerd met de uitdaging van het emuleren van fysieke apparaten. Om de overheadkosten te beperken, zijn er speciale technologieën ontwikkeld waarmee virtuele machines rechtstreeks toegang hebben tot de fysieke apparaten van de server. Deze aanpak werkt in veel gevallen goed, maar wanneer deze wordt toegepast op grafische processors, levert dit direct beperkingen op. Als een server bijvoorbeeld 8 GPU&#39;s heeft geïnstalleerd, hebben slechts 8 virtuele machines toegang.&lt;/p&gt;
&lt;p&gt;Om deze beperking te omzeilen werd de vGPU-technologie uitgevonden. Deze verdeelt een GPU in meerdere logische GPU&#39;s, die vervolgens kunnen worden toegewezen aan virtuele machines. Hierdoor kan elke virtuele machine zijn &quot;stukje taart&quot; krijgen en is hun totale aantal niet langer beperkt door het aantal videokaarten dat in de server is geïnstalleerd.&lt;/p&gt;
&lt;p&gt;Virtuele GPU&#39;s worden het meest gebruikt bij het bouwen van VDI (Virtual Desktop Infrastructure) in gebieden waar virtuele machines 3D-versnelling nodig hebben. Bij een virtuele werkplek voor een ontwerper of planner gaat het bijvoorbeeld meestal om grafische verwerking. De meeste toepassingen op deze gebieden voeren berekeningen uit op zowel de centrale processor als de GPU. Deze hybride aanpak verhoogt de productiviteit aanzienlijk en zorgt voor een optimaal gebruik van de beschikbare computerbronnen.&lt;/p&gt;
&lt;p&gt;Deze technologie heeft echter een aantal nadelen. Het wordt niet ondersteund door alle GPU&#39;s en is alleen beschikbaar in het serversegment. De ondersteuning is ook afhankelijk van de geïnstalleerde versie van het besturingssysteem en de GPU-driver. vGPU heeft een apart licentiemechanisme, wat de operationele kosten aanzienlijk verhoogt. Bovendien kunnen de softwarecomponenten mogelijk dienen als aanvalsvector.&lt;/p&gt;
&lt;p&gt;Onlangs werd informatie &lt;a href=&quot;https://www.tomshardware.com/pc-components/gpu-drivers/nvidia-gpu-driver-addresses-eight-major-high-severity-vulnerabilities-nvidia-gpu-owners-should-update-asap&quot;&gt;gepubliceerd&lt;/a&gt; over acht kwetsbaarheden die alle gebruikers van NVIDIA® GPU&#39;s treffen. Zes kwetsbaarheden werden vastgesteld in GPU-stuurprogramma&#39;s en twee in de vGPU-software. Deze problemen werden snel verholpen, maar het herinnert ons eraan dat isolatiemechanismen in dergelijke systemen niet feilloos zijn. Constante bewaking en tijdige installatie van updates blijven de belangrijkste manieren om de veiligheid te garanderen.&lt;/p&gt;
&lt;p&gt;Bij het bouwen van infrastructuur om vertrouwelijke en gevoelige gebruikersgegevens te verwerken, wordt elke virtualisatie een potentiële risicofactor. In dergelijke gevallen kan een bare-metal aanpak een betere kwaliteit en beveiliging bieden.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Het bouwen van een computerinfrastructuur vereist altijd een risicobeoordeling. Belangrijke vragen om te overwegen zijn onder andere: Zijn klantgegevens veilig beschermd? Creëren de gekozen technologieën extra aanvalsvectoren? Hoe kunnen potentiële kwetsbaarheden worden geïsoleerd en geëlimineerd? Het beantwoorden van deze vragen helpt om weloverwogen keuzes te maken en toekomstige problemen te voorkomen.&lt;/p&gt;
&lt;p&gt;Bij LeaderGPU zijn we tot een duidelijke conclusie gekomen: op dit moment is bare-metal technologie superieur in het waarborgen van de veiligheid van gebruikersgegevens, terwijl het dient als een uitstekende basis voor het bouwen van een bare-metal cloud. Deze aanpak stelt onze klanten in staat om flexibiliteit te behouden zonder de extra risico&#39;s van GPU-virtualisatie.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/606-wat-is-kennisdistillatie&quot;&gt;Wat is kennisdistillatie&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/609-nvidia-rtx-50-verwachtingen-en-realiteit&quot;&gt;NVIDIA® RTX™ 50: verwachtingen en realiteit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/611-intel-habana-gaudi-2-installeren-en-testen&quot;&gt;Intel Habana Gaudi 2: installeren en testen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/076/original/sh_advantages_and_disadvantages_of_gpu_sharing_2.png?1731504219"
        length="0"
        type="image/jpeg"/>
      <pubDate>Thu, 23 Jan 2025 13:24:12 +0100</pubDate>
      <guid isPermaLink="false">607</guid>
      <dc:date>2025-01-23 13:24:12 +0100</dc:date>
    </item>
    <item>
      <title>Wat is kennisdistillatie</title>
      <link>https://www.leadergpu.nl/catalog/606-wat-is-kennisdistillatie</link>
      <description>&lt;p&gt;Grote taalmodellen (LLM&#39;s) zijn door hun unieke mogelijkheden een integraal onderdeel van ons leven geworden. Ze begrijpen context en genereren op basis daarvan samenhangende, uitgebreide teksten. Ze kunnen elke taal verwerken en erop reageren, rekening houdend met de culturele nuances van elke taal.&lt;/p&gt;
&lt;p&gt;LLM&#39;s blinken uit in complexe problemen oplossen, programmeren, gesprekken voeren en nog veel meer. Deze veelzijdigheid komt voort uit het verwerken van enorme hoeveelheden trainingsgegevens, vandaar de term &quot;groot&quot;. Deze modellen kunnen tientallen of honderden miljarden parameters bevatten, waardoor ze veel resources vereisen voor dagelijks gebruik.&lt;/p&gt;
&lt;p&gt;Training is het meest veeleisende proces. Neurale netwerkmodellen leren door enorme datasets te verwerken en hun interne &quot;gewichten&quot; aan te passen om stabiele verbindingen tussen neuronen te vormen. Deze verbindingen slaan kennis op die het getrainde neurale netwerk later kan gebruiken op eindapparaten.&lt;/p&gt;
&lt;p&gt;De meeste eindapparaten beschikken echter niet over de nodige rekenkracht om deze modellen uit te voeren. Voor het uitvoeren van de volledige versie van Llama 2 (70B parameters) is bijvoorbeeld een GPU met 48 GB videogeheugen nodig, hardware die maar weinig gebruikers thuis hebben, laat staan op mobiele apparaten.&lt;/p&gt;
&lt;p&gt;Daarom werken de meeste moderne neurale netwerken in een cloud-infrastructuur in plaats van op draagbare apparaten, die via API&#39;s toegang hebben tot deze netwerken. Toch boeken fabrikanten op twee manieren vooruitgang: ze rusten apparaten uit met gespecialiseerde rekeneenheden zoals NPU&#39;s en ontwikkelen methoden om de prestaties van compacte neurale netwerkmodellen te verbeteren.&lt;/p&gt;
&lt;h2&gt;De omvang verkleinen&lt;/h2&gt;
&lt;h3&gt;Het teveel wegsnijden&lt;/h3&gt;
&lt;p&gt;Quantisatie is de eerste en meest effectieve methode om de grootte van het neurale netwerk te verkleinen. Gewichten van neurale netwerken gebruiken meestal 32-bits drijvendekomma getallen, maar we kunnen ze verkleinen door dit formaat te wijzigen. Het gebruik van 8-bits waarden (of zelfs binaire waarden in sommige gevallen) kan de grootte van het netwerk vertienvoudigen, hoewel dit de nauwkeurigheid van de antwoorden aanzienlijk vermindert.&lt;/p&gt;
&lt;p&gt;Pruning is een andere aanpak, waarbij onbelangrijke verbindingen in het neurale netwerk worden verwijderd. Dit proces werkt zowel tijdens de training als bij voltooide netwerken. Naast alleen verbindingen kan snoeien ook neuronen of hele lagen verwijderen. Deze vermindering in parameters en verbindingen leidt tot een lager geheugengebruik.&lt;/p&gt;
&lt;p&gt;Matrix- of tensordecompositie is de derde veelgebruikte techniek om de grootte te reduceren. Het opsplitsen van een grote matrix in een product van drie kleinere matrices vermindert het totaal aantal parameters met behoud van kwaliteit. Dit kan de grootte van het netwerk tientallen keren verkleinen. Tensor decompositie biedt nog betere resultaten, maar vereist meer hyperparameters.&lt;/p&gt;
&lt;p&gt;Hoewel deze methoden effectief de grootte verkleinen, hebben ze allemaal te maken met kwaliteitsverlies. Grote gecomprimeerde modellen presteren beter dan hun kleinere, niet-gecomprimeerde tegenhangers, maar bij elke compressie bestaat het risico dat de antwoordnauwkeurigheid afneemt. Kennisdistillatie is een interessante poging om een balans te vinden tussen kwaliteit en grootte.&lt;/p&gt;
&lt;h3&gt;Laten we het samen proberen&lt;/h3&gt;
&lt;p&gt;Kennisdistillatie kan het best worden uitgelegd aan de hand van de analogie van een leerling en een leraar. Terwijl studenten leren, geven docenten les en werken ze hun bestaande kennis voortdurend bij. Wanneer beiden op nieuwe kennis stuiten, heeft de leraar een voordeel, hij kan putten uit zijn brede kennis van andere gebieden, terwijl de student deze basis nog niet heeft.&lt;/p&gt;
&lt;p&gt;Dit principe is van toepassing op neurale netwerken. Wanneer twee neurale netwerken van hetzelfde type maar van verschillende grootte op identieke gegevens worden getraind, presteert het grotere netwerk meestal beter. Zijn grotere capaciteit voor &quot;kennis&quot; maakt nauwkeurigere reacties mogelijk dan zijn kleinere tegenhanger. Dit roept een interessante mogelijkheid op: waarom trainen we het kleinere netwerk niet niet alleen op de dataset, maar ook op de nauwkeurigere uitkomsten van het grotere netwerk?&lt;/p&gt;
&lt;p&gt;Dit proces is kennisdistillatie: een vorm van supervised learning waarbij een kleiner model leert om de voorspellingen van een groter model te repliceren. Hoewel deze techniek helpt om het kwaliteitsverlies door het verkleinen van het neurale netwerk te compenseren, vereist het wel extra rekenkracht en trainingstijd.&lt;/p&gt;
&lt;h2&gt;Software en logica&lt;/h2&gt;
&lt;p&gt;Nu de theoretische basis duidelijk is, kunnen we het proces vanuit een technisch perspectief bekijken. We beginnen met softwaretools die je door de training en kennisdistillatie kunnen leiden.&lt;/p&gt;
&lt;p&gt;Python, samen met de &lt;a href=&quot;https://pytorch.org/torchtune/stable/index.html&quot;&gt;TorchTune&lt;/a&gt; bibliotheek van het &lt;a href=&quot;https://pytorch.org/&quot;&gt;PyTorch&lt;/a&gt; ecosysteem, biedt de eenvoudigste aanpak voor het bestuderen en fine-tunen van grote taalmodellen. Dit is hoe de toepassing werkt:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/092/original/il_what_is_knowledge_distillation.png?1733302736&quot; alt=&quot;What is Knowledge Distillation main illustration&quot;&gt;
&lt;p&gt;Er worden twee modellen geladen: een volledig model (leraar) en een gereduceerd model (leerling). Tijdens elke trainings iteratie genereert het teacher model hoge temperatuur voorspellingen terwijl het student model de dataset verwerkt om zijn eigen voorspellingen te doen.&lt;/p&gt;
&lt;p&gt;De ruwe uitvoerwaarden (logits) van beide modellen worden geëvalueerd met behulp van een verliesfunctie (een numerieke maat voor hoeveel een voorspelling afwijkt van de juiste waarde). Gewichtsaanpassingen worden dan toegepast op het leerlingmodel door middel van backpropagatie. Hierdoor kan het kleinere model leren en de voorspellingen van het leraarmodel repliceren.&lt;/p&gt;
&lt;p&gt;Het primaire configuratiebestand in de applicatiecode wordt een recept genoemd. In dit bestand worden alle distillatieparameters en instellingen opgeslagen, waardoor experimenten reproduceerbaar worden en onderzoekers kunnen bijhouden hoe verschillende parameters het uiteindelijke resultaat beïnvloeden.&lt;/p&gt;
&lt;p&gt;Bij het selecteren van parameterwaarden en iteratietellingen is het behouden van evenwicht cruciaal. Een model dat te veel gedistilleerd heeft, kan zijn vermogen verliezen om subtiele details en context te herkennen, waardoor het terugvalt op standaard reacties. Hoewel een perfecte balans bijna onmogelijk te bereiken is, kan het zorgvuldig bewaken van het destillatieproces de voorspellingskwaliteit van zelfs bescheiden neurale netwerkmodellen aanzienlijk verbeteren.&lt;/p&gt;
&lt;p&gt;Het is ook de moeite waard om aandacht te besteden aan monitoring tijdens het trainingsproces. Dit zal helpen om problemen op tijd te identificeren en onmiddellijk te corrigeren. Hiervoor kun je de tool &lt;a href=&quot;https://www.tensorflow.org/tensorboard&quot;&gt;TensorBoard&lt;/a&gt; gebruiken. Het integreert naadloos in PyTorch-projecten en stelt je in staat om veel metrieken visueel te evalueren, zoals nauwkeurigheid en verliezen. Bovendien kun je er een modeldiagram mee maken en het geheugengebruik en de uitvoeringstijd van bewerkingen mee bijhouden.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Kennisdistillatie is een effectieve methode voor het optimaliseren van neurale netwerken om compacte modellen te verbeteren. Het werkt het beste wanneer het balanceren van prestaties met antwoordkwaliteit essentieel is.&lt;/p&gt;
&lt;p&gt;Hoewel kennisdestillatie zorgvuldig toezicht vereist, kunnen de resultaten opmerkelijk zijn. Modellen worden veel kleiner met behoud van voorspellingskwaliteit en ze presteren beter met minder rekenkracht.&lt;/p&gt;
&lt;p&gt;Als kennisdestillatie goed wordt gepland met de juiste parameters, is het een belangrijk hulpmiddel om compacte neurale netwerken te maken zonder aan kwaliteit in te boeten.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/607-voordelen-en-nadelen-van-gpu-delen&quot;&gt;Voordelen en nadelen van GPU delen&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/609-nvidia-rtx-50-verwachtingen-en-realiteit&quot;&gt;NVIDIA® RTX™ 50: verwachtingen en realiteit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/611-intel-habana-gaudi-2-installeren-en-testen&quot;&gt;Intel Habana Gaudi 2: installeren en testen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/092/original/il_what_is_knowledge_distillation.png?1733302736"
        length="0"
        type="image/jpeg"/>
      <pubDate>Thu, 23 Jan 2025 13:21:29 +0100</pubDate>
      <guid isPermaLink="false">606</guid>
      <dc:date>2025-01-23 13:21:29 +0100</dc:date>
    </item>
    <item>
      <title>AudioCraft van MetaAI: muziek maken op basis van beschrijving</title>
      <link>https://www.leadergpu.nl/catalog/604-audiocraft-van-metaai-muziek-maken-op-basis-van-beschrijving</link>
      <description>&lt;p&gt;Moderne generatieve neurale netwerken worden steeds slimmer. Ze schrijven verhalen, voeren gesprekken met mensen en creëren ultrarealistische beelden. Nu kunnen ze eenvoudige muziektracks produceren zonder dat daar professionele artiesten voor nodig zijn. Deze toekomst is vandaag werkelijkheid geworden. Dat was te verwachten, want muzikale harmonieën en ritmes zijn geworteld in wiskundige principes.&lt;/p&gt;
&lt;p&gt;Meta heeft zijn toewijding aan de wereld van open-source software aangetoond. Ze hebben drie neurale netwerkmodellen openbaar gemaakt waarmee geluiden en muziek kunnen worden gemaakt van tekstbeschrijvingen:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://musicgen.com/&quot;&gt;MusicGen&lt;/a&gt; - genereert muziek uit tekst.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://audiocraft.metademolab.com/audiogen.html&quot;&gt;AudioGen&lt;/a&gt; - genereert audio uit tekst.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/facebookresearch/encodec&quot;&gt;EnCodec&lt;/a&gt; - neurale audiocompressor van hoge kwaliteit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;MusicGen is getraind op 20.000 uur muziek. U kunt het lokaal gebruiken via speciale LeaderGPU-servers als platform.&lt;/p&gt;
&lt;h2&gt;Standaard installatie&lt;/h2&gt;
&lt;p&gt;Update de pakket cache repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer de Python pakketbeheerder, pip, en de ffmpeg bibliotheken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install python3-pip ffmpeg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer torch 2.0 of nieuwer met pip:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install &#39;torch&gt;=2.0&#39;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende opdracht installeert automatisch &lt;b translate=&quot;no&quot;&gt;audiocraft&lt;/b&gt; en alle benodigde afhankelijkheden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -U audiocraft&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we een eenvoudige Python app schrijven, die gebruik maakt van het &lt;a href=&quot;https://huggingface.co/facebook/musicgen-large&quot;&gt;grote voorgetrainde MusicGen model&lt;/a&gt; met 3,3B parameters:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano generate.py&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;from audiocraft.models import MusicGen
from audiocraft.data.audio import audio_write
model = MusicGen.get_pretrained(&quot;facebook/musicgen-large&quot;)
model.set_generation_params(duration=30)  # generate a 30 seconds sample.
descriptions = [&quot;rock solo&quot;]
wav = model.generate(descriptions)  # generates sample.
for idx, one_wav in enumerate(wav):
    # Will save under {idx}.wav, with loudness normalization at -14 db LUFS.
    audio_write(f&#39;{idx}&#39;, one_wav.cpu(), model.sample_rate, strategy=&quot;loudness&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De gemaakte app uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 generate.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Na een paar seconden verschijnt het gegenereerde bestand (0.wav) in de map.&lt;/p&gt;
&lt;h2&gt;Koffie Vampir 3&lt;/h2&gt;
&lt;p&gt;Kloon een projectrepository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/CoffeeVampir3/audiocraft-webui.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de gekloonde map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd audiocraft-webui&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het commando uit dat je systeem voorbereidt en alle benodigde pakketten installeert:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start vervolgens de Coffee Vampire 3 server met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 webui.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Coffee Vampire 3 gebruikt Flask als framework. Standaard draait het op localhost met poort 5000. Als je toegang op afstand wilt, gebruik dan de poort doorstuurfunctie in je SSH-client. Anders kun je een VPN-verbinding met de server organiseren.&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Let op! Dit is een potentieel gevaarlijke actie; gebruik op eigen risico:&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano webui.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Scroll naar beneden en vervang &lt;b translate=&quot;no&quot;&gt;socketio.run(app)&lt;/b&gt; door &lt;b translate=&quot;no&quot;&gt;socketio.run(app, host=’0.0.0.0’, port=5000)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Sla het bestand op en start de server met het bovenstaande commando. Dit geeft toegang tot de server vanaf het openbare internet zonder enige authenticatie.&lt;/p&gt;
&lt;p&gt;Vergeet niet &lt;b translate=&quot;no&quot;&gt;disable AdBlock software&lt;/b&gt; te gebruiken, omdat dit de muziekspeler aan de rechterkant van de webpagina kan blokkeren. Je kunt beginnen door de prompt in te voeren en te bevestigen met de knop &lt;b translate=&quot;no&quot;&gt;Submit&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/902/original/sh_audiocraft_by_metaai_create_music_by_description_1.png?1713360831&quot; alt=&quot;Main page Audiocraft WebUI&quot;&gt;
&lt;h2&gt;TTS-generatie WebUI&lt;/h2&gt;
&lt;h3&gt;Stap 1. Stuurprogramma&#39;s&lt;/h3&gt;
&lt;p&gt;Werk de pakketcache-repository bij:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer Nvidia-stuurprogramma&#39;s met het automatische installatieprogramma of met onze gids &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;Nvidia-stuurprogramma&#39;s installeren in Linux&lt;/a&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Stap 2. Docker&lt;/h3&gt;
&lt;p&gt;De volgende stap is het installeren van Docker. Laten we enkele pakketten installeren die moeten worden toegevoegd aan de Docker-repository: &lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install apt-transport-https curl gnupg-agent ca-certificates software-properties-common&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de Docker GPG-sleutel en sla deze op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de repository toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo add-apt-repository &quot;deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer &lt;b translate=&quot;no&quot;&gt;Docker CE&lt;/b&gt; (Community Edition) met CLI en de &lt;b translate=&quot;no&quot;&gt;containerd&lt;/b&gt; runtime:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install docker-ce docker-ce-cli containerd.io&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de huidige gebruiker toe aan de docker groep:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo usermod -aG docker $USER&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wijzigingen toepassen zonder uit- en aanmeldprocedure:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;newgrp docker&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Stap 3. GPU passthrough&lt;/h3&gt;
&lt;p&gt;Laten we NVIDIA® GPU&#39;s passthrough inschakelen in Docker. Het volgende commando leest de huidige OS-versie in de distributievariabele, die we in de volgende stap kunnen gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;distribution=$(. /etc/os-release;echo $ID$VERSION_ID)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de GPG-sleutel van de Nvidia-repository en sla deze op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de lijst met Nvidia-repositories en sla deze op voor gebruik in de standaard APT-pakketbeheerder:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Werk de pakketcache-repository bij en installeer de GPU passthrough toolkit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get update &amp;&amp; sudo apt-get install -y nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de Docker-daemon opnieuw:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Stap 4. WebUI&lt;/h3&gt;
&lt;p&gt;Download het archief van het archief:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://github.com/rsxdalv/tts-generation-webui/archive/refs/heads/main.zip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Uitpakken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;unzip main.zip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de map van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd tts-generation-webui-main&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start het bouwen van de image:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;docker build -t rsxdalv/tts-generation-webui .&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer de aangemaakte container uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;docker compose up -d&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je &lt;b translate=&quot;no&quot;&gt;http://[server_ip]:7860&lt;/b&gt; openen, je prompt intypen, het benodigde model selecteren en op de knop &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt; klikken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/903/original/sh_audiocraft_by_metaai_create_music_by_description_2.png?1713360865
&quot; alt=&quot;Audiocraft generated sound&quot;&gt;
&lt;p&gt;Het systeem downloadt automatisch het geselecteerde model tijdens de eerste generatie. Veel plezier!&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion&quot;&gt;Stable Diffusion: Riffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/117/original/il_audiocraft_by_metaai_create_music_by_description.png?1737557205"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 15:51:35 +0100</pubDate>
      <guid isPermaLink="false">604</guid>
      <dc:date>2025-01-22 15:51:35 +0100</dc:date>
    </item>
    <item>
      <title>Hoe de LangFlow-toepassing monitoren</title>
      <link>https://www.leadergpu.nl/catalog/602-hoe-de-langflow-toepassing-monitoren</link>
      <description>&lt;p&gt;In ons artikel &lt;a href=&quot;https://www.leadergpu.nl/articles/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI app builder Langflow&lt;/a&gt; hebben we onderzocht hoe je aan de slag kunt met de visuele programmeeromgeving van deze low-code AI app builder. Hiermee kan iedereen, zelfs mensen zonder programmeerkennis, toepassingen bouwen die worden aangedreven door grote neurale netwerkmodellen. Dit kunnen AI chatbots zijn of toepassingen voor documentverwerking die inhoud kunnen analyseren en samenvatten.&lt;/p&gt;
&lt;p&gt;Langflow gebruikt een bouwsteenbenadering waarbij gebruikers vooraf gemaakte componenten met elkaar verbinden om hun gewenste toepassing te creëren. Er zijn echter twee belangrijke uitdagingen: het oplossen van problemen wanneer neurale netwerken zich onverwacht gedragen en het beheren van de kosten. Neurale netwerken vereisen aanzienlijke rekenkracht, waardoor het essentieel is om de infrastructuurkosten te bewaken en te voorspellen.&lt;/p&gt;
&lt;p&gt;LangWatch pakt beide uitdagingen aan. Deze gespecialiseerde tool helpt Langflow ontwikkelaars om verzoeken van gebruikers te monitoren, kosten bij te houden en afwijkingen te detecteren, zoals wanneer toepassingen op onbedoelde manieren worden gebruikt.&lt;/p&gt;
&lt;p&gt;Deze tool is oorspronkelijk ontworpen als een service, maar kan op elke server worden ingezet, ook lokaal. Het integreert met de meeste LLM-providers, zowel in de cloud als op locatie. Omdat LangWatch open source is, kan het aan bijna elk project worden aangepast: nieuwe functies toevoegen of verbinding maken met interne systemen.&lt;/p&gt;
&lt;p&gt;Met LangWatch kun je waarschuwingen instellen wanneer specifieke statistieken bepaalde drempelwaarden overschrijden. Dit helpt u om onverwachte stijgingen in aanvraagkosten of ongewone responsvertragingen snel te detecteren. Vroegtijdige detectie helpt ongeplande uitgaven en potentiële serviceaanvallen voorkomen.&lt;/p&gt;
&lt;p&gt;Voor onderzoekers van neurale netwerken maakt deze toepassing zowel monitoring als optimalisatie van veelvoorkomende gebruikersverzoeken mogelijk. Het biedt ook tools om de kwaliteit van modelreacties te evalueren en waar nodig aanpassingen te doen.&lt;/p&gt;
&lt;h2&gt;Snel aan de slag&lt;/h2&gt;
&lt;h3&gt;Systeem voorbereiden&lt;/h3&gt;
&lt;p&gt;Net als bij Langflow is de eenvoudigste manier om de applicatie te draaien een Docker-container. Voordat je LangWatch installeert, moet je Docker Engine op je server installeren. Werk eerst je pakketcache en de pakketten bij naar de nieuwste versies:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer extra pakketten die Docker nodig heeft:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install apt-transport-https ca-certificates curl software-properties-common&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de GPG-sleutel om de officiële Docker-repository toe te voegen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de repository toe aan APT met de sleutel die je eerder hebt gedownload en geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;echo &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vernieuw de pakketlijst:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om ervoor te zorgen dat Docker wordt geïnstalleerd vanuit de nieuw toegevoegde repository en niet vanuit de systeemrepository, kun je het volgende commando uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;apt-cache policy docker-ce&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Docker Engine installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install docker-ce&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer of Docker met succes is geïnstalleerd en of de bijbehorende daemon draait en de status &lt;b translate=&quot;no&quot;&gt;active (running)&lt;/b&gt; heeft:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status docker&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;● docker.service - Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset&gt;
    Active: active (running) since Mon 2024-11-18 08:26:35 UTC; 3h 27min ago
TriggeredBy: ● docker.socket
      Docs: https://docs.docker.com
  Main PID: 1842 (dockerd)
     Tasks: 29
    Memory: 1.8G
       CPU: 3min 15.715s
    CGroup: /system.slice/docker.service&lt;/pre&gt;
&lt;h3&gt;Bouwen en uitvoeren&lt;/h3&gt;
&lt;p&gt;Als Docker Engine is geïnstalleerd en draait, kun je de LangWatch-toepassingsrepository downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/langwatch/langwatch&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De applicatie bevat een voorbeeldconfiguratiebestand met omgevingsvariabelen. Kopieer dit bestand zodat het image build hulpprogramma het kan verwerken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cp langwatch/.env.example langwatch/.env&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu ben je klaar voor de eerste lancering:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker compose up --build&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het systeem neemt even de tijd om alle benodigde containerlagen voor LangWatch te downloaden. Zodra dit is voltooid, ziet u een consolebericht dat aangeeft dat de applicatie beschikbaar is op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;http://[LeaderGPU_IP_address]:3000&lt;/pre&gt;
&lt;p&gt;Navigeer naar deze pagina in uw browser, waar u wordt gevraagd om een gebruikersaccount aan te maken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/089/original/sh_how_to_monitor_langflow_application_1.png?1732712766&quot; alt=&quot;LangWatch login screen&quot;&gt;
&lt;p&gt;In tegenstelling tot Langflow heeft dit systeem standaard verificatie ingeschakeld. Na het inloggen moet u het systeem configureren om gegevens van uw Langflow server te verzamelen.&lt;/p&gt;
&lt;h2&gt;Langflow integratie&lt;/h2&gt;
&lt;p&gt;LangWatch heeft een gegevensbron nodig om te functioneren. De server luistert op poort 3000 en gebruikt een RESTful API, die inkomende gegevens authenticeert via een automatisch gegenereerde API-sleutel.&lt;/p&gt;
&lt;p&gt;Om gegevensoverdracht mogelijk te maken, moet je twee variabelen instellen in de Langflow configuratiebestanden: &lt;b translate=&quot;no&quot;&gt;LANGWATCH_ENDPOINT&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;LANGWATCH_API_KEY&lt;/b&gt;. Maak eerst een SSH-verbinding met je Langflow server (die offline moet zijn tijdens dit proces).&lt;/p&gt;
&lt;p&gt;Navigeer naar de map met de voorbeeldconfiguratie voor Docker:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd langflow/docker_example&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open het configuratiebestand om het te bewerken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano docker-compose.yml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg in het gedeelte &quot;omgeving:&quot; de volgende variabelen toe (zonder haakjes [] of aanhalingstekens):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;- LANGWATCH_API_KEY= [YOUR_API_KEY]
- LANGWATCH_ENDPOINT=http://[IP_ADDRESS]:3000&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het YML-bestand vereist een specifieke opmaak. Volg deze twee belangrijke regels:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Gebruik spaties (2 of 4) voor inspringen, nooit tabs.&lt;/li&gt;
    &lt;li&gt;Zorg voor een goede hiërarchische structuur met consistente inspringing.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sla het bestand op met &lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt; en sluit de editor af met &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;, Langflow is nu klaar om te starten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker compose up&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer na het starten of alles naar behoren werkt. Maak een nieuw project of open een bestaand project en start een dialoog via Playground. Langflow stuurt automatisch gegevens naar LangWatch voor monitoring, die u in de webinterface kunt bekijken.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/090/original/sh_how_to_monitor_langflow_application_2.png?1732712788&quot; alt=&quot;LangWatch integration checks&quot;&gt;
&lt;p&gt;In de sectie Integratieverificatie verschijnt een vinkje bij het item &quot;Synchroniseer uw eerste bericht&quot;. Dit geeft aan dat de gegevens van Langflow met succes naar LangWatch stromen, wat bevestigt dat de instelling correct is. Laten we eens kijken wat er verschijnt in de sectie &lt;b translate=&quot;no&quot;&gt;Messages&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/091/original/sh_how_to_monitor_langflow_application_3.png?1732712853&quot; alt=&quot;LangWatch messages lookup&quot;&gt;
&lt;p&gt;Het gedeelte Berichten geeft de gegevens weer die in de toepassing zijn ingevoerd, de parameters die zijn gebruikt voor het genereren van reacties en de reactie van het neurale netwerk zelf. Je kunt de kwaliteit van de respons evalueren en verschillende filters gebruiken om de gegevens te sorteren, zelfs met honderden of duizenden berichten.&lt;/p&gt;
&lt;p&gt;Na deze eerste installatie kunt u de functies van de toepassing systematisch verkennen. In het gedeelte &lt;b translate=&quot;no&quot;&gt;Evaluations&lt;/b&gt; kun je algoritmen voor dialoogverificatie instellen voor dialoogmoderatie of gegevensherkenning, zoals &lt;b translate=&quot;no&quot;&gt;PII Detection&lt;/b&gt;. Deze functie scant invoer op gevoelige informatie zoals sofi-nummers of telefoonnummers.&lt;/p&gt;
&lt;p&gt;De applicatie biedt zowel lokale als cloud-gebaseerde opties via providers zoals Azure of Cloudflare. Om cloudfuncties te gebruiken, heb je een account nodig bij deze services, samen met hun eindpuntadressen en API-sleutels. Houd er rekening mee dat dit providers van derden zijn, dus controleer direct hun servicekosten.&lt;/p&gt;
&lt;p&gt;Voor lokale opties beschikt de applicatie over geavanceerde RAG-mogelijkheden (Retrieval-augmented generation). Je kunt de nauwkeurigheid en relevantie van RAG-gegenereerde inhoud meten en de verzamelde statistieken gebruiken om het RAG-systeem te optimaliseren voor nauwkeurigere neurale netwerkreacties.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/586-fotogrammetrie-met-meshroom&quot;&gt;Fotogrammetrie met Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/588-blender-op-afstand-renderen-met-flamenco&quot;&gt;Blender op afstand renderen met Flamenco&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/088/original/il_how_to_monitor_langflow_application.png?1732712732"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 15:14:55 +0100</pubDate>
      <guid isPermaLink="false">602</guid>
      <dc:date>2025-01-22 15:14:55 +0100</dc:date>
    </item>
    <item>
      <title>Low-code AI-app bouwer Langflow</title>
      <link>https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow</link>
      <description>&lt;p&gt;Softwareontwikkeling heeft de laatste jaren een enorme ontwikkeling doorgemaakt. Moderne programmeurs hebben nu toegang tot honderden programmeertalen en frameworks. Naast de traditionele imperatieve en declaratieve benaderingen is er een nieuwe en opwindende methode voor het maken van toepassingen in opkomst. Deze innovatieve aanpak maakt gebruik van de kracht van neurale netwerken en biedt ontwikkelaars fantastische mogelijkheden.&lt;/p&gt;
&lt;p&gt;Mensen zijn gewend geraakt aan AI-assistenten in IDE&#39;s die helpen met het automatisch aanvullen van code en moderne neurale netwerken die eenvoudig code genereren voor eenvoudige Python-spelletjes. Er zijn echter nieuwe hybride tools in opkomst die een revolutie teweeg kunnen brengen in het ontwikkellandschap. Eén zo&#39;n hulpmiddel is Langflow.&lt;/p&gt;
&lt;p&gt;Langflow dient meerdere doelen. Voor professionele ontwikkelaars biedt het betere controle over complexe systemen zoals neurale netwerken. Voor degenen die niet bekend zijn met programmeren, kunnen er eenvoudige maar praktische toepassingen mee worden gemaakt. Deze doelen worden op verschillende manieren bereikt, die we in meer detail zullen bespreken.&lt;/p&gt;
&lt;h2&gt;Neurale netwerken&lt;/h2&gt;
&lt;p&gt;Het concept van een neuraal netwerk kan worden vereenvoudigd voor gebruikers. Stel je een zwarte doos voor die invoergegevens en parameters ontvangt die het uiteindelijke resultaat beïnvloeden. Deze doos verwerkt de invoer met behulp van complexe algoritmen, vaak &quot;magie&quot; genoemd, en produceert uitvoergegevens die aan de gebruiker kunnen worden gepresenteerd.&lt;/p&gt;
&lt;p&gt;De innerlijke werking van deze zwarte doos varieert op basis van het ontwerp en de trainingsgegevens van het neurale netwerk. Het is cruciaal om te begrijpen dat ontwikkelaars en gebruikers nooit 100% zekerheid in resultaten kunnen bereiken. In tegenstelling tot traditioneel programmeren waarbij 2 + 2 altijd gelijk is aan 4, kan een neuraal netwerk dit antwoord met 99% zekerheid geven, waarbij er altijd een foutmarge is.&lt;/p&gt;
&lt;p&gt;De controle over het &quot;denkproces&quot; van een neuraal netwerk is indirect. We kunnen alleen bepaalde parameters aanpassen, zoals de &quot;temperatuur&quot;. Deze parameter bepaalt hoe creatief of beperkt het neurale netwerk kan zijn in zijn benadering. Een lage temperatuurwaarde beperkt het netwerk tot een meer formele, gestructureerde benadering van taken en oplossingen. Omgekeerd geven hoge temperatuurwaarden het netwerk meer vrijheid, wat mogelijk leidt tot het vertrouwen op minder betrouwbare feiten of zelfs het creëren van fictieve informatie.&lt;/p&gt;
&lt;p&gt;Dit voorbeeld illustreert hoe gebruikers de uiteindelijke output kunnen beïnvloeden. Voor traditionele programmering vormt deze onzekerheid een grote uitdaging - fouten kunnen onverwacht verschijnen en specifieke resultaten worden onvoorspelbaar. Deze onvoorspelbaarheid is echter vooral een probleem voor computers, niet voor mensen die zich kunnen aanpassen aan wisselende output en deze kunnen interpreteren.&lt;/p&gt;
&lt;p&gt;Als de output van een neuraal netwerk bedoeld is voor een mens, is de specifieke formulering die gebruikt wordt om het te beschrijven over het algemeen minder belangrijk. Gegeven de context kunnen mensen verschillende resultaten correct interpreteren vanuit het perspectief van de machine. Hoewel begrippen als &quot;positieve waarde&quot;, &quot;bereikt resultaat&quot; of &quot;positieve beslissing&quot; voor een mens ongeveer hetzelfde kunnen betekenen, zou traditionele programmering moeite hebben met deze flexibiliteit. Het zou rekening moeten houden met alle mogelijke antwoordvariaties, wat bijna onmogelijk is.&lt;/p&gt;
&lt;p&gt;Aan de andere kant, als de verdere verwerking wordt uitbesteed aan een ander neuraal netwerk, kan het het verkregen resultaat correct begrijpen en verwerken. Op basis hiervan kan het dan zijn eigen conclusie vormen met een zekere mate van vertrouwen, zoals eerder vermeld.&lt;/p&gt;
&lt;h2&gt;Low-code&lt;/h2&gt;
&lt;p&gt;De meeste programmeertalen bevatten code. Programmeurs creëren de logica voor elk onderdeel van een toepassing in hun hoofd en beschrijven deze vervolgens met taalspecifieke uitdrukkingen. Dit proces vormt een algoritme: een duidelijke opeenvolging van acties die leiden tot een specifiek, vooraf bepaald resultaat. Het is een complexe taak die een aanzienlijke mentale inspanning en een grondig begrip van de mogelijkheden van de taal vereist.&lt;/p&gt;
&lt;p&gt;Het is echter niet nodig om het wiel opnieuw uit te vinden. Veel problemen waar moderne ontwikkelaars mee te maken hebben, zijn al op verschillende manieren opgelost. Relevante stukjes code zijn vaak te &lt;a href=&quot;https://stackoverflow.com/&quot;&gt;vinden&lt;/a&gt; op StackOverflow. Modern programmeren kan worden vergeleken met het in elkaar zetten van een geheel uit onderdelen van verschillende bouwsets. Het Lego-systeem biedt een succesvol model, waarbij verschillende sets onderdelen gestandaardiseerd zijn om compatibiliteit te garanderen.&lt;/p&gt;
&lt;p&gt;De low-code programmeermethode volgt een vergelijkbaar principe. Verschillende stukken code worden aangepast zodat ze naadloos in elkaar passen en worden aan ontwikkelaars gepresenteerd als kant-en-klare blokken. Elk blok kan data-ingangen en -uitgangen hebben. Documentatie specificeert de taak die elk bloktype oplost en het formaat waarin het gegevens accepteert of uitvoert.&lt;/p&gt;
&lt;p&gt;Door deze blokken in een specifieke volgorde met elkaar te verbinden, kunnen ontwikkelaars het algoritme van een toepassing vormen en de operationele logica ervan duidelijk visualiseren. Misschien wel het bekendste voorbeeld van deze programmeermethode is de turtle graphics methode, die vaak gebruikt wordt in educatieve omgevingen om programmeerconcepten te introduceren en algoritmisch denken te ontwikkelen.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/078/original/sh_low-code_ai_app_builder_langflow_1.png?1732099423&quot; alt=&quot;Turtle graphics&quot;&gt;
&lt;p&gt;De essentie van deze methode is eenvoudig: afbeeldingen op het scherm tekenen met behulp van een virtuele schildpad die een spoor achterlaat terwijl hij over het canvas kruipt. Door gebruik te maken van kant-en-klare blokken, zoals het verplaatsen van een ingesteld aantal pixels, het draaien onder specifieke hoeken of het omhoog en omlaag bewegen van de pen, kunnen ontwikkelaars programma&#39;s maken die de gewenste afbeeldingen tekenen. Het maken van toepassingen met behulp van een low-code constructor is vergelijkbaar met schildpad afbeeldingen, maar het stelt gebruikers in staat om een breed scala aan problemen op te lossen, niet alleen het tekenen op een canvas.&lt;/p&gt;
&lt;p&gt;Deze methode werd het best geïmplementeerd in IBM&#39;s Node-RED programmeertool. Het werd ontwikkeld als een universeel middel om de gezamenlijke werking van verschillende apparaten, online services en API&#39;s te garanderen. Het equivalent van code snippets waren nodes uit de standaard bibliotheek (palette).&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/079/original/sh_low-code_ai_app_builder_langflow_2.png?1732099465&quot; alt=&quot;Node-RED canvas&quot;&gt;
&lt;p&gt;De mogelijkheden van Node-RED kunnen worden uitgebreid door add-ons te installeren of aangepaste nodes te maken die specifieke gegevensacties uitvoeren. Ontwikkelaars plaatsen knooppunten uit het palet op het bureaublad en bouwen relaties tussen deze knooppunten. Dit proces creëert de logica van de toepassing, waarbij de visualisatie helpt om duidelijkheid te behouden.&lt;/p&gt;
&lt;p&gt;De toevoeging van neurale netwerken aan dit concept levert een intrigerend systeem op. In plaats van gegevens te verwerken met specifieke wiskundige formules, kun je ze invoeren in een neuraal netwerk en de gewenste uitvoer specificeren. Hoewel de invoergegevens elke keer iets kunnen verschillen, blijven de resultaten geschikt voor interpretatie door mensen of andere neurale netwerken.&lt;/p&gt;
&lt;h2&gt;Retrieval Augmented Generation (RAG)&lt;/h2&gt;
&lt;p&gt;De nauwkeurigheid van gegevens in grote taalmodellen is een dringende zorg. Deze modellen vertrouwen uitsluitend op kennis die is opgedaan tijdens de training, die afhankelijk is van de relevantie van de gebruikte datasets. Bijgevolg kunnen grote taalmodellen onvoldoende relevante gegevens hebben, wat mogelijk leidt tot onjuiste resultaten.&lt;/p&gt;
&lt;p&gt;Om dit probleem aan te pakken, zijn methoden voor het updaten van gegevens nodig. Door neurale netwerken context te laten halen uit aanvullende bronnen, zoals websites, kan de kwaliteit van antwoorden aanzienlijk worden verbeterd. Dit is precies hoe RAG (Retrieval-Augmented Generation) werkt. Aanvullende gegevens worden omgezet in vectorrepresentaties en opgeslagen in een database.&lt;/p&gt;
&lt;p&gt;In de praktijk kunnen neurale netwerkmodellen verzoeken van gebruikers omzetten in vectorrepresentaties en deze vergelijken met de vectoren die zijn opgeslagen in de database. Als er vergelijkbare vectoren worden gevonden, worden de gegevens geëxtraheerd en gebruikt bij het vormen van een antwoord. Vectordatabases zijn snel genoeg om dit schema in realtime te ondersteunen.&lt;/p&gt;
&lt;p&gt;Om dit systeem goed te laten functioneren, moet er interactie zijn tussen de gebruiker, het neurale netwerkmodel, externe gegevensbronnen en de vectordatabase. Langflow vereenvoudigt deze opzet met zijn visuele component - gebruikers bouwen gewoon standaardblokken en &quot;koppelen&quot; ze, waardoor een pad voor gegevensstroom ontstaat.&lt;/p&gt;
&lt;p&gt;De eerste stap is het vullen van de vector database met relevante bronnen. Dit kunnen bestanden zijn van een lokale computer of webpagina&#39;s van het internet. Hier is een eenvoudig voorbeeld van het laden van gegevens in de database:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/080/original/sh_low-code_ai_app_builder_langflow_3.png?1732099495&quot; alt=&quot;RAG data load&quot;&gt;
&lt;p&gt;Nu we een vectordatabase hebben naast de getrainde LLM, kunnen we deze opnemen in het algemene schema. Wanneer een gebruiker een verzoek indient in de chat, wordt tegelijkertijd een prompt gevormd en de vectordatabase bevraagd. Als er vergelijkbare vectoren worden gevonden, worden de geëxtraheerde gegevens verwerkt en als context toegevoegd aan de gevormde prompt. Het systeem stuurt vervolgens een verzoek naar het neurale netwerk en stuurt het ontvangen antwoord naar de gebruiker in de chat.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/081/original/sh_low-code_ai_app_builder_langflow_4.png?1732099527&quot; alt=&quot;RAG scheme&quot;&gt;
&lt;p&gt;Hoewel in het voorbeeld clouddiensten zoals OpenAI en AstraDB worden genoemd, kun je elke compatibele dienst gebruiken, inclusief diensten die lokaal op de servers van LeaderGPU zijn geïnstalleerd. Als u de integratie die u nodig hebt niet kunt vinden in de lijst met beschikbare blokken, kunt u deze zelf schrijven of er een toevoegen die door iemand anders is gemaakt.&lt;/p&gt;
&lt;h2&gt;Snel aan de slag&lt;/h2&gt;
&lt;h3&gt;Systeem voorbereiden&lt;/h3&gt;
&lt;p&gt;De eenvoudigste manier om Langflow te implementeren is in een Docker container. Om de server op te zetten, begin je met het installeren van Docker Engine. Werk vervolgens zowel de pakketcache als de pakketten bij naar de nieuwste versies:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer extra pakketten die Docker nodig heeft:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install apt-transport-https ca-certificates curl software-properties-common&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de GPG-sleutel om de officiële Docker-repository toe te voegen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de repository toe aan APT met de sleutel die je eerder hebt gedownload en geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;echo &quot;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vernieuw de pakketlijst:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om ervoor te zorgen dat Docker wordt geïnstalleerd vanuit de nieuw toegevoegde repository en niet vanuit de systeemrepository, kun je het volgende commando uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;apt-cache policy docker-ce&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Docker Engine installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install docker-ce&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer of Docker met succes is geïnstalleerd en of de bijbehorende daemon draait en de status &lt;b translate=&quot;no&quot;&gt;active (running)&lt;/b&gt; heeft:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status docker&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;● docker.service - Docker Application Container Engine
  Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset&gt;
  Active: active (running) since Mon 2024-11-18 08:26:35 UTC; 3h 27min ago
TriggeredBy: ● docker.socket
    Docs: https://docs.docker.com
Main PID: 1842 (dockerd)
   Tasks: 29
  Memory: 1.8G
     CPU: 3min 15.715s
  CGroup: /system.slice/docker.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Bouwen en uitvoeren&lt;/h3&gt;
&lt;p&gt;Alles is klaar om een Docker container met Langflow te bouwen en te draaien. Er is echter één voorbehoud: op het moment van schrijven van deze handleiding heeft de nieuwste versie (getagd v1.1.0) een fout en start niet op. Om dit probleem te voorkomen, gebruiken we de vorige versie, v1.0.19.post2, die direct na het downloaden vlekkeloos werkt.&lt;/p&gt;
&lt;p&gt;De eenvoudigste aanpak is om de project repository te downloaden van GitHub:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/langflow-ai/langflow&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Navigeer naar de map met de voorbeeld deployment configuratie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd langflow/docker_example&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu moet je twee dingen doen. Ten eerste, verander de release tag zodat een werkende versie (op het moment van schrijven van deze instructie) is gebouwd. Ten tweede, voeg eenvoudige authorisatie toe zodat niemand het systeem kan gebruiken zonder de login en het wachtwoord te kennen.&lt;/p&gt;
&lt;p&gt;Open het configuratiebestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano docker-compose.yml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in plaats van de volgende regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;image: langflowai/langflow:latest&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;geef de versie op in plaats van de tag &lt;b translate=&quot;no&quot;&gt;latest&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;image: langflowai/langflow:v1.0.19.post2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je moet ook drie variabelen toevoegen aan de sectie &lt;b translate=&quot;no&quot;&gt;environment&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;  - LANGFLOW_AUTO_LOGIN=false
  - LANGFLOW_SUPERUSER=admin
  - LANGFLOW_SUPERUSER_PASSWORD=your_secure_password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De eerste variabele schakelt toegang tot de webinterface zonder autorisatie uit. De tweede voegt de gebruikersnaam toe die systeembeheerdersrechten krijgt. De derde voegt het bijbehorende wachtwoord toe.&lt;/p&gt;
&lt;p&gt;Als u van plan bent om het bestand &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; op te slaan in een versiebeheersysteem, schrijf het wachtwoord dan niet rechtstreeks in dit bestand. Maak in plaats daarvan een apart bestand met een &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt; extensie in dezelfde map en sla de variabele waarde daar op.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;LANGFLOW_SUPERUSER_PASSWORD=your_secure_password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In het bestand &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; kun je nu verwijzen naar een variabele in plaats van direct een wachtwoord op te geven:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om te voorkomen dat je per ongeluk het &lt;b translate=&quot;no&quot;&gt;*.env&lt;/b&gt; bestand op GitHub blootgeeft, vergeet niet om het toe te voegen aan &lt;b translate=&quot;no&quot;&gt;.gitignore&lt;/b&gt;. Dit zal je wachtwoord redelijk veilig houden van ongewenste toegang.&lt;/p&gt;
&lt;p&gt;Nu hoeven we alleen nog maar onze container te bouwen en uit te voeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker compose up&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de webpagina op &lt;b translate=&quot;no&quot;&gt;http://[LeaderGPU_IP_address]:7860&lt;/b&gt;, en je ziet het autorisatieformulier:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/082/original/sh_low-code_ai_app_builder_langflow_5.png?1732099559&quot; alt=&quot;Login screen&quot;&gt;
&lt;p&gt;Zodra je je login en wachtwoord hebt ingevoerd, geeft het systeem toegang tot de webinterface waar je je eigen applicaties kunt maken. Voor meer gedetailleerde begeleiding raden we aan om &lt;a href=&quot;https://docs.langflow.org/&quot;&gt;de officiële documentatie&lt;/a&gt; te raadplegen. Deze bevat details over verschillende omgevingsvariabelen die het mogelijk maken om het systeem eenvoudig aan te passen aan jouw behoeften.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/602-hoe-de-langflow-toepassing-monitoren&quot;&gt;Hoe de LangFlow-toepassing monitoren&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/586-fotogrammetrie-met-meshroom&quot;&gt;Fotogrammetrie met Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/588-blender-op-afstand-renderen-met-flamenco&quot;&gt;Blender op afstand renderen met Flamenco&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/077/original/il_low-code_ai_app_builder_langflow.png?1732099387"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 15:11:30 +0100</pubDate>
      <guid isPermaLink="false">601</guid>
      <dc:date>2025-01-22 15:11:30 +0100</dc:date>
    </item>
    <item>
      <title>Easy Diffusion UI</title>
      <link>https://www.leadergpu.nl/catalog/598-easy-diffusion-ui</link>
      <description>&lt;p&gt;Easy Diffusion UI is open source software die je kunt downloaden op GitHub. Hier lees je hoe je het installeert op Ubuntu 22.04 LTS. Als je net een server hebt gehuurd, installeer dan de GPU-stuurprogramma&#39;s en breid je homedirectory uit. Download vervolgens de nieuwste versie van Easy Diffusion UI:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://github.com/cmdr2/stable-diffusion-ui/releases/latest/download/Easy-Diffusion-Linux.zip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pak het gedownloade ZIP-bestand uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;unzip Easy-Diffusion-Linux.zip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wijzig de map in easy-diffusion:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd easy-diffusion&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de installatie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./start.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit is een scriptverzameling die automatisch alle benodigde componenten downloadt en installeert. Het downloadt ook het standaard Stable Diffusion-model in SafeTensors-formaat. Zodra alle downloads en installaties zijn voltooid, wordt de gebruikersinterface van Easy Diffusion automatisch gestart.&lt;/p&gt;
&lt;h2&gt;Gebruik&lt;/h2&gt;
&lt;p&gt;Het vorige artikel, &lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;, schetst een methode om verbindingen van het publieke internet te aanvaarden en voorziet in eenvoudige login en wachtwoordautorisatie. In dit geval willen we een andere universele methode demonstreren voor het doorsturen van poorten via een SSH-verbinding. We gebruiken PuTTY om een beveiligde verbinding op te zetten met de externe server. Je kunt hier meer informatie over vinden in onze gids &lt;a href=&quot;https://www.leadergpu.nl/articles/488-maak-verbinding-met-een-linux-server&quot;&gt;Verbinding maken met een Linux server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Om te kiezen welke poorten u wilt doorsturen, opent u &lt;b translate=&quot;no&quot;&gt;Connection &gt; SSH &gt; Tunnels&lt;/b&gt; in de linker optiestructuur. Typ &lt;b translate=&quot;no&quot;&gt;9000&lt;/b&gt; in het veld &lt;b translate=&quot;no&quot;&gt;Source Port&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;127.0.0.1:9000&lt;/b&gt; in het veld &lt;b translate=&quot;no&quot;&gt;Destination&lt;/b&gt;. Klik vervolgens op de knop &lt;b translate=&quot;no&quot;&gt;Add&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/823/original/sh_easy_diffusion_ui_1.png?1712299445&quot; alt=&quot;Port forwarding in PuTTY&quot;&gt;
&lt;p&gt;Daarna kun je terugkeren naar &lt;b translate=&quot;no&quot;&gt;Session&lt;/b&gt; en het opslaan voor later gebruik. Maak zoals gewoonlijk verbinding met de externe server. Nu worden alle gegevens die je verstuurt of ontvangt op poort 9000 op het loopback adres 127.0.0.1 omgeleid naar de externe server. Deze methode creëert een virtuele beveiligde tunnel die bestaat zolang de verbinding bestaat.&lt;/p&gt;
&lt;p&gt;Zodra Easy Diffusion UI opstart en port forwarding is ingeschakeld, kunt u een webbrowser openen en naar het adres &lt;a href=&quot;http://127.0.0.1:9000&quot;&gt;http://127.0.0.1:9000&lt;/a&gt; navigeren. We raden aan om aangepaste modellen te downloaden en te installeren, zoals beschreven in dit artikel, in plaats van alleen te vertrouwen op het standaardmodel om afbeeldingen te genereren. Vergeet niet het aantal inferentiestappen te verhogen en de gewenste beeldresolutie aan te passen (aangegeven met sterretjes).&lt;/p&gt;
&lt;p&gt;Een van de grote voordelen van de Easy Diffusion UI is de ondersteuning voor meerdere GPU&#39;s. Als u een batch afbeeldingen wilt maken, kunt u kiezen hoeveel afbeeldingen parallel worden gemaakt. Als u bijvoorbeeld een configuratie met twee GPU&#39;s hebt:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/824/original/sh_easy_diffusion_ui_2.png?1712299546&quot; alt=&quot;Easy Diffusion UI change threads number&quot;&gt;
&lt;p&gt;Je kunt de belasting van de GPU weergeven tijdens het genereren van de image. Maak een andere SSH-verbinding en voer een enkel commando uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;watch -n 1 nvidia-smi&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/825/original/sh_easy_diffusion_ui_3.png?1712299806&quot; alt=&quot;nvidia-smi two threads&quot;&gt;
&lt;p&gt;Bovendien vereenvoudigt Easy Diffusion UI het maken van prompts omdat het talloze voorbeelden van beeldmodifiers biedt. U kunt ze mengen om nauwkeurigere resultaten te krijgen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/826/original/sh_easy_diffusion_ui_4.png?1712299873&quot; alt=&quot;Image modifiers&quot;&gt;
&lt;p&gt;Het is een goed idee om &lt;a href=&quot;https://openart.ai/promptbook&quot;&gt;PromptBook van OpenArt&lt;/a&gt; te verkennen. Deze gids kan je vaardigheden om prompts te maken aanzienlijk verbeteren. Met de Easy Diffusion UI kun je, zodra de afbeelding is gegenereerd, deze downloaden, gebruiken als voorbeeld voor het genereren van de volgende afbeelding, of wijzigingen aanbrengen met slechts één klik:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/827/original/sh_easy_diffusion_ui_5.png?1712299912&quot; alt=&quot;Control elements&quot;&gt;
&lt;p&gt;Het meest gebruikte gebruik van de &lt;b translate=&quot;no&quot;&gt;Upscale&lt;/b&gt; knop is om de resolutie van een afbeelding te verhogen. Het generatieve neurale netwerk gebruikt de originele afbeelding als basis en voegt extra pixels toe, waardoor de bronafbeelding wordt geïnterpoleerd naar de gewenste grootte.&lt;/p&gt;
&lt;p&gt;Bij het genereren van gezichten kunnen problemen ontstaan zoals verkeerd uitgelijnde ogen, onevenredige afmetingen of misvormde delen. Gelukkig kunnen deze problemen worden opgelost met de knop &lt;b translate=&quot;no&quot;&gt;Fix Faces&lt;/b&gt;. Daarnaast kunnen negatieve aanwijzingen worden gebruikt om te voorkomen dat er onjuiste gezichten worden gegenereerd.&lt;/p&gt;
&lt;h2&gt;verwijderen&lt;/h2&gt;
&lt;p&gt;Alle bestanden, scripts, bibliotheken en modellen worden opgeslagen in een enkele map. Als u Easy Diffusion UI van uw server wilt verwijderen, verwijdert u gewoon deze map samen met alle inhoud:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo rm -rf easy-diffusion&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot;&gt;Open WebUI: Alles in één&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/590-fooocus-heroverweging-van-sd-en-mj&quot;&gt;Fooocus: Heroverweging van SD en MJ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/822/original/il_easy_diffusion_ui.jpg?1712299313"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 12:13:37 +0100</pubDate>
      <guid isPermaLink="false">598</guid>
      <dc:date>2025-01-22 12:13:37 +0100</dc:date>
    </item>
    <item>
      <title>Stable Video Diffusion</title>
      <link>https://www.leadergpu.nl/catalog/597-stable-video-diffusion</link>
      <description>&lt;p&gt;Generatieve neurale netwerken kunnen verschillende soorten inhoud creëren. Stable Diffusion is gemaakt om afbeeldingen te genereren uit tekstbeschrijvingen. Het kan echter ook worden gebruikt om muziek, geluiden en zelfs video&#39;s te maken. Vandaag laten we zien hoe je korte video&#39;s kunt maken van een enkele afbeelding met behulp van Stable Diffusion met WebUI en ComfyUI.&lt;/p&gt;
&lt;h2&gt;Stable Diffusion installeren&lt;/h2&gt;
&lt;p&gt;Laten we beginnen met het installeren van Stable Diffusion met behulp van onze &lt;a href=&quot;https://www.leadergpu.com/articles/506-stable-diffusion-webui&quot;&gt;stap-voor-stap handleiding&lt;/a&gt;. Onderbreek na de installatie de uitvoering van het &lt;b translate=&quot;no&quot;&gt;webui.sh&lt;/b&gt; script door op Ctrl + C te drukken en sluit de SSH-verbinding. Het systeem staat niet toe dat u extensies installeert met de ingeschakelde --listen (--share) opties. Dit betekent dat je port forwarding (7860 en 8189) moet instellen van je lokale machine naar de remote server. De eerste poort is nodig voor WebUI en de tweede voor ComfyUI.&lt;/p&gt;
&lt;p&gt;In PuTTY moet je bijvoorbeeld &lt;b translate=&quot;no&quot;&gt;Connection &gt;&gt; SSH &gt;&gt; Tunnels&lt;/b&gt; openen en twee nieuwe doorgestuurde poorten toevoegen zoals in de volgende schermafbeelding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/954/original/sh_stable_video_diffusion_1.png?1714024360&quot; alt=&quot;PuTTY port forwarding&quot;&gt;
&lt;p&gt;Nu kunt u opnieuw verbinding maken met de externe server en ./webui.sh opnieuw uitvoeren.&lt;/p&gt;
&lt;p&gt;Open deze URL in uw browser:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;http://127.0.0.1:7860&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Navigeer naar &lt;b translate=&quot;no&quot;&gt;Extensions &gt;&gt; Available&lt;/b&gt; en klik vervolgens op de knop &lt;b translate=&quot;no&quot;&gt;Load from:&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/955/original/sh_stable_video_diffusion_2.png?1714024393&quot; alt=&quot;Load available extensions&quot;&gt;
&lt;p&gt;Het systeem zal het JSON-bestand downloaden met alle beschikbare extensies. Typ &lt;b translate=&quot;no&quot;&gt;ComfyUI&lt;/b&gt; in het zoekinvoervak en klik op de knop &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/956/original/sh_stable_video_diffusion_3.png?1714024430&quot; alt=&quot;Download ComfyUI&quot;&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/957/original/sh_stable_video_diffusion_4.png?1714024463&quot; alt=&quot;Reload UI&quot;&gt;
&lt;p&gt;De webpagina wordt opnieuw geladen en je krijgt een nieuw tabblad &lt;b translate=&quot;no&quot;&gt;ComfyUI&lt;/b&gt; in het hoofdpaneel. Ga daarheen en klik op &lt;b translate=&quot;no&quot;&gt;Install ComfyUI&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/958/original/sh_stable_video_diffusion_5.png?1714024493&quot; alt=&quot;Install ComfyUI&quot;&gt;
&lt;p&gt;Als de installatie voltooid is, onderbreek dan opnieuw de uitvoering van het webui.sh script door op &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt; te drukken.&lt;/p&gt;
&lt;h2&gt;Stabiel videoverspreidingsmodel installeren&lt;/h2&gt;
&lt;p&gt;Open de map van het model:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd stable-diffusion-webui/models/Stable-diffusion/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download het volledige Stable Video Diffusion-model:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -L https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors?download=true --output svd_xt.safetensors&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Terug naar de homedirectory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En start de Stable Diffusion service opnieuw:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download het &lt;a href=&quot;https://github.com/enikolair/comfyui-workflow-svd/blob/main/workflow.json&quot;&gt;voorbeeld&lt;/a&gt; van de Stable Video Diffusion-workflow in JSON-formaat. Wis de standaardworkflow van ComfyUI door te drukken op &lt;b translate=&quot;no&quot;&gt;Clear&lt;/b&gt; en vervolgens op &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt; het gedownloade voorbeeld:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/959/original/sh_stable_video_diffusion_6.png?1714024532&quot; alt=&quot;ComfyUI workflow example&quot;&gt;
&lt;p&gt;Zorg ervoor dat u het juiste model hebt geselecteerd in het knooppunt &lt;b translate=&quot;no&quot;&gt;Image Only Checkpoint Loader (img2vid model)&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/960/original/sh_stable_video_diffusion_7.png?1714024570&quot; alt=&quot;Select CKPT model&quot;&gt;
&lt;p&gt;Klik op de knop &lt;b translate=&quot;no&quot;&gt;choose file to upload&lt;/b&gt; in het knooppunt &lt;b translate=&quot;no&quot;&gt;Load Image&lt;/b&gt; en selecteer een enkele afbeelding die het generatieve neurale netwerk moet transformeren in een video:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/961/original/sh_stable_video_diffusion_8.png?1714024606&quot; alt=&quot;Upload an image to ComfyUI&quot;&gt;
&lt;p&gt;Probeer een video te genereren met alle standaardparameters door op de knop &lt;b translate=&quot;no&quot;&gt;Queue Prompt&lt;/b&gt; te klikken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/962/original/sh_stable_video_diffusion_9.png?1714024638&quot; alt=&quot;Send task to queue&quot;&gt;
&lt;p&gt;Nadat het proces is voltooid, krijg je je video in WEBP-indeling in het knooppunt &lt;b translate=&quot;no&quot;&gt;SaveAnimatedWEBP&lt;/b&gt;. Klik met de rechtermuisknop op de gegenereerde video en kies &lt;b translate=&quot;no&quot;&gt;Save Image&lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;Hier is het &lt;a href=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/963/original/sh_stable_video_diffusion_10.gif?1714024668&quot;&gt;uiteindelijke resultaat GIF&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Problemen oplossen&lt;/h2&gt;
&lt;p&gt;Als je een foutmelding krijgt: &lt;b translate=&quot;no&quot;&gt;ModuleNotFoundError: No module named &#39;utils.json_util&#39;; &#39;utils&#39; is not a package&lt;/b&gt;, volg dan deze stappen:&lt;/p&gt;
&lt;p&gt;Hernoem de map utils naar utilities:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mv /home/usergpu/stable-diffusion-webui/extensions/sd-webui-comfyui/ComfyUI/utils /home/usergpu/stable-diffusion-webui/extensions/sd-webui-comfyui/ComfyUI/utilities&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bewerk &lt;b translate=&quot;no&quot;&gt;custom_node_manager.py&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano /home/usergpu/stable-diffusion-webui/extensions/sd-webui-comfyui/ComfyUI/app/custom_node_manager.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vervang deze regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;from utils.json_util import merge_json_recursive&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;met:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;from utilities.json_util import merge_json_recursive&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op (&lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt;) en sluit de editor af (&lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;). Bewerk vervolgens &lt;b translate=&quot;no&quot;&gt;main.py&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano /home/usergpu/stable-diffusion-webui/extensions/sd-webui-comfyui/ComfyUI/main.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vervang deze regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;import utils.extra_config&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;met:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot;&gt;import utilities.extra_config&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op, sluit de editor af en start de Stable Diffusion-service opnieuw:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion&quot;&gt;Stable Diffusion: Riffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/604-audiocraft-van-metaai-muziek-maken-op-basis-van-beschrijving&quot;&gt;AudioCraft van MetaAI: muziek maken op basis van beschrijving&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/953/original/il_stable_video_diffusion.png?1714024295"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 11:53:04 +0100</pubDate>
      <guid isPermaLink="false">597</guid>
      <dc:date>2025-01-22 11:53:04 +0100</dc:date>
    </item>
    <item>
      <title>PyTorch voor Windows</title>
      <link>https://www.leadergpu.nl/catalog/596-pytorch-voor-windows</link>
      <description>&lt;p&gt;Voordat u begint met de installatie van PyTorch, moet u de Python-interpreter en Microsoft Visual C++ Redistributable installeren. Open een webbrowser en navigeer naar de &lt;a href=&quot;https://www.python.org/downloads/windows/&quot;&gt;downloadpagina&lt;/a&gt; van Python. Zoek de nieuwste Python 3 versie en klik op de link:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/828/original/sh_pytorch_for_windows_1.png?1712305722&quot; alt=&quot;Download Python release&quot;&gt;
&lt;p&gt;Scroll vervolgens naar beneden en klik op &lt;b translate=&quot;no&quot;&gt;Windows Installer (64-bit)&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/829/original/sh_pytorch_for_windows_2.png?1712305818&quot; alt=&quot;Select binary&quot;&gt;
&lt;p&gt;Open het gedownloade bestand om verder te gaan met de installatie:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/830/original/sh_pytorch_for_windows_3.png?1712306001&quot; alt=&quot;Run the installer&quot;&gt;
&lt;p&gt;Vink het vakje voor &lt;b translate=&quot;no&quot;&gt;Add python.exe to PATH&lt;/b&gt; aan en klik op &lt;b translate=&quot;no&quot;&gt;Install Now&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/831/original/sh_pytorch_for_windows_4.png?1712306095&quot; alt=&quot;Select Install Now and Add to PATH&quot;&gt;
&lt;p&gt;Wacht een minuut tot het installatieproces is voltooid:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/832/original/sh_pytorch_for_windows_5.png?1712314249&quot; alt=&quot;Python setup process&quot;&gt;
&lt;p&gt;U kunt optioneel &lt;b translate=&quot;no&quot;&gt;Disable path length limit&lt;/b&gt; als u van plan bent lange namen te gebruiken die de limieten van &lt;b translate=&quot;no&quot;&gt;MAX_PATH&lt;/b&gt; zouden kunnen overschrijden:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/833/original/sh_pytorch_for_windows_6.png?1712314332&quot; alt=&quot;Python setup complete&quot;&gt;
&lt;h2&gt;MS Visual C++ installeren&lt;/h2&gt;
&lt;p&gt;Download vervolgens Microsoft Visual C++ Redistributable via &lt;a href=&quot;https://aka.ms/vs/16/release/vc_redist.x64.exe&quot;&gt;deze link&lt;/a&gt; en klik op het installatieprogramma:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/834/original/sh_pytorch_for_windows_7.png?1712314944&quot; alt=&quot;Run Microsoft visual C++ redistributable installer&quot;&gt;
&lt;p&gt;U moet het vakje &lt;b translate=&quot;no&quot;&gt;I agree to the license terms and conditions&lt;/b&gt; aanvinken en op de knop &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt; klikken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/835/original/sh_pytorch_for_windows_8.png?1712315044&quot; alt=&quot;Visual C++ accept EULA&quot;&gt;
&lt;p&gt;Na enkele seconden wordt deze software geïnstalleerd en kunt u het installatieprogramma &lt;b translate=&quot;no&quot;&gt;Close&lt;/b&gt; gebruiken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/836/original/sh_pytorch_for_windows_9.png?1712315122&quot; alt=&quot;Visual C++ installation complete&quot;&gt;
&lt;p&gt;Nu is alles klaar voor de installatie van PyTorch. Klik op de &lt;b translate=&quot;no&quot;&gt;Start&lt;/b&gt; knop en typ &lt;b translate=&quot;no&quot;&gt;cmd&lt;/b&gt; op het toetsenbord. Klik met de rechtermuisknop op &lt;b translate=&quot;no&quot;&gt;Command Prompt&lt;/b&gt; en selecteer &lt;b translate=&quot;no&quot;&gt;Run as administrator&lt;/b&gt; in het contextmenu:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/837/original/sh_pytorch_for_windows_10.png?1712315294&quot; alt=&quot;PyTorch install using PIP&quot;&gt;
&lt;h2&gt;PyTorch installeren&lt;/h2&gt;
&lt;p&gt;Voer het volgende commando uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;pip install torch torchvision&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als u een specifieke versie van PyTorch wilt installeren, kunt u deze tijdens de installatie opgeven:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;pip install torch==1.9.0 torchvision==0.10.0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als de installatie is voltooid, laten we controleren of PyTorch goed werkt. Voer het volgende commando uit om de Python-interpreter te openen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;python&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Typ deze twee strings en eindig uw invoer met de toets &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;import torch
print(torch.__version__)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als u een resultaat als dit krijgt, betekent dit dat PyTorch correct is geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;2.0.1+cu117&lt;/pre&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/595-pytorch-voor-linux&quot;&gt;PyTorch voor Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/581-privategpt-ai-voor-documenten&quot;&gt;PrivateGPT: AI voor documenten&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot;&gt;Open WebUI: Alles in één&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/114/original/il_pytorch_for_windows.png?1737541812"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 11:35:30 +0100</pubDate>
      <guid isPermaLink="false">596</guid>
      <dc:date>2025-01-22 11:35:30 +0100</dc:date>
    </item>
    <item>
      <title>PyTorch voor Linux</title>
      <link>https://www.leadergpu.nl/catalog/595-pytorch-voor-linux</link>
      <description>&lt;p&gt;Moderne Linux-distributies zijn sterk afhankelijk van de geïnstalleerde versie van Python. Daarom raden we aan om, voordat je PyTorch installeert, een virtuele omgeving aan te maken met behulp van onze stap-voor-stap handleiding &lt;a href=&quot;https://www.leadergpu.nl/articles/510-linux-systeemhulpprogramma-s&quot;&gt;Linux systeemhulpprogramma&#39;s&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Activeer de aangemaakte venv en ga verder met de pip3 upgrade:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip3 install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de PyTorch installatie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip3 install torch torchvision&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als u een specifieke versie van PyTorch wilt installeren, typ dan het gewenste versienummer in:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip3 install torch==1.9.0 torchvision==0.10.0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als de installatie is voltooid, laten we controleren of PyTorch correct is geïnstalleerd. Open de Python-interpreter:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;python3&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Typ deze twee strings en eindig uw invoer met de Enter-toets:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;import torch
print(torch.__version__)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als u een resultaat als dit krijgt, betekent dit dat PyTorch correct is geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;2.0.1+cu117&lt;/pre&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/596-pytorch-voor-windows&quot;&gt;PyTorch voor Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/601-low-code-ai-app-bouwer-langflow&quot;&gt;Low-code AI-app bouwer Langflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/604-audiocraft-van-metaai-muziek-maken-op-basis-van-beschrijving&quot;&gt;AudioCraft van MetaAI: muziek maken op basis van beschrijving&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/113/original/il_pytorch_for_linux.png?1737536957"
        length="0"
        type="image/jpeg"/>
      <pubDate>Wed, 22 Jan 2025 10:14:16 +0100</pubDate>
      <guid isPermaLink="false">595</guid>
      <dc:date>2025-01-22 10:14:16 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion: Riffusion</title>
      <link>https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion</link>
      <description>&lt;p&gt;In onze vorige artikelen hebben we de fascinerende mogelijkheden van Stable Diffusion voor het genereren van boeiende afbeeldingen onderzocht. Het is echter belangrijk om op te merken dat dit krachtige generatieve neurale netwerk nog meer te bieden heeft.&lt;/p&gt;
&lt;p&gt;Riffusion is een Stable Diffusion-model voor het maken en bewerken van muziek. Met Riffusion kun je een spectrogram genereren van een gewenst muzieksegment en dit moeiteloos omzetten in een muziekfragment. Laten we Riffusion installeren op een LeaderGPU server en het in actie proberen.&lt;/p&gt;
&lt;h2&gt;Vereisten&lt;/h2&gt;
&lt;p&gt;Begin met het bijwerken van de pakketcache repository en geïnstalleerde pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vergeet niet de Nvidia-stuurprogramma&#39;s te installeren met de opdracht &lt;b translate=&quot;no&quot;&gt;autoinstall&lt;/b&gt; of handmatig met behulp van onze &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;stapsgewijze&lt;/a&gt; handleiding:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om een virtuele omgeving te creëren, raden ontwikkelaars aan om het hulpprogramma Anaconda te gebruiken. Je kunt ook venv gebruiken, dat we hebben besproken in de tutorial over Linux systeemhulpprogramma&#39;s. Download het installatiescript van Anaconda met behulp van curl:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl --output anaconda.sh https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak het uitvoerbaar:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;chmod +x anaconda.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./anaconda.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Antwoord JA op alle vragen, behalve de laatste (installeer Microsoft VSCode). Log dan opnieuw in op de SSH-console en maak een nieuwe virtuele omgeving met Python v3.9:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda create --name riffusion python=3.9&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Activeer de nieuwe virtuele omgeving:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda activate riffusion&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je andere muziekformaten dan wav wilt gebruiken, moet je ook de FFmpeg-bibliotheekset installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda install -c conda-forge ffmpeg&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Riffusion installeren&lt;/h2&gt;
&lt;p&gt;Kloon de Riffusion opslagplaats:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/riffusion/riffusion.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd riffusion&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we enkele wijzigingen aanbrengen in het bestand met vereisten. Dit voorkomt fouten met compatibiliteit met torch:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pakketversies zoeken en herstellen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;diffusers==0.9.0
torchaudio==2.0.1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla de wijzigingen op en ga verder met het voorbereiden van een virtuele omgeving. Het volgende commando installeert alle benodigde pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python -m pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tot slot kunt u een &quot;speeltuin&quot; openen. Dit is een eenvoudige webinterface waarmee je meer kunt leren over de functies van Riffusion:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python -m riffusion.streamlit.playground&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open uw favoriete browser en voer het adres in &lt;b translate=&quot;no&quot;&gt;http://[SERVER_IP]:8501/&lt;/b&gt;&lt;/p&gt;
&lt;h2&gt;Test een speelplaats&lt;/h2&gt;
&lt;p&gt;Nu kun je muziek maken met behulp van tekstprompts en door de andere parameters te wijzigen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/913/original/sh_stable_diffusion_riffusion_1.png?1713769543&quot; alt=&quot;Text to audio prompt line&quot;&gt;
&lt;p&gt;Je kunt ook wat lastige dingen doen, zoals audio opsplitsen in afzonderlijke componenten. Je kunt bijvoorbeeld de zang uit Bohemian rhapsody van Queen halen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/914/original/sh_stable_diffusion_riffusion_2.png?1713769583&quot; alt=&quot;Generated results&quot;&gt;
&lt;p&gt;Onthoud dat dit slechts een enkel voorbeeld is van hoe Riffusion gebruikt kan worden. Door je eigen toepassing te maken, kun je veel boeiendere resultaten bereiken. Krachtige servers van LeaderGPU zorgen voor de berekeningen.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/604-audiocraft-van-metaai-muziek-maken-op-basis-van-beschrijving&quot;&gt;AudioCraft van MetaAI: muziek maken op basis van beschrijving&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/912/original/il_stable_diffusion_riffusion.png?1713769486"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 14:12:29 +0100</pubDate>
      <guid isPermaLink="false">594</guid>
      <dc:date>2025-01-21 14:12:29 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion: Herhaalbare gezichten genereren</title>
      <link>https://www.leadergpu.nl/catalog/593-stable-diffusion-herhaalbare-gezichten-genereren</link>
      <description>&lt;p&gt;Herhaalbaarheid is het belangrijkste aspect bij het maken van grafische inhoud met generatieve neurale netwerken. Dit geldt ongeacht het type content dat je maakt, of het nu een film- of gamekarakter, landschap of scèneomgeving is. Het belangrijkste probleem kan worden geformuleerd als: &quot;Hoe kan ik mijn resultaat herhalen?&quot;. Telkens als je beelden begint te genereren met dezelfde positieve en negatieve aanwijzingen, krijg je verschillende resultaten. Soms zijn de verschillen klein en acceptabel, maar in de meeste gevallen kunnen ze een probleem vormen.&lt;/p&gt;
&lt;p&gt;Stable Diffusion is geleerd op een grote dataset uit de echte wereld, wat verklaart waarom herhaalbaarheid geen sterk punt is van dit neurale netwerkmodel. Deze regel geldt echter niet voor foto&#39;s van beroemdheden. Deze foto&#39;s komen veel vaker voor in de echte wereld en dus ook in de dataset waarop Stable Diffusion is getraind. Je kunt deze foto&#39;s gebruiken als een &quot;constante&quot; of een &quot;startpunt&quot; in het generatieproces.&lt;/p&gt;
&lt;h2&gt;Methode 1. &quot;Geschud, niet geroerd&lt;/h2&gt;
&lt;p&gt;Je hoeft natuurlijk niet alleen afbeeldingen van beroemdheden te maken, maar je kunt meerdere relevante aanwijzingen gebruiken om min of meer consistente resultaten te krijgen. We kunnen bijvoorbeeld twee beroemde Griekse zangeressen nemen: Elena Paparizou en Marina Satti, en herhaalbare resultaten krijgen:&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Model&lt;/b&gt;: &lt;a href=&quot;https://civitai.com/models/4201/realistic-vision-v60-b1&quot;&gt;Realistische visie v6.0 beta 1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Positive prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;Elena Paparizou, Marina Satti, fashion portrait, alone, solo, greek woman in beautiful clothes, natural skin, 8k uhd, high quality, film grain, Canon EOS&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Negative prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;bad anatomy, bad hands, three hands, three legs, bad arms, missing legs, missing arms, poorly drawn face, bad face, fused face, cloned face, worst face, three crus, extra crus, fused crus, worst feet, three feet, fused feet, fused thigh, three thigh, fused thigh, extra thigh, worst thigh, missing fingers, extra fingers, ugly fingers, long fingers, horn, extra eyes, huge eyes, 2girl, amputation, disconnected limbs, cartoon, cg, 3d, unreal, animate, nsfw, nude, censored&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/934/original/sh_stable_diffusion_generate_repeatable_faces_1.png?1713873195&quot; alt=&quot;Greek singer generated&quot;&gt;
&lt;p&gt;Het werkt met alle beroemdheden, omdat Stable Diffusion probeerde de meest prominente gelaatstrekken te reproduceren. Hier gebruiken we hetzelfde model en &quot;schudden&quot; we twee Hollywoodsterren (Dwayne Johnson en Danny Trejo) tot één nieuw synthetisch personage.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Positive prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;Dwayne Johnson, Danny Trejo, fashion portrait, alone, solo, 8k uhd, high quality, film grain, Canon EOS&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Negative prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;bad anatomy, bad hands, three hands, three legs, bad arms, missing legs, missing arms, poorly drawn face, bad face, fused face, cloned face, worst face, three crus, extra crus, fused crus, worst feet, three feet, fused feet, fused thigh, three thigh, fused thigh, extra thigh, worst thigh, missing fingers, extra fingers, ugly fingers, long fingers, horn, extra eyes, huge eyes, amputation, disconnected limbs, cartoon, cg, 3d, unreal, animate, nsfw, nude, censored&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/935/original/sh_stable_diffusion_generate_repeatable_faces_2.png?1713873232&quot; alt=&quot;Hollywood stars generated&quot;&gt;
&lt;p&gt;Elke keer dat je dezelfde beroemdheden mengt, krijg je soortgelijke resultaten. Laten we eens kijken naar een andere methode om herhaalbare karakters te genereren.&lt;/p&gt;
&lt;h2&gt;Methode 2. Naam anker&lt;/h2&gt;
&lt;p&gt;Beroemdheden zijn een goed begin, maar laten we eens kijken naar andere methoden om herhaalbare resultaten te krijgen. Het antwoord is heel eenvoudig: we kunnen meerdere menselijke namen gebruiken. Elk land heeft unieke namen, gerelateerd aan taalkundige kenmerken. De Griekse naam Kostas kan bijvoorbeeld vertaald worden naar &quot;arbeid&quot; of &quot;inspanning&quot;, terwijl Nikos &quot;Overwinning van het volk&quot; betekent. Deze twee namen creëren een uniek beeld van een gegenereerd persoon, wat neurale netwerkmodellen helpt bij het begrijpen van onze creatiedoelen.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Positive prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;Portrait of [Kostas | Nikos] on a white background, greek man, short haircut, beard&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;Negative prompts:&lt;/b&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;woman, bad anatomy, bad hands, three hands, three legs, bad arms, missing legs, missing arms, poorly drawn face, bad face, fused face, cloned face, worst face, three crus, extra crus, fused crus, worst feet, three feet, fused feet, fused thigh, three thigh, fused thigh, extra thigh, worst thigh, missing fingers, extra fingers, ugly fingers, long fingers, horn, extra eyes, huge eyes, 2girl, amputation, disconnected limbs, cartoon, cg, 3d, unreal, animate, nsfw, nude, censored&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/936/original/sh_stable_diffusion_generate_repeatable_faces_3.png?1713873262&quot; alt=&quot;Greek person generated&quot;&gt;
&lt;p&gt;Laten we een groot aantal afbeeldingen (80-100) genereren om verdere datasets te maken. De belangrijkste prompt werd gekozen om handige afbeeldingen te leveren die gemakkelijk van de achtergrond kunnen worden verwijderd. Negatieve prompts beschermen ons tegen het opnemen van willekeurige afbeeldingen met vervormingen in de dataset, evenals afbeeldingen van vrouwen.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Tip: als je erg verschillende afbeeldingen ontvangt, probeer dan de parameter CFG Scale te veranderen van 7,5 naar 15. Dit dwingt het neurale netwerk om de afbeeldingen te vergelijken. Dit zal het neurale netwerk dwingen om de aanwijzingen formeler te volgen.&lt;/i&gt;&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/937/original/sh_stable_diffusion_generate_repeatable_faces_4.png?1713873299&quot; alt=&quot;Greek person dataset&quot;&gt;
&lt;p&gt;Je kunt je eigen unieke namen kiezen met een eenvoudige naamgenerator, zoals &lt;a href=&quot;https://www.behindthename.com/names/list&quot;&gt;Behind the Name&lt;/a&gt;. Je kunt ook de ControlNet functie gebruiken om meer controle te krijgen.&lt;/p&gt;
&lt;h2&gt;Methode 3. Uiterlijk aanleren&lt;/h2&gt;
&lt;p&gt;We kunnen het eindresultaat niet direct beïnvloeden, maar we zien dat sommige tokens (zoals tokens met afbeeldingen van beroemdheden) zwaarder wegen dan andere. Dit betekent dat we ons voorwaardelijke &quot;beroemdheid&quot; token kunnen creëren door er een passende prompt voor te maken en het model hierop verder te trainen. Dit is hoe LoRA (Low-Rank Adaptation of Large Language Models) werkt. Je kunt &lt;a href=&quot;https://www.leadergpu.nl/articles/592-stable-diffusion-lora-selfie&quot;&gt;onze stapsgewijze handleiding&lt;/a&gt; gebruiken om je eigen LoRA-model te trainen op basis van een zelfgemaakte dataset.&lt;/p&gt;
&lt;p&gt;Nadat we de achtergrond hebben verwijderd, verkrijgen we duidelijke portretten en gebruiken die om een specifiek LoRA-model te maken. Dit model helpt om een gezicht na te bootsen met een paar kleine veranderingen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/938/original/sh_stable_diffusion_generate_repeatable_faces_5.png?1713873334
&quot; alt=&quot;Dataset without background&quot;&gt;
&lt;p&gt;Nu kunnen we dit personage op verschillende locaties genereren, verhalen creëren en hem in verschillende rollen plaatsen: van tuinman tot zakenman. Zijn gezicht zal consistent herkenbaar en herhaalbaar zijn:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/939/original/sh_stable_diffusion_generate_repeatable_faces_6.png?1713873384&quot; alt=&quot;Greek person with various backgrounds&quot;&gt;
&lt;p&gt;Deze methode is niet ideaal, maar werkt perfect in verschillende situaties. Je hoeft geen dataset van een echt persoon voor te bereiden en het kan op afstand worden gegenereerd:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/940/original/sh_stable_diffusion_generate_repeatable_faces_7.jpg?1713873419&quot; alt=&quot;Greek person generated result&quot;&gt;
&lt;p&gt;Je kunt proberen om zelf zo&#39;n virtueel personage te maken, zonder de hulp van een professionele ontwerper of 3D-modelleringsspecialist. Alles wat u nodig hebt zijn snelle GPU&#39;s, die u kunt vinden in dedicated servers van &lt;a href=&quot;https://www.leadergpu.nl/&quot;&gt;LeaderGPU&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion&quot;&gt;Stable Diffusion: Riffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/933/original/il_stable_diffusion_generate_repeatable_faces.jpg?1713873147"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 13:51:05 +0100</pubDate>
      <guid isPermaLink="false">593</guid>
      <dc:date>2025-01-21 13:51:05 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion: LoRA selfie</title>
      <link>https://www.leadergpu.nl/catalog/592-stable-diffusion-lora-selfie</link>
      <description>&lt;p&gt;Je kunt je eerste dataset maken met een eenvoudige camera en een vrij uniforme achtergrond, zoals een witte muur of een monotoon verduisteringsgordijn. Voor een voorbeeld dataset heb ik een spiegelloze camera Olympus OM-D EM5 Mark II met 14-42 kitlenzen gebruikt. Deze camera ondersteunt afstandsbediening vanaf elke smartphone en een zeer snelle continue opnamemodus.&lt;/p&gt;
&lt;p&gt;Ik heb de camera op een statief gemonteerd en de scherpstelprioriteit ingesteld op gezicht. Daarna selecteerde ik de modus waarin de camera elke 3 seconden 10 frames achter elkaar vastlegt en startte het proces. Tijdens het fotograferen draaide ik mijn hoofd langzaam in de geselecteerde richting en veranderde na elke 10 beelden van richting:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/916/original/sh_stable_diffusion_lora_selfie_1.jpg?1713785705&quot; alt=&quot;Face directions&quot;&gt;
&lt;p&gt;Het resultaat was ongeveer 100 frames met een monotone achtergrond:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/917/original/sh_stable_diffusion_lora_selfie_2.png?1713785735&quot; alt=&quot;Photos with background&quot;&gt;
&lt;p&gt;De volgende stap is om de achtergrond te verwijderen en het portret op een witte achtergrond te laten staan.&lt;/p&gt;
&lt;h2&gt;Achtergrond verwijderen&lt;/h2&gt;
&lt;p&gt;Je kunt de standaard Adobe Photoshop &lt;b translate=&quot;no&quot;&gt;Remove background&lt;/b&gt; functie en batchverwerking gebruiken. Laten we acties opslaan die we op elke foto in een dataset willen toepassen. Open een willekeurige afbeelding, klik op het driehoekpictogram en vervolgens op het &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt; symbool:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/918/original/sh_stable_diffusion_lora_selfie_3.png?1713785770&quot; alt=&quot;Create new PS action&quot;&gt;
&lt;p&gt;Typ de naam van de nieuwe actie, bijvoorbeeld &lt;b translate=&quot;no&quot;&gt;Remove Background&lt;/b&gt; en klik op &lt;b translate=&quot;no&quot;&gt;Record&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/919/original/sh_stable_diffusion_lora_selfie_4.png?1713785802&quot; alt=&quot;Type the name of action&quot;&gt;
&lt;p&gt;Zoek op het tabblad &lt;b translate=&quot;no&quot;&gt;Layers&lt;/b&gt; het slotsymbool en klik erop:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/920/original/sh_stable_diffusion_lora_selfie_5.png?1713785831&quot; alt=&quot;Lock the layer&quot;&gt;
&lt;p&gt;Klik vervolgens op de knop &lt;b translate=&quot;no&quot;&gt;Remove background&lt;/b&gt; op het zwevende paneel:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/921/original/sh_stable_diffusion_lora_selfie_6.png?1713785977&quot; alt=&quot;Click remove background&quot;&gt;
&lt;p&gt;Klik met de rechtermuisknop op &lt;b translate=&quot;no&quot;&gt;Layer 0&lt;/b&gt; en selecteer &lt;b translate=&quot;no&quot;&gt;Flatten Image&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/922/original/sh_stable_diffusion_lora_selfie_7.png?1713786013&quot; alt=&quot;Select Flatten Image&quot;&gt;
&lt;p&gt;Al onze acties zijn opgenomen. Laten we dit proces stoppen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/923/original/sh_stable_diffusion_lora_selfie_8.png?1713786077&quot; alt=&quot;Stop action recording&quot;&gt;
&lt;p&gt;Nu kunt u het geopende bestand sluiten zonder de wijzigingen op te slaan en selecteert u &lt;b translate=&quot;no&quot;&gt;File &gt;&gt; Scripts &gt;&gt; Image Processor…&lt;/b&gt;&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/924/original/sh_stable_diffusion_lora_selfie_9.png?1713786112&quot; alt=&quot;Multiple image processor&quot;&gt;
&lt;p&gt;Selecteer de invoer- en uitvoermappen, kies de gemaakte &lt;b translate=&quot;no&quot;&gt;Remove Background&lt;/b&gt; actie in stap 4 en klik op &lt;b translate=&quot;no&quot;&gt;Run&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/925/original/sh_stable_diffusion_lora_selfie_10.png?1713786144&quot; alt=&quot;Image processor options&quot;&gt;
&lt;p&gt;Wees geduldig. Adobe Photoshop zal elke afbeelding in de geselecteerde map openen, de opgenomen acties herhalen (laagvergrendeling uitschakelen, achtergrond verwijderen, afbeelding afvlakken) en opslaan in een andere geselecteerde map. Dit proces kan een paar minuten duren, afhankelijk van het aantal afbeeldingen.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/926/original/sh_stable_diffusion_lora_selfie_11.png?1713786182&quot; alt=&quot;Photos without background&quot;&gt;
&lt;p&gt;Als het proces is voltooid, kun je naar de volgende stap gaan.&lt;/p&gt;
&lt;h2&gt;Uploaden naar server&lt;/h2&gt;
&lt;p&gt;Gebruik een van de volgende gidsen (aangepast aan het besturingssysteem van je pc) om de map &lt;b translate=&quot;no&quot;&gt;dataset&lt;/b&gt; te uploaden naar de externe server. Plaats deze bijvoorbeeld in de homedirectory van de standaardgebruiker, &lt;b translate=&quot;no&quot;&gt;/home/usergpu&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/494-bestandsuitwisseling-vanuit-linux&quot;&gt;Bestandsuitwisseling vanuit Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/495-bestandsuitwisseling-vanuit-windows&quot;&gt;Bestandsuitwisseling vanuit Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/496-bestandsuitwisseling-vanuit-macos&quot;&gt;Bestandsuitwisseling vanuit macOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pre-installatie&lt;/h2&gt;
&lt;p&gt;Werk bestaande systeempakketten bij:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer twee extra pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install -y python3-tk python3.10-venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we de CUDA® Toolkit versie 11.8 installeren. Laten we het specifieke pinbestand downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het volgende commando plaatst het gedownloade bestand in de systeemdirectory, die wordt beheerd door de &lt;b translate=&quot;no&quot;&gt;apt&lt;/b&gt; package manager:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende stap is het downloaden van de CUDA® repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ga daarna verder met de pakketinstallatie met het standaard hulpprogramma &lt;b translate=&quot;no&quot;&gt;dpkg&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer de GPG-sleutelring naar de systeemdirectory. Dit maakt het beschikbaar voor gebruik door besturingssysteemprogramma&#39;s, inclusief de apt package manager:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Update systeem cache repositories:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer de CUDA® toolkit met apt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get -y install cuda&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg CUDA® toe aan PATH. Open de bash shell config:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano ~/.bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de volgende regels toe aan het einde van het bestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en start de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Trainer installeren&lt;/h2&gt;
&lt;p&gt;Kopieer de repository van het Kohya project naar de server:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/bmaltais/kohya_ss.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd kohya_ss&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak het installatiescript uitvoerbaar:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;chmod +x ./setup.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./setup.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je krijgt een waarschuwing van het versnellingshulpprogramma. Laten we het probleem oplossen. Activeer de virtuele omgeving van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;source venv/bin/activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer het ontbrekende pakket:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install scipy&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En configureer het versnellingshulpprogramma handmatig:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;accelerate config&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wees voorzichtig, want het activeren van een oneven aantal CPU&#39;s zal een fout veroorzaken. Als ik bijvoorbeeld 5 GPU&#39;s heb, kunnen er maar 4 worden gebruikt met deze software. Anders zal er een fout optreden wanneer het proces start. Je kunt de nieuwe configuratie van het hulpprogramma onmiddellijk controleren door een standaardtest aan te roepen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;accelerate test&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als alles in orde is, krijg je een bericht als dit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Test is a success! You are ready for your distributed training!&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;deactivate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je de publieke server van de trainer starten met &lt;a href=&quot;https://www.gradio.app/&quot;&gt;Gradio GUI&lt;/a&gt; en eenvoudige login/wachtwoord authenticatie (verander de gebruiker/wachtwoord in je eigen):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./gui.sh --share --username user --password password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je ontvangt twee strings:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Running on local URL: http://127.0.0.1:7860
Running on public URL: https://&lt;random_numbers_and_letters&gt;.gradio.live&lt;/pre&gt;
&lt;p&gt;Open je webbrowser en voer de openbare URL in de adresbalk in. Typ je gebruikersnaam en wachtwoord in de daarvoor bestemde velden en klik op Aanmelden:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/927/original/sh_stable_diffusion_lora_selfie_12.png?1713786225&quot; alt=&quot;Login screen&quot;&gt;
&lt;h2&gt;Bereid de dataset voor&lt;/h2&gt;
&lt;p&gt;Maak eerst een nieuwe map aan waarin je het getrainde LoRA-model opslaat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;mkdir /home/usergpu/myloramodel&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de volgende tabbladen: &lt;b translate=&quot;no&quot;&gt;Utilities &gt;&gt; Captioning &gt;&gt; BLIP captioning&lt;/b&gt;. Vul de openingen in zoals aangegeven in de afbeelding en klik op &lt;b translate=&quot;no&quot;&gt;Caption images&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/928/original/sh_stable_diffusion_lora_selfie_13.png?1713786286&quot; alt=&quot;Set folders&quot;&gt;
&lt;p&gt;Trainer zal een specifiek neuraal netwerkmodel (1,6 Gb) downloaden en uitvoeren dat tekstaanwijzingen maakt voor elk afbeeldingsbestand in de geselecteerde map. Het wordt uitgevoerd op een enkele GPU en duurt ongeveer een minuut.&lt;/p&gt;
&lt;p&gt;Ga naar &lt;b translate=&quot;no&quot;&gt;LoRA &gt;&gt; Tools &gt;&gt; Dataset preparation &gt;&gt; Dreambooth/LoRA folder preparation&lt;/b&gt;, vul de gaten in en druk achtereenvolgens op &lt;b translate=&quot;no&quot;&gt;Prepare training data&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Copy info to Folders Tab&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/929/original/sh_stable_diffusion_lora_selfie_14.png?1713786320&quot; alt=&quot;Set options&quot;&gt;
&lt;p&gt;In dit voorbeeld gebruiken we de naam &lt;b translate=&quot;no&quot;&gt;nikolai&lt;/b&gt; als een &lt;b translate=&quot;no&quot;&gt;Instance prompt&lt;/b&gt; en &quot;person&quot; als een &lt;b translate=&quot;no&quot;&gt;Class prompt&lt;/b&gt;. We stellen ook &lt;b translate=&quot;no&quot;&gt;/home/usergpu/dataset&lt;/b&gt; in als een &lt;b translate=&quot;no&quot;&gt;Training Images&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;/home/usergpu/myloramodel&lt;/b&gt; als een &lt;b translate=&quot;no&quot;&gt;Destination training directory&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Ga opnieuw naar het tabblad &lt;b translate=&quot;no&quot;&gt;LoRA &gt;&gt; Training &gt;&gt; Folders&lt;/b&gt;. Controleer of de &lt;b translate=&quot;no&quot;&gt;Image folder&lt;/b&gt;, &lt;b translate=&quot;no&quot;&gt;Output folder&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Logging folder&lt;/b&gt; correct zijn ingevuld. Indien gewenst kunt u de &lt;b translate=&quot;no&quot;&gt;Model output name&lt;/b&gt; wijzigen in uw eigen. Klik ten slotte op de knop &lt;b translate=&quot;no&quot;&gt;Start training&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/930/original/sh_stable_diffusion_lora_selfie_15.png?1713786423&quot; alt=&quot;Start training&quot;&gt;
&lt;p&gt;Het systeem zal beginnen met het downloaden van extra bestanden en modellen (~10 GB). Daarna begint het trainingsproces. Afhankelijk van de hoeveelheid afbeeldingen en de toegepaste instellingen kan dit enkele uren duren. Zodra de training is voltooid, kun je de map &lt;b translate=&quot;no&quot;&gt;/home/usergpu/myloramodel&lt;/b&gt; downloaden naar je computer voor toekomstig gebruik.&lt;/p&gt;
&lt;h2&gt;Test je LoRA&lt;/h2&gt;
&lt;p&gt;We hebben enkele artikelen voorbereid over Stable Diffusion en zijn forks. Je kunt proberen om Easy Diffusion te installeren met onze gids &lt;a href=&quot;https://www.leadergpu.nl/articles/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;. Nadat het systeem is geïnstalleerd en draait, kun je je LoRA-model in SafeTensors-formaat rechtstreeks uploaden naar &lt;b translate=&quot;no&quot;&gt;/home/usergpu/easy-diffusion/models/lora&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Werk de webpagina van Easy Diffusion bij en selecteer uw model in de vervolgkeuzelijst:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/931/original/sh_stable_diffusion_lora_selfie_16.png?1713786465&quot; alt=&quot;Select LoRA model&quot;&gt;
&lt;p&gt;Laten we een eenvoudige prompt schrijven, &lt;b translate=&quot;no&quot;&gt;portrait of &amp;lt;nikolai&amp;gt; wearing a cowboy hat&lt;/b&gt;, en onze eerste afbeeldingen genereren. Hier hebben we een &lt;a href=&quot;https://www.leadergpu.nl/articles/566-stable-diffusion-modellen-aanpassingen-en-opties&quot;&gt;aangepast Stable Diffusion-model&lt;/a&gt; gebruikt dat we hebben gedownload van &lt;a href=&quot;https://civitai.com/&quot;&gt;civitai.com&lt;/a&gt;: &lt;a href=&quot;https://civitai.com/models/4201/realistic-vision-v51&quot;&gt;Realistic Vision v6.0 B1&lt;/a&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/932/original/sh_stable_diffusion_lora_selfie_17.png?1713786492&quot; alt=&quot;Generate the image&quot;&gt;
&lt;p&gt;Je kunt experimenteren met aanwijzingen en modellen op basis van Stable Diffusion om betere resultaten te krijgen. Veel plezier!&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/593-stable-diffusion-herhaalbare-gezichten-genereren&quot;&gt;Stable Diffusion: Herhaalbare gezichten genereren&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion&quot;&gt;Stable Diffusion: Riffusion&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/915/original/il_stable_diffusion_lora_selfie.jpg?1713785674"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 13:44:25 +0100</pubDate>
      <guid isPermaLink="false">592</guid>
      <dc:date>2025-01-21 13:44:25 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion: Wat is ControlNet</title>
      <link>https://www.leadergpu.nl/catalog/591-stable-diffusion-wat-is-controlnet</link>
      <description>&lt;p&gt;Een veel voorkomende misvatting bij mensen die voor het eerst in aanraking komen met generatieve neurale netwerken is dat het een enorme uitdaging is om de uiteindelijke output te controleren, vooral wanneer geprobeerd wordt om de output te veranderen door middel van verschillende prompt frasering. Op dit moment bestaat er een verzameling gereedschappen die bekend staat als ControlNet om relatief eenvoudige en effectieve controle over de generatieresultaten mogelijk te maken.&lt;/p&gt;
&lt;p&gt;In dit artikel laten we zien hoe je eenvoudig de houding van gegenereerde personages kunt manipuleren met behulp van bestaande afbeeldingen en aangepaste &quot;skeletten&quot;, met behulp van een van deze tools, &lt;a href=&quot;https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main&quot;&gt;OpenPose&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Stap 1. Stabiele diffusie installeren&lt;/h2&gt;
&lt;p&gt;Gebruik &lt;a href=&quot;https://www.leadergpu.nl/articles/565-stable-diffusion-webui&quot;&gt;onze stapsgewijze handleiding&lt;/a&gt; om Stable Diffusion met het basismodel en de WebUI te installeren. Deze handleiding is gebaseerd op het AUTOMATIC1111 script.&lt;/p&gt;
&lt;h2&gt;Stap 2. ControlNet uitbreiding installeren&lt;/h2&gt;
&lt;p&gt;We raden ten zeerste af om de ControlNet-extensie (sd-webui-controlnet) uit de &lt;a href=&quot;https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json&quot;&gt;standaard repository&lt;/a&gt; te installeren vanwege mogelijke functionaliteitsproblemen. Een belangrijk probleem dat we tegenkwamen tijdens de voorbereiding van deze handleiding was het bevriezen van de webinterface. Hoewel de image in eerste instantie succesvol is gegenereerd, reageert de WebUI niet meer als de image een tweede keer wordt gegenereerd. Een alternatieve oplossing zou zijn om dezelfde extensie van een externe bron te installeren.&lt;/p&gt;
&lt;p&gt;Open WebUI en volg de tabbladen: &lt;b translate=&quot;no&quot;&gt;Extensions &gt; Install from URL&lt;/b&gt;. Plak deze URL in het juiste veld:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;https://github.com/Mikubill/sd-webui-controlnet&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Klik vervolgens op de knop &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/942/original/sh_stable_diffusion_what_is_controlnet_1.png?1713962546&quot; alt=&quot;Install sd-webui-controlnet&quot;&gt;
&lt;p&gt;Wanneer het proces met succes is voltooid, zou het volgende bericht moeten verschijnen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Installed into /home/usergpu/stable-diffusion-webui/extensions/sd-webui-controlnet. Use Installed tab to restart.&lt;/pre&gt;
&lt;p&gt;Laten we de URL opnieuw starten door op de knop Apply and restart UI te drukken op het tabblad Installed:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/943/original/sh_stable_diffusion_what_is_controlnet_2.png?1713962703&quot; alt=&quot;ControlNet Restart UI&quot;&gt;
&lt;p&gt;Na het herstarten van de interface verschijnt het nieuwe ControlNet-element met veel extra opties:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/944/original/sh_stable_diffusion_what_is_controlnet_3.png?1713962785&quot; alt=&quot;ControlNet enabled&quot;&gt;
&lt;h2&gt;Stap 3. OpenPose downloaden&lt;/h2&gt;
&lt;h3&gt;HF-sleutel toevoegen&lt;/h3&gt;
&lt;p&gt;Laten we een SSH-sleutel genereren en toevoegen die u kunt gebruiken in Hugging Face:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/.ssh &amp;&amp; ssh-keygen&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wanneer het sleutelpaar is gegenereerd, kun je de publieke sleutel weergeven in de terminal emulator:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cat id_rsa.pub&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer alle informatie beginnend bij ssh-rsa en eindigend met usergpu@gpuserver, zoals weergegeven in de volgende schermafbeelding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/907/original/sh_llama3_quick_start_3.png?1713533169&quot; alt=&quot;Copy RSA key&quot;&gt;
&lt;p&gt;Open een webbrowser, typ &lt;a href=&quot;https://huggingface.co/&quot;&gt;https://huggingface.co/&lt;/a&gt; in de adresbalk en druk op &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Log in op je HF-account en open &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;Profielinstellingen&lt;/a&gt;. Kies dan &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; en klik op de knop &lt;b translate=&quot;no&quot;&gt;Add SSH Key&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/908/original/sh_llama3_quick_start_4.png?1713533229&quot; alt=&quot;Add SSH key&quot;&gt;
&lt;p&gt;Vul de &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; in en plak de gekopieerde &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; van de terminal. Sla de sleutel op door op &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt; te drukken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/909/original/sh_llama3_quick_start_5.png?1713533267&quot; alt=&quot;Paste the key&quot;&gt;
&lt;p&gt;Nu is je HF-account gekoppeld aan de publieke SSH-sleutel. Het tweede deel (privésleutel) wordt opgeslagen op de server. De volgende stap is het installeren van een specifieke Git LFS (Large File Storage) extensie, die gebruikt wordt voor het downloaden van grote bestanden zoals neurale netwerkmodellen.&lt;/p&gt;
&lt;h3&gt;Git LFS installeren&lt;/h3&gt;
&lt;p&gt;De volgende stap is het installeren van een specifieke Git LFS (Large File Storage) extensie, die gebruikt wordt voor het downloaden van grote bestanden zoals neurale netwerkmodellen. Open je home directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download het shellscript en voer het uit. Dit script installeert een nieuwe repository van derden met git-lfs:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je het installeren met de standaard pakketbeheerder:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get install git-lfs&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we git configureren om onze HF nickname te gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.name &quot;John&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En gekoppeld aan het HF e-mailaccount:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.email &quot;john.doe@example.com&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Het archief downloaden&lt;/h3&gt;
&lt;p&gt;We raden aan om, indien mogelijk, een lokale harde schijf te gebruiken om modellen te downloaden en op te slaan. Je kunt hier meer over leren in onze gids &lt;a href=&quot;https://www.leadergpu.nl/articles/492-schijfpartitionering-onder-linux&quot;&gt;Schijfpartitionering in Linux&lt;/a&gt;. Voor dit voorbeeld hebben we een SSD-schijf gekoppeld aan het koppelpunt /mnt/fastdisk. Laten we het eigendom maken van de standaard gebruiker:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chown usergpu:usergpu /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kloon de ControlNet repository van HuggingFace. Eerder geïnstalleerde Git-LFS zal automatisch verwijzingen vervangen door echte bestanden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:lllyasviel/ControlNet-v1-1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In dit voorbeeld voegen we slechts één model toe aan Stable Diffusion WebUI. Je kunt echter alle beschikbare modellen uit het archief kopiëren (~18GB):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cp /mnt/fastdisk/ControlNet-v1-1/control_v11p_sd15_openpose.pth /home/usergpu/stable-diffusion-webui/models/ControlNet/&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 4. Genereren uitvoeren&lt;/h2&gt;
&lt;p&gt;Het huidige model is vrij eenvoudig en levert mogelijk geen bevredigende resultaten op. Daarom stellen we voor om het te vervangen door een aangepast model. Richtlijnen om dit te doen zijn te vinden in dit artikel: &lt;a href=&quot;https://www.leadergpu.nl/articles/566-stable-diffusion-modellen-aanpassingen-en-opties&quot;&gt;Stabiele verspreidingsmodellen: aanpassingen en opties&lt;/a&gt;. Voor dit voorbeeld hebben we &lt;a href=&quot;https://civitai.com/api/download/models/130072&quot;&gt;RealisticVision v6.0 B1&lt;/a&gt; gedownload.&lt;/p&gt;
&lt;p&gt;Als u uw eerste afbeelding wilt genereren met OpenPose, open dan het tabblad &lt;b translate=&quot;no&quot;&gt;ControlNet&lt;/b&gt;, kies &lt;b translate=&quot;no&quot;&gt;OpenPose&lt;/b&gt;, vink &lt;b translate=&quot;no&quot;&gt;Enable&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Allow Preview&lt;/b&gt; aan. Klik vervolgens op &lt;b translate=&quot;no&quot;&gt;Upload&lt;/b&gt; om een afbeelding met de gewenste pose toe te voegen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/945/original/sh_stable_diffusion_what_is_controlnet_4.png?1713962881&quot; alt=&quot;Enable OpenPose and Preview&quot;&gt;
&lt;p&gt;Je kunt het systeem vragen een voorbeeld van de pose te genereren door op de knop met het explosiepictogram te klikken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/946/original/sh_stable_diffusion_what_is_controlnet_5.png?1713963007&quot; alt=&quot;Show preview&quot;&gt;
&lt;p&gt;Links wordt de originele afbeelding weergegeven. Rechts zie je het &quot;skelet&quot; dat de pose voorstelt zoals herkend door het neurale netwerkmodel:&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/947/original/sh_stable_diffusion_what_is_controlnet_6.png?1713963067&quot; alt=&quot;Dancing woman&quot;&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/948/original/sh_stable_diffusion_what_is_controlnet_7.png?1713963111&quot; alt=&quot;OpenPose skeleton&quot;&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Nu kun je de hoofdprompt intypen, bijvoorbeeld &quot;&lt;b translate=&quot;no&quot;&gt;dancing bear, by Pixar&lt;/b&gt;&quot; of &quot;&lt;b translate=&quot;no&quot;&gt;dancing fox, by Pixar&lt;/b&gt;&quot; en op de knop &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt; klikken. Na een paar seconden krijg je resultaten zoals deze:&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
  &lt;tr&gt;
    &lt;td&gt;&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/949/original/sh_stable_diffusion_what_is_controlnet_8.png?1713963180&quot; alt=&quot;Dancing bear&quot;&gt;&lt;/td&gt;
    &lt;td&gt;&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/950/original/sh_stable_diffusion_what_is_controlnet_9.png?1713963213&quot; alt=&quot;Dancing fox&quot;&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Het systeem zal proberen een nieuwe afbeelding te genereren, gegeven het &quot;skelet&quot; verkregen van de originele afbeelding. In sommige gevallen is de houding niet nauwkeurig, maar dit kan eenvoudig worden gecorrigeerd door het &quot;skelet&quot; handmatig te bewerken.&lt;/p&gt;
&lt;h2&gt;Stap 5. Houding wijzigen&lt;/h2&gt;
&lt;p&gt;Hoewel het magisch lijkt, is het model niet perfect en kunnen incidentele fouten invloed hebben op de uiteindelijke afbeelding. Om problemen tijdens het genereren van de afbeelding te voorkomen, heb je de optie om het &quot;skelet&quot; handmatig aan te passen door op de knop &lt;b translate=&quot;no&quot;&gt;Edit&lt;/b&gt; te klikken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/951/original/sh_stable_diffusion_what_is_controlnet_10.png?1713963246&quot; alt=&quot;Edit the skeleton&quot;&gt;
&lt;p&gt;In de meegeleverde editor kun je eenvoudig de pose aanpassen door te slepen en neerzetten, of ongewenste punten verwijderen met een rechtermuisklik. Klik daarna gewoon op de knop &lt;b translate=&quot;no&quot;&gt;Send pose to ControlNet&lt;/b&gt; en de nieuwe pose wordt toegepast:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/952/original/sh_stable_diffusion_what_is_controlnet_11.png?1713963279&quot; alt=&quot;Send pose to ControlNet&quot;&gt;
&lt;p&gt;Naast OpenPose biedt ControlNet een groot aantal tools om je resultaten aan te passen en te perfectioneren. Bovendien zorgen de speciale servers van LeaderGPU voor een snel en handig proces.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/592-stable-diffusion-lora-selfie&quot;&gt;Stable Diffusion: LoRA selfie&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/593-stable-diffusion-herhaalbare-gezichten-genereren&quot;&gt;Stable Diffusion: Herhaalbare gezichten genereren&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/594-stable-diffusion-riffusion&quot;&gt;Stable Diffusion: Riffusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/941/original/il_stable_diffusion_what_is_controlnet.png?1713962506"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 10:42:39 +0100</pubDate>
      <guid isPermaLink="false">591</guid>
      <dc:date>2025-01-21 10:42:39 +0100</dc:date>
    </item>
    <item>
      <title>Fooocus: Heroverweging van SD en MJ</title>
      <link>https://www.leadergpu.nl/catalog/590-fooocus-heroverweging-van-sd-en-mj</link>
      <description>&lt;p&gt;De komst van Stable Diffusion en MidJourney heeft een revolutie teweeggebracht in ons begrip van de mogelijkheden van generatieve neurale netwerken. Deze gereedschappen hebben een nieuw perspectief onthuld op het proces van beeldcreatie en de mate waarin we het kunnen manipuleren. De primaire benadering bestaat uit het geven van aanwijzingen aan het systeem over het gewenste resultaat. In wezen benadrukken we drie belangrijke aspecten: object, stijl en omgeving.&lt;/p&gt;
&lt;p&gt;Extra aanwijzingen die meer specifieke instructies geven, zoals de gewenste compositie, het type camera/lens en de inkleuring, zijn ook belangrijk, maar niet onmisbaar. Hoe uitgebreider de instructies, hoe gemakkelijker het neurale netwerk ze kan verwerken. In de professionele ruimte is zelfs de rol van een prompt engineer ontstaan. Deze rol kan echter gemakkelijk worden vervangen door dezelfde generatieve neurale netwerken. Door vaardigheden in het maken van afbeeldingen te combineren met het maken van tekst, kunnen we extra aanwijzingen genereren om een optimaal resultaat te bereiken.&lt;/p&gt;
&lt;p&gt;Dit is het fundamentele concept van Fooocus. Het integreert het XL Stable Diffusion-model en een GPT2-gebaseerde promptgenerator, die je eenvoudige prompt verrijkt en gedetailleerd maakt. Bovendien is Fooocus uitgerust met diverse verbeteringen en uitbreidingen. Deze functies maken het mogelijk om spectaculaire afbeeldingen te genereren via een eenvoudige interface, zonder ingewikkelde tools. Laten we ons verdiepen in de functionaliteit en Fooocus installeren op een LeaderGPU dedicated server.&lt;/p&gt;
&lt;h2&gt;Vereisten&lt;/h2&gt;
&lt;p&gt;Begin met de installatievereisten en start daarna opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade &amp;&amp; sudo ubuntu-drivers autoinstall &amp;&amp; sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download het shellscript dat Anaconda installeert voor het beheren van virtuele omgevingen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stel de uitvoeringsvlag in en geef gegevenstoegang:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;chmod a+x Anaconda3-2023.09-0-Linux-x86_64.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het installatiescript uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./Anaconda3-2023.09-0-Linux-x86_64.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nadat het proces is voltooid, raden we je aan om de SSH-sessie te verbreken en je voor te bereiden op het doorsturen van de poort. Je moet poort 7865 van de externe server doorsturen naar een lokaal loopback adres, 127.0.0.1:7865. Raadpleeg voor meer informatie een van onze eerdere gidsen: &lt;a href=&quot;https://www.leadergpu.nl/articles/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;. Maak dan opnieuw verbinding en ga verder met het klonen van de repository van het project op GitHub.&lt;/p&gt;
&lt;h2&gt;Fooocus installeren&lt;/h2&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/lllyasviel/Fooocus.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wijzig de map naar Fooocus:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd Fooocus&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Creëer een virtuele omgeving met behulp van Anaconda en de YAML-config voorbereid door de auteur van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda env create -f environment.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we onze basisomgeving veranderen in een nieuw gemaakte omgeving:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda activate fooocus&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende stap is het installeren van Python-bibliotheken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install -r requirements_versions.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu is alles klaar om te beginnen:&lt;/p&gt;
&lt;h2&gt;Fooocus start&lt;/h2&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;python entry_with_update.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het opstarten kan even duren omdat de applicatie alle benodigde bestanden controleert en downloadt. Misschien wilt u ondertussen een kopje koffie drinken. Zodra het proces is voltooid, opent u uw browser en typt u de volgende URL in de adresbalk:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;http://127.0.0.1:7865&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer je eenvoudige prompt in en klik op de knop &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt;. Als je meer controle wilt, vink dan &lt;b translate=&quot;no&quot;&gt;Advanced&lt;/b&gt; aan en selecteer de benodigde opties:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/976/original/sh_fooocus_rethinking_of_sd_and_mj_1.png?1714481840&quot; alt=&quot;Fooocus WebUI&quot;&gt;
&lt;p&gt;De echte magie ontvouwt zich achter de schermen. Zodra je op de knop &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt; klikt, wordt je ingevoerde prompt doorgestuurd naar het op GPT2 gebaseerde taalmodel. Dit model zet je korte prompt om in een mix van elaboratieve positieve en negatieve prompts. Deze mix wordt vervolgens ingevoerd in het Stable Diffusion XL-model, dat is afgestemd op de MidJourney-stijl. Het resultaat is dat zelfs een korte prompt indrukwekkende resultaten kan opleveren.&lt;/p&gt;
&lt;p&gt;Natuurlijk is er geen beperking voor het schrijven van je eigen prompts. Maar na meerdere iteraties wordt het duidelijk dat zelfs zonder deze beperking de gegenereerde inhoud intrigerend en divers blijft.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/597-stable-video-diffusion&quot;&gt;Stable Video Diffusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/975/original/il_fooocus_rethinking_of_sd_and_mj.png?1714481802"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 10:36:52 +0100</pubDate>
      <guid isPermaLink="false">590</guid>
      <dc:date>2025-01-21 10:36:52 +0100</dc:date>
    </item>
    <item>
      <title>Blender op afstand renderen met Flamenco</title>
      <link>https://www.leadergpu.nl/catalog/588-blender-op-afstand-renderen-met-flamenco</link>
      <description>&lt;p&gt;Wanneer het renderen van zware scènes in &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt; te veel van de tijd van je team begint te vergen, heb je twee opties: of de computer van elk teamlid upgraden of rendering uitbesteden aan een speciale renderfarm. Veel bedrijven bieden kant-en-klare renderoplossingen, maar als je volledige controle over de infrastructuur nodig hebt, zijn deze oplossingen misschien niet de meest betrouwbare optie.&lt;/p&gt;
&lt;p&gt;Een alternatieve aanpak is het creëren van een hybride infrastructuur. In deze opzet houdt u uw gegevensopslag en rendering farm management binnen uw bestaande infrastructuur. Het enige element dat zich daarbuiten zou bevinden, zijn de gehuurde &lt;a href=&quot;https://www.leadergpu.com/&quot;&gt;GPU-servers&lt;/a&gt; waarop de rendering wordt uitgevoerd.&lt;/p&gt;
&lt;p&gt;In het algemeen ziet de rendering farm infrastructuur voor Blender er als volgt uit:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/888/original/sh_blender_remote_rendering_with_flamenco_1.jpg?1713174084&quot; alt=&quot;Basic components scheme&quot;&gt;
&lt;p&gt;Hier hebben we een centrale &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; node die alle processen organiseert. Het ontvangt rendertaken van gebruikers via een specifieke &lt;b translate=&quot;no&quot;&gt;Blender Add-on&lt;/b&gt; en verplaatst alle benodigde bestanden naar &lt;b translate=&quot;no&quot;&gt;Shared Storage&lt;/b&gt;. Vervolgens verdeelt de &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; de taken naar &lt;b translate=&quot;no&quot;&gt;Worker nodes&lt;/b&gt;. Zij ontvangen een job die alle informatie bevat over waar de Worker bestanden kan vinden om te renderen en wat te doen met de verkregen resultaten. Om dit schema te implementeren kun je gebruik maken van een volledig vrije en open-source applicatie genaamd &lt;a href=&quot;https://flamenco.blender.org/&quot;&gt;Flamenco&lt;/a&gt;. In deze handleiding laten we zien hoe je alle knooppunten kunt voorbereiden, vooral de &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Het knooppunt &lt;b translate=&quot;no&quot;&gt;Storage&lt;/b&gt; heeft geen specifieke vereisten. Het kan gebruikt worden met elk besturingssysteem dat SMB/CIFS of NFS protocollen ondersteunt. De enige vereiste is dat de opslagmap gemount en toegankelijk moet zijn voor het besturingssysteem. In jouw infrastructuur kan dit elke gedeelde map zijn die toegankelijk is voor alle knooppunten.&lt;/p&gt;
&lt;p&gt;Elk knooppunt heeft verschillende IP-adressen en de &lt;b translate=&quot;no&quot;&gt;Wireguard VPN&lt;/b&gt; server wordt een centraal punt dat ze samenbrengt in één L2-netwerk. Met deze server, die zich op de externe perimeter bevindt, kun je werken zonder wijzigingen aan te brengen in het bestaande NAT-beleid.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/889/original/sh_blender_remote_rendering_with_flamenco_2.jpg?1713174131&quot; alt=&quot;Virtual components scheme&quot;&gt;
&lt;p&gt;Voor dit voorbeeld maken we de volgende gemengde configuratie:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.1 - Wireguard VPN server&lt;/b&gt; (virtuele server van een willekeurige infrastructuurprovider) met een extern IP;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.2 - Worker node&lt;/b&gt; (dedicated server van LeaderGPU) met een extern IP;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.3 - Manager node&lt;/b&gt; (virtuele server in het kantoornetwerk) achter NAT;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.4 - Storage node&lt;/b&gt; (virtuele server in het kantoornetwerk) achter NAT;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.5 - User node&lt;/b&gt; (consumentenlaptop in het kantoornetwerk) achter NAT.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Stap 1. Draadbeschermer&lt;/h2&gt;
&lt;h3&gt;VPN-server&lt;/h3&gt;
&lt;p&gt;U kunt Wireguard handmatig installeren en configureren met behulp van een officiële handleiding en voorbeelden. Er is echter een eenvoudiger alternatief: een onofficieel script van software engineer uit Parijs (Stanislas aka &lt;a href=&quot;https://github.com/angristan&quot;&gt;angristan&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Download het script van GitHub:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;wget https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak het uitvoerbaar:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;sudo chmod +x wireguard-install.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;sudo ./wireguard-install.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Volg de instructies en stel het IP-adresbereik in &lt;b translate=&quot;no&quot;&gt;10.0.0.1/24&lt;/b&gt;. Het systeem zal je vragen om onmiddellijk een configuratiebestand aan te maken voor de eerste client. Volgens het plan zal deze client het werkknooppunt zijn met de naam &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt; en het adres &lt;b translate=&quot;no&quot;&gt;10.0.0.2&lt;/b&gt;. Wanneer het script is voltooid, verschijnt er een configuratiebestand in de hoofdmap: &lt;b translate=&quot;no&quot;&gt;/root/wg0-client-Worker.conf&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Voer het volgende commando uit om deze configuratie te bekijken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;cat /home/usergpu/wg0-client-Worker.conf&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Interface]
PrivateKey = [CLIENT_PRIVATE_KEY]
Address = 10.0.0.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,1.0.0.1
[Peer]
PublicKey = [SERVER_PRIVATE_KEY]
PresharedKey = [SERVER_PRESHARED_KEY]
Endpoint = [IP_ADDRESS:PORT]
AllowedIPs = 10.0.0.0/24,::/0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het installatiescript opnieuw uit om nog een client aan te maken. Voeg op deze manier alle toekomstige clients toe en tot slot kun je controleren of alle configuratiebestanden zijn aangemaakt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;ls -l | grep wg0&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;-rw-r--r-- 1 root    root      529 Jul 14 12:59 wg0-client-Manager.conf
-rw-r--r-- 1 root    root      529 Jul 14 12:59 wg0-client-Storage.conf
-rw-r--r-- 1 root    root      529 Jul 14 12:59 wg0-client-User.conf
-rw-r--r-- 1 root    root      529 Jul 14 12:58 wg0-client-Worker.conf&lt;/pre&gt;
&lt;h3&gt;VPN-clients&lt;/h3&gt;
&lt;p&gt;VPN-clients omvatten alle knooppunten die verbonden moeten worden met een enkel netwerk. In onze handleiding verwijst dit naar het beheerknooppunt, opslagknooppunt, clientknooppunt (als Linux wordt gebruikt) en worker knooppunten. Als de VPN-server op een worker node draait, hoeft deze niet als client te worden geconfigureerd (deze stap kan worden overgeslagen).&lt;/p&gt;
&lt;p&gt;Werk de pakketcache-repository bij en installeer vervolgens Wireguard en CIFS-ondersteuningspakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y install wireguard cifs-utils&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verhoog rechten naar superuser:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo -i&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de Wireguard configuratiemap:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;cd /etc/wireguard&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het commando &lt;b translate=&quot;no&quot;&gt;umask&lt;/b&gt; uit zodat alleen de superuser toegang heeft tot de bestanden in deze directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;umask 077&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Genereer een privésleutel en sla deze op in een bestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;wg genkey &gt; private-key&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Genereer een openbare sleutel met behulp van de privésleutel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;wg pubkey &gt; public-key &lt; private-key&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een configuratiebestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;nano /etc/wireguard/wg0.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Plak je eigen configuratie, gemaakt voor deze client:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Interface]
PrivateKey = [CLIENT_PRIVATE_KEY]
Address = 10.0.0.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,1.0.0.1
[Peer]
PublicKey = [SERVER_PRIVATE_KEY]
PresharedKey = [SERVER_PRESHARED_KEY]
Endpoint = [SERVER_IP_ADDRESS:PORT]
AllowedIPs = 10.0.0.0/24,::/0
PersistentKeepalive = 1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vergeet niet de optie &lt;b translate=&quot;no&quot;&gt;PersistentKeepalive = 1&lt;/b&gt; toe te voegen (waarbij 1 staat voor 1 seconde) op elk knooppunt dat zich achter NAT bevindt. U kunt deze periode experimenteel kiezen. De aanbevolen waarde door de auteurs van Wireguard is 25. Sla het bestand op en sluit het af met de sneltoets &lt;b translate=&quot;no&quot;&gt;CTRL + X&lt;/b&gt; en de toets &lt;b translate=&quot;no&quot;&gt;Y&lt;/b&gt; om te bevestigen.&lt;/p&gt;
&lt;p&gt;Als je internetverkeer wilt doorlaten, stel dan &lt;b translate=&quot;no&quot;&gt;AllowedIPs&lt;/b&gt; in op &lt;b translate=&quot;no&quot;&gt;0.0.0.0/0,::/0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Log vervolgens uit met het root-account:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;exit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de verbinding met systemctl:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl start wg-quick@wg0.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer of alles in orde is en de service succesvol is gestart:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status wg-quick@wg0.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;● wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
Loaded: loaded (/lib/systemd/system/wg-quick@.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2023-10-23 09:47:53 UTC; 1h 45min ago
  Docs: man:wg-quick(8)
        man:wg(8)
        https://www.wireguard.com/
        https://www.wireguard.com/quickstart/
        https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
        https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
Process: 4128 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
Main PID: 4128 (code=exited, status=0/SUCCESS)
  CPU: 76ms&lt;/pre&gt;
&lt;p&gt;Als je een foutmelding tegenkomt zoals &quot;resolvconf: opdracht niet gevonden&quot; in Ubuntu 22.04, maak dan gewoon een symboolkoppeling:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ln -s /usr/bin/resolvectl /usr/local/bin/resolvconf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Schakel de nieuwe service in om automatisch verbinding te maken terwijl het besturingssysteem opstart:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl enable wg-quick@wg0.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je de connectiviteit controleren door echopakketten te versturen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;ping 10.0.0.1&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=145 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=72.0 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=72.0 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=72.2 ms
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 71.981/90.230/144.750/31.476 ms&lt;/pre&gt;
&lt;h2&gt;Stap 2. NAS-knooppunt&lt;/h2&gt;
&lt;p&gt;Maak verbinding met de VPN-server met behulp van de handleiding uit stap 1. Installeer vervolgens de Samba-pakketten voor de server en client:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install samba samba-client&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een back-up van je standaardconfiguratie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een map aan die zal worden gebruikt als share:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo mkdir /mnt/share&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een nieuwe gebruikersgroep aan die toegang krijgt tot de nieuwe share:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo groupadd smbusers&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg een bestaande gebruiker toe aan de aangemaakte groep:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo usermod -aG smbusers user&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stel een wachtwoord in voor deze gebruiker. Dit is een noodzakelijke stap omdat het systeemwachtwoord en het Samba-wachtwoord verschillende entiteiten zijn:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo smbpasswd -a $USER&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Verwijder de standaardconfiguratie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo rm /etc/samba/smb.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En maak een nieuwe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/samba/smb.conf&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[private]
path = /mnt/share
valid users = @smbusers
guest ok = no
browsable = yes
writable = yes&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en test de nieuwe parameters:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;testparm -s&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start beide Samba-services opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo service smbd restart&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo service nmbd restart&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Geef tot slot de toestemming om de map te delen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chown user:smbusers /mnt/share&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 3. Samba client-verbinding&lt;/h2&gt;
&lt;p&gt;Alle knooppunten in Flamenco gebruiken een gedeelde map op /mnt/flamenco. U moet deze map op elk knooppunt mounten voordat u de flamenco-client of flamenco-manager scripts uitvoert. In dit voorbeeld gebruiken we een worker node gehost op LeaderGPU met de gebruikersnaam &lt;b translate=&quot;no&quot;&gt;usergpu&lt;/b&gt;. Vervang deze gegevens door uw eigen gegevens als ze afwijken.&lt;/p&gt;
&lt;p&gt;Maak een verborgen bestand aan waarin u de referenties van SMB-shares kunt opslaan:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano /home/usergpu/.smbcredentials&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Typ deze twee strings:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;username=user # your Samba username
password=password # your Samba password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla dit bestand op en sluit af. Beveilig dit bestand vervolgens door de toegangsrechten te wijzigen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chmod 600 /home/usergpu/.smbcredentials&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een nieuwe map aan die kan worden gebruikt als koppelpunt voor de externe opslag:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo mkdir /mnt/flamenco&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En maak de gebruiker eigenaar van deze map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chown usergpu:users /mnt/flamenco&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het enige wat overblijft is om de netwerkdirectory automatisch te laten mounten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/mnt-flamenco.mount&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Mount Remote Storage
[Mount]
What=//10.0.0.4/private
Where=/mnt/flamenco
Type=cifs
Options=mfsymlinks,credentials=/home/usergpu/.smbcredentials,uid=usergpu,gid=users
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg twee regels toe aan je VPN-configuratie in de sectie &lt;b translate=&quot;no&quot;&gt;[Interface]&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo -i&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-root&quot;&gt;nano /etc/wireguard/wg0.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;…
PostUp = ping 10.0.0.4 -c 4 &amp;&amp; systemctl start mnt-flamenco.mount
PostDown = systemctl stop mnt-flamenco.mount
…&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Herstart de server:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer of de services zijn geladen en of de gedeelde map is gemount:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;df -h&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;Filesystem          Size  Used Avail Use% Mounted on
tmpfs                35G  3.3M   35G   1% /run
/dev/sda2            99G   18G   77G  19% /
tmpfs               174G     0  174G   0% /dev/shm
tmpfs               5.0M     0  5.0M   0% /run/lock
tmpfs                35G  8.0K   35G   1% /run/user/1000
//10.0.0.4/private   40G  9.0G   31G  23% /mnt/flamenco&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 4. Beheerknooppunt&lt;/h2&gt;
&lt;p&gt;Zet een VPN-verbinding op met behulp van de handleiding uit stap 1. Stop de VPN-service voordat u verdergaat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl stop wg-quick@wg0.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we ons voorbereiden. Automatisch mounten vereist hulpprogramma&#39;s voor het CIFS-protocol:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install cifs-utils&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende belangrijke stap is het installeren van Blender. Je kunt dit doen met de standaard APT pakketbeheerder, maar dit zal waarschijnlijk een van de oudere versies installeren (minder dan v3.6.4). Laten we Snap gebruiken om de nieuwste versie te installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo snap install blender --classic&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer de geïnstalleerde versie met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;blender --version&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;Blender 4.4.3
build date: 2025-04-29
build time: 15:12:13
build commit date: 2025-04-29
build commit time: 14:09
build hash: 802179c51ccc
build branch: blender-v4.4-release
build platform: Linux
build type: Release
…&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je een foutmelding krijgt die aangeeft dat er bibliotheken ontbreken, installeer ze dan gewoon. Al deze bibliotheken zijn opgenomen in het XOrg-pakket:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install xorg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de toepassing:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://flamenco.blender.org/downloads/flamenco-3.7-linux-amd64.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pak het gedownloade archief uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;tar xvfz flamenco-3.7-linux-amd64.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ga naar de aangemaakte map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd flamenco-3.7-linux-amd64/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En start Flamenco voor de eerste keer:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./flamenco-manager&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open het volgende adres in je webbrowser: &lt;a href=&quot;http://10.0.0.3:8080/&quot;&gt;http://10.0.0.3:8080/&lt;/a&gt;. Klik op de knop &lt;b translate=&quot;no&quot;&gt;Let&#39;s go&lt;/b&gt;. Typ &lt;b translate=&quot;no&quot;&gt;/mnt/flamenco&lt;/b&gt; in het verplichte veld en klik vervolgens op &lt;b translate=&quot;no&quot;&gt;Next&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/890/original/sh_blender_remote_rendering_with_flamenco_3.png?1713174175&quot; alt=&quot;Shared storage setup&quot;&gt;
&lt;p&gt;Flamenco zal proberen het Blender uitvoerbare bestand te lokaliseren. Als je Blender hebt geïnstalleerd vanaf Snap, zal het pad &lt;b translate=&quot;no&quot;&gt;/snap/bin/blender&lt;/b&gt; zijn. Controleer dit punt en klik op &lt;b translate=&quot;no&quot;&gt;Next&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/891/original/sh_blender_remote_rendering_with_flamenco_4.png?1713174210&quot; alt=&quot;PATH environment setup&quot;&gt;
&lt;p&gt;Controleer de samenvatting en klik op &lt;b translate=&quot;no&quot;&gt;Confirm&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/892/original/sh_blender_remote_rendering_with_flamenco_5.png?1713174240&quot; alt=&quot;Check summary settings&quot;&gt;
&lt;p&gt;Ga terug naar de SSH-sessie en gebruik de sneltoets &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt; om de toepassing te onderbreken. De eerste start genereert het configuratiebestand &lt;b translate=&quot;no&quot;&gt;flamenco-manager.yaml&lt;/b&gt;. Laten we wat opties toevoegen aan de secties &lt;b translate=&quot;no&quot;&gt;variables&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;blenderArgs&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano flamenco-manager.yaml&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;# Configuration file for Flamenco.
# For an explanation of the fields, refer to flamenco-manager-example.yaml
#
# NOTE: this file will be overwritten by Flamenco Manager&#39;s web-based configuration system.
#
# This file was written on 2023-10-17 12:41:28 +00:00 by Flamenco 3.7
_meta:
  version: 3
manager_name: Flamenco Manager
database: flamenco-manager.sqlite
listen: :8080
autodiscoverable: true
local_manager_storage_path: ./flamenco-manager-storage
shared_storage_path: /mnt/flamenco
shaman:
  enabled: true
  garbageCollect:
    period: 24h0m0s
    maxAge: 744h0m0s
    extraCheckoutPaths: []
task_timeout: 10m0s
worker_timeout: 1m0s
blocklist_threshold: 3
task_fail_after_softfail_count: 3
variables:
  blender:
    values:
    - platform: linux
      value: blender
    - platform: windows
      value: blender
    - platform: darwin
      value: blender
  storage:
    values:
    is_twoway: true
    values:
    - platform: linux
      value: /mnt/flamenco
    - platform: windows
      value: Z:\
    - platform: darwin
      value: /Volumes/shared/flamenco
  blenderArgs:
    values:
    - platform: all
      value: -b -y -E CYCLES -P gpurender.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het eerste extra blok beschrijft extra &lt;a href=&quot;https://flamenco.blender.org/usage/variables/multi-platform/&quot;&gt;tweerichtingsvariabelen&lt;/a&gt;, die nodig zijn voor multiplatform farms. Dit lost het belangrijkste probleem op met slashes en paden. In Linux gebruiken we het forward slash symbool (/) als scheidingsteken, maar in Windows gebruiken we het backslash symbool (^). Hier maken we de vervangingsregel voor alle beschikbare alternatieven: Linux, Windows en macOS (&lt;a href=&quot;https://en.wikipedia.org/wiki/Darwin_(operating_system)&quot;&gt;Darwin&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Wanneer je een netwerkshare koppelt in Windows, moet je een stationsletter kiezen. Onze &lt;b translate=&quot;no&quot;&gt;Storage&lt;/b&gt; is bijvoorbeeld gekoppeld met de letter &lt;b translate=&quot;no&quot;&gt;Z:&lt;/b&gt;. De vervangingsregel vertelt het systeem dat voor het Windows-platform het pad &lt;b translate=&quot;no&quot;&gt;/mnt/flamenco&lt;/b&gt; zich op &lt;b translate=&quot;no&quot;&gt;Z:\&lt;/b&gt; bevindt. Voor macOS zal dit pad &lt;b translate=&quot;no&quot;&gt;/Volumes/shared/flamenco&lt;/b&gt; zijn.&lt;/p&gt;
&lt;p&gt;Kijk naar het tweede toegevoegde blok. Dit instrueert Blender om &lt;a href=&quot;https://www.cycles-renderer.org/&quot;&gt;Cycles&lt;/a&gt; rendering engine te gebruiken en roept een eenvoudig Python script, &lt;b translate=&quot;no&quot;&gt;gpurender.py&lt;/b&gt;, aan wanneer Blender wordt uitgevoerd. Dit is een eenvoudige truc om de GPU te selecteren in plaats van de CPU. Er is geen standaard optie om dit direct te doen. Je kunt niet &lt;b translate=&quot;no&quot;&gt;blender --use-gpu&lt;/b&gt; of iets dergelijks aanroepen. Je kunt echter wel een extern Python script aanroepen met de &lt;b translate=&quot;no&quot;&gt;-P&lt;/b&gt; optie. Dit commando instrueert de &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt; om een script te vinden in de lokale directory en het uit te voeren wanneer de toegewezen job de Blender executable aanroept.&lt;/p&gt;
&lt;p&gt;Nu kunnen we de controle over de applicatie delegeren aan het &lt;a href=&quot;https://systemd.io/&quot;&gt;systemd&lt;/a&gt; init subsysteem. Laten we het systeem informeren over de locatie van de werkmap, het uitvoerbare bestand en de gebruikersrechten die nodig zijn voor het starten. Maak een nieuw bestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/flamenco-manager.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vul het met de volgende strings:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Flamenco Manager service
[Service]
User=user
WorkingDirectory=/home/user/flamenco-3.7-linux-amd64
ExecStart=/home/user/flamenco-3.7-linux-amd64/flamenco-manager
Restart=always
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en sluit de nano-teksteditor af.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl start flamenco-manager.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status flamenco-manager.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;● flamenco-manager.service - Flamenco Manager service
Loaded: loaded (/etc/systemd/system/flamenco-manager.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2023-10-17 11:03:50 UTC; 7s ago
Main PID: 3059 (flamenco-manage)
 Tasks: 7 (limit: 4558)
  Memory: 28.6M
     CPU: 240ms
CGroup: /system.slice/flamenco-manager.service
        └─3059 /home/user/flamenco-3.7-linux-amd64/flamenco-manager&lt;/pre&gt;
&lt;p&gt;Schakel automatisch starten in wanneer het systeem opstart:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl enable flamenco-manager.service&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 5. Werkerknooppunt&lt;/h2&gt;
&lt;p&gt;Maak verbinding met de VPN-server met behulp van de handleiding uit stap 1 en koppel de share uit stap 3. Stop de VPN-service voordat u verdergaat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo snap install blender --classic&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Moderne *.blend bestanden worden gecomprimeerd met het Zstandard algoritme. Om fouten te voorkomen is het essentieel om ondersteuning voor dit algoritme op te nemen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install python3-zstd&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download de toepassing:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://flamenco.blender.org/downloads/flamenco-3.7-linux-amd64.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pak het gedownloade archief uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;tar xvfz flamenco-3.7-linux-amd64.tar.gz&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Navigeer naar de aangemaakte map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd flamenco-3.7-linux-amd64/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een extra script dat GPU rendering inschakelt wanneer Flamenco jobs draait:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano gpurender.py&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;import bpy
def enable_gpus(device_type, use_cpus=False):
    preferences = bpy.context.preferences
    cycles_preferences = preferences.addons[&quot;cycles&quot;].preferences
    cycles_preferences.refresh_devices()
    devices = cycles_preferences.devices
    if not devices:
        raise RuntimeError(&quot;Unsupported device type&quot;)
    activated_gpus = []
    for device in devices:
        if device.type == &quot;CPU&quot;:
            device.use = use_cpus
        else:
            device.use = True
            activated_gpus.append(device.name)
            print(&#39;activated gpu&#39;, device.name)
    cycles_preferences.compute_device_type = device_type
    bpy.context.scene.cycles.device = &quot;GPU&quot;
    return activated_gpus
enable_gpus(&quot;CUDA&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en sluit af. Maak vervolgens een aparte service om Flamenco uit te voeren vanuit systemd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/flamenco-worker.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Flamenco Worker service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu/flamenco-3.7-linux-amd64
ExecStart=/home/usergpu/flamenco-3.7-linux-amd64/flamenco-worker
Restart=always
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Herlaad de configuratie en start de nieuwe service:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl start flamenco-worker.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl status flamenco-worker.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;● flamenco-worker.service - Flamenco Worker service
Loaded: loaded (/etc/systemd/system/flamenco-worker.service; enabled; preset: enabled)
Active: active (running) since Tue 2023-10-17 13:56:18 EEST; 47s ago
Main PID: 636 (flamenco-worker)
 Tasks: 5 (limit: 23678)
Memory: 173.9M
   CPU: 302ms
CGroup: /system.slice/flamenco-worker.service
        └─636 /home/user/flamenco-3.7-linux-amd64/flamenco-worker&lt;/pre&gt;
&lt;p&gt;Automatische start inschakelen wanneer het systeem opstart:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl enable flamenco-worker.service&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 6. Gebruikersknooppunt&lt;/h2&gt;
&lt;p&gt;Gebruikersknooppunten kunnen met elk besturingssysteem worden beheerd. In deze handleiding laten we zien hoe je een knooppunt instelt met Windows 11 en 4 benodigde componenten:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;VPN-verbinding&lt;/li&gt;
  &lt;li&gt;Gemonteerde map op afstand&lt;/li&gt;
  &lt;li&gt;Blender geïnstalleerd&lt;/li&gt;
  &lt;li&gt;Flamenco add-on&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Download en installeer Wireguard van de &lt;a href=&quot;https://download.wireguard.com/windows-client/wireguard-installer.exe&quot;&gt;officiële website&lt;/a&gt;. Maak een nieuw tekstbestand aan en plak daarin de configuratie die in stap 1 voor de client is gegenereerd. Hernoem het bestand naar &lt;b translate=&quot;no&quot;&gt;flamenco.conf&lt;/b&gt; en voeg het toe in Wireguard met de knop &lt;b translate=&quot;no&quot;&gt;Add tunnel&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/893/original/sh_blender_remote_rendering_with_flamenco_6.png?1713174282&quot; alt=&quot;Wireguard Add Tunnel&quot;&gt;
&lt;p&gt;Maak verbinding met uw server door op de knop &lt;b translate=&quot;no&quot;&gt;Activate&lt;/b&gt; te drukken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/894/original/sh_blender_remote_rendering_with_flamenco_7.png?1713174312&quot; alt=&quot;Activate the tunnel&quot;&gt;
&lt;p&gt;Koppel een externe map. Klik met de rechtermuisknop op &lt;b translate=&quot;no&quot;&gt;This PC&lt;/b&gt; en selecteer &lt;b translate=&quot;no&quot;&gt;Map network drive…&lt;/b&gt;&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/895/original/sh_blender_remote_rendering_with_flamenco_8.png?1713174340&quot; alt=&quot;Mount the remote directory&quot;&gt;
&lt;p&gt;Kies &lt;b translate=&quot;no&quot;&gt;Z:&lt;/b&gt; als stationsletter, typ het Samba share adres &lt;b translate=&quot;no&quot;&gt;\\10.0.0.4\private&lt;/b&gt; en vergeet niet &lt;b translate=&quot;no&quot;&gt;Connect using different credentials&lt;/b&gt; aan te vinken. Klik vervolgens op &lt;b translate=&quot;no&quot;&gt;Finish&lt;/b&gt;. Het systeem zal je vragen om een gebruikersnaam en wachtwoord voor de share in te voeren. Daarna wordt de netwerkmap gemount als het Z: station.&lt;/p&gt;
&lt;p&gt;Download en installeer Blender van de &lt;a href=&quot;https://www.blender.org/download/&quot;&gt;officiële website&lt;/a&gt;. Open vervolgens de URL &lt;a href=&quot;http://10.0.0.3:8080/flamenco3-addon.zip&quot;&gt;http://10.0.0.3:8080/flamenco3-addon.zip&lt;/a&gt; en installeer de Flamenco add-on. Activeer het in voorkeuren: &lt;b translate=&quot;no&quot;&gt;Edit &gt; Preferences &gt; Add-ons&lt;/b&gt;. Vink &lt;b translate=&quot;no&quot;&gt;System: Flamenco 3&lt;/b&gt; aan, voer de Manager URL &lt;a href=&quot;http://10.0.0.3:8080&quot;&gt;http://10.0.0.3:8080&lt;/a&gt; in en klik op de refresh knop. Het systeem zal verbinding maken met het beheerdersknooppunt en de opslaginstellingen automatisch laden:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/896/original/sh_blender_remote_rendering_with_flamenco_9.png?1713174378&quot; alt=&quot;Enable Flamenco add-on&quot;&gt;
&lt;p&gt;Open het bestand dat je moet renderen. Kies &lt;b translate=&quot;no&quot;&gt;Cycles&lt;/b&gt; op het tabblad &lt;b translate=&quot;no&quot;&gt;Scene&lt;/b&gt; in de vervolgkeuzelijst Render &lt;b translate=&quot;no&quot;&gt;Engine&lt;/b&gt;. Vergeet niet het bestand op te slaan, want deze instellingen worden direct opgeslagen in het *.blend bestand:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/897/original/sh_blender_remote_rendering_with_flamenco_10.png?1713174408&quot; alt=&quot;Select Render Engine&quot;&gt;
&lt;p&gt;Scroll naar beneden en vind de &lt;b translate=&quot;no&quot;&gt;Flamenco 3&lt;/b&gt; sectie. Klik op &lt;b translate=&quot;no&quot;&gt;Fetch job types&lt;/b&gt; voor een lijst met beschikbare types. Selecteer &lt;b translate=&quot;no&quot;&gt;Simple Blender Render&lt;/b&gt; in de vervolgkeuzelijst en stel andere opties in, zoals het aantal frames, de grootte van de chunk en de uitvoermap. Klik ten slotte op &lt;b translate=&quot;no&quot;&gt;Submit to Flamenco&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/898/original/sh_blender_remote_rendering_with_flamenco_11.png?1713174432
&quot; alt=&quot;Set rendering parameters&quot;&gt;
&lt;p&gt;De Flamenco add-on maakt een nieuwe taak aan en uploadt een blendbestand naar gedeelde opslag. Het systeem stuurt de taak naar een beschikbare worker en start het renderproces:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/899/original/sh_blender_remote_rendering_with_flamenco_12.png?1713174462&quot; alt=&quot;Check added rendering job&quot;&gt;
&lt;p&gt;Als je de belasting van de GPU&#39;s controleert met nvtop of soortgelijke hulpprogramma&#39;s, zie je dat alle GPU&#39;s compute taken hebben:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/900/original/sh_blender_remote_rendering_with_flamenco_13.png?1713174495&quot; alt=&quot;Check GPU load&quot;&gt;
&lt;p&gt;Je vindt het resultaat in een map die je in de vorige stap hebt geselecteerd. Voorbeeld &lt;a href=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/901/original/sh_blender_remote_rendering_with_flamenco_14.gif?1713175121
&quot;&gt;hier&lt;/a&gt; (&lt;a href=&quot;https://www.blender.org/download/demo-files/&quot;&gt;Ripple Dreams&lt;/a&gt; door &lt;a href=&quot;https://twitter.com/redjam_9&quot;&gt;James Redmond&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/586-fotogrammetrie-met-meshroom&quot;&gt;Fotogrammetrie met Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/590-fooocus-heroverweging-van-sd-en-mj&quot;&gt;Fooocus: Heroverweging van SD en MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/888/original/sh_blender_remote_rendering_with_flamenco_1.jpg?1713174084"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 09:47:24 +0100</pubDate>
      <guid isPermaLink="false">588</guid>
      <dc:date>2025-01-21 09:47:24 +0100</dc:date>
    </item>
    <item>
      <title>Fotogrammetrie met Meshroom</title>
      <link>https://www.leadergpu.nl/catalog/586-fotogrammetrie-met-meshroom</link>
      <description>&lt;p&gt;Fotogrammetrie is een methode om fysieke objecten om te zetten in driedimensionale digitale modellen die bewerkt kunnen worden met 3D-software. Dit proces maakt meestal gebruik van gespecialiseerde apparaten die 3D-scanners worden genoemd en er zijn twee hoofdtypen: optisch en laser.&lt;/p&gt;
&lt;p&gt;Optische scanners gebruiken vaak een of meer digitale camera&#39;s en speciale verlichting om het object gelijkmatig te belichten tijdens het scannen. Hierdoor kan een 3D-model worden gemaakt. Laserscanners daarentegen maken gebruik van laserstralen. Deze apparaten zenden meerdere laserstralen uit en meten de tijd die elke straal nodig heeft om terug te kaatsen van het object. Aan de hand van deze gegevens, samen met informatie van positiesensoren, berekent de scanner de afstand tot elk punt op het object. Dit creëert een &quot;puntenwolk&quot; die de basis vormt van het 3D-model.&lt;/p&gt;
&lt;h3&gt;Puntenwolk&lt;/h3&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/050/original/sh_photogrammetry_with_meshroom_1.png?1724833519&quot; alt=&quot;Points cloud rabbit&quot;&gt;
&lt;p&gt;Om het toekomstige raamwerk van een object op te bouwen, moet het systeem de coördinaten van elk hoekpunt in de driedimensionale ruimte kennen. De verzameling hoekpunten wordt een puntenwolk genoemd. Hoe meer hoekpunten er zijn, hoe gedetailleerder het object zal zijn. Het maken van een puntenwolk is de eerste en een van de meest cruciale stappen bij het recreëren van een 3D-model van foto&#39;s.&lt;/p&gt;
&lt;p&gt;Het is belangrijk om te weten dat elk hoekpunt in de puntenwolk in eerste instantie niet verbonden is met andere hoekpunten. Dit maakt filteren eenvoudig: de noodzakelijke punten behouden en de rest verwijderen, voordat u begint met het opnieuw maken van de mesh van het object.&lt;/p&gt;
&lt;h3&gt;Mesh-objecten&lt;/h3&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/051/original/sh_photogrammetry_with_meshroom_2.png?1724833553&quot; alt=&quot;Mesh object rabbit&quot;&gt;
&lt;p&gt;Een mesh-object is een type 3D-model dat bestaat uit driehoekige geometrische primitieven, vaak meshes of polymeshes genoemd. Zodra objectpunten gevormd zijn, kan de toepassing hieruit onafhankelijk driehoekige primitieven samenstellen. Door deze primitieven te verbinden, is het mogelijk om een 3D-model van bijna elke vorm te maken. In dit stadium heeft het model geen kleur en blijft het ongeverfd.&lt;/p&gt;
&lt;p&gt;De volgende textureringsfase pakt dit probleem aan.&lt;/p&gt;
&lt;h3&gt;Structureren&lt;/h3&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/052/original/sh_photogrammetry_with_meshroom_3.png?1724833589&quot; alt=&quot;Textured rabbit&quot;&gt;
&lt;p&gt;De laatste stap is het aanbrengen van de uit de foto&#39;s geëxtraheerde beeldtextuur op het voorbereide mesh-object. De kwaliteit van de genomen foto&#39;s en hun resolutie spelen hier een belangrijke rol. Als die laag is, zal het eindresultaat er niet op zijn best uitzien. Maar als er voldoende foto&#39;s van goede kwaliteit zijn gemaakt, krijg je bij de uitvoer een volledig gebruiksklaar 3D-model van een echt object. Hieronder geven we een aantal handige tips voor het voorbereiden van de originele foto&#39;s.&lt;/p&gt;
&lt;h2&gt;Camera-instellingen&lt;/h2&gt;
&lt;p&gt;Om teleurstellingen te voorkomen bij uw eerste pogingen om een 3D-model te maken van foto&#39;s, moet u deze eenvoudige basisregels in acht nemen. Elke regel helpt problemen te voorkomen die meestal optreden tijdens het maken van het mesh-object.&lt;/p&gt;
&lt;p&gt;Ten eerste, vertrouw niet op de automatische instellingen van uw digitale camera. Moderne camera&#39;s proberen vier belangrijke parameters onafhankelijk van elkaar te balanceren:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;ISO,&lt;/li&gt;
    &lt;li&gt;witbalans,    &lt;/li&gt;
    &lt;li&gt;sluitertijd,&lt;/li&gt;
    &lt;li&gt;diafragma.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In de automatische modus kunnen zelfs kleine veranderingen in externe omstandigheden ervoor zorgen dat deze instellingen variëren tussen frames. Deze variaties kunnen leiden tot merkbare inconsistenties tijdens het textureren.&lt;/p&gt;
&lt;p&gt;Gebruik de modus &lt;b translate=&quot;no&quot;&gt;Manual&lt;/b&gt; (M) om consistente parameters tussen frames te behouden. Het diafragma is hier een cruciale instelling. Afhankelijk van je lens moet je streven naar een stand waarbij het diafragma bijna gesloten is. Dit helpt om maximale scherptediepte te bereiken: hoe minder open het diafragma, hoe beter. Vermijd echter extreme waarden. Als je lens dicht bij &lt;b translate=&quot;no&quot;&gt;f/22&lt;/b&gt; kan staan, krijg je goede resultaten met waarden tussen &lt;b translate=&quot;no&quot;&gt;f/11&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;f/20&lt;/b&gt;.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/053/original/sh_photogrammetry_with_meshroom_4.png?1724833619&quot; alt=&quot;Makarios aperture difference&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;sup&gt;&lt;i&gt;Links f/11, rechts f/22&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Het sluiten van het diafragma creëert echter een ander probleem: onvoldoende licht. Dit kan op twee manieren worden aangepakt: door de ISO-gevoeligheid te verhogen of de sluitertijd te verlengen. Beide methoden hebben invloed op het eindresultaat, zij het op verschillende manieren. Het verhogen van de ISO tot 6400 introduceert digitale ruis in de foto, dus je kunt het beste de laagst mogelijke waarden gebruiken. Voor bijna ideale resultaten is het verstandig om de ISO op 100 in te stellen. Dit betekent echter dat het probleem van onvoldoende belichting blijft bestaan:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/054/original/sh_photogrammetry_with_meshroom_5.png?1724833649&quot; alt=&quot;Makarios ISO difference&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;sup&gt;&lt;i&gt;Links ISO 100, rechts ISO 6400&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;De meest effectieve manier om meer licht door de camerasensor te laten stromen bij weinig licht is door de sluitertijd te verlengen. Hoe langer de sluiter open blijft, hoe meer fotonen de sensor raken, wat resulteert in een betere beeldkwaliteit. Deze aanpak brengt echter een uitdaging met zich mee: zonder statief kan een sluitertijd van 1/50 seconde of langer het beeld onscherp maken. Met een statief is dit probleem verleden tijd.&lt;/p&gt;
&lt;p&gt;Witbalans is de laatste cruciale parameter. Het is belangrijk om de automatische instelling uit te schakelen en een voorgeprogrammeerd profiel te kiezen (zoals &quot;Zonnige dag&quot;) of een aangepaste waarde in Kelvin. 5200K is bijvoorbeeld een veelgebruikte instelling. Lagere waarden verschuiven de tint naar geel, terwijl hogere waarden naar blauw neigen. Om tijdrovende kleurcorrecties in de nabewerking te voorkomen, gebruik je hetzelfde witbalansprofiel voor alle foto&#39;s in een serie.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/055/original/sh_photogrammetry_with_meshroom_6.png?1724833681&quot; alt=&quot;Makarios white balance&quot;&gt;
&lt;p align=&quot;center&quot;&gt;&lt;sup&gt;&lt;i&gt;WB-profielen. Links &quot;Zonnige dag&quot;, rechts &quot;Auto&quot;.&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Kortom, om foto&#39;s van hoge kwaliteit te maken voor fotogrammetrie:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Gebruik een statief bij onvoldoende licht.&lt;/li&gt;
    &lt;li&gt;Sluit het diafragma bijna tot het minimum.&lt;/li&gt;
    &lt;li&gt;Stel de ISO in op de minimale waarde.&lt;/li&gt;
    &lt;li&gt;Kies een sluitertijd die je het gewenste resultaat geeft (of gebruik de ingebouwde belichtingsmeter van je camera).&lt;/li&gt;
    &lt;li&gt;Gebruik dezelfde voorkeuze witbalans.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Foto&#39;s maken&lt;/h2&gt;
&lt;p&gt;Laten we het hebben over hoeveel foto&#39;s je moet nemen en vanuit welke hoeken. Het type object en de achtergrond hebben een grote invloed op het eindresultaat. Objecten zonder glimmende, transparante of reflecterende oppervlakken zijn ideaal voor fotogrammetrie. In de praktijk moeten objecten zoals ramen en glas later vaak worden gecorrigeerd in een 3D-editor. De algemene opnametechniek blijft echter hetzelfde.&lt;/p&gt;
&lt;p&gt;Stel je voor kleine objecten op een oppervlak een bol voor rond het object. Neem foto&#39;s alsof je camera drie keer rond het object cirkelt: een keer van onderaf, een keer in het midden en een keer van bovenaf.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/056/original/sh_photogrammetry_with_meshroom_7.png?1724833713&quot; alt=&quot;Rabbit camera positions&quot;&gt;
&lt;p&gt;Het is cruciaal dat het object minstens de helft en bij voorkeur driekwart van elk beeld inneemt. Probeer in plaats van in te zoomen fysiek dichter bij het object te komen. Bij het maken van een wolkenpunt heeft de software zoveel mogelijk pixels nodig.&lt;/p&gt;
&lt;p&gt;Denk er bij het fotograferen aan dat de software frames combineert tot één object voor een correcte geometrie. Maak als regel minstens drie frames vanuit elke hoek. Zodra je het object in het frame hebt gecentreerd, verdeel je het mentaal verticaal in drie gelijke delen. Neem drie foto&#39;s, elk gericht op een derde van het object. Dit zorgt voor de nodige overlap zodat de toepassing de locatie van elk punt in de 3D-ruimte nauwkeurig kan berekenen. Nadat je het object van alle mogelijke kanten en hoeken hebt gefotografeerd, kun je beginnen met het voorbereiden van de software.&lt;/p&gt;
&lt;h2&gt;Meshroom installeren&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://alicevision.org/&quot;&gt;Meshroom&lt;/a&gt; is een gratis, cross-platform toepassing die alle verwerkingsstappen sequentieel uitvoert, gebruikmakend van CPU en GPU bronnen. Hoewel het op een standaard thuiscomputer kan draaien, kan elke stap tijdrovend zijn. Voor grootschalige projecten met 3D-reconstructie van een groot aantal objecten, zoals het maken van een indrukwekkende 3D-scène, kan het huren van een &lt;a href=&quot;https://www.leadergpu.nl/&quot;&gt;speciale GPU-server&lt;/a&gt; een praktische oplossing zijn.&lt;/p&gt;
&lt;p&gt;Laten we eens kijken naar een LeaderGPU server met de volgende configuratie: &lt;b translate=&quot;no&quot;&gt;2 x NVIDIA® RTX™ 3090, 2 x Intel® Xeon® Silver 4210 (3.20 GHz), 128GB RAM&lt;/b&gt;. We gebruiken Windows Server 2022 als besturingssysteem. Voordat je Meshroom installeert, moet je enkele voorbereidende stappen uitvoeren:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/489-maak-verbinding-met-een-windows-server&quot;&gt;Maak verbinding met een Windows server&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/500-installeer-nvidia-stuurprogramma-s-in-windows&quot;&gt;Nvidia-stuurprogramma&#39;s installeren in Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/513-gpu-weergave-in-rdp&quot;&gt;GPU rendering in RDP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bezoek de officiële website van het project om &lt;a href=&quot;https://alicevision.org/#meshroom&quot;&gt;Meshroom te downloaden&lt;/a&gt;. Pak het resulterende archief uit om een gebruiksklare toepassing te vinden die geen extra installatie vereist. Start &lt;b translate=&quot;no&quot;&gt;Meshroom.exe&lt;/b&gt; om te beginnen.&lt;/p&gt;
&lt;h3&gt;Afbeeldingen uploaden&lt;/h3&gt;
&lt;p&gt;Het hoofdvenster van de toepassing is verdeeld in twee delen: boven en onder. Het bovenste deel bevat de afbeeldingsgalerij, de afbeeldingsviewer en de 3D-viewer. Het onderste deel bevat de Graph editor en Task Manager. Om te beginnen sleep je je vastgelegde foto&#39;s naar het aangewezen gebied. Zowel gecomprimeerde (bijvoorbeeld JPG) als RAW-bestandsformaten worden ondersteund. Het wordt aanbevolen om RAW-bestanden te gebruiken omdat deze aanzienlijk meer gegevens bevatten voor elk frame.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/057/original/sh_photogrammetry_with_meshroom_8.png?1724833779&quot; alt=&quot;Meshroom main window&quot;&gt;
&lt;p&gt;Houd er rekening mee dat je standaard al een kant-en-klare standaard pijplijn hebt, die schematisch wordt weergegeven in de Graph Editor. Dit is een van de belangrijkste besturingselementen waarmee je alle aspecten van de beeldverwerking in elke fase kunt configureren. Je kunt elke stap handmatig uitvoeren door met de rechtermuisknop te klikken en &lt;b translate=&quot;no&quot;&gt;Compute&lt;/b&gt; te selecteren in het vervolgkeuzemenu.&lt;/p&gt;
&lt;p&gt;Maar voor de eerste keer kun je gewoon op de groene knop &lt;b translate=&quot;no&quot;&gt;Start&lt;/b&gt; klikken en de toepassing zal alles voor je doen. Het vraagt je om het project op te slaan, zodat je de resultaten van de berekening niet per ongeluk kwijtraakt. Klik op &lt;b translate=&quot;no&quot;&gt;Save&lt;/b&gt;, geef een naam en map op en sla het project op:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/058/original/sh_photogrammetry_with_meshroom_9.png?1724833809&quot; alt=&quot;Meshroom save project&quot;&gt;
&lt;p&gt;Vervolgens brengt de toepassing alle verwerkingsfasen over van de Graph Editor naar de Task Manager, die ze in een specifieke volgorde uitvoert. Om de status van elke stap te controleren, selecteer je het corresponderende blok in de Graph Editor en klik je op de knop &lt;b translate=&quot;no&quot;&gt;Log&lt;/b&gt; in de rechterbenedenhoek van het scherm. Je kunt ook in realtime zien welke stap momenteel wordt verwerkt:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/059/original/sh_photogrammetry_with_meshroom_10.png?1724833857&quot; alt=&quot;Meshroom task manager&quot;&gt;
&lt;p&gt;Aan de rechterkant zie je de puntenwolk die je hebt opgebouwd. Het eindresultaat, gegenereerd met de standaard pijplijn, is beschikbaar in de map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Your_Project_Path]\MeshroomCache\Texturing\[Random_Symbols]\texturedMesh.obj&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je van tevoren het uitvoerpad vastlegt in het laatste knooppunt van de pijplijn, komt het object natuurlijk terecht op het pad dat je hebt opgegeven. Vervolgens kun je het importeren in elke teksteditor om oppervlakken te corrigeren, lichtbronnen en andere effecten toe te voegen voor het renderen.&lt;/p&gt;
&lt;h2&gt;Integratie&lt;/h2&gt;
&lt;p&gt;Hoewel het eerste resultaat er indrukwekkend uitziet, moet het vaak worden verfijnd in een 3D-editor. Meshroom vereenvoudigt dit proces doordat je niet alleen het model, maar ook de puntenwolk en cameraposities kunt importeren in editors van derden, zoals &lt;a href=&quot;https://www.sidefx.com/&quot;&gt;Houdini&lt;/a&gt; of &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt;. In de volgende sectie bekijken we hoe u dat doet.&lt;/p&gt;
&lt;h3&gt;Houdini&lt;/h3&gt;
&lt;p&gt;In feite is Meshroom een gebruiksvriendelijke interface voor de AliceVision engine, die alle berekeningsgerelateerde operaties afhandelt. Deze interface implementeert de bijbehorende pijplijn en taakmanager. Als je Houdini gebruikt, kun je je eigen pijplijn direct in de toepassing maken en deze naast andere gereedschappen gebruiken, zodat je Meshroom niet apart hoeft te starten.&lt;/p&gt;
&lt;p&gt;Om te beginnen kunt u het beste een speciale launcher &lt;a href=&quot;https://www.sidefx.com/download/download-houdini/120709/&quot;&gt;downloaden&lt;/a&gt; en installeren die Houdini updates en plugins beheert. Voeg vervolgens de SideFX Labs plugin toe, die talloze extra tools biedt, waaronder specifieke nodes voor AliceVision. Klik hiervoor op de knop &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt; en selecteer vervolgens &lt;b translate=&quot;no&quot;&gt;Shelves&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/060/original/sh_photogrammetry_with_meshroom_11.png?1724833888&quot; alt=&quot;Houdini add Shelves Houdini add Shelves&quot;&gt;
&lt;p&gt;Scroll naar beneden in de lijst en selecteer &lt;b translate=&quot;no&quot;&gt;SideFX Labs&lt;/b&gt;, klik vervolgens op de knop &lt;b translate=&quot;no&quot;&gt;Update Toolset&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/061/original/sh_photogrammetry_with_meshroom_12.png?1724833916&quot; alt=&quot;Houdini SideFX Labs Update Toolset&quot;&gt;
&lt;p&gt;Volg deze stappen om een plugin te installeren: Klik op de knop &lt;b translate=&quot;no&quot;&gt;Start Launcher&lt;/b&gt;, navigeer naar de sectie &lt;b translate=&quot;no&quot;&gt;Labs/Packages&lt;/b&gt; in het linkermenu en selecteer &lt;b translate=&quot;no&quot;&gt;Install packages&lt;/b&gt;. Dit opent een venster waarin je pakketten kunt kiezen om te installeren:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/062/original/sh_photogrammetry_with_meshroom_13.png?1724833946&quot; alt=&quot;Add Houdini plugin&quot;&gt;
&lt;p&gt;Kies de &lt;b translate=&quot;no&quot;&gt;Production Build&lt;/b&gt; voor jouw versie van Houdini en klik op &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt;. Start daarna de toepassing opnieuw op om ervoor te zorgen dat de nieuwe effectpictogrammen bovenaan verschijnen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/063/original/sh_photogrammetry_with_meshroom_14.png?1724833974&quot; alt=&quot;Houdini new items&quot;&gt;
&lt;p&gt;Het is cruciaal om op te merken dat je hier geen vermelding vindt van AliceVision of Meshlab. Dit komt omdat de corresponderende plugin alleen werkt binnen de geometrie context pijplijn. Om dit te controleren, klikt u op het pictogram &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt;, selecteert u vervolgens &lt;b translate=&quot;no&quot;&gt;New Pane Tab Type&lt;/b&gt; en kiest u &lt;b translate=&quot;no&quot;&gt;Network View&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/064/original/sh_photogrammetry_with_meshroom_15.png?1724834004&quot; alt=&quot;Houdini Network View&quot;&gt;
&lt;p&gt;Druk op de toets &lt;b translate=&quot;no&quot;&gt;Tab&lt;/b&gt; en voeg een knooppunt &lt;b translate=&quot;no&quot;&gt;Geometry&lt;/b&gt; toe:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/065/original/sh_photogrammetry_with_meshroom_16.png?1724834038&quot; alt=&quot;Houdini add Geometry&quot;&gt;
&lt;p&gt;Dubbelklik om het gemaakte knooppunt te openen en typ &lt;b translate=&quot;no&quot;&gt;av&lt;/b&gt; op uw toetsenbord. Het systeem toont direct een lijst met beschikbare knooppunten die beginnen met de Labs AV-symbolen. Met deze knooppunten kunt u de AliceVision engine besturen en integreren in uw eigen pijplijnen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/066/original/sh_photogrammetry_with_meshroom_17.png?1724834061&quot; alt=&quot;Houdini AliceVision nodes&quot;&gt;
&lt;p&gt;Raadpleeg de &lt;a href=&quot;https://www.sidefx.com/tutorials/alicevision-plugin/&quot;&gt;officiële documentatie&lt;/a&gt; van de plugin om een goede pijplijn te maken. Overweeg daarnaast om de AliceVision directory toe te voegen aan de lijst met omgevingsvariabelen in het houdini.env bestand. Voor een standaardinstallatie met de launcher, bevindt dit bestand zich meestal in de map &lt;b translate=&quot;no&quot;&gt;C:\Users\Administrator\Documents\houdini20.5\&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Open het houdini.env bestand met een tekstverwerker en voeg de volgende regel toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;ALICEVISION_PATH = [path to alicevision directory in Meshroom folder]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bijvoorbeeld, als je Meshroom hebt geïnstalleerd in de root directory van de D: drive, dan zou je pad er als volgt uit kunnen zien:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;ALICEVISION_PATH = D:\Meshroom\aliceVision&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en start de Houdini-toepassing opnieuw.&lt;/p&gt;
&lt;h3&gt;Blender&lt;/h3&gt;
&lt;p&gt;Voor Blender gebruikers raden we de &lt;b translate=&quot;no&quot;&gt;Meshroom2Blender&lt;/b&gt; plugin aan. Hoewel deze anders werkt dan de Houdini plugin, kun je hiermee puntwolken en cameraposities berekend door Meshroom exporteren naar Blender. Open de link in uw browser om toegang te krijgen tot de plugincode:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;https://raw.githubusercontent.com/tibicen/meshroom2blender/master/view3d_point_cloud_visualizer.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla de code op als &lt;b translate=&quot;no&quot;&gt;view3d_point_cloud_visualizer.py&lt;/b&gt; in een handige map. Open vervolgens Blender en navigeer naar &lt;b translate=&quot;no&quot;&gt;Edit&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;Preferences&lt;/b&gt;. Selecteer daar de tab &lt;b translate=&quot;no&quot;&gt;Add-ons&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/067/original/sh_photogrammetry_with_meshroom_18.png?1724834088&quot; alt=&quot;Blender Preferences&quot;&gt;
&lt;p&gt;Klik op de pijl omlaag en selecteer &lt;b translate=&quot;no&quot;&gt;Install from Disk&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/068/original/sh_photogrammetry_with_meshroom_19.png?1724834111&quot; alt=&quot;Blender install addons&quot;&gt;
&lt;p&gt;Navigeer in het nieuw geopende venster naar de map waar je de plugin hebt opgeslagen. Selecteer het plugin-bestand en klik op &lt;b translate=&quot;no&quot;&gt;Install from Disk button&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/069/original/sh_photogrammetry_with_meshroom_20.png?1724834139&quot; alt=&quot;Blender choose plugin file&quot;&gt;
&lt;p&gt;De plugin is nu geïnstalleerd. Het wordt aanbevolen om de toepassing opnieuw op te starten. Na het herstarten zie je het item &lt;b translate=&quot;no&quot;&gt;Point Cloud Visualizer&lt;/b&gt; in de weergavemodus. De plugin vereist dat je het pad naar een bestand met de extensie &lt;b translate=&quot;no&quot;&gt;.ply&lt;/b&gt; opgeeft:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/070/original/sh_photogrammetry_with_meshroom_21.png?1724834177&quot; alt=&quot;Blender new option&quot;&gt;
&lt;p&gt;Standaard genereert Meshroom dit type bestand niet. Om het aan te maken, open de pijplijn en voeg de &lt;b translate=&quot;no&quot;&gt;ConvertSfMFormat&lt;/b&gt; node toe. Gebruik de &lt;b translate=&quot;no&quot;&gt;SfMData&lt;/b&gt; van de &lt;b translate=&quot;no&quot;&gt;StructureFromMotion&lt;/b&gt; node als invoer. Geef voor de uitvoer de &lt;b translate=&quot;no&quot;&gt;Images Folder&lt;/b&gt; van het knooppunt &lt;b translate=&quot;no&quot;&gt;Texturing&lt;/b&gt; op.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/071/original/sh_photogrammetry_with_meshroom_22.png?1724834206&quot; alt=&quot;Meshroom add Convert node&quot;&gt;
&lt;p&gt;De laatste stap is het opgeven van het formaat. Klik op &lt;b translate=&quot;no&quot;&gt;SfM File Format&lt;/b&gt; in het knooppunt &lt;b translate=&quot;no&quot;&gt;ConvertSfMFormat&lt;/b&gt; en selecteer &lt;b translate=&quot;no&quot;&gt;ply&lt;/b&gt; in de vervolgkeuzelijst:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/072/original/sh_photogrammetry_with_meshroom_23.png?1724834239&quot; alt=&quot;Meshroom Convert format&quot;&gt;
&lt;p&gt;Klik met de rechtermuisknop op het gemaakte knooppunt en selecteer &lt;b translate=&quot;no&quot;&gt;Compute&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/073/original/sh_photogrammetry_with_meshroom_24.png?1724834267&quot; alt=&quot;Meshroom compute task&quot;&gt;
&lt;p&gt;Zodra het proces is voltooid, vind je het vereiste bestand in de directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Your_Project_Path]\MeshroomCache\ConvertSfMFormat\[Random_Symbols]\sfm.ply&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je kunt het op twee manieren in Blender laden: via de eerder genoemde plugin of via het standaard importproces &lt;b translate=&quot;no&quot;&gt;File&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;Import&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;Stanford PLY (.ply)&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/074/original/sh_photogrammetry_with_meshroom_25.png?1724834291&quot; alt=&quot;Blender import points cloud&quot;&gt;
&lt;p&gt;Voor meer informatie over het gebruik van deze plugin, raden we je aan de &lt;a href=&quot;https://github.com/tibicen/meshroom2blender&quot;&gt;project repository&lt;/a&gt; of een gespecialiseerde webbron te raadplegen.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Fotogrammetrie is een groot kennisgebied, waarbij we hebben geprobeerd om slechts enkele basistechnieken te vertellen voor het omzetten van 2D afbeeldingen in een 3D model. Dit wordt in veel industrieën gebruikt, van architectuur tot het maken van computerspellen.&lt;/p&gt;
&lt;p&gt;Nadat u de eerste ervaring hebt opgedaan met het fotograferen van een dataset en de consistente transformatie ervan in een 3D-model, kunt u uw vaardigheden verbeteren en fysieke objecten overbrengen naar een virtuele 3D-ruimte. Welnu, LeaderGPU zal u helpen met rekenkracht, het verminderen van de rekentijd en het vrijmaken van uw werkstation voor andere, vaak meer prioritaire taken.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/588-blender-op-afstand-renderen-met-flamenco&quot;&gt;Blender op afstand renderen met Flamenco&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/590-fooocus-heroverweging-van-sd-en-mj&quot;&gt;Fooocus: Heroverweging van SD en MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/049/original/il_photogrammetry_with_meshroom.png?1724833423"
        length="0"
        type="image/jpeg"/>
      <pubDate>Tue, 21 Jan 2025 09:38:44 +0100</pubDate>
      <guid isPermaLink="false">586</guid>
      <dc:date>2025-01-21 09:38:44 +0100</dc:date>
    </item>
    <item>
      <title>Open WebUI: Alles in één</title>
      <link>https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n</link>
      <description>&lt;p&gt;Open WebUI is oorspronkelijk ontwikkeld voor Ollama, waarover we in een van onze artikelen hebben gesproken. Voorheen heette het Ollama WebUI, maar na verloop van tijd verschoof de focus naar universaliteit van toepassing en werd de naam veranderd in Open WebUI. Deze software lost het sleutelprobleem op van handig werken met grote neurale netwerkmodellen die lokaal of op door de gebruiker beheerde servers worden geplaatst.&lt;/p&gt;
&lt;h2&gt;Installatie&lt;/h2&gt;
&lt;p&gt;De belangrijkste en meest geprefereerde installatiemethode is het implementeren van een Docker-container. Hierdoor hoef je niet na te denken over de aanwezigheid van afhankelijkheden of andere componenten die zorgen voor de juiste werking van de software. Je kunt Open WebUI echter ook installeren door de projectrepository van GitHub te klonen en het vanaf de broncode te bouwen. In dit artikel bekijken we beide opties.&lt;/p&gt;
&lt;p&gt;Voordat je begint, moet je ervoor zorgen dat de GPU-stuurprogramma&#39;s op de server zijn geïnstalleerd. Onze instructie &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;Nvidia-stuurprogramma&#39;s installeren in Linux&lt;/a&gt; helpt je hierbij.&lt;/p&gt;
&lt;h3&gt;Docker gebruiken&lt;/h3&gt;
&lt;p&gt;Als je net een server hebt besteld, dan ontbreken de Docker Engine zelf en de nodige tools om GPU&#39;s aan de container door te geven. We raden niet aan Docker te installeren vanuit de standaard Ubuntu repository, omdat deze mogelijk verouderd is en niet alle moderne opties ondersteunt. Het is beter om het installatiescript te gebruiken dat op de officiële website staat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://get.docker.com/ | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Naast Docker moet je ook de NVIDIA® Container Toolkit installeren, dus schakel de Nvidia-repository in:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed &#39;s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g&#39; | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Werk je pakketcache bij en installeer NVIDIA® Container Toolkit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y install nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om de toolchain te laten werken, moet je de Docker-daemon herstarten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je de gewenste container uitvoeren. Merk op dat het volgende commando de containers niet isoleert van het hostnetwerk, omdat u later extra opties kunt inschakelen, zoals het genereren van images met de Stable Diffusion WebUI. Dit commando zal automatisch alle lagen van het image downloaden en uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -d --network=host --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Git gebruiken&lt;/h3&gt;
&lt;h4&gt;Ubuntu 22.04&lt;/h4&gt;
&lt;p&gt;Eerst moet je de inhoud van het archief klonen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/open-webui/open-webui.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd open-webui/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer de voorbeeldconfiguratie (je kunt deze indien nodig aanpassen), die de omgevingsvariabelen voor het bouwen instelt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cp -RPp .env.example .env&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer de NVM installer, die je zal helpen om de vereiste versie van Node.js op de server te installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Daarna moet je de SSH-sessie sluiten en opnieuw openen zodat het volgende commando correct werkt.&lt;/p&gt;
&lt;p&gt;Installeer Node Package Manager:&lt;/p&gt;  
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install npm&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;Installeer Node.js versie 22 (actueel op het moment van schrijven van dit artikel):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;npm install 22&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer de afhankelijkheden die nodig zijn voor verdere assemblage:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;npm install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we de build starten. Houd er rekening mee dat er meer dan 4 GB vrij RAM-geheugen nodig is:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;npm run build&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De voorkant is klaar; nu is het tijd om de achterkant voor te bereiden. Ga naar de map met dezelfde naam:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ./backend&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer pip en ffmpeg pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install python3-pip ffmpeg&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voor de installatie moet je een nieuw pad toevoegen aan de omgevingsvariabele:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano ~/.bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voeg de volgende regel toe aan het einde van het bestand:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;export PATH=&quot;/home/usergpu/.local/bin:$PATH&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we het bijwerken naar de nieuwste versie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 -m pip install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je de afhankelijkheden installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -r requirements.txt -U&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer Ollama:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://ollama.com/install.sh | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Alles is klaar om de toepassing te starten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;bash start.sh&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Ubuntu 24.04 / 24.10&lt;/h4&gt;
&lt;p&gt;Bij het installeren van OpenWebUI op Ubuntu 24.04/24.10 wordt u geconfronteerd met een belangrijke uitdaging: het besturingssysteem gebruikt standaard Python 3.12, terwijl OpenWebUI alleen versie 3.11 ondersteunt. U kunt Python niet eenvoudigweg downgraden, want dan zou het besturingssysteem kapot gaan. Aangezien het python3.11 pakket niet beschikbaar is in de standaard repositories, moet u een virtuele omgeving maken om de juiste Python versie te gebruiken.&lt;/p&gt;
&lt;p&gt;De beste oplossing is om het Conda pakketbeheersysteem te gebruiken. Conda werkt als pip, maar voegt ondersteuning voor virtuele omgevingen toe, vergelijkbaar met venv. Omdat je alleen basisfunctionaliteit nodig hebt, gebruik je Miniconda, een lichtgewicht distributie. Download de nieuwste versie van GitHub:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -L -O &quot;https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;bash Miniforge3-$(uname)-$(uname -m).sh&lt;/code&gt;&lt;/pre&gt;
Laten we een virtuele omgeving aanmaken met de naam pyenv en de Python versie 3.11 specificeren:&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda create -n pyenv python=3.11&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Activeer de aangemaakte omgeving:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;conda activate pyenv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kunt u doorgaan met de standaard OpenWebUI installatiestappen voor Ubuntu 22.04. De virtuele omgeving zorgt ervoor dat alle installatiescripts soepel verlopen zonder conflicten met pakketversies.&lt;/p&gt;
&lt;h2&gt;Modellen&lt;/h2&gt;
&lt;h3&gt;Ollama bibliotheek&lt;/h3&gt;
&lt;p&gt;Met Open WebUI kunt u modellen rechtstreeks uploaden vanuit de webinterface, waarbij u alleen de naam hoeft op te geven in het formaat &lt;b translate=&quot;no&quot;&gt;model:size&lt;/b&gt;. Navigeer hiervoor naar &lt;a href=&quot;http://192.168.88.20:8080/admin/settings&quot;&gt;http://192.168.88.20:8080/admin/settings&lt;/a&gt; en klik op &lt;b translate=&quot;no&quot;&gt;Connections&lt;/b&gt;. Klik vervolgens op het moersleutelpictogram tegenover de &lt;b translate=&quot;no&quot;&gt;http://localhost:11434&lt;/b&gt; string. Nadat u de namen van de modellen in de &lt;a href=&quot;https://ollama.com/library&quot;&gt;bibliotheek&lt;/a&gt; hebt bekeken, voert u de naam in en klikt u op het uploadpictogram:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/027/original/sh_open_webui_all_in_one_1.png?1722870065&quot; alt=&quot;Open WebUI manage models&quot;&gt;
&lt;p&gt;Daarna zal het systeem automatisch het gewenste model downloaden en zal het onmiddellijk beschikbaar worden voor gebruik. Afhankelijk van de geselecteerde grootte kan het downloaden een andere hoeveelheid tijd in beslag nemen. Controleer voor het downloaden of er voldoende ruimte is op de schijf. Zie voor meer informatie het artikel &lt;a href=&quot;https://www.leadergpu.nl/articles/492-schijfpartitionering-onder-linux&quot;&gt;Schijfpartitionering in Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Aangepaste modellen&lt;/h3&gt;
&lt;p&gt;Als je een neuraal netwerkmodel moet integreren dat niet in de Ollama-bibliotheek zit, kun je de experimenteerfunctie gebruiken en een willekeurig model in GGUF-formaat laden. Ga hiervoor naar &lt;b translate=&quot;no&quot;&gt;Settings - Admin Settings - Connections&lt;/b&gt; en klik op het moersleutelpictogram tegenover &lt;b translate=&quot;no&quot;&gt;http://localhost:11434&lt;/b&gt;. Klik op &lt;b translate=&quot;no&quot;&gt;Show&lt;/b&gt; in de sectie &lt;b translate=&quot;no&quot;&gt;Experimental&lt;/b&gt;. Standaard is de bestandsmodus geactiveerd, waarmee je een bestand van je lokale computer kunt laden. Als je op &lt;b translate=&quot;no&quot;&gt;File Mode&lt;/b&gt; klikt, verandert dit in &lt;b translate=&quot;no&quot;&gt;URL Mode&lt;/b&gt;, waarmee je de URL van het modelbestand kunt opgeven, waarna de server het automatisch downloadt:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/028/original/sh_open_webui_all_in_one_2.png?1736411361&quot; alt=&quot;Open WebUI upload gguf model&quot;&gt;
&lt;h2&gt;RAG&lt;/h2&gt;
&lt;p&gt;Naast een handige en functionele webinterface helpt Open WebUI om de mogelijkheden van verschillende modellen uit te breiden, zodat ze samen kunnen worden gebruikt. Het is bijvoorbeeld eenvoudig om documenten te uploaden om een RAG (Retrieval-augmented generation) vectordatabase te vormen. Bij het genereren van een antwoord aan de gebruiker zal LLM niet alleen kunnen vertrouwen op gegevens die direct als resultaat van de training zijn verkregen, maar ook op gegevens die in een vergelijkbare vectordatabase zijn geplaatst.&lt;/p&gt;
&lt;h3&gt;Documenten&lt;/h3&gt;
&lt;p&gt;Open WebUI scant standaard de map /data/docs op bestanden die in de vectorruimte van de database kunnen worden geplaatst en voert de transformatie uit met behulp van het ingebouwde &lt;a href=&quot;https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2&quot;&gt;all-MiniLM-L6-v2&lt;/a&gt; model. Dit is niet het enige model dat geschikt is voor deze taak, dus het is zinvol om andere opties te proberen, bijvoorbeeld uit deze lijst.&lt;/p&gt;
&lt;p&gt;Tekstdocumenten zonder tags en andere speciale tekens zijn het meest geschikt voor RAG. Natuurlijk kun je documenten uploaden zoals ze zijn, maar dit kan de nauwkeurigheid van de gegenereerde antwoorden sterk beïnvloeden. Als je bijvoorbeeld een kennisbank in Markdown-indeling hebt, kun je deze eerst opmaken en pas daarna uploaden naar /data/docs.&lt;/p&gt;
&lt;h3&gt;Zoeken op het web&lt;/h3&gt;
&lt;p&gt;Naast lokale documenten kan het neurale netwerkmodel ook de opdracht krijgen om websites te gebruiken als gegevensbron. Hierdoor kan het vragen beantwoorden door niet alleen de gegevens te gebruiken waarop het getraind is, maar ook gegevens die gehost worden op websites die door de gebruiker gespecificeerd zijn.&lt;/p&gt;
&lt;p&gt;In feite is dit een soort RAG, die HTML-pagina&#39;s als invoer ontvangt en ze vervolgens op een speciale manier transformeert en in een vectorgegevensbank plaatst. Het doorzoeken van zo&#39;n database gaat erg snel; daarom kan het neurale netwerkmodel snel een antwoord genereren op basis van de resultaten. Open WebUI ondersteunt verschillende zoekmachines, maar kan er maar met één tegelijk werken, wat wordt aangegeven in de instellingen.&lt;/p&gt;
&lt;p&gt;Om webzoekresultaten op te nemen in neurale netwerkreacties, klikt u op &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt; (plusteken) en verschuift u de schakelaar Web Search:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/029/original/sh_open_webui_all_in_one_3.png?1722870140&quot; alt=&quot;Open WebUI enable Web Search&quot;&gt;
&lt;h2&gt;Afbeelding genereren&lt;/h2&gt;
&lt;p&gt;Het hoogtepunt van Open WebUI is dat je met deze software meerdere neurale netwerken met verschillende taken kunt combineren om een enkel probleem op te lossen. Llama 3.1 voert bijvoorbeeld perfect een dialoog met de gebruiker in verschillende talen, maar zijn antwoorden zijn uitsluitend tekst. Het kan geen afbeeldingen genereren, dus er is geen manier om zijn antwoorden te illustreren.&lt;/p&gt;
&lt;p&gt;Stable Diffusion, waar we vaak over schreven, is het tegenovergestelde: dit neurale netwerk genereert perfect afbeeldingen, maar kan helemaal niet met teksten werken. De ontwikkelaars van Open WebUI probeerden de sterke punten van beide neurale netwerken te combineren in één dialoog en implementeerden het volgende werkschema.&lt;/p&gt;
&lt;p&gt;Als je een dialoog voert in Open WebUI, verschijnt er een speciale knop naast elk neuraal netwerkantwoord. Door erop te klikken, krijg je een illustratie van dit antwoord direct in de chat:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/030/original/sh_open_webui_all_in_one_4.png?1722870173&quot; alt=&quot;Open WebUI images in dialogue&quot;&gt;
&lt;p&gt;Dit wordt bereikt door de Stable Diffusion WebUI API aan te roepen, en op dit moment zijn een verbinding met versies van Automatic1111 en een verbinding met ComfyUI beschikbaar. U kunt ook afbeeldingen genereren via het Dall-E neurale netwerk, maar dit kan niet lokaal worden ingezet - dit is een betaalde dienst voor het genereren van afbeeldingen met gesloten broncode.&lt;/p&gt;
&lt;p&gt;Deze functie werkt alleen als naast Open WebUI met Ollama ook Stable Diffusion WebUI op de server is geïnstalleerd. U kunt de installatie-instructies &lt;a href=&quot;https://www.leadergpu.nl/articles/565-stable-diffusion-webui&quot;&gt;hier&lt;/a&gt; vinden. Het enige dat het vermelden waard is, is dat wanneer u het script ./webui.sh uitvoert, u een extra sleutel moet opgeven om de API in te schakelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui.sh --listen --api --gradio-auth user:password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Een andere valkuil kan ontstaan door een gebrek aan videogeheugen. Als je dit tegenkomt, kun je twee handige sleutels gebruiken: &lt;b translate=&quot;no&quot;&gt;--medvram&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;--lowvram&lt;/b&gt;. Dit voorkomt de foutmelding Out-of-memory bij het starten van de generatie.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/583-hoe-werkt-ollama&quot;&gt;Hoe werkt Ollama&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/026/original/il_open_webui_all_in_one.png?1722870022"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 15:21:46 +0100</pubDate>
      <guid isPermaLink="false">584</guid>
      <dc:date>2025-01-20 15:21:46 +0100</dc:date>
    </item>
    <item>
      <title>Hoe werkt Ollama</title>
      <link>https://www.leadergpu.nl/catalog/583-hoe-werkt-ollama</link>
      <description>&lt;p&gt;Ollama is een hulpmiddel om grote neurale netwerkmodellen lokaal uit te voeren. Het gebruik van openbare diensten wordt door bedrijven vaak gezien als een potentieel risico voor het lekken van vertrouwelijke en gevoelige gegevens. Door LLM op een gecontroleerde server te implementeren, kunt u de gegevens die erop staan onafhankelijk beheren terwijl u gebruik maakt van de sterke punten van LLM.&lt;/p&gt;
&lt;p&gt;Dit helpt ook om de onaangename situatie van vendor lock-in te voorkomen, waarbij elke openbare dienst eenzijdig kan stoppen met het leveren van services. Natuurlijk is het initiële doel om het gebruik van generatieve neurale netwerken mogelijk te maken op locaties waar internettoegang afwezig of moeilijk is (bijvoorbeeld in een vliegtuig).&lt;/p&gt;
&lt;p&gt;Het idee was om de lancering, besturing en fijnafstelling van LLM&#39;s te vereenvoudigen. In plaats van complexe instructies in meerdere stappen, kun je met Ollama één simpel commando uitvoeren en na enige tijd het eindresultaat ontvangen. Het wordt tegelijkertijd gepresenteerd in de vorm van een lokaal neuraal netwerkmodel, waarmee je kunt communiceren via een webinterface en API voor eenvoudige integratie in andere toepassingen.&lt;/p&gt;
&lt;p&gt;Voor veel ontwikkelaars werd dit een zeer nuttig hulpmiddel, omdat het in de meeste gevallen mogelijk was om Ollama te integreren met de gebruikte IDE en aanbevelingen of kant-en-klare code te ontvangen die direct geschreven werd terwijl er aan de applicatie werd gewerkt.&lt;/p&gt;
&lt;p&gt;Ollama was oorspronkelijk alleen bedoeld voor computers met het besturingssysteem macOS, maar werd later geport naar Linux en Windows. Er is ook een speciale versie uitgebracht voor het werken in gecontaineriseerde omgevingen zoals Docker. Op dit moment werkt het even goed op desktops als op elke dedicated server met een GPU. Ollama ondersteunt de mogelijkheid om out-of-the-box te schakelen tussen verschillende modellen en maximaliseert alle beschikbare bronnen. Natuurlijk presteren deze modellen misschien niet zo goed op een gewone desktop, maar ze functioneren heel adequaat.&lt;/p&gt;
&lt;h2&gt;Hoe installeer ik Ollama&lt;/h2&gt;
&lt;p&gt;Ollama kan op twee manieren worden geïnstalleerd: zonder gebruik te maken van containerisatie, met behulp van een installatiescript, en als een kant-en-klare Docker-container. De eerste methode maakt het makkelijker om de componenten van het geïnstalleerde systeem en modellen te beheren, maar is minder fouttolerant. De tweede methode is fouttoleranter, maar als je deze gebruikt, moet je rekening houden met alle aspecten die inherent zijn aan containers: iets complexer beheer en een andere benadering van gegevensopslag.&lt;/p&gt;
&lt;p&gt;Ongeacht de gekozen methode zijn er een aantal extra stappen nodig om het besturingssysteem voor te bereiden.&lt;/p&gt;
&lt;h3&gt;Voorwaarden&lt;/h3&gt;
&lt;p&gt;Update de pakketcache repository en geïnstalleerde pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer alle benodigde GPU-stuurprogramma&#39;s met behulp van de auto-installatiefunctie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Installatie via script&lt;/h3&gt;
&lt;p&gt;Het volgende script detecteert de huidige architectuur van het besturingssysteem en installeert de juiste versie van Ollama:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://ollama.com/install.sh | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tijdens het gebruik maakt het script een aparte &lt;b translate=&quot;no&quot;&gt;ollama&lt;/b&gt; gebruiker aan, waaronder de bijbehorende daemon wordt gestart. Overigens werkt hetzelfde script ook goed in WSL2, waardoor de Linux-versie van Ollama op Windows Server kan worden geïnstalleerd.&lt;/p&gt;
&lt;h3&gt;Installatie via Docker&lt;/h3&gt;
&lt;p&gt;Er zijn verschillende methodes om Docker Engine op een server te installeren. De eenvoudigste manier is om een specifiek script te gebruiken dat de huidige Docker-versie installeert. Deze aanpak is effectief voor Ubuntu Linux, vanaf versie 20.04 (LTS) tot de nieuwste versie, Ubuntu 24.04 (LTS):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://get.docker.com/ | sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Om Docker-containers goed te laten samenwerken met de GPU, moet een extra toolkit worden geïnstalleerd. Omdat deze niet beschikbaar is in de standaard Ubuntu-repositories, moet je eerst een repository van derden toevoegen met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&amp;&amp; curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed &#39;s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g&#39; | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Update de pakketcache repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En installeer het pakket &lt;a href=&quot;https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html&quot;&gt;nvidia-container-toolkit&lt;/a&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install nvidia-container-toolkit&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vergeet niet om de docker daemon opnieuw te starten via systemctl:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl restart docker&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het is tijd om Ollama te downloaden en uit te voeren met de Open-WebUI webinterface:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de webbrowser en navigeer naar &lt;b translate=&quot;no&quot;&gt;http://[server-ip]:3000&lt;/b&gt;:&lt;/p&gt;
&lt;h2&gt;De modellen downloaden en uitvoeren&lt;/h2&gt;
&lt;h3&gt;Via de opdrachtregel&lt;/h3&gt;
&lt;p&gt;Voer gewoon het volgende commando uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;ollama run llama3&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Via WebUI&lt;/h3&gt;
&lt;p&gt;Open &lt;b translate=&quot;no&quot;&gt;Settings &gt; Models&lt;/b&gt;, typ de naam van het benodigde model, bijvoorbeeld &lt;b translate=&quot;no&quot;&gt;llama3&lt;/b&gt; en klik op de knop met het downloadsymbool:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/990/original/sh_how_does_ollama_work_1.png?1717153168&quot; alt=&quot;Models download&quot;&gt;
&lt;p&gt;Het model wordt automatisch gedownload en geïnstalleerd. Zodra dit voltooid is, sluit u het instellingenvenster en selecteert u het gedownloade model. Hierna kunt u er een dialoog mee beginnen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/991/original/sh_how_does_ollama_work_2.png?1717153253&quot; alt=&quot;Start chatting&quot;&gt;
&lt;h2&gt;VSCode integratie&lt;/h2&gt;
&lt;p&gt;Als je Ollama hebt geïnstalleerd met behulp van het installatiescript, kun je vrijwel direct alle ondersteunde modellen starten. In het volgende voorbeeld zullen we het standaardmodel uitvoeren dat wordt verwacht door de Ollama Autocoder-extensie (&lt;b translate=&quot;no&quot;&gt;openhermes2.5-mistral:7b-q4_K_M&lt;/b&gt;):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;ollama run openhermes2.5-mistral:7b-q4_K_M&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Standaard staat Ollama het werken via een API toe, waarbij alleen verbindingen vanaf de lokale host worden toegestaan. Daarom is voor het installeren en gebruiken van de uitbreiding voor Visual Studio Code, port forwarding vereist. Specifiek moet je poort &lt;b translate=&quot;no&quot;&gt;11434&lt;/b&gt; doorsturen naar je lokale computer. U kunt een voorbeeld vinden in ons artikel over &lt;a href=&quot;https://www.leadergpu.nl/articles/598-easy-diffusion-ui&quot;&gt;Easy Diffusion WebUI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Typ &lt;b translate=&quot;no&quot;&gt;Ollama Autocoder&lt;/b&gt; in een zoekveld en klik dan op &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/992/original/sh_how_does_ollama_work_3.png?1717153306&quot; alt=&quot;Install Ollama Autocoder&quot;&gt;
&lt;p&gt;Na het installeren van de extensie zal een nieuw item met de titel &lt;b translate=&quot;no&quot;&gt;Autocomplete with Ollama&lt;/b&gt; beschikbaar zijn in het opdrachtenpalet. Begin met coderen en start deze opdracht.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/993/original/sh_how_does_ollama_work_4.png?1717153542&quot; alt=&quot;Autocomplete with Ollama&quot;&gt;
&lt;p&gt;De extensie zal verbinding maken met de LeaderGPU server via port forwarding en binnen enkele seconden zal de gegenereerde code op uw scherm verschijnen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/994/original/sh_how_does_ollama_work_5.png?1717153572&quot; alt=&quot;Test Python example&quot;&gt;
&lt;p&gt;U kunt dit commando toewijzen aan een sneltoets. Gebruik het wanneer u uw code wilt aanvullen met een gegenereerd fragment. Dit is slechts één voorbeeld van de beschikbare VSCode-uitbreidingen. Het principe van port forwarding van een externe server naar een lokale computer maakt het mogelijk om een enkele server op te zetten met een draaiende LLM voor een heel ontwikkelteam. Deze zekerheid voorkomt dat derden of hackers de verzonden code kunnen gebruiken.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/584-open-webui-alles-in-n&quot;&gt;Open WebUI: Alles in één&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/989/original/il_how_does_ollama_work.png?1717153121"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 15:16:02 +0100</pubDate>
      <guid isPermaLink="false">583</guid>
      <dc:date>2025-01-20 15:16:02 +0100</dc:date>
    </item>
    <item>
      <title>PrivateGPT: AI voor documenten</title>
      <link>https://www.leadergpu.nl/catalog/581-privategpt-ai-voor-documenten</link>
      <description>&lt;p&gt;Grote taalmodellen hebben zich de afgelopen jaren sterk ontwikkeld en zijn effectieve hulpmiddelen geworden voor veel taken. Het enige probleem met het gebruik ervan is dat de meeste producten op basis van deze modellen gebruikmaken van kant-en-klare diensten van externe bedrijven. Dit gebruik kan gevoelige gegevens lekken, dus veel bedrijven vermijden het uploaden van interne documenten naar openbare LLM-services.&lt;/p&gt;
&lt;p&gt;Een project als PrivateGPT zou een oplossing kunnen zijn. Het is in eerste instantie ontworpen voor volledig lokaal gebruik. De kracht is dat je verschillende documenten kunt invoeren en dat het neurale netwerk ze voor je leest en zelf commentaar geeft op jouw verzoeken. Je kunt het bijvoorbeeld grote teksten &quot;voeren&quot; en het vragen om conclusies te trekken op basis van het verzoek van de gebruiker. Hierdoor kun je aanzienlijk tijd besparen op proeflezen.&lt;/p&gt;
&lt;p&gt;Dit geldt vooral voor professionele gebieden zoals geneeskunde. Een arts kan bijvoorbeeld een diagnose stellen en het neurale netwerk vragen deze te bevestigen op basis van de geüploade reeks documenten. Dit maakt het mogelijk om een extra onafhankelijke mening te krijgen, waardoor het aantal medische fouten vermindert. Aangezien verzoeken en documenten de server niet verlaten, kan men er zeker van zijn dat de ontvangen gegevens niet in het publieke domein verschijnen.&lt;/p&gt;
&lt;p&gt;Vandaag laten we je zien hoe je in slechts 20 minuten een neuraal netwerk kunt implementeren op speciale LeaderGPU-servers met het Ubuntu 22.04 LTS-besturingssysteem.&lt;/p&gt;
&lt;h2&gt;Systeem voorbereiden&lt;/h2&gt;
&lt;p&gt;Begin met het bijwerken van uw pakketten naar de nieuwste versie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer nu extra pakketten, bibliotheken en het grafische stuurprogramma van NVIDIA®. Deze zijn allemaal nodig om de software succesvol te bouwen en uit te voeren op de GPU:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install build-essential git gcc cmake make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev libncursesw5-dev libgdbm-dev libc6-dev zlib1g-dev libsqlite3-dev tk-dev libssl-dev openssl libffi-dev lzma liblzma-dev libbz2-dev&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;CUDA® 12.4 installeren&lt;/h2&gt;
&lt;p&gt;Naast het stuurprogramma moet je ook de NVIDIA® CUDA® toolkit installeren. Deze instructies zijn getest op CUDA® 12.4, maar alles zou ook moeten werken op CUDA® 12.2. Houd er wel rekening mee dat je de geïnstalleerde versie moet aangeven wanneer je het pad naar de uitvoerbare bestanden opgeeft.&lt;/p&gt;
&lt;p&gt;Voer achtereenvolgens het volgende commando uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.0-550.54.14-1_amd64.deb&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get update &amp;&amp; sudo apt-get -y install cuda-toolkit-12-4&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Meer informatie over het installeren van CUDA® is te &lt;a href=&quot;https://www.leadergpu.nl/articles/615-cuda-toolkit-installeren-in-linux&quot;&gt;vinden&lt;/a&gt; in onze Kennisbank. Start nu de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;PyEnv installeren&lt;/h2&gt;
&lt;p&gt;Het is tijd om een eenvoudig Python-hulpprogramma voor versiebeheer te installeren, PyEnv genaamd. Dit is een aanzienlijk verbeterde fork van het vergelijkbare project voor Ruby (&lt;a href=&quot;https://github.com/rbenv/rbenv&quot;&gt;rbenv&lt;/a&gt;), geconfigureerd om met Python te werken. Het kan worden geïnstalleerd met een éénregelig script:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl https://pyenv.run | bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu moet je enkele variabelen toevoegen aan het einde van het scriptbestand, dat wordt uitgevoerd bij het inloggen. De eerste drie regels zijn verantwoordelijk voor de juiste werking van PyEnv en de vierde is nodig voor Poetry, dat later wordt geïnstalleerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano .bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;export PYENV_ROOT=&quot;$HOME/.pyenv&quot;
[[ -d $PYENV_ROOT/bin ]] &amp;&amp; export PATH=&quot;$PYENV_ROOT/bin:$PATH&quot;
eval &quot;$(pyenv init -)&quot;
export PATH=&quot;/home/usergpu/.local/bin:$PATH&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pas de gemaakte instellingen toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;source .bashrc&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer Python versie 3.11:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pyenv install 3.11&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een virtuele omgeving voor Python 3.11:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pyenv local 3.11&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Poëzie installeren&lt;/h2&gt;
&lt;p&gt;Het volgende stukje van de puzzel is Poetry. Dit is een analogon van pip voor het beheren van afhankelijkheden in Python-projecten. De auteur van Poetry was het beu om constant om te gaan met verschillende configuratiemethodes, zoals &lt;b translate=&quot;no&quot;&gt;setup.cfg&lt;/b&gt;, &lt;b translate=&quot;no&quot;&gt;requirements.txt&lt;/b&gt;, &lt;b translate=&quot;no&quot;&gt;MANIFEST.ini&lt;/b&gt;, en andere. Dit werd de drijfveer voor de ontwikkeling van een nieuwe tool die gebruik maakt van een &lt;b translate=&quot;no&quot;&gt;pyproject.toml&lt;/b&gt; bestand, dat alle basisinformatie over een project opslaat, niet alleen een lijst met afhankelijkheden.&lt;/p&gt;
&lt;p&gt;Poëzie installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -sSL https://install.python-poetry.org | python3 -&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;PrivateGPT installeren&lt;/h2&gt;
&lt;p&gt;Nu alles klaar is, kun je de PrivateGPT repository klonen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/imartinez/privateGPT&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ga naar de gedownloade repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd privateGPT&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer de installatie van afhankelijkheden uit met Poetry terwijl je extra componenten inschakelt:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;ui&lt;/b&gt; - voegt een op &lt;a href=&quot;https://www.gradio.app/&quot;&gt;Gradio&lt;/a&gt; gebaseerde beheer-webinterface toe aan de back-end applicatie;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;embedding-huggingface&lt;/b&gt; - biedt ondersteuning voor het insluiten van modellen die zijn gedownload van &lt;a href=&quot;https://huggingface.co/&quot;&gt;HuggingFace&lt;/a&gt;;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;llms-llama-cpp&lt;/b&gt; - voegt ondersteuning toe voor directe inferentie van modellen in GGUF-formaat;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;vector-stores-qdrant&lt;/b&gt; - voegt de qdrant vector database toe.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;poetry install --extras &quot;ui embeddings-huggingface llms-llama-cpp vector-stores-qdrant&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stel uw Hugging Face toegangstoken in. Lees &lt;a href=&quot;https://huggingface.co/docs/hub/security-tokens&quot; target=&quot;_blank&quot;&gt;dit artikel&lt;/a&gt; voor meer informatie:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export HF_TOKEN=&quot;YOUR_HUGGING_FACE_ACCESS_TOKEN&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer nu het installatiescript uit, dat automatisch het model en de gewichten downloadt (standaard Meta Llama 3.1 8B Instruct):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;poetry run python scripts/setup&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het volgende commando hercompileert &lt;b translate=&quot;no&quot;&gt;llms-llama-cpp&lt;/b&gt; afzonderlijk om NVIDIA® CUDA-ondersteuning in te schakelen, om workloads naar de GPU te verplaatsen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;CUDACXX=/usr/local/cuda-12/bin/nvcc CMAKE_ARGS=&quot;-DGGML_CUDA=on -DCMAKE_CUDA_ARCHITECTURES=native&quot; FORCE_CMAKE=1 pip install llama-cpp-python --no-cache-dir --force-reinstall --upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je een foutmelding krijgt zoals &lt;b&gt;nvcc fatal : Unsupported gpu architecture &#39;compute_&#39;&lt;/b&gt;, geef dan de exacte architectuur op van de GPU die je gebruikt. Bijvoorbeeld: &lt;b&gt;DCMAKE_CUDA_ARCHITECTURES=86&lt;/b&gt; voor NVIDIA® RTX™ 3090.&lt;/p&gt;
&lt;p&gt;De laatste stap voordat je begint is het installeren van ondersteuning voor asynchrone aanroepen (async/await):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install asyncio&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;PrivateGPT uitvoeren&lt;/h2&gt;
&lt;p&gt;Voer PrivateGPT uit met een enkel commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;make run&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open uw webbrowser en ga naar de pagina &lt;b translate=&quot;no&quot;&gt;http://[LeaderGPU_server_IP_address]:8001&lt;/b&gt;&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/984/original/sh_privategpt_ai_for_documents_1.png?1714731952&quot; alt=&quot;PrivateGPT WebUI&quot;&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/571-starcoder-uw-lokale-codeerhulp&quot;&gt;StarCoder: uw lokale codeerhulp&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/590-fooocus-heroverweging-van-sd-en-mj&quot;&gt;Fooocus: Heroverweging van SD en MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/983/original/il_privategpt_ai_for_documents.png?1714731899"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 12:01:00 +0100</pubDate>
      <guid isPermaLink="false">581</guid>
      <dc:date>2025-01-20 12:01:00 +0100</dc:date>
    </item>
    <item>
      <title> Qwen 2 vs Llama 3</title>
      <link>https://www.leadergpu.nl/catalog/579-qwen-2-vs-llama-3</link>
      <description>&lt;p&gt;Grote taalmodellen (LLM&#39;s) hebben ons leven aanzienlijk beïnvloed. Ondanks dat we hun interne structuur begrijpen, blijven deze modellen een aandachtspunt voor wetenschappers die ze vaak vergelijken met een &quot;zwarte doos&quot;. Het uiteindelijke resultaat hangt niet alleen af van het ontwerp van de LLM, maar ook van de training en de gegevens die voor de training zijn gebruikt.&lt;/p&gt;
&lt;p&gt;Terwijl wetenschappers op zoek gaan naar onderzoeksmogelijkheden, zijn eindgebruikers vooral geïnteresseerd in twee dingen: snelheid en kwaliteit. Deze criteria spelen een cruciale rol in het selectieproces. Om twee LLM&#39;s nauwkeurig met elkaar te vergelijken, moeten veel schijnbaar ongerelateerde factoren worden gestandaardiseerd.&lt;/p&gt;
&lt;p&gt;De apparatuur die wordt gebruikt voor interferentie en de softwareomgeving, inclusief het besturingssysteem, driverversies en softwarepakketten, hebben de grootste invloed. Het is essentieel om een LLM-versie te kiezen die op verschillende apparatuur werkt en een snelheidsmeting te kiezen die gemakkelijk te begrijpen is.&lt;/p&gt;
&lt;p&gt;We hebben gekozen voor &#39;tokens per seconde&#39; (tokens/s) als deze metriek. Het is belangrijk om te weten dat een token ≠ een woord is. De LLM splitst woorden op in eenvoudigere componenten, typisch voor een specifieke taal, die tokens worden genoemd.&lt;/p&gt;
&lt;p&gt;De statistische voorspelbaarheid van het volgende teken verschilt per taal, dus de tokenisatie zal verschillen. In het Engels worden bijvoorbeeld ongeveer 100 tokens afgeleid uit elke 75 woorden. In talen die het cyrillische alfabet gebruiken, kan het aantal tokens per woord hoger zijn. Dus 75 woorden in een cyrillische taal, zoals Russisch, kunnen gelijkstaan aan 120-150 tokens.&lt;/p&gt;
&lt;p&gt;Je kunt dit controleren met het gereedschap &lt;a href=&quot;https://platform.openai.com/tokenizer&quot;&gt;Tokenizer&lt;/a&gt; van OpenAI. Deze laat zien in hoeveel tokens een tekstfragment is opgedeeld, waardoor &#39;tokens per seconde&#39; een goede indicator is voor de snelheid en prestaties van een LLM op het gebied van natuurlijke taalverwerking.&lt;/p&gt;
&lt;p&gt;Elke test werd uitgevoerd op het Ubuntu 22.04 LTS besturingssysteem met NVIDIA® drivers versie 535.183.01 en de NVIDIA® CUDA® 12.5 Toolkit geïnstalleerd. Er werden vragen geformuleerd om de kwaliteit en snelheid van de LLM te beoordelen. De verwerkingssnelheid van elk antwoord werd geregistreerd en zal bijdragen aan de gemiddelde waarde voor elke geteste configuratie.&lt;/p&gt;
&lt;p&gt;We begonnen met het testen van verschillende GPU&#39;s, van de nieuwste modellen tot de oudere. Een cruciale voorwaarde voor de test was dat we de prestaties van slechts één GPU maten, zelfs als er meerdere aanwezig waren in de serverconfiguratie. De prestaties van een configuratie met meerdere GPU&#39;s zijn namelijk afhankelijk van extra factoren, zoals de aanwezigheid van een snelle interconnect tussen de GPU&#39;s (NVLink).&lt;/p&gt;
&lt;p&gt;Naast snelheid hebben we ook geprobeerd de kwaliteit van de antwoorden te evalueren op een 5-puntsschaal, waarbij 5 staat voor het beste resultaat. Deze informatie wordt hier alleen gegeven voor algemeen begrip. Elke keer stellen we dezelfde vragen aan het neurale netwerk en proberen we te achterhalen hoe nauwkeurig elk netwerk begrijpt wat de gebruiker wil.&lt;/p&gt;
&lt;h2&gt;Qwen 2&lt;/h2&gt;
&lt;p&gt;Onlangs presenteerde een team ontwikkelaars van Alibaba Group de tweede versie van hun generatieve neurale netwerk Qwen. Het begrijpt 27 talen en is er goed voor geoptimaliseerd. Qwen 2 wordt geleverd in verschillende groottes, zodat het eenvoudig kan worden ingezet op elk apparaat (van embedded systemen met veel bronnen tot een speciale server met GPU&#39;s):&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;0.5B: geschikt voor IoT en embedded systemen;&lt;/li&gt;
    &lt;li&gt;1,5B: een uitgebreide versie voor ingebedde systemen, gebruikt waar de mogelijkheden van 0,5B niet voldoende zijn;&lt;/li&gt;
    &lt;li&gt;7B: middelgroot model, zeer geschikt voor natuurlijke taalverwerking;&lt;/li&gt;
    &lt;li&gt;57B: groot model met hoge prestaties, geschikt voor veeleisende toepassingen;&lt;/li&gt;
    &lt;li&gt;72B: het ultieme Qwen 2 model, ontworpen om de meest complexe problemen op te lossen en grote hoeveelheden data te verwerken.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Versies 0.5B en 1.5B werden getraind op datasets met een contextlengte van 32K. Versies 7B en 72B waren al getraind op de 128K context. Het compromismodel 57B werd getraind op datasets met een contextlengte van 64K. De makers positioneren Qwen 2 als een analogon van Llama 3 die dezelfde problemen kan oplossen, maar dan veel sneller.&lt;/p&gt;
&lt;h2&gt;Llama 3&lt;/h2&gt;
&lt;p&gt;De derde versie van het generatieve neurale netwerk van de MetaAI Llama familie werd geïntroduceerd in april 2024. Het werd, in tegenstelling tot Qwen 2, in slechts twee versies uitgebracht: 8B en 70B. Deze modellen werden gepositioneerd als een universeel hulpmiddel voor het oplossen van veel problemen in verschillende gevallen. Het zette de trend naar meertaligheid en multimodaliteit voort, terwijl het tegelijkertijd sneller werd dan de vorige versies en een langere contextlengte ondersteunde.&lt;/p&gt;
&lt;p&gt;De makers van Llama 3 probeerden de modellen te verfijnen om het percentage statistische hallucinaties te verminderen en de variatie in antwoorden te vergroten. Llama 3 is dus heel goed in staat om praktisch advies te geven, te helpen bij het schrijven van een zakelijke brief of te speculeren over een door de gebruiker gespecificeerd onderwerp. De datasets waarop Llama 3 modellen werden getraind hadden een contextlengte van 128K en meer dan 5% bevatte gegevens in 30 talen. Echter, zoals vermeld in het persbericht, zullen de generatieprestaties in het Engels significant hoger zijn dan in elke andere taal.&lt;/p&gt;
&lt;h2&gt;Vergelijking&lt;/h2&gt;
&lt;h3&gt;NVIDIA® RTX™ A6000&lt;/h3&gt;
&lt;p&gt;Laten we onze snelheidsmetingen beginnen met de NVIDIA® RTX™ A6000 GPU, gebaseerd op de Ampere architectuur (niet te verwarren met de NVIDIA® RTX™ A6000 Ada). Deze kaart heeft zeer bescheiden eigenschappen, maar heeft tegelijkertijd 48 GB VRAM, waardoor het met redelijk grote neurale netwerkmodellen kan werken. Helaas zijn de lage kloksnelheid en bandbreedte de redenen voor de lage inferentiesnelheid van tekst LLM&#39;s.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/995/original/il_qwen_2_vs_llama_3_1.png?1720184216&quot; alt=&quot;Nvidia A6000 chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;Onmiddellijk na de lancering begon het Qwen 2 neurale netwerk beter te presteren dan Llama 3. Bij het beantwoorden van dezelfde vragen was het gemiddelde snelheidsverschil 24% in het voordeel van Qwen 2. De snelheid waarmee antwoorden werden gegenereerd lag in het bereik van 11-16 tokens per seconde. Dit is 2-3 keer sneller dan wanneer je zelfs op een krachtige CPU probeert te genereren, maar in onze beoordeling is dit het meest bescheiden resultaat.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ 3090&lt;/h3&gt;
&lt;p&gt;De volgende GPU is ook gebouwd op de Ampere-architectuur, heeft 2 keer minder videogeheugen, maar werkt tegelijkertijd op een hogere frequentie (19500 MHz versus 16000 Mhz). De bandbreedte van het videogeheugen is ook hoger (936,2 GB/s tegenover 768 GB/s). Beide factoren verhogen de prestaties van de RTX™ 3090 aanzienlijk, zelfs als we rekening houden met het feit dat deze 256 CUDA-kernen minder heeft.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/996/original/il_qwen_2_vs_llama_3_2.png?1720184259&quot; alt=&quot;Nvidia RTX 3090 chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;Hier kun je duidelijk zien dat Qwen 2 veel sneller is (tot 23%) dan Llama 3 bij het uitvoeren van dezelfde taken. Wat betreft de kwaliteit van het genereren, is de meertalige ondersteuning van Qwen 3 echt een pluim waard, en het model antwoordt altijd in dezelfde taal als waarin de vraag is gesteld. Met Llama 3 komt het in dit opzicht vaak voor dat het model de vraag zelf begrijpt, maar er de voorkeur aan geeft antwoorden in het Engels te formuleren.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ 4090&lt;/h3&gt;
&lt;p&gt;Nu het meest interessante: laten we eens kijken hoe de NVIDIA® RTX™ 4090, gebouwd op de Ada Lovelace-architectuur, genoemd naar de Engelse wiskundige Augusta Ada King, gravin van Lovelace, dezelfde taak aankan. Ze werd beroemd omdat ze de eerste programmeur in de geschiedenis van de mensheid was, en op het moment dat ze haar eerste programma schreef was er nog geen computer die het kon uitvoeren. Wel werd erkend dat het algoritme dat Ada beschreef voor het berekenen van Bernoulli getallen het eerste programma ter wereld was dat geschreven werd om op een computer te spelen.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/997/original/il_qwen_2_vs_llama_3_3.png?1720184288&quot; alt=&quot;Nvidia RTX 4090 chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;De grafiek laat duidelijk zien dat de RTX™ 4090 de inferentie van beide modellen bijna twee keer zo snel uitvoerde. Het is interessant dat in een van de iteraties Llama 3 erin slaagde om Qwen 2 met 1,2% te overtreffen. Rekening houdend met de andere iteraties behield Qwen 2 echter zijn leiderschap en bleef 7% sneller dan Llama 3. In alle iteraties was de kwaliteit van de antwoorden van beide neurale netwerken hoog met een minimaal aantal hallucinaties. Het enige defect is dat in zeldzame gevallen een of twee Chinese karakters werden gemengd in de antwoorden, wat op geen enkele manier de algehele betekenis beïnvloedde.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ A40&lt;/h3&gt;
&lt;p&gt;De volgende NVIDIA® RTX™ A40-kaart, waarop we vergelijkbare tests uitvoerden, is opnieuw gebouwd op de Ampere-architectuur en heeft 48 GB videogeheugen op het moederbord. Vergeleken met de RTX™ 3090 is dit geheugen iets sneller (20000 MHz versus 19500 MHz), maar heeft het een lagere bandbreedte (695,8 GB/s versus 936,2 GB/s). Deze situatie wordt gecompenseerd door het grotere aantal CUDA-kernen (10752 tegenover 10496), waardoor de RTX™ A40 over het geheel genomen iets sneller presteert dan de RTX™ 3090.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/998/original/il_qwen_2_vs_llama_3_4.png?1720184316&quot; alt=&quot;Nvidia A40 chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;Wat betreft het vergelijken van de snelheid van modellen, hier ligt Qwen 2 ook voor op Llama 3 in alle iteraties. Bij het draaien op RTX™ A40 is het verschil in snelheid ongeveer 15% met dezelfde antwoorden. Bij sommige opgaven gaf Qwen 2 iets meer belangrijke informatie, terwijl Llama 3 zo specifiek mogelijk was en voorbeelden gaf. Desondanks moet alles dubbel gecontroleerd worden, omdat beide modellen soms controversiële antwoorden geven.&lt;/p&gt;
&lt;h3&gt;NVIDIA® L20&lt;/h3&gt;
&lt;p&gt;De laatste deelnemer aan onze tests was de NVIDIA® L20. Deze GPU is net als de RTX™ 4090 gebouwd op de Ada Lovelace-architectuur. Dit is een vrij nieuw model, gepresenteerd in de herfst van 2023. Hij heeft 48 GB videogeheugen en 11776 CUDA-kernen aan boord. De geheugenbandbreedte is lager dan die van de RTX™ 4090 (864 GB/s tegenover 936,2 GB/s), net als de effectieve frequentie. Dus de NVIDIA® L20 inferentiescores van beide modellen zullen dichter bij 3090 liggen dan bij 4090.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/999/original/il_qwen_2_vs_llama_3_5.png?1720184358&quot; alt=&quot;Nvidia L20 chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;De laatste test leverde geen verrassingen op. Qwen 2 bleek in alle iteraties sneller dan Llama 3.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Laten we alle verzamelde resultaten samenvoegen in één grafiek. Qwen 2 was 7% tot 24% sneller dan Llama 3, afhankelijk van de gebruikte GPU. Op basis hiervan kunnen we duidelijk concluderen dat als je hogesnelheidsinferenties nodig hebt van modellen zoals Qwen 2 of Llama 3 op single-GPU configuraties, de RTX™ 3090 de onbetwiste leider is. Een mogelijk alternatief zou de A40 of L20 kunnen zijn. Maar het is niet de moeite waard om de inferentie van deze modellen uit te voeren op A6000-generatie Ampere-kaarten.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/001/000/original/il_qwen_2_vs_llama_3_6.png?1720184380&quot; alt=&quot;Conclusion chart qwen2-vs-llama3&quot;&gt;
&lt;p&gt;We hebben met opzet kaarten met een kleinere hoeveelheid videogeheugen, bijvoorbeeld NVIDIA® RTX™ 2080Ti, niet genoemd in de tests, omdat het daar niet mogelijk is om de bovengenoemde 7B of 8B modellen in te passen zonder kwantisatie. Welnu, het 1,5B model Qwen 2 heeft helaas geen antwoorden van hoge kwaliteit en kan niet dienen als volledige vervanging voor 7B.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/576-je-eigen-vicuna-in-linux&quot;&gt;Je eigen Vicuna in Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/107/original/il_qwen_2_vs_llama_3.png?1737368521"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 11:27:11 +0100</pubDate>
      <guid isPermaLink="false">579</guid>
      <dc:date>2025-01-20 11:27:11 +0100</dc:date>
    </item>
    <item>
      <title>Je eigen Qwen met HF</title>
      <link>https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf</link>
      <description>&lt;p&gt;Grote neurale netwerkmodellen, met hun buitengewone capaciteiten, zijn stevig verankerd in ons leven. Grote bedrijven zagen dit als een kans voor toekomstige ontwikkeling en begonnen hun eigen versies van deze modellen te ontwikkelen. De Chinese reus Alibaba bleef niet aan de zijlijn staan. Zij creëerden hun eigen model, QWen (Tongyi Qianwen), dat de basis werd voor vele andere neurale netwerkmodellen.&lt;/p&gt;
&lt;h2&gt;Vereisten&lt;/h2&gt;
&lt;h3&gt;Cache en pakketten bijwerken&lt;/h3&gt;
&lt;p&gt;Laten we de pakketcache bijwerken en je besturingssysteem upgraden voordat je begint met het instellen van Qwen. Ook moeten we Python Installer Packages (PIP) toevoegen, als het nog niet aanwezig is in het systeem. Voor deze handleiding gebruiken we Ubuntu 22.04 LTS als besturingssysteem:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade &amp;&amp; sudo apt install python3-pip&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Nvidia-stuurprogramma&#39;s installeren&lt;/h3&gt;
&lt;p&gt;Je kunt het geautomatiseerde hulpprogramma gebruiken dat standaard wordt meegeleverd met Ubuntu-distributies:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je kunt de Nvidia-stuurprogramma&#39;s ook handmatig installeren met behulp van onze &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;stapsgewijze handleiding&lt;/a&gt;. Vergeet niet de server opnieuw op te starten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Tekstgeneratie web UI&lt;/h2&gt;
&lt;h3&gt;Kloon het archief&lt;/h3&gt;
&lt;p&gt;Open de werkmap op de SSD:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kloon de repository van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/oobabooga/text-generation-webui.git&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Vereisten installeren&lt;/h3&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd text-generation-webui&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer en installeer alle ontbrekende onderdelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;SSH-sleutel toevoegen aan HF&lt;/h2&gt;
&lt;p&gt;Voordat je begint, moet je port forwarding instellen (remote poort 7860 naar 127.0.0.1:7860) in je SSH-client. Meer informatie vind je in het volgende artikel: &lt;a href=&quot;https://www.leadergpu.nl/articles/488-maak-verbinding-met-een-linux-server&quot;&gt;Verbinding maken met Linux server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Update de pakketcache repository en geïnstalleerde pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Genereer en voeg een SSH-sleutel toe die je kunt gebruiken in Hugging Face:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/.ssh &amp;&amp; ssh-keygen&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wanneer het sleutelpaar is gegenereerd, kun je de publieke sleutel weergeven in de terminal emulator:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cat id_rsa.pub&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer alle informatie beginnend bij ssh-rsa en eindigend met usergpu@gpuserver zoals weergegeven in de volgende schermafbeelding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/907/original/sh_llama3_quick_start_3.png?1713533169&quot; alt=&quot;Copy RSA key&quot;&gt;
&lt;p&gt;Open een webbrowser, typ &lt;a href=&quot;https://huggingface.co/&quot;&gt;https://huggingface.co/&lt;/a&gt; in de adresbalk en druk op &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Log in op je HF-account en open &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;Profielinstellingen&lt;/a&gt;. Kies dan &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; en klik op de knop &lt;b translate=&quot;no&quot;&gt;Add SSH Key&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/908/original/sh_llama3_quick_start_4.png?1713533229&quot; alt=&quot;Add SSH key&quot;&gt;
&lt;p&gt;Vul de &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; in en plak de gekopieerde &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; van de terminal. Sla de sleutel op door op &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt; te drukken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/909/original/sh_llama3_quick_start_5.png?1713533267&quot; alt=&quot;Paste the key&quot;&gt;
&lt;p&gt;Nu is je HF-account gekoppeld aan de publieke SSH-sleutel. Het tweede deel (privésleutel) wordt opgeslagen op de server. De volgende stap is het installeren van een specifieke Git LFS (Large File Storage) extensie, die gebruikt wordt voor het downloaden van grote bestanden zoals neurale netwerkmodellen. Open je home directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download en voer het shell script uit. Dit script installeert een nieuwe repository van derden met git-lfs:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je het installeren met de standaard pakketbeheerder:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get install git-lfs&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we git configureren om onze HF nickname te gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.name &quot;John&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En gekoppeld aan het HF e-mail account:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.email &quot;john.doe@example.com&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Het model downloaden&lt;/h2&gt;
&lt;p&gt;De volgende stap is het downloaden van het model met behulp van de repository cloning techniek die vaak gebruikt wordt door software ontwikkelaars. Het enige verschil is dat de eerder geïnstalleerde Git-LFS automatisch de gemarkeerde aanwijzingsbestanden zal verwerken en alle inhoud zal downloaden. Open de benodigde map (/mnt/fastdisk in ons voorbeeld):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit commando kan even duren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:Qwen/Qwen1.5-32B-Chat-GGUF&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Het model uitvoeren&lt;/h2&gt;
&lt;p&gt;Voer een script uit dat de webserver start en /mnt/fastdisk specificeert als de werkmap met modellen. Dit script kan enkele extra componenten downloaden bij de eerste start.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./start_linux.sh --model-dir /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open uw webbrowser en selecteer &lt;b translate=&quot;no&quot;&gt;llama.cpp&lt;/b&gt; in de vervolgkeuzelijst &lt;b translate=&quot;no&quot;&gt;Model loader&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/986/original/sh_your_own_qwen_using_hf_1.png?1716463522&quot; alt=&quot;llama.cpp settings&quot;&gt;
&lt;p&gt;Zorg ervoor dat je de parameter &lt;b translate=&quot;no&quot;&gt;n-gpu-layers&lt;/b&gt; instelt. Hij bepaalt welk percentage van de berekeningen wordt overgeheveld naar de GPU. Als je het getal op 0 laat staan, dan worden alle berekeningen uitgevoerd op de CPU, wat vrij traag is. Zodra alle parameters zijn ingesteld, klik je op de knop &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt;. Ga daarna naar het tabblad &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt; en selecteer &lt;b translate=&quot;no&quot;&gt;Instruct mode&lt;/b&gt;. Nu kun je een willekeurige prompt invoeren en een antwoord ontvangen:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/987/original/sh_your_own_qwen_using_hf_2.png?1716463543&quot; alt=&quot;Qwen chat example&quot;&gt;
&lt;p&gt;Verwerking wordt standaard uitgevoerd op alle beschikbare GPU&#39;s, rekening houdend met de eerder opgegeven parameters:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/988/original/sh_your_own_qwen_using_hf_3.png?1716463565&quot; alt=&quot;Qwen task GPU loading&quot;&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/576-je-eigen-vicuna-in-linux&quot;&gt;Je eigen Vicuna in Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/985/original/il_your_own_qwen_using_hf.png?1716463472"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 09:43:46 +0100</pubDate>
      <guid isPermaLink="false">578</guid>
      <dc:date>2025-01-20 09:43:46 +0100</dc:date>
    </item>
    <item>
      <title>Je eigen Vicuna in Linux</title>
      <link>https://www.leadergpu.nl/catalog/576-je-eigen-vicuna-in-linux</link>
      <description>&lt;p&gt;Dit artikel leidt je door het proces van het implementeren van een basis LLaMA alternatief op een LeaderGPU server. We gebruiken hiervoor het &lt;a href=&quot;https://github.com/lm-sys/FastChat&quot;&gt;FastChat&lt;/a&gt; project en het vrij beschikbare &lt;a href=&quot;https://lmsys.org/blog/2023-03-30-vicuna/&quot;&gt;Vicuna&lt;/a&gt; model. &lt;/p&gt;
&lt;p&gt;Het model dat we zullen gebruiken is gebaseerd op Meta&#39;s LLaMA architectuur, maar is geoptimaliseerd voor efficiënte inzet op consumenten hardware. Deze opzet biedt een goede balans tussen prestaties en benodigde bronnen, waardoor het geschikt is voor zowel test- als productieomgevingen.&lt;/p&gt;
&lt;h2&gt;Voorinstallatie&lt;/h2&gt;
&lt;p&gt;Laten we de installatie van FastChat voorbereiden door de pakket cache repository bij te werken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Installeer Nvidia-stuurprogramma&#39;s automatisch met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je kunt deze stuurprogramma&#39;s ook handmatig installeren met &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;onze stapsgewijze handleiding&lt;/a&gt;. Start de server vervolgens opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende stap is het installeren van PIP (Package Installer for Python):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install python3-pip&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;FastChat installeren&lt;/h2&gt;
&lt;h3&gt;Van PyPi&lt;/h3&gt;
&lt;p&gt;Er zijn twee mogelijke manieren om FastChat te installeren. U kunt het rechtstreeks vanuit PyPi installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip3 install &quot;fschat[model_worker,webui]&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Van GitHub&lt;/h3&gt;
&lt;p&gt;Als alternatief kun je de FastChat repository van GitHub clonen en installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/lm-sys/FastChat.git&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd FastChat&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vergeet niet om PIP te upgraden voordat je verder gaat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip3 install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip3 install -e &quot;.[model_worker,webui]&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;FastChat uitvoeren&lt;/h2&gt;
&lt;h3&gt;Eerste start&lt;/h3&gt;
&lt;p&gt;Om zeker te zijn van een succesvolle eerste start, is het aan te raden om FastChat handmatig direct vanaf de commandoregel aan te roepen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 -m fastchat.serve.cli --model-path lmsys/vicuna-7b-v1.5&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Deze actie haalt automatisch het aangewezen model van jouw keuze op en downloadt het, wat gespecificeerd moet worden met de --model-path parameter. De 7b staat voor een model met 7 miljard parameters. Dit is het lichtste model, geschikt voor GPU&#39;s met 16 GB videogeheugen. Links naar modellen met een groter aantal parameters zijn te vinden in het &lt;a href=&quot;https://github.com/lm-sys/FastChat/blob/main/README.md&quot;&gt;Readme-bestand&lt;/a&gt; van het project.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/965/original/sh_your_own_vicuna_in_linux_1.png?1714043790&quot; alt=&quot;Sample Vicuna conversation&quot;&gt;
&lt;p&gt;Nu heb je de optie om een gesprek aan te gaan met de chatbot direct binnen de opdrachtregelinterface of je kunt een webinterface instellen. Deze bevat drie componenten:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Controller&lt;/li&gt;
    &lt;li&gt;Werkers&lt;/li&gt;
    &lt;li&gt;Gradio webserver&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Diensten instellen&lt;/h3&gt;
&lt;p&gt;Laten we van elke component een aparte systemd service maken. Maak 3 aparte bestanden met de volgende inhoud:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/vicuna-controller.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Vicuna controller service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.controller
Restart=always
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/vicuna-worker.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Vicuna worker service
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.model_worker --model-path lmsys/vicuna-7b-v1.5
Restart=always
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/systemd/system/vicuna-webserver.service&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;[Unit]
Description=Vicuna web server
[Service]
User=usergpu
WorkingDirectory=/home/usergpu
ExecStart=python3 -m fastchat.serve.gradio_web_server
Restart=always
[Install]
WantedBy=multi-user.target&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Systemd werkt zijn daemons database meestal bij tijdens het opstartproces van het systeem. Je kunt dit echter ook handmatig doen met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl daemon-reload&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we nu drie nieuwe services toevoegen aan het opstarten en ze onmiddellijk starten met de optie &lt;b translate=&quot;no&quot;&gt;--now&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl enable vicuna-controller.service --now &amp;&amp; sudo systemctl enable vicuna-worker.service --now &amp;&amp; sudo systemctl enable vicuna-webserver.service --now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je echter een webinterface probeert te openen op http://[IP_ADDRESS]:7860, krijg je een volledig onbruikbare interface zonder beschikbare modellen. U kunt dit probleem oplossen door de webinterface-service te stoppen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl stop vicuna-webserver.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer de webinterface handmatig uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 -m fastchat.serve.gradio_web_server&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Een verificatie toevoegen&lt;/h3&gt;
&lt;p&gt;Deze actie roept een ander script aan, dat het eerder gedownloade model zal registreren in een interne database van Gradio. Wacht een paar seconden en onderbreek het proces met de snelkoppeling &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt;. We zorgen ook voor de beveiliging en activeren een eenvoudig authenticatiemechanisme voor toegang tot de webinterface. Open het volgende bestand als je FastChat hebt geïnstalleerd vanuit PyPI:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /home/usergpu/.local/lib/python3.10/site-packages/fastchat/serve/gradio_web_server.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;of&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /home/usergpu/FastChat/fastchat/serve/gradio_web_server.py&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Scroll naar beneden naar het einde. Zoek deze regel:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;auth=auth,&lt;/pre&gt;
&lt;p&gt;Wijzig deze door een gebruikersnaam of wachtwoord in te stellen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;auth=(“username”,”password”),&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Sla het bestand op en sluit het af met de snelkoppeling &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;. Start tot slot de webinterface:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo systemctl start vicuna-webserver.service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open &lt;b translate=&quot;no&quot;&gt;http://[IP_ADDRESS]:7860&lt;/b&gt; in je browser en geniet van FastChat met Vicuna:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/966/original/sh_your_own_vicuna_in_linux_2.png?1714043825&quot; alt=&quot;Sample Vicuna poem&quot;&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/964/original/il_your_own_vicuna_in_linux.jpg?1714043750"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 09:25:01 +0100</pubDate>
      <guid isPermaLink="false">576</guid>
      <dc:date>2025-01-20 09:25:01 +0100</dc:date>
    </item>
    <item>
      <title>Je eigen LLaMa 2 in Linux</title>
      <link>https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux</link>
      <description>&lt;h2&gt;Stap 1. Besturingssysteem voorbereiden&lt;/h2&gt;
&lt;h3&gt;Cache en pakketten bijwerken&lt;/h3&gt;
&lt;p&gt;Laten we de pakketcache bijwerken en je besturingssysteem upgraden voordat je begint met het instellen van LLaMa 2. Houd er rekening mee dat we voor deze gids Ubuntu 22.04 LTS als besturingssysteem gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ook moeten we Python Installer Packages (PIP) toevoegen, als het nog niet aanwezig is in het systeem:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install python3-pip&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Nvidia-stuurprogramma&#39;s installeren&lt;/h3&gt;
&lt;p&gt;Je kunt het geautomatiseerde hulpprogramma gebruiken dat standaard in Ubuntu-distributies zit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je kunt de Nvidia-stuurprogramma&#39;s ook handmatig installeren met behulp van &lt;a href=&quot;https://www.leadergpu.nl/articles/499-installeer-nvidia-stuurprogramma-s-in-linux&quot;&gt;onze stapsgewijze handleiding&lt;/a&gt;. Vergeet niet de server opnieuw op te starten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 2. Modellen ophalen bij MetaAI&lt;/h2&gt;
&lt;h3&gt;Officieel verzoek&lt;/h3&gt;
&lt;p&gt;Open het volgende adres in je browser: &lt;a href=&quot;https://ai.meta.com/resources/models-and-libraries/llama-downloads/&quot;&gt;https://ai.meta.com/resources/models-and-libraries/llama-downloads/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vul alle noodzakelijke velden in, lees de gebruikersovereenkomst en klik op de knop &lt;b translate=&quot;no&quot;&gt;Agree and Continue&lt;/b&gt;. Na een paar minuten (uren, dagen) ontvang je een speciale download-URL, die je toestemming geeft om modellen voor een periode van 24 uur te downloaden.&lt;/p&gt;
&lt;h3&gt;Het archief klonen&lt;/h3&gt;
&lt;p&gt;Controleer voor het downloaden de beschikbare opslagruimte:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;df -h&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;Filesystem      Size  Used Avail Use% Mounted on
tmpfs            38G  3.3M   38G   1% /run
/dev/sda2        99G   24G   70G  26% /
tmpfs           189G     0  189G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/nvme0n1    1.8T   26G  1.7T   2% /mnt/fastdisk
tmpfs            38G  8.0K   38G   1% /run/user/1000&lt;/pre&gt;
&lt;p&gt;Als je niet-gemounte lokale schijven hebt, volg dan de instructies in &lt;a href=&quot;https://www.leadergpu.nl/articles/492-schijfpartitionering-onder-linux&quot;&gt;Schijfpartitionering in Linux&lt;/a&gt;. Dit is belangrijk omdat de gedownloade modellen erg groot kunnen zijn en je hun opslaglocatie van tevoren moet plannen. In dit voorbeeld hebben we een lokale SSD aangekoppeld in de map /mnt/fastdisk. Laten we deze openen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maak een kopie van het oorspronkelijke LLaMa archief:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/facebookresearch/llama&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als je een toestemmingsfout tegenkomt, verleen dan gewoon toestemmingen aan de gebruikerergpu:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chown -R usergpu:usergpu /mnt/fastdisk/&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Downloaden via script&lt;/h3&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd llama&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./download.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Plak de URL van MetaAI en selecteer alle benodigde modellen. We raden aan alle beschikbare modellen te downloaden om te voorkomen dat je opnieuw om toestemming moet vragen. Als je echter een specifiek model nodig hebt, download dan alleen dat model.&lt;/p&gt;
&lt;h3&gt;Snelle test via voorbeeld app&lt;/h3&gt;
&lt;p&gt;Om te beginnen kunnen we controleren of er componenten ontbreken. Als er bibliotheken of toepassingen ontbreken, zal de pakketbeheerder deze automatisch installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -e .&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De volgende stap is het toevoegen van nieuwe binaries aan het PATH:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;export PATH=/home/usergpu/.local/bin:$PATH&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het demovoorbeeld uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;torchrun --nproc_per_node 1 /mnt/fastdisk/llama/example_chat_completion.py --ckpt_dir /mnt/fastdisk/llama-2-7b-chat/ --tokenizer_path /mnt/fastdisk/llama/tokenizer.model --max_seq_len 512 --max_batch_size 6&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De toepassing maakt een rekenproces aan op de eerste GPU en simuleert een eenvoudige dialoog met typische verzoeken, waarbij antwoorden worden gegenereerd met behulp van LLaMa 2.&lt;/p&gt;
&lt;h2&gt;Stap 3. Haal llama.cpp op&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/ggerganov/llama.cpp/tree/master&quot;&gt;LLaMa C++&lt;/a&gt; is een project gemaakt door de Bulgaarse natuurkundige en softwareontwikkelaar Georgi Gerganov. Het heeft veel nuttige hulpprogramma&#39;s die het werken met dit neurale netwerkmodel eenvoudiger maken. Alle onderdelen van llama.cpp zijn open source software en worden gedistribueerd onder de &lt;a href=&quot;https://github.com/ggerganov/llama.cpp/blob/master/LICENSE&quot;&gt;MIT-licentie&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Kloon de repository&lt;/h3&gt;
&lt;p&gt;Open de werkmap op de SSD:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kloon de repository van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/ggerganov/llama.cpp.git&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Apps compileren&lt;/h3&gt;
&lt;p&gt;Open de gekloonde map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd llama.cpp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start het compilatieproces met de volgende opdracht:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;make&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 4. Tekst-generatie-webui ophalen&lt;/h2&gt;
&lt;h3&gt;Kloon de repository&lt;/h3&gt;
&lt;p&gt;Open de werkmap op de SSD:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kloon de repository van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/oobabooga/text-generation-webui.git&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Vereisten installeren&lt;/h3&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd text-generation-webui&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Controleer en installeer alle ontbrekende onderdelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;pip install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stap 5. PTH omzetten naar GGUF&lt;/h2&gt;
&lt;h3&gt;Algemene formaten&lt;/h3&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;PTH (Python TorcH)&lt;/b&gt; - Een geconsolideerd formaat. In wezen is het een standaard ZIP-archief met een geserialiseerde PyTorch-statuswoordenboek. Dit formaat heeft echter snellere alternatieven zoals GGML en GGUF.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;GGML (Georgi Gerganov’s Machine Learning)&lt;/b&gt; - Dit is een bestandsformaat gemaakt door Georgi Gerganov, de auteur van llama.cpp. Het is gebaseerd op een gelijknamige bibliotheek, geschreven in C++, die de prestaties van grote taalmodellen aanzienlijk heeft verbeterd. Het is nu vervangen door het moderne GGUF formaat.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;GGUF (Georgi Gerganov’s Unified Format)&lt;/b&gt; - Een veelgebruikt bestandsformaat voor LLM&#39;s, ondersteund door verschillende toepassingen. Het biedt verbeterde flexibiliteit, schaalbaarheid en compatibiliteit voor de meeste gebruikssituaties.&lt;/p&gt;
&lt;h3&gt;script llama.cpp converteren.py&lt;/h3&gt;
&lt;p&gt;Bewerk de parameters van het model voordat het wordt geconverteerd:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;nano /mnt/fastdisk/llama-2-7b-chat/params.json&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Corrigeer &lt;b translate=&quot;no&quot;&gt;&quot;vocab_size&quot;: -1&lt;/b&gt; naar &lt;b translate=&quot;no&quot;&gt;&quot;vocab_size&quot;: 32000&lt;/b&gt;. Sla het bestand op en sluit af. Open vervolgens de map llama.cpp:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk/llama.cpp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het script uit dat het model zal converteren naar GGUF formaat:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;python3 convert.py /mnt/fastdisk/llama-2-7b-chat/ --vocab-dir /mnt/fastdisk/llama&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als alle voorgaande stappen juist zijn, krijg je een bericht als dit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Wrote /mnt/fastdisk/llama-2-7b-chat/ggml-model-f16.gguf&lt;/pre&gt;
&lt;h2&gt;Stap 6. WebUI&lt;/h2&gt;
&lt;h3&gt;WebUI starten&lt;/h3&gt;
&lt;p&gt;Open de map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk/text-generation-webui/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het startscript uit met enkele nuttige parameters:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--model-dir&lt;/b&gt; geeft het juiste pad naar de modellen aan&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--share&lt;/b&gt; creëert een tijdelijke publieke link (als je geen poort wilt doorsturen via SSH)&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gradio-auth&lt;/b&gt; voegt autorisatie toe met een login en wachtwoord (vervang user:wachtwoord door je eigen)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./start_linux.sh --model-dir /mnt/fastdisk/llama-2-7b-chat/ --share --gradio-auth user:password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Na een succesvolle lancering ontvang je een lokale en tijdelijke share link voor toegang:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://e9a61c21593a7b251f.gradio.live
&lt;/pre&gt;
&lt;p&gt;Deze share link verloopt over 72 uur.&lt;/p&gt;
&lt;h3&gt;Het model laden&lt;/h3&gt;
&lt;p&gt;Autoriseer in de WebUI met de geselecteerde gebruikersnaam en wachtwoord en volg deze 5 eenvoudige stappen:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Navigeer naar het tabblad &lt;b translate=&quot;no&quot;&gt;Model&lt;/b&gt;.&lt;/li&gt;
  &lt;li&gt;Selecteer &lt;b translate=&quot;no&quot;&gt;ggml-model-f16.gguf&lt;/b&gt; in het vervolgkeuzemenu.&lt;/li&gt;
  &lt;li&gt;Kies hoeveel lagen je wilt berekenen op de GPU (&lt;b translate=&quot;no&quot;&gt;n-gpu-layers&lt;/b&gt;).&lt;/li&gt;
  &lt;li&gt;Kies hoeveel threads je wilt starten (&lt;b translate=&quot;no&quot;&gt;threads&lt;/b&gt;).  &lt;/li&gt;
  &lt;li&gt;Klik op de knop &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/967/original/sh_your_own_llama_2_in_linux_1.png?1714136367&quot; alt=&quot;Loading the model&quot;&gt;
&lt;h3&gt;Het dialoogvenster starten&lt;/h3&gt;
&lt;p&gt;Verander de tab in &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt;, typ je vraag en klik op &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/968/original/sh_your_own_llama_2_in_linux_2.png?1714136407&quot; alt=&quot;Start the dialog&quot;&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face&quot;&gt;Llama 3 met Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/579-qwen-2-vs-llama-3&quot;&gt;Qwen 2 vs Llama 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/001/025/original/il_your_own_llama_2_in_Linux.png?1721999193"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 09:13:25 +0100</pubDate>
      <guid isPermaLink="false">574</guid>
      <dc:date>2025-01-20 09:13:25 +0100</dc:date>
    </item>
    <item>
      <title>Llama 3 met Hugging Face</title>
      <link>https://www.leadergpu.nl/catalog/573-llama-3-met-hugging-face</link>
      <description>&lt;p&gt;Op 18 april 2024 werd het nieuwste grote taalmodel van MetaAI, Llama 3, uitgebracht. Er werden twee versies aan gebruikers gepresenteerd: 8B en 70B. De eerste versie bevat meer dan 15K tokens en werd getraind op gegevens die geldig waren tot maart 2023. De tweede, grotere versie is getraind op gegevens die geldig zijn tot december 2023.&lt;/p&gt;

&lt;h2&gt;Stap 1. Besturingssysteem voorbereiden&lt;/h2&gt;

&lt;h3&gt;Cache en pakketten bijwerken&lt;/h3&gt;

&lt;p&gt;Laten we de pakketcache bijwerken en je besturingssysteem upgraden voordat je begint met het instellen van LLaMa 3. Houd er rekening mee dat we voor deze gids Ubuntu 22.04 LTS als besturingssysteem gebruiken:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ook moeten we Python Installer Packages (PIP) toevoegen, als het nog niet aanwezig is in het systeem:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install python3-pip&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Nvidia-stuurprogramma&#39;s installeren&lt;/h3&gt;

&lt;p&gt;Je kunt het geautomatiseerde hulpprogramma gebruiken dat standaard in Ubuntu-distributies zit:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo ubuntu-drivers autoinstall&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Je kunt de Nvidia-stuurprogramma&#39;s ook handmatig installeren. Vergeet niet de server opnieuw op te starten:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Stap 2. Het model ophalen&lt;/h2&gt;

&lt;p&gt;Log in op &lt;a href=&quot;https://huggingface.co/&quot;&gt;Hugging Face&lt;/a&gt; met uw gebruikersnaam en wachtwoord. Ga naar de pagina die bij de gewenste LLM-versie hoort: &lt;a href=&quot;https://huggingface.co/meta-llama/Meta-Llama-3-8B&quot;&gt;Meta-Llama-3-8B&lt;/a&gt; of &lt;a href=&quot;https://huggingface.co/meta-llama/Meta-Llama-3-70B&quot;&gt;Meta-Llama-3-70B&lt;/a&gt;. Op het moment van publicatie van dit artikel wordt toegang tot het model op individuele basis verleend. Vul een kort formulier in en klik op de knop &lt;b translate=&quot;no&quot;&gt;Submit&lt;/b&gt;:&lt;/p&gt;

&lt;h3&gt;Toegang aanvragen bij HF&lt;/h3&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/905/original/sh_llama3_quick_start_1.png?1713533099&quot; alt=&quot;Fill the form&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Vervolgens ontvang je een bericht dat je verzoek is ingediend:&lt;/p&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/906/original/sh_llama3_quick_start_2.png?1713533131&quot; alt=&quot;Form submitted&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Na 30-40 minuten krijg je toegang en ontvang je hierover bericht via e-mail.&lt;/p&gt;

&lt;h3&gt;SSH-sleutel toevoegen aan HF&lt;/h3&gt;

&lt;p&gt;Genereer en voeg een SSH-sleutel toe die je kunt gebruiken in Hugging Face:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/.ssh &amp;amp;&amp;amp; ssh-keygen&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Wanneer het sleutelpaar is gegenereerd, kun je de publieke sleutel weergeven in de terminal emulator:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cat id_rsa.pub&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Kopieer alle informatie beginnend bij &lt;b translate=&quot;no&quot;&gt;ssh-rsa&lt;/b&gt; en eindigend bij &lt;b translate=&quot;no&quot;&gt;usergpu@gpuserver&lt;/b&gt; zoals weergegeven in de volgende schermafbeelding:&lt;/p&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/907/original/sh_llama3_quick_start_3.png?1713533169&quot; alt=&quot;Copy RSA key&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Open Hugging Face &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;Profielinstellingen&lt;/a&gt;. Kies vervolgens &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; en klik op de knop SSH-sleutel toevoegen:&lt;/p&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/908/original/sh_llama3_quick_start_4.png?1713533229&quot; alt=&quot;Add SSH key&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Vul de &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; in en plak de gekopieerde &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; van de terminal. Sla de sleutel op door op &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt; te drukken:&lt;/p&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/909/original/sh_llama3_quick_start_5.png?1713533267&quot; alt=&quot;Paste the key&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Nu is je HF-account gekoppeld aan de publieke SSH-sleutel. Het tweede deel (privésleutel) wordt opgeslagen op de server. De volgende stap is het installeren van een specifieke Git LFS (Large File Storage) extensie, die gebruikt wordt voor het downloaden van grote bestanden zoals neurale netwerkmodellen. Open je home directory:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Download en voer het shell script uit. Dit script installeert een nieuwe repository van derden met git-lfs:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nu kun je het installeren met de standaard pakketbeheerder:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get install git-lfs&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Laten we git configureren om onze HF nickname te gebruiken:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.name &quot;John&quot;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;En gekoppeld aan het HF e-mail account:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.email &quot;john.doe@example.com&quot;&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Het model downloaden&lt;/h3&gt;

&lt;p&gt;Open de doelmap:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;En begin met het downloaden van de repository. Voor dit voorbeeld kiezen we versie 8B:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:meta-llama/Meta-Llama-3-8B&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Dit proces duurt maximaal 5 minuten. Je kunt dit controleren door het volgende commando in een andere SSH-console uit te voeren:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;watch -n 0.5 df -h&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Hier zie je hoe de vrije schijfruimte op de gemounte schijf afneemt, wat ervoor zorgt dat de download vordert en de gegevens worden opgeslagen. De status wordt elke halve seconde vernieuwd. Om het bekijken handmatig te stoppen, druk je op de sneltoets Ctrl + C.&lt;/p&gt;

&lt;p&gt;Je kunt ook &lt;a href=&quot;https://github.com/aristocratos/btop&quot;&gt;btop&lt;/a&gt; installeren en het proces volgen met dit hulpprogramma:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install btop &amp;amp;&amp;amp; btop&lt;/code&gt;&lt;/pre&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/910/original/sh_llama3_quick_start_6.png?1713533300&quot; alt=&quot;Btop view&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Om het hulpprogramma btop af te sluiten, druk je op de toets &lt;b translate=&quot;no&quot;&gt;Esc&lt;/b&gt; en selecteer je &lt;b translate=&quot;no&quot;&gt;Quit&lt;/b&gt;.&lt;/p&gt;

&lt;h2&gt;Stap 3. Het model uitvoeren&lt;/h2&gt;

&lt;p&gt;Open de map:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Download de Llama 3 repository:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/meta-llama/llama3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Wijzig de map:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd llama3&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Voer het voorbeeld uit:&lt;/p&gt;


&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;torchrun --nproc_per_node 1 example_text_completion.py \
--ckpt_dir /mnt/fastdisk/Meta-Llama-3-8B/original \
--tokenizer_path /mnt/fastdisk/Meta-Llama-3-8B/original/tokenizer.model \
--max_seq_len 128 \
--max_batch_size 4&lt;/code&gt;&lt;/pre&gt;

&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/911/original/sh_llama3_quick_start_7.png?1713533328
&quot; alt=&quot;Llama3 example result&quot; unselectable=&quot;on&quot;&gt;
&lt;p&gt;Nu kun je Llama 3 gebruiken in je applicaties.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/579-qwen-2-vs-llama-3&quot;&gt;Qwen 2 vs Llama 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/904/original/il_llama3_quick_start.jpg?1713533056"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 20 Jan 2025 09:05:10 +0100</pubDate>
      <guid isPermaLink="false">573</guid>
      <dc:date>2025-01-20 09:05:10 +0100</dc:date>
    </item>
    <item>
      <title>StarCoder: uw lokale codeerhulp</title>
      <link>https://www.leadergpu.nl/catalog/571-starcoder-uw-lokale-codeerhulp</link>
      <description>&lt;p&gt;Microsoft CoPilot heeft een revolutie teweeggebracht op het gebied van softwareontwikkeling. Deze AI-assistent helpt ontwikkelaars enorm met verschillende coderingstaken, waardoor hun leven eenvoudiger wordt. Een nadeel is echter dat het geen standalone applicatie is, maar een cloud-gebaseerde service. Dit betekent dat gebruikers akkoord moeten gaan met de servicevoorwaarden en moeten betalen voor een abonnement.&lt;/p&gt;
&lt;p&gt;Gelukkig biedt de wereld van open-source software ons tal van alternatieven. Op het moment van schrijven van dit artikel is het meest opvallende alternatief voor CoPilot StarCoder, ontwikkeld door het BigCode project. StarCoder is een uitgebreid neuraal netwerkmodel met 15,5B parameters, getraind op meer dan 80 programmeertalen.&lt;/p&gt;
&lt;p&gt;Dit model wordt gedistribueerd op Hugging Face (HF) met een &lt;a href=&quot;https://huggingface.co/docs/hub/models-gated&quot; target=&quot;_blank&quot;&gt;gated model&lt;/a&gt; onder de &lt;a href=&quot;https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement&quot; target=&quot;_blank&quot;&gt;BigCode OpenRAIL-M v1 licentieovereenkomst&lt;/a&gt;. Je kunt dit model gratis downloaden en gebruiken, maar je moet wel een HF-account hebben met een gekoppelde SSH-sleutel. Voordat je kunt downloaden, zijn er een paar extra stappen die je moet nemen.&lt;/p&gt;
&lt;h2&gt;SSH-sleutel toevoegen aan HF&lt;/h2&gt;
&lt;p&gt;Voordat je begint, moet je port forwarding (externe poort 7860 naar 127.0.0.1:7860) instellen in je SSH-client. Aanvullende informatie is te vinden in de volgende artikelen:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/597-stable-video-diffusion&quot;&gt;Stabiele videoverspreiding&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/488-maak-verbinding-met-een-linux-server&quot;&gt;Verbinding maken met een Linux-server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Werk de pakketcache-repository en geïnstalleerde pakketten bij:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we de systeempakketbeheerder van Python (PIP) installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install python3-pip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Genereer en voeg een SSH-sleutel toe die je kunt gebruiken in Hugging Face:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/.ssh &amp;&amp; ssh-keygen&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wanneer het sleutelpaar is gegenereerd, kun je de publieke sleutel weergeven in de terminal emulator:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cat id_rsa.pub&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Kopieer alle informatie beginnend bij ssh-rsa en eindigend met usergpu@gpuserver zoals weergegeven in de volgende schermafbeelding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/907/original/sh_llama3_quick_start_3.png?1713533169&quot; alt=&quot;Copy RSA key&quot;&gt;
&lt;p&gt;Open een webbrowser, typ &lt;a href=&quot;https://huggingface.co/&quot; target=&quot;_blank&quot;&gt;https://huggingface.co/&lt;/a&gt; in de adresbalk en druk op &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Log in op je HF-account en open &lt;a href=&quot;https://huggingface.co/settings/profile&quot; target=&quot;_blank&quot;&gt;Profielinstellingen&lt;/a&gt;. Kies dan &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; en klik op de knop &lt;b translate=&quot;no&quot;&gt;Add SSH Key&lt;/b&gt;:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/908/original/sh_llama3_quick_start_4.png?1713533229&quot; alt=&quot;Add SSH key&quot;&gt;
&lt;p&gt;Vul de &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; in en plak de gekopieerde &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; van de terminal. Sla de sleutel op door op &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt; te drukken:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/909/original/sh_llama3_quick_start_5.png?1713533267
&quot; alt=&quot;Paste the key&quot;&gt;
&lt;p&gt;Nu is je HF-account gekoppeld aan de publieke SSH-sleutel. Het tweede deel (privésleutel) wordt opgeslagen op de server. De volgende stap is het installeren van een specifieke Git LFS (Large File Storage) extensie, die gebruikt wordt voor het downloaden van grote bestanden zoals neurale netwerkmodellen. Open je home directory:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd ~/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Download en voer het shell script uit. Dit script installeert een nieuwe repository van derden met git-lfs:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Nu kun je het installeren met de standaard pakketbeheerder:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt-get install git-lfs&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we git configureren om onze HF nickname te gebruiken:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.name &quot;John&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En gekoppeld aan het HF e-mailaccount:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git config --global user.email &quot;john.doe@example.com&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Het model downloaden&lt;/h2&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Houd er rekening mee dat StarCoder in binair formaat een aanzienlijke hoeveelheid schijfruimte in beslag kan nemen (&amp;gt;75 GB). Vergeet niet &lt;a href=&quot;https://www.leadergpu.nl/articles/492-schijfpartitionering-onder-linux&quot;&gt;dit artikel&lt;/a&gt; te raadplegen om er zeker van te zijn dat je de juiste partitie gebruikt.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Alles is klaar voor het downloaden van het model. Open de doelmap:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En begin met het downloaden van de repository:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:bigcode/starcoder&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit proces duurt maximaal 15 minuten. Wees geduldig. Je kunt dit controleren door het volgende commando in een andere SSH-console uit te voeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;watch -n 0.5 df -h&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hier zie je hoe de vrije schijfruimte op de gemounte schijf afneemt, wat ervoor zorgt dat de download vordert en de gegevens worden opgeslagen. De status wordt elke halve seconde vernieuwd. Om het bekijken handmatig te stoppen, druk je op de snelkoppeling &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt;.&lt;/p&gt;
&lt;h2&gt;Het volledige model uitvoeren met WebUI&lt;/h2&gt;
&lt;p&gt;Kloon de repository van het project:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone https://github.com/oobabooga/text-generation-webui.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open de gedownloade map:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd text-generation-webui&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer het startscript uit:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./start_linux.sh --model-dir /mnt/fastdisk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het script controleert of de nodige afhankelijkheden op de server aanwezig zijn. Eventuele ontbrekende afhankelijkheden worden automatisch geïnstalleerd. Wanneer de toepassing start, opent u uw webbrowser en typt u het volgende adres in:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;http://127.0.0.1:7860&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open het tabblad &lt;b translate=&quot;no&quot;&gt;Model&lt;/b&gt; en selecteer het gedownloade model &lt;b translate=&quot;no&quot;&gt;starcoder&lt;/b&gt; in de vervolgkeuzelijst. Klik op de lijst &lt;b translate=&quot;no&quot;&gt;Model loader&lt;/b&gt; en kies &lt;b translate=&quot;no&quot;&gt;Transformers&lt;/b&gt;. Stel de maximale GPU-geheugenschuif in voor elke geïnstalleerde GPU. Dit is heel belangrijk, want als je deze op 0 zet, wordt het gebruik van VRAM beperkt en kan het model niet correct laden. Je moet ook het maximale RAM-gebruik instellen. Klik nu op de knop &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt; en wacht tot het laden is voltooid:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/969/original/sh_starcoder_your_local_coding_assistant_1.png?1714386546&quot; alt=&quot;Load StarCoder model&quot;&gt;
&lt;p&gt;Ga naar het tabblad &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt; en test de conversatie met het model. Houd er rekening mee dat Starcoder niet bedoeld is voor dialogen zoals ChatGPT. Het kan echter wel handig zijn om code te controleren op fouten en oplossingen aan te dragen.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/970/original/sh_starcoder_your_local_coding_assistant_2.png?1714386599&quot; alt=&quot;Run the StarCoder&quot;&gt;
&lt;p&gt;Als je een volwaardig dialoogmodel wilt, kun je twee andere modellen proberen: &lt;a href=&quot;https://huggingface.co/HuggingFaceH4/starchat-alpha&quot; target=&quot;_blank&quot;&gt;starchat-alpha&lt;/a&gt; en &lt;a href=&quot;https://huggingface.co/HuggingFaceH4/starchat-beta&quot; target=&quot;_blank&quot;&gt;starchat-beta&lt;/a&gt;. Deze modellen zijn verfijnd om een dialoog te voeren zoals ChatGPT dat doet. De volgende commando&#39;s helpen om deze modellen te downloaden en uit te voeren:&lt;/p&gt;
&lt;p&gt;Voor starchat-alpha:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:HuggingFaceH4/starchat-alpha&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voor starchat-beta:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;git clone git@hf.co:HuggingFaceH4/starchat-beta&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;De laadprocedure is hetzelfde als hierboven beschreven. Je kunt ook &lt;a href=&quot;https://github.com/bigcode-project/starcoder.cpp/tree/main&quot; target=&quot;_blank&quot;&gt;de C++ implementatie&lt;/a&gt; van starcoder vinden, die effectief zal zijn voor CPU-inferentie.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/574-je-eigen-llama-2-in-linux&quot;&gt;Je eigen LLaMa 2 in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/576-je-eigen-vicuna-in-linux&quot;&gt;Je eigen Vicuna in Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/catalog/578-je-eigen-qwen-met-hf&quot;&gt;Je eigen Qwen met HF&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/971/original/il_starcoder_your_local_coding_assistant.jpg?1714386646"
        length="0"
        type="image/jpeg"/>
      <pubDate>Fri, 17 Jan 2025 14:52:58 +0100</pubDate>
      <guid isPermaLink="false">571</guid>
      <dc:date>2025-01-17 14:52:58 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion modellen: aanpassingen en opties</title>
      <link>https://www.leadergpu.nl/catalog/566-stable-diffusion-modellen-aanpassingen-en-opties</link>
      <description>&lt;p&gt;Tuning is een uitstekende manier om elke auto of gadget te verbeteren. Generatieve neurale netwerken kunnen ook worden getuned. Vandaag willen we niet diep ingaan op de structuur van Stable Diffusion, maar we streven naar betere resultaten dan een standaard opstelling.&lt;/p&gt;
&lt;p&gt;Er zijn twee eenvoudige manieren om dit te doen: aangepaste modellen installeren en standaard optimalisatieopties gebruiken. In dit artikel leren we hoe we nieuwe modellen in Stable Diffusion kunnen installeren en met welke opties we hardware effectiever kunnen gebruiken.&lt;/p&gt;
&lt;p&gt;Als je grappige foto&#39;s van schattige katten of lekker eten wilt delen, post je ze meestal op Instagram. Als je applicaties ontwikkelt en de code voor iedereen beschikbaar wilt maken, post je die op GitHub. Maar als je een grafisch AI-model traint en dat wilt delen, moet je eens kijken naar &lt;a href=&quot;https://civitai.com/&quot;&gt;CivitAI&lt;/a&gt;. Dit is een enorm platform om kennis en resultaten te delen met communityleden.&lt;/p&gt;
&lt;p&gt;Voordat u begint met downloaden, moet u de werkdirectory wijzigen. Alle AI modellen in Stable Diffusion staan in de &quot;models&quot; map:Voordat u begint met downloaden, moet u de werkmap veranderen. Alle AI-modellen in Stable Diffusion staan in de map &quot;models&quot;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;cd stable-diffusion-webui/models/Stable-diffusion&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Laten we eens kijken welke modellen standaard aanwezig zijn:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;ls -a&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&#39;Put Stable Diffusion checkpoints here.txt&#39;
v1-5-pruned-emaonly.safetensors&lt;/pre&gt;
&lt;p&gt;Er is slechts één model met de naam &quot;v1-5-pruned-emaonly&quot; en de extensie &quot;safetensors&quot;. Dit model is een goed uitgangspunt, maar we hebben vijf interessantere modellen. Laten we ze downloaden en vergelijken met het standaardmodel.&lt;/p&gt;
&lt;h2&gt;Stabiele diffusie-aanwijzingen&lt;/h2&gt;
&lt;p&gt;Om het verschil visueel te laten zien, hebben we eenvoudige aanwijzingen bedacht:&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;princess, magic, fairy tales, portrait, 85mm, colorful&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Voor veel modellen kan het een grote uitdaging zijn om geometrie en gezichtskenmerken nauwkeurig weer te geven. Om dit aan te pakken, kunt u negatieve aanwijzingen toevoegen om ervoor te zorgen dat afbeeldingen zonder deze kenmerken worden gegenereerd:&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;poorly rendered face, poorly drawn face, poor facial details, poorly drawn hands, poorly rendered hands, low resolution, bad composition, mutated body parts, blurry image, disfigured, oversaturated, bad anatomy, deformed body features&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Stel de maximale waarde van bemonsteringsstappen in (150) om meer details in het resultaat te krijgen.&lt;/p&gt;
&lt;h3&gt;Standaardmodel&lt;/h3&gt;
&lt;p&gt;Het standaardmodel presteert goed in dergelijke taken. Sommige details zijn echter niet helemaal nauwkeurig. Er is bijvoorbeeld een probleem met de ogen: ze zijn duidelijk uit verhouding:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/816/original/sh_stable_diffusion_models_customization_and_options_1.png?1712233278&quot; alt=&quot;Stable Diffusion Models standard&quot;&gt;
&lt;p&gt;Als je naar de diadeem kijkt, is deze ook scheef en asymmetrisch. De rest van de details zijn goed uitgevoerd en komen overeen met de gegeven aanwijzingen. De achtergrond is wazig omdat we &quot;85mm&quot; hebben ingesteld. Dit is een veelgebruikte brandpuntsafstand voor portretten in professionele fotografie.&lt;/p&gt;
&lt;h3&gt;Realistische visie&lt;/h3&gt;
&lt;p&gt;Dit model is geweldig voor portretten. Het beeld ziet eruit alsof het is genomen met een kwaliteitsobjectief met de opgegeven brandpuntsafstand. De verhoudingen van het gezicht en lichaam zijn nauwkeurig, de jurk past perfect en de diadeem op het hoofd ziet er esthetisch uit:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/817/original/sh_stable_diffusion_models_customization_and_options_2.png?1712233379&quot; alt=&quot;Stable Diffusion Models Realistic Vision&quot;&gt;
&lt;p&gt;De auteur raadt trouwens aan om het volgende sjabloon te gebruiken voor negatieve aanwijzingen:&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime:1.4), text, close up, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Maar zelfs met onze vrij eenvoudige aanwijzingen is het resultaat uitstekend.&lt;/p&gt;
Download het model hier: &lt;a href=&quot;https://civitai.com/models/4201/realistic-vision-v20&quot;&gt;Realistische visie&lt;/a&gt;&lt;h3&gt;Bewust&lt;/h3&gt;
&lt;p&gt;Nog een geweldig model voor dergelijke doeleinden. De details zijn ook hier goed uitgewerkt, maar wees voorzichtig en let op het aantal vingers. Dit is een veel voorkomend probleem bij neurale netwerken: ze kunnen vaak extra vingers of zelfs hele ledematen tekenen.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/818/original/sh_stable_diffusion_models_customization_and_options_3.png?1712233625&quot; alt=&quot;Stable Diffusion Models Deliberate&quot;&gt;
&lt;p&gt;Het creëren van visuele lijnen is een van de favoriete filmtechnieken. Zo koos dit model er ook voor om een persoon te tekenen tegen de achtergrond van een bospad.&lt;/p&gt;
&lt;p&gt;Download het model hier: &lt;a href=&quot;https://huggingface.co/XpucT/Deliberate&quot;&gt;Bewust&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;OpenJourney&lt;/h3&gt;
&lt;p&gt;Onder generatieve neurale netwerken heeft Midjourney (MJ) speciale aandacht gekregen. MJ was een pionier op dit gebied en wordt vaak als voorbeeld voor anderen gebruikt. De beelden die het creëert hebben een unieke stijl. OpenJourney is geïnspireerd door de MJ-stijl en is een geschikt afgestemde Stable Diffusion.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/819/original/sh_stable_diffusion_models_customization_and_options_4.png?1712233730&quot; alt=&quot;Stable Diffusion Models OpenJourney&quot;&gt;
&lt;p&gt;gegenereerde afbeeldingen die eruitzien als een tekenfilm. Ze zijn levendig en helder. Voeg voor betere resultaten de stijlprompt &lt;b translate=&quot;no&quot;&gt;mdjrny-v4&lt;/b&gt; toe.&lt;/p&gt;
&lt;p&gt;Download het model hier: &lt;a href=&quot;https://huggingface.co/prompthero/openjourney&quot;&gt;OpenJourney&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Alles&lt;/h3&gt;
&lt;p&gt;Dit model maakt beelden die lijken op die van een professionele mangatekenaar (iemand die strips tekent). We hebben dus een prinses in anime-stijl.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/820/original/sh_stable_diffusion_models_customization_and_options_5.png?1712233804&quot; alt=&quot;Stable Diffusion Models Anything&quot;&gt;
&lt;p&gt;Dit model is getraind op afbeeldingen met een resolutie van 768x768. Je kunt deze resolutie instellen om betere resultaten te krijgen dan standaard 512x512.&lt;/p&gt;
&lt;p&gt;Download het model hier: &lt;a href=&quot;https://civitai.com/models/66/anything-v3&quot;&gt;Alles&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Zakelijk Memphis&lt;/h3&gt;
&lt;p&gt;Deze beeldstijl werd wild populair in de vroege jaren 2020 en werd veel gebruikt als bedrijfsstijl in verschillende hightechbedrijven. Ondanks kritiek is deze stijl vaak terug te vinden in presentaties en websites.&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/821/original/sh_stable_diffusion_models_customization_and_options_6.png?1712233943&quot; alt=&quot;Stable Diffusion Models Corporate Memphis&quot;&gt;
&lt;p&gt;De prinses bleek minimalistisch, maar best mooi. Vooral grappig waren de details die het model op de achtergrond plaatste.&lt;/p&gt;
&lt;p&gt;Download het model hier: &lt;a href=&quot;https://huggingface.co/jinofcoolnes/corporate_memphis&quot;&gt;Bedrijfsmemphis&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Stabiele verspreidingsopties&lt;/h2&gt;
&lt;p&gt;Stable Diffusion verbruikt veel bronnen, dus zijn er veel opties voor ontwikkeld. De populairste is &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt;. Deze optie maakt twee optimalisatiemechanismen mogelijk. De eerste vermindert het geheugengebruik en de tweede wordt gebruikt om de snelheid te verhogen.&lt;/p&gt;
&lt;p&gt;Als je --xformers probeert toe te voegen zonder aanvullende stappen, krijg je een foutmelding dat de pakketten&lt;a href=&quot;https://pypi.org/project/torch/&quot;&gt;(torch&lt;/a&gt; en &lt;a href=&quot;https://pypi.org/project/torchvision/&quot;&gt;torchvision&lt;/a&gt;) zijn gecompileerd voor verschillende versies van CUDA®. Om dit op te lossen, moeten we naar de virtuele Python-omgeving (venv) gaan die wordt gebruikt voor Stable Diffusion. Installeer daarna de pakketten voor de gewenste versie van CUDA® (v1.18).&lt;/p&gt;
&lt;p&gt;Eerst moeten we apt packages cache updaten en package installer voor Python (pip) installeren. De volgende stap is het activeren van Python venv met het script &lt;b translate=&quot;no&quot;&gt;activate&lt;/b&gt;:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;source stable-diffusion-webui/venv/bin/activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Daarna verandert de opdrachtprompt in &lt;b translate=&quot;no&quot;&gt;(venv) username@hostname:~$&lt;/b&gt; Laten we de pakketten torch en torchvision met CUDA® 11.8 installeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 --index-url https://download.pytorch.org/whl/cu118&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit proces kan enkele minuten duren omdat de pakketten vrij groot zijn. Je hebt net genoeg tijd om wat koffie in te schenken. Tot slot kunt u de virtuele omgeving deactiveren en Stable Diffusion starten met de optie &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt; (vervang &lt;b translate=&quot;no&quot;&gt;[user]&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;[password]&lt;/b&gt; door uw eigen waarden):&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-venv&quot;&gt;deactivate&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui --xformers --listen --gradio-auth [user]:[password]&lt;/password&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het snellere alternatief voor &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt; is &lt;b translate=&quot;no&quot;&gt;--opt-sdp-no-mem-attention&lt;/b&gt;. Het verbruikt meer geheugen maar werkt iets sneller. U kunt deze optie zonder extra stappen gebruiken.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;Vandaag hebben we de mogelijkheden van Stabiele Verspreiding onderzocht in combinatie met andere toegevoegde modellen en optimalisatieopties. Onthoud dat u het detailniveau in de uiteindelijke afbeelding kunt aanpassen door het aantal bemonsteringsstappen te verhogen of verlagen.&lt;/p&gt;
&lt;p&gt;Natuurlijk is dit maar een klein deel van wat je met zo&#39;n generatief neuraal netwerk kunt doen. Bestel dus &lt;a href=&quot;https://www.leadergpu.nl/#chose-best&quot;&gt;nu een GPU-server&lt;/a&gt; en begin te experimenteren. Er liggen nog veel meer ontdekkingen en mogelijkheden op je te wachten. Snelle en krachtige videokaarten zullen je helpen tijd te besparen en gave beelden te genereren.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/565-stable-diffusion-webui&quot;&gt;Stabiele Diffusion WebUI&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/598-easy-diffusion-ui&quot;&gt;Eenvoudige diffusie-gebruikersinterface&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/595-pytorch-voor-linux&quot;&gt;PyTorch voor Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/596-pytorch-voor-windows&quot;&gt;PyTorch voor Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/815/original/il_stable_diffusion_models_customization_and_options.png?1712233216"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 25 Nov 2024 13:30:16 +0100</pubDate>
      <guid isPermaLink="false">566</guid>
      <dc:date>2024-11-25 13:30:16 +0100</dc:date>
    </item>
    <item>
      <title>Stable Diffusion WebUI</title>
      <link>https://www.leadergpu.nl/catalog/565-stable-diffusion-webui</link>
      <description>&lt;p&gt;Generatieve neurale netwerken lijken magisch. Ze beantwoorden vragen, maken afbeeldingen en schrijven zelfs code in verschillende programmeertalen. Het succes van deze netwerken heeft twee componenten: voorgetrainde modellen en hardwareversnellers. Het is zeker mogelijk om CPU-kernen te gebruiken voor deze werklast, maar dat zou een slakkenrace zijn. Het genereren van één kleine afbeelding kan een aanzienlijke hoeveelheid tijd in beslag nemen - tientallen minuten. Het genereren van dezelfde afbeelding op een GPU zou honderden keren minder tijd kosten.&lt;/p&gt;
&lt;p&gt;Het eerste geheim zit hem in het aantal cores. CPU cores zijn universeel en kunnen complexe instructies aan. Conventionele serverprocessors hebben echter maximaal 64 cores. Zelfs in multiprocessorsystemen is het aantal kernen zelden groter dan 256. GPU-kernen zijn eenvoudiger, maar daardoor passen er veel meer op de chip. Een NVIDIA® RTX™ 4090 heeft bijvoorbeeld 16.384 kernen.&lt;/p&gt;
&lt;p&gt;Het tweede geheim is dat de werklast kan worden opgedeeld in veel eenvoudige taken, die in parallelle threads kunnen worden uitgevoerd op speciale GPU-kernen. Deze truc versnelt de gegevensverwerking aanzienlijk. Vandaag zullen we zien hoe het werkt en een generatief neuraal netwerk &lt;a href=&quot;https://github.com/Stability-AI/stablediffusion&quot;&gt;Stable Diffusion Web UI&lt;/a&gt; inzetten op de &lt;a href=&quot;https://www.leadergpu.nl/&quot;&gt;LeaderGPU-infrastructuur&lt;/a&gt;. Neem bijvoorbeeld een server met een NVIDIA® RTX™ 4090 die 16.384 GPU-kernen heeft. Als besturingssysteem hebben we de huidige LTS-release Ubuntu 22.04 gekozen en de optie &quot;Nvidia-stuurprogramma&#39;s en CUDA® 11.8 installeren&quot;.&lt;/p&gt;
&lt;h2&gt;Systeem voorbereiden&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/811/original/sh_stable_diffusion_webui_1.png?1712212269&quot; alt=&quot;Stable Diffusion WebUI system prepare&quot;&gt;
&lt;p&gt;Voordat we beginnen, moeten we even stilstaan bij het geheugen. Stable Diffusion is een groot systeem dat tot 13G op uw harde schijf in beslag kan nemen. De standaard virtuele schijf in een LeaderGPU-installatie is 100G. Het besturingssysteem neemt 25G in beslag. Als we Stable Diffusion installeren zonder de home-partitie uit te breiden, zullen we al het vrije geheugen opgebruiken en een foutmelding krijgen: &quot;No space left on device&quot;. Het is een goed idee om onze homedirectory uit te breiden.&lt;/p&gt;
&lt;h3&gt;Thuismap uitbreiden&lt;/h3&gt;
&lt;p&gt;Eerst moeten we alle beschikbare schijven controleren.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo fdisk -l&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;Disk /dev/sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: INTEL SSDSC2KB48
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: VIRTUAL-DISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9D4C1F0C-D4A7-406E-AECB-BF57E4726437&lt;/pre&gt;
&lt;p&gt;Daarna moeten we een nieuwe Linux-partitie aanmaken op onze fysieke SSD-schijf, /dev/sda:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo fdisk /dev/sda&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Druk één voor één op de volgende toetsen: &lt;b translate=&quot;no&quot;&gt;g → n → Enter → Enter → Enter → w&lt;/b&gt;. Dit resulteert in een nieuwe /dev/sda1 partitie zonder bestandssysteem. Maak er nu een ext4 bestandssysteem op aan:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo mkfs.ext4 /dev/sda1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Als het proces klaar is, gaan we naar de volgende stap.&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Waarschuwing! Ga zeer voorzichtig te werk bij de volgende stap. Elke fout tijdens het wijzigen van het fstab-bestand kan ertoe leiden dat je server niet meer normaal kan opstarten en kan een volledige reset van het besturingssysteem vereisen.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo blkid&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;/dev/sdb2: UUID=&quot;6b17e542-0934-4dba-99ca-a00bd260c247&quot; BLOCK_SIZE=&quot;4096&quot; TYPE=&quot;ext4&quot; PARTUUID=&quot;70030755-75d8-4339-a4e0-26a97f1d1c5d&quot;
/dev/loop1: TYPE=&quot;squashfs&quot;
/dev/sdb1: PARTUUID=&quot;63ff1714-bd29-4062-be04-21af32423c0a&quot;
/dev/loop4: TYPE=&quot;squashfs&quot;
/dev/loop0: TYPE=&quot;squashfs&quot;
/dev/sda1: UUID=&quot;fb2ba455-2b8d-4da0-8719-ce327d0026bc&quot; BLOCK_SIZE=&quot;4096&quot; TYPE=&quot;ext4&quot; PARTUUID=&quot;6e0108df-b000-5848-8328-b187daf37a4f&quot;
/dev/loop5: TYPE=&quot;squashfs&quot;
/dev/loop3: TYPE=&quot;squashfs&quot;&lt;/pre&gt;
&lt;p&gt;Kopieer &lt;b translate=&quot;no&quot;&gt;UUID&lt;/b&gt; (fb2ba455-2b8d-4da0-8719-ce327d0026bc in het voorbeeld) van de &lt;b translate=&quot;no&quot;&gt;/dev/sda1&lt;/b&gt; partitie. Vervolgens zullen we het systeem instrueren om deze schijf automatisch te mounten met zijn UUID tijdens het opstarten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo nano /etc/fstab&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voer deze regel in vóór &lt;b translate=&quot;no&quot;&gt;/swap.img&lt;/b&gt;... string:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash&quot;&gt;/dev/disk/by-uuid/&lt;PARTITION UUID&gt; /home/usergpu ext4 defaults defaults&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Voorbeeld:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;# /etc/fstab: static file system information.
#
# Use &#39;blkid&#39; to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# &lt;file system&gt; &lt;mount point&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;
# / was on /dev/sdb2 during curtin installation
/dev/disk/by-uuid/6b17e542-0934-4dba-99ca-a00bd260c247 / ext4 defaults,_netdev 0 1
/dev/disk/by-uuid/fb2ba455-2b8d-4da0-8719-ce327d0026bc /home/usergpu ext4 defaults defaults
/swap.img       none    swap    sw      0       0&lt;/pre&gt;
&lt;p&gt;Sluit af met de sneltoets &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt; en bevestig het opslaan van het bestand door op &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt; te drukken. De nieuwe instellingen worden toegepast bij de volgende systeemstart. Laten we de server opnieuw opstarten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Na het herstarten kunnen we alle gemounte mappen controleren met het volgende commando:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;df -h&lt;/code&gt;&lt;/pre&gt;
&lt;pre translate=&quot;no&quot;&gt;Filesystem      Size  Used Avail Use% Mounted on
tmpfs           6.3G  1.7M  6.3G   1% /run
/dev/sdb2        49G   23G   24G  50% /
tmpfs            32G     0   32G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda1       440G   28K  417G   1% /home/usergpu
tmpfs           6.3G  4.0K  6.3G   1% /run/user/1000&lt;/pre&gt;
&lt;p&gt;Geweldig! Maar nu hebben we geen toegang om iets in onze thuismap te schrijven, omdat deze is gewijzigd door het configuratiebestand &lt;b translate=&quot;no&quot;&gt;fstab&lt;/b&gt;. Het is tijd om het eigendom van de map terug te eisen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo chown -R usergpu /home/usergpu&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Goed gedaan! Laten we naar de volgende stap gaan.&lt;/p&gt;
&lt;h3&gt;Basispakketten installeren&lt;/h3&gt;
&lt;p&gt;Update de software cache van de officiële Ubuntu repositories en upgrade enkele pakketten:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt update &amp;&amp; sudo apt -y upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het systeem heeft gemeld dat er een nieuwe kernel is geïnstalleerd en deze zal operationeel zijn na het opnieuw opstarten van het systeem. Selecteer twee keer &lt;b translate=&quot;no&quot;&gt;OK&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Vervolgens moeten we de afhankelijkheden oplossen, waarvoor Stable Diffusion nodig is. Het eerste pakket voegt de functionaliteit van de Python virtuele omgeving toe:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install python3-venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het tweede pakket voegt een implementatie toe van de &lt;b translate=&quot;no&quot;&gt;malloc()&lt;/b&gt; functie van de programmeertaal C, aangepast door Google. Het voorkomt &lt;b translate=&quot;no&quot;&gt;“Cannot locate TCMalloc”&lt;/b&gt; fout en verbetert het CPU geheugengebruik.&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt install -y --no-install-recommends google-perftools&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start ten slotte de server opnieuw op:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Stabiele verspreiding automatisch 1111: installeer script&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/812/original/sh_stable_diffusion_webui_2.png?1712212341&quot; alt=&quot;Stable Diffusion WebUI install script&quot;&gt;
&lt;p&gt;De eenvoudigste manier om Stable Diffusion met WebUI te installeren is door het vooraf gemaakte script te gebruiken dat geschreven is door GitHub gebruiker &lt;a href=&quot;https://github.com/AUTOMATIC1111&quot;&gt;AUTOMATIC1111&lt;/a&gt;. Dit script downloadt en installeert deze twee onderdelen terwijl het alle benodigde afhankelijkheden oplost.&lt;/p&gt;
&lt;p&gt;Laten we het script downloaden:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;wget https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Geef het vervolgens toegang tot wijzigingsgegevens en voer het uit als een programma:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;chmod a+x webui.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Het gedownloade script uitvoeren:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui.sh &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit proces kan een paar minuten duren. Alles is klaar om perfecte beelden te maken met Stable Diffusion.&lt;/p&gt;
&lt;h3&gt;Problemen oplossen&lt;/h3&gt;
&lt;p&gt;Als je de foutmelding &quot;Torch is not able to use GPU&quot; tegenkomt, kun je dit oplossen door opnieuw te installeren via apt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo apt -y install nvidia-driver-535&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Je moet het besturingssysteem opnieuw opstarten om het stuurprogramma in te schakelen:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;sudo shutdown -r now&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;genereren&lt;/h2&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/813/original/sh_stable_diffusion_webui_3.png?1712212549
&quot; alt=&quot;Stable Diffusion WebUI run script&quot;&gt;
&lt;p&gt;Het installatiescript &lt;b translate=&quot;no&quot;&gt;./webui.sh&lt;/b&gt; heeft nog een andere functie. Het bedient tegelijkertijd het servergedeelte van Stable Diffusion en WebUI. Als u het echter zonder argumenten gebruikt, zal de server beschikbaar zijn als een lokale daemon op &lt;a href=&quot;http://127.0.0.1:7860&quot;&gt;http://127.0.0.1:7860.&lt;/a&gt; Dit kan op twee manieren worden opgelost: poort doorsturen via een SSH-tunnel of verbindingen vanaf externe IP&#39;s toestaan.&lt;/p&gt;
&lt;p&gt;De tweede manier is eenvoudiger: voeg de optie &lt;b translate=&quot;no&quot;&gt;--listen&lt;/b&gt; toe en je kunt verbinding maken met de webinterface op &lt;b translate=&quot;no&quot;&gt;http://[YOUR_LEADERGPU_SERVER_IP_ADDRESS]:7860&lt;/b&gt;. Dit is echter volledig onveilig, omdat iedere internetgebruiker toegang heeft. Om ongeautoriseerd gebruik te voorkomen, voegt u de optie &lt;b translate=&quot;no&quot;&gt;--gradio-auth&lt;/b&gt; toe naast de gebruikersnaam en het wachtwoord, gescheiden door een dubbele punt:&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;&lt;code translate=&quot;no&quot; class=&quot;bash-user&quot;&gt;./webui.sh --listen --gradio-auth user:password&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dit voegt een inlogpagina toe aan je WebUI instance.Het script zal voor de eerste keer basismodellen en vereiste afhankelijkheden downloaden:&lt;/p&gt;
&lt;img src=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/814/original/sh_stable_diffusion_webui_4.png?1712212654&quot; alt=&quot;Stable Diffusion WebUI Gradio&quot;&gt;
&lt;p&gt;Je kunt genieten van het resultaat. Voer een paar prompts in, scheid ze door komma&#39;s en klik op de knop Generate. Na een paar seconden wordt een afbeelding weergegeven die door het neurale netwerk is gegenereerd.&lt;/p&gt;
&lt;h2&gt;Conclusie&lt;/h2&gt;
&lt;p&gt;We zijn helemaal gekomen van een lege LeaderGPU server met alleen een voorgeïnstalleerd besturingssysteem tot een kant-en-klare instantie met Stable Diffusion en een WebUI interface. De volgende keer zullen we meer leren over het afstellen van softwareprestaties en hoe u uw Stable Diffusion instance op de juiste manier kunt uitbreiden met nieuwe versies van stuurprogramma&#39;s en pakketten.&lt;/p&gt;
&lt;p&gt;Zie ook:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/566-stable-diffusion-modellen-aanpassingen-en-opties&quot;&gt;Stabiele Diffusiemodellen: aanpassingen en opties&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/598-easy-diffusion-ui&quot;&gt;Eenvoudige diffusie gebruikersinterface&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/595-pytorch-voor-linux&quot;&gt;PyTorch voor Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.nl/articles/596-pytorch-voor-windows&quot;&gt;PyTorch voor Windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <enclosure url="https://assets.getwildcard.com/system/images/imgs/000/000/810/original/il_stable_diffusion_webui.png?1712212156"
        length="0"
        type="image/jpeg"/>
      <pubDate>Mon, 25 Nov 2024 13:24:45 +0100</pubDate>
      <guid isPermaLink="false">565</guid>
      <dc:date>2024-11-25 13:24:45 +0100</dc:date>
    </item>
  </channel>
</rss>