<?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® | Solutions GPU pour le calcul haute performance</title>
    <link>https://www.leadergpu.fr</link>
    <description>Un catalogue de solutions dans lequel vous trouverez les meilleurs outils, programmes et bibliothèques pour le calcul haute performance dans différentes catégories et différents domaines.</description>
    <language>fr</language>
    <item>
      <title>Qwen3-Coder : un paradigme brisé</title>
      <link>https://www.leadergpu.fr/catalog/628-qwen3-coder-un-paradigme-bris</link>
      <description>&lt;p&gt;Nous avons l&#39;habitude de penser que les modèles open-source sont toujours moins bons que leurs homologues commerciaux en termes de qualité. Il peut sembler qu&#39;ils soient développés exclusivement par des passionnés qui n&#39;ont pas les moyens d&#39;investir des sommes considérables dans la création d&#39;ensembles de données de haute qualité et dans l&#39;entraînement de modèles sur des dizaines de milliers de GPU modernes.&lt;/p&gt;
&lt;p&gt;Il en va tout autrement lorsque de grandes entreprises comme OpenAI, Anthropic ou Meta s&#39;attellent à la tâche. Elles disposent non seulement des ressources nécessaires, mais aussi des meilleurs spécialistes mondiaux des réseaux neuronaux. Malheureusement, les modèles qu&#39;elles créent, en particulier les dernières versions, sont fermés. Les développeurs expliquent cela par les risques d&#39;une utilisation incontrôlée et la nécessité d&#39;assurer la sécurité de l&#39;IA.&lt;/p&gt;
&lt;p&gt;D&#39;une part, leur raisonnement est compréhensible : de nombreuses questions éthiques restent en suspens et la nature même des modèles de réseaux neuronaux ne permet qu&#39;une influence indirecte sur le résultat final. D&#39;autre part, le fait de garder les modèles fermés et de n&#39;en offrir l&#39;accès que par l&#39;intermédiaire de leur propre API est également un modèle commercial solide.&lt;/p&gt;
&lt;p&gt;Cependant, toutes les entreprises ne se comportent pas de la sorte. Par exemple, la société française Mistral AI propose à la fois des modèles commerciaux et des modèles libres, permettant aux chercheurs et aux passionnés de les utiliser dans leurs projets. Mais il convient d&#39;accorder une attention particulière aux réalisations des entreprises chinoises, dont la plupart construisent des modèles à poids ouvert et à code source ouvert capables de concurrencer sérieusement les solutions propriétaires.&lt;/p&gt;
&lt;h2&gt;DeepSeek, Qwen3 et Kimi K2&lt;/h2&gt;
&lt;p&gt;La première avancée majeure a été réalisée avec DeepSeek-V3. Ce modèle de langage multimodal de DeepSeek AI a été développé en utilisant l&#39;approche du mélange d&#39;experts (MoE) et comprend 671 milliards de paramètres, dont 37 milliards de paramètres les plus pertinents activés pour chaque token. Plus important encore, tous ses composants (poids du modèle, code d&#39;inférence et pipelines d&#39;entraînement) ont été rendus publics.&lt;/p&gt;
&lt;p&gt;Cela en a fait instantanément l&#39;un des LLM les plus attrayants pour les développeurs d&#39;applications d&#39;IA et les chercheurs. DeepSeek-R1, le premier modèle de raisonnement en libre accès, a ensuite fait la une des journaux. Le jour de sa sortie, il a fait trembler le marché boursier américain après que ses développeurs ont affirmé que la formation d&#39;un modèle aussi avancé n&#39;avait coûté que 6 millions de dollars.&lt;/p&gt;
&lt;p&gt;Si le battage médiatique autour de DeepSeek s&#39;est finalement calmé, les versions suivantes n&#39;en ont pas moins été importantes pour l&#39;industrie mondiale de l&#39;IA. Il s&#39;agit bien sûr de Qwen 3. Nous avons abordé ses caractéristiques en détail dans notre analyse des &lt;a href=&quot;https://www.leadergpu.fr/catalog/624-nouveaut-s-de-qwen-3&quot; target=&quot;_blank&quot;&gt;Nouveautés de Qwen 3&lt;/a&gt;, et nous ne nous attarderons donc pas sur ce point ici. Peu de temps après, un autre joueur est apparu : Kimi K2 de Moonshot AI.&lt;/p&gt;
&lt;p&gt;Avec son architecture MoE, ses paramètres 1T (32B activés par jeton) et son code open-source, Kimi K2 a rapidement attiré l&#39;attention de la communauté. Plutôt que de se concentrer sur le raisonnement, Moonshot AI visait des performances de pointe en mathématiques, en programmation et en connaissances interdisciplinaires approfondies.&lt;/p&gt;
&lt;p&gt;L&#39;atout de Kimi K2 était son optimisation pour l&#39;intégration dans des agents d&#39;intelligence artificielle. Ce réseau a été littéralement conçu pour exploiter pleinement tous les outils disponibles. Il excelle dans les tâches qui requièrent non seulement l&#39;écriture de codes, mais aussi des tests itératifs à chaque étape du développement. Cependant, il présente également des faiblesses, que nous aborderons plus loin.&lt;/p&gt;
&lt;p&gt;Kimi K2 est un grand modèle de langage dans tous les sens du terme. L&#39;exécution de la version complète nécessite ~2 TB de VRAM (FP8 : ~1 TB). Pour des raisons évidentes, ce n&#39;est pas quelque chose que vous pouvez faire chez vous, et même de nombreux serveurs GPU ne le supporteront pas. Le modèle nécessite au moins 8 accélérateurs NVIDIA® H200. Les versions quantifiées peuvent aider, mais au prix d&#39;une baisse sensible de la précision.&lt;/p&gt;
&lt;h2&gt;Qwen3-Codeur&lt;/h2&gt;
&lt;p&gt;Voyant le succès de Moonshot AI, Alibaba a développé son propre modèle semblable à Kimi K2, mais avec des avantages significatifs dont nous parlerons bientôt. Au départ, il a été publié en deux versions :&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 Go 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 Go de VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quelques jours plus tard, des modèles plus petits sans le mécanisme de raisonnement sont apparus, nécessitant beaucoup moins de VRAM :&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 Go de 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 Go VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Qwen3-Coder a été conçu pour être intégré à des outils de développement. Il comprend un analyseur spécial pour les appels de fonction (qwen3coder_tool_parser.py, analogue à l&#39;appel de fonction d&#39;OpenAI). Parallèlement au modèle, un utilitaire de console a été publié, capable d&#39;effectuer des tâches allant de la compilation de code à l&#39;interrogation d&#39;une base de connaissances. Cette idée n&#39;est pas nouvelle, il s&#39;agit essentiellement d&#39;une extension fortement retravaillée de l&#39;application de code Gemini d&#39;Anthropic.&lt;/p&gt;
&lt;p&gt;Le modèle est compatible avec l&#39;API OpenAI, ce qui permet de le déployer localement ou sur un serveur distant et de le connecter à la plupart des systèmes qui supportent cette API. Cela inclut à la fois les applications clientes prêtes à l&#39;emploi et les bibliothèques d&#39;apprentissage automatique. Cela le rend viable non seulement pour le segment B2C mais aussi pour le segment B2B, offrant un remplacement transparent du produit d&#39;OpenAI sans aucune modification de la logique de l&#39;application.&lt;/p&gt;
&lt;p&gt;L&#39;une de ses caractéristiques les plus demandées est l&#39;extension de la longueur du contexte. Par défaut, il prend en charge 256k jetons mais peut être porté à 1M à l&#39;aide du mécanisme &lt;b translate=&quot;no&quot;&gt;YaRN&lt;/b&gt; (Yet another RoPe extensioN). Les LLM modernes sont généralement formés sur des ensembles de données courts (2k-8k tokens), et de grandes longueurs de contexte peuvent leur faire perdre la trace du contenu antérieur.&lt;/p&gt;
&lt;p&gt;YaRN est une &quot;astuce&quot; élégante qui fait croire au modèle qu&#39;il travaille avec ses séquences courtes habituelles alors qu&#39;il traite en réalité des séquences beaucoup plus longues. L&#39;idée clé est d&#39;&quot;étirer&quot; ou de &quot;dilater&quot; l&#39;espace positionnel tout en préservant la structure mathématique attendue par le modèle. Cela permet de traiter efficacement des séquences de plusieurs dizaines de milliers de tokens sans réentraînement ni mémoire supplémentaire requise par les méthodes traditionnelles d&#39;extension du contexte.&lt;/p&gt;
&lt;h2&gt;Télécharger et exécuter Inference&lt;/h2&gt;
&lt;p&gt;Assurez-vous d&#39;avoir installé CUDA® au préalable, soit en utilisant les instructions officielles de NVIDIA®, soit en consultant le guide &lt;a href=&quot;https://www.leadergpu.fr/articles/615-installer-la-bo-te-outils-cuda-sous-linux&quot; target=&quot;_blank&quot;&gt;Installer la boîte à outils CUDA® sous Linux&lt;/a&gt;. Vérifiez que vous disposez du compilateur requis :&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;Résultat attendu :&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;Si vous obtenez :&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;vous devez ajouter les binaires CUDA® au $PATH de votre système.&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;Il s&#39;agit d&#39;une solution temporaire. Pour une solution permanente, éditez &lt;b translate=&quot;no&quot;&gt;~/.bashrc&lt;/b&gt; et ajoutez les deux mêmes lignes à la fin.&lt;/p&gt;
&lt;p&gt;Maintenant, préparez votre système à gérer des environnements virtuels. Vous pouvez utiliser le logiciel intégré venv de Python ou le logiciel plus avancé Miniforge. En supposant que Miniforge est installé :&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;Installez PyTorch avec le support CUDA® correspondant à votre système :&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;Installez ensuite les bibliothèques essentielles :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Transformers&lt;/b&gt; - La bibliothèque de modèles principale de Hugging Face&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Accelerate&lt;/b&gt; - permet l&#39;inférence multi-GPU&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;HuggingFace Hub&lt;/b&gt; - pour le téléchargement de modèles et d&#39;ensembles de données&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Safetensors&lt;/b&gt; - format de poids de modèle sûr&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;vLLM&lt;/b&gt; - bibliothèque d&#39;inférence recommandée pour 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;Télécharger le modèle :&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;Exécuter l&#39;inférence avec le parallélisme tensoriel (répartir les couches tensorielles sur les GPU, par exemple 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;Ceci lance le serveur vLLM OpenAI API.&lt;/p&gt;
&lt;h2&gt;Test et intégration&lt;/h2&gt;
&lt;h3&gt;cURL&lt;/h3&gt;
&lt;p&gt;Installer &lt;b translate=&quot;no&quot;&gt;jq&lt;/b&gt; pour l&#39;impression de 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;Tester le serveur :&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;Pour intégrer &lt;b translate=&quot;no&quot;&gt;Visual Studio Code&lt;/b&gt;, installez l&#39;extension &lt;b translate=&quot;no&quot;&gt;Continue&lt;/b&gt; et ajoutez-la à &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;Pour une installation basée sur l&#39;interface graphique avec Qwen-Agent (y compris RAG, MCP et l&#39;interpréteur de code) :&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;Ouvrez l&#39;éditeur nano :&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;Exemple de script Python pour lancer Qwen-Agent avec une WebUI Gradio :&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;Exécuter le script :&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;Le serveur sera disponible à l&#39;adresse suivante : 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;Vous pouvez également intégrer Qwen3-Coder dans des cadres d&#39;agents tels que CrewAI pour automatiser des tâches complexes à l&#39;aide d&#39;outils tels que la recherche sur le web ou la mémoire de base de données vectorielles.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/627-comment-installer-crewai-avec-l-interface-graphique&quot;&gt;Comment installer CrewAI avec l&#39;interface graphique&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/602-comment-surveiller-l-application-langflow&quot;&gt;Comment surveiller l&#39;application LangFlow&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>Comment installer CrewAI avec l&#39;interface graphique</title>
      <link>https://www.leadergpu.fr/catalog/627-comment-installer-crewai-avec-l-interface-graphique</link>
      <description>&lt;p&gt;Les capacités des modèles de réseaux neuronaux augmentent chaque jour. Les chercheurs et les entreprises commerciales investissent de plus en plus dans leur formation. Mais ces modèles ne peuvent pas agir de manière autonome. Pour résoudre des tâches spécifiques, ils ont besoin d&#39;être guidés : extension du contexte et définition d&#39;une orientation. Cette approche n&#39;est pas toujours efficace, en particulier pour les problèmes complexes.&lt;/p&gt;
&lt;p&gt;Mais que se passerait-il si nous permettions à un réseau neuronal d&#39;agir de manière autonome ? Et si nous lui fournissions de nombreux outils pour interagir avec le monde extérieur ? Vous obtiendriez un agent d&#39;intelligence artificielle capable de résoudre des tâches en déterminant de manière autonome les outils à utiliser. Cela semble compliqué, mais cela fonctionne très bien. Toutefois, même pour un utilisateur expérimenté, la création d&#39;un agent d&#39;intelligence artificielle à partir de zéro peut s&#39;avérer une tâche non triviale.&lt;/p&gt;
&lt;p&gt;La raison en est que la plupart des bibliothèques courantes n&#39;ont pas d&#39;interface utilisateur graphique. Elles requièrent une interaction à travers un langage de programmation comme Python. Cela augmente considérablement le seuil d&#39;entrée et rend les agents d&#39;intelligence artificielle trop complexes pour une mise en œuvre indépendante. C&#39;est exactement le cas de CrewAI.&lt;/p&gt;
&lt;h2&gt;Qu&#39;est-ce que CrewAI ?&lt;/h2&gt;
&lt;p&gt;CrewAI est une bibliothèque très populaire et pratique, mais elle n&#39;est pas livrée avec une interface graphique par défaut. Cela a incité des développeurs indépendants à créer une interface non officielle. La nature open source de CrewAI a rendu la tâche beaucoup plus facile, et la communauté a rapidement publié le projet CrewAI Studio.&lt;/p&gt;
&lt;p&gt;Les développeurs et les passionnés ont acquis une meilleure connaissance de l&#39;architecture du système et ont pu créer des outils adaptés à des tâches spécifiques. Les utilisateurs réguliers pouvaient créer des agents d&#39;intelligence artificielle sans avoir à écrire une seule ligne de code. Il est devenu plus facile d&#39;assigner des tâches et de gérer l&#39;accès aux réseaux neuronaux et aux outils. Il a également permis d&#39;exporter et d&#39;importer des agents d&#39;un serveur à l&#39;autre et de les partager avec des amis, des collègues ou la communauté open source.&lt;/p&gt;
&lt;p&gt;Un autre avantage de CrewAI Studio est sa souplesse de déploiement. Il peut être installé comme une application normale ou comme un conteneur Docker - la méthode préférée étant donné qu&#39;elle inclut toutes les bibliothèques et tous les composants nécessaires pour faire fonctionner le système.&lt;/p&gt;
&lt;h2&gt;Installation de CrewAI Studio&lt;/h2&gt;
&lt;p&gt;Mettez à jour les paquets de votre système d&#39;exploitation et les applications installées avec les dernières versions :&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;Utilisez le script d&#39;installation automatique des pilotes ou suivez notre guide &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot; target=&quot;_blank&quot;&gt;Installer les pilotes NVIDIA® sous 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;Redémarrez le serveur pour que les changements soient pris en compte :&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;Après vous être reconnecté via SSH, installez les utilitaires du serveur web Apache 2, qui vous donneront accès au générateur de fichiers &lt;b translate=&quot;no&quot;&gt;.htpasswd&lt;/b&gt; utilisé pour l&#39;authentification de base des utilisateurs :&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;Installez Docker Engine en utilisant le script shell officiel :&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;Ajouter Docker Compose au système :&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;Cloner le dépôt :&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;Naviguez jusqu&#39;au répertoire téléchargé :&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;Créez un fichier &lt;b translate=&quot;no&quot;&gt;.htpasswd&lt;/b&gt; pour l&#39;utilisateur &lt;b translate=&quot;no&quot;&gt;usergpu&lt;/b&gt;. Vous serez invité à entrer un mot de passe à deux reprises :&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;Modifiez maintenant le fichier de déploiement du conteneur. Par défaut, il y a deux conteneurs :&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;Supprimez la section :&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;Et ajouter le service suivant :&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 aura besoin d&#39;un fichier de configuration, alors créez-en un :&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;Collez ce qui suit :&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;Toutes les variables de service importantes pour CrewAI sont définies dans le fichier &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt;. Ouvrez le fichier &lt;b translate=&quot;no&quot;&gt;.env_example&lt;/b&gt; pour l&#39;éditer :&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;Ajoutez les lignes suivantes :&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;Et ajoutez la configuration Postgres :&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;Copiez maintenant le fichier exemple et renommez-le en &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt; pour que le système puisse le lire lors du déploiement du conteneur :&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;Dans cet exemple, nous utiliserons des modèles locaux dont l&#39;inférence sera gérée par Ollama. Nous recommandons notre guide &lt;a href=&quot;https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un&quot; target=&quot;_blank&quot;&gt;Open WebUI : Tout en un&lt;/a&gt;, et lors du déploiement ajouter &lt;b translate=&quot;no&quot;&gt;-e OLLAMA_HOST=0.0.0.0&lt;/b&gt; pour permettre à CrewAI de se connecter directement au conteneur Ollama. Téléchargez le modèle désiré (par exemple, llama3.2:latest) via WebUI ou en vous connectant à la console du conteneur et exécutez :&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;Une fois que tout est configuré, lancez le déploiement :&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;En visitant le site &lt;b translate=&quot;no&quot;&gt;http://[your_server_ip]/&lt;/b&gt;, vous serez invité à saisir vos identifiants de connexion. Une fois les données saisies correctement, l&#39;interface CrewAI s&#39;affichera.&lt;/p&gt;
&lt;h2&gt;Fonctionnalités&lt;/h2&gt;
&lt;p&gt;Explorons les entités clés utilisées par CrewAI. Cela vous aidera à comprendre comment configurer les flux de travail. L&#39;entité centrale du site &lt;b translate=&quot;no&quot;&gt;Agent&lt;/b&gt;, un exécuteur de tâches autonome. Chaque agent possède des attributs qui l&#39;aident à remplir ses fonctions :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Role&lt;/b&gt;. Une brève description de poste de 2 à 3 mots.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Backstory&lt;/b&gt;. Facultatif ; aide le modèle de langage à comprendre comment l&#39;agent doit se comporter et sur quelles expériences s&#39;appuyer.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Goal&lt;/b&gt;. L&#39;objectif que l&#39;agent doit poursuivre.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Allow delegation&lt;/b&gt;. Permet à l&#39;agent de déléguer des tâches (ou des parties de tâches) à d&#39;autres.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Verbose&lt;/b&gt;. Indique à l&#39;agent d&#39;enregistrer des actions détaillées.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;LLM Provider and Model&lt;/b&gt;. Spécifie le modèle et le fournisseur à utiliser.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Temperature&lt;/b&gt;. Détermine la créativité de la réponse. Plus élevée = plus créative.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Max iterations&lt;/b&gt;. Nombre d&#39;essais dont dispose l&#39;agent pour réussir, agissant comme une garantie (par exemple, contre les boucles infinies).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les agents fonctionnent en analysant les données de manière itérative, en raisonnant et en tirant des conclusions à l&#39;aide des outils disponibles.&lt;/p&gt;
&lt;p&gt;Les données d&#39;entrée sont définies par une entité &lt;b translate=&quot;no&quot;&gt;Task&lt;/b&gt;. Chaque tâche comprend une description, un agent assigné et, éventuellement, un résultat attendu. Les tâches s&#39;exécutent séquentiellement par défaut mais peuvent être parallélisées en utilisant le drapeau &lt;b translate=&quot;no&quot;&gt;Async execution&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Le travail des agents autonomes est soutenu par &lt;b translate=&quot;no&quot;&gt;Tools&lt;/b&gt; qui permet une interaction avec le monde réel. CrewAI comprend des outils pour les recherches sur le web, l&#39;analyse de sites, les appels d&#39;API et la gestion de fichiers, ce qui améliore le contexte et aide les agents à atteindre leurs objectifs.&lt;/p&gt;
&lt;p&gt;Enfin, le site &lt;b translate=&quot;no&quot;&gt;Crew entity&lt;/b&gt; réunit des agents ayant des rôles différents au sein d&#39;une équipe pour s&#39;attaquer à des problèmes complexes. Ils peuvent communiquer, déléguer, réviser et se corriger mutuellement, formant ainsi une intelligence collective.&lt;/p&gt;
&lt;h2&gt;L&#39;utilisation de&lt;/h2&gt;
&lt;p&gt;Maintenant que vous êtes familiarisé avec les entités, construisons et exécutons un flux de travail CrewAI minimal. Dans cet exemple, nous suivrons les progrès réalisés au niveau mondial dans le développement de médicaments contre le cancer.&lt;/p&gt;
&lt;p&gt;Nous utiliserons trois agents :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Oncology Drug Pipeline Analyst&lt;/b&gt; - suit les nouveaux développements depuis les premières étapes jusqu&#39;aux essais cliniques.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Regulatory and Approval Watchdog&lt;/b&gt; - suit les nouvelles approbations de médicaments et les changements de réglementation.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Scientific Literature and Innovation Scout&lt;/b&gt; - analyse les publications scientifiques et les brevets liés à l&#39;oncologie.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ouvrez la section Agents et créez le premier agent :&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;Pour l&#39;instant, nous utilisons le modèle &lt;b translate=&quot;no&quot;&gt;llama3.2:latest&lt;/b&gt; précédemment téléchargé, mais dans un scénario réel, choisissez celui qui correspond le mieux à la tâche. Répétez le processus pour les autres agents et passez à la création de la tâche.&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;Rassemblez tous les agents en une équipe et assignez-leur la tâche préparée :&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;Activez les outils nécessaires à partir de la liste :&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;Enfin, allez sur la page &lt;b translate=&quot;no&quot;&gt;Kickoff!&lt;/b&gt; et cliquez sur &lt;b translate=&quot;no&quot;&gt;Run Crew!&lt;/b&gt; Après quelques itérations, le système renverra un résultat, tel que :&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;Avant de terminer, vérifions la section &lt;b translate=&quot;no&quot;&gt;Import/export&lt;/b&gt;. Votre flux de travail ou votre équipage peut être exporté sous forme de JSON pour être transféré vers un autre serveur CrewAI. Vous pouvez également créer une application à page unique (SPA) en un seul clic, ce qui est parfait pour un déploiement en production :&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;Conclusion&lt;/h2&gt;
&lt;p&gt;CrewAI simplifie considérablement la création d&#39;agents d&#39;intelligence artificielle, permettant l&#39;intégration dans n&#39;importe quelle application ou l&#39;utilisation autonome. La bibliothèque est basée sur l&#39;idée de l&#39;intelligence distribuée, où chaque agent est un expert du domaine, et l&#39;équipe combinée est plus performante qu&#39;un seul agent généraliste.&lt;/p&gt;
&lt;p&gt;Comme elle est écrite en Python, CrewAI s&#39;intègre facilement aux plateformes et outils de ML. Sa nature open source permet de l&#39;étendre grâce à des modules tiers. La communication entre agents réduit l&#39;utilisation de jetons en distribuant le traitement du contexte.&lt;/p&gt;
&lt;p&gt;Par conséquent, les tâches complexes sont accomplies plus rapidement et plus efficacement. La barrière d&#39;entrée réduite offerte par CrewAI Studio élargit la portée des agents d&#39;IA et des systèmes multi-agents. La prise en charge des modèles locaux garantit un meilleur contrôle des données sensibles.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/622-comment-installer-n8n&quot;&gt;Comment installer N8N&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/623-serveur-mcp-bas-sur-le-n8n&quot;&gt;Serveur MCP basé sur le 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>Nouveautés de Qwen 3</title>
      <link>https://www.leadergpu.fr/catalog/624-nouveaut-s-de-qwen-3</link>
      <description>&lt;p&gt;La course mondiale à l&#39;IA s&#39;accélère. Des instituts de recherche, des entreprises privées et même des nations entières se disputent aujourd&#39;hui le leadership dans le domaine de l&#39;IA. D&#39;une manière générale, cette course peut être divisée en plusieurs phases. La première étape a consisté à créer une IA étroite. Les modèles de réseaux neuronaux existants tels que GPT, MidJourney et AlphaFold montrent que cette étape a été franchie avec succès.&lt;/p&gt;
&lt;p&gt;L&#39;étape suivante envisage l&#39;évolution de l&#39;IA vers l&#39;AGI (Intelligence Générale Artificielle). L&#39;AGI devrait égaler l&#39;intelligence humaine dans la résolution d&#39;un large éventail de tâches, depuis l&#39;écriture d&#39;histoires et les calculs scientifiques jusqu&#39;à la compréhension de situations sociales et l&#39;apprentissage autonome. À l&#39;heure où nous écrivons ces lignes, ce niveau n&#39;a pas encore été atteint.&lt;/p&gt;
&lt;p&gt;Le stade ultime du développement de l&#39;IA est appelé ASI (Artificial Super Intelligence). Elle dépasserait de loin les capacités humaines dans tous les domaines. Elle permettrait de développer des technologies que nous ne pouvons même pas imaginer aujourd&#39;hui et de gérer des systèmes globaux avec une précision dépassant les capacités humaines. Toutefois, cela ne pourrait devenir une réalité qu&#39;après des décennies (voire des siècles) de progrès continus.&lt;/p&gt;
&lt;p&gt;C&#39;est pourquoi la plupart des participants à la course à l&#39;IA s&#39;efforcent d&#39;atteindre l&#39;AGI tout en gardant le contrôle sur elle. Le développement de l&#39;AGI est étroitement lié à une série de défis techniques, éthiques et juridiques complexes. Néanmoins, les bénéfices potentiels dépassent largement les coûts, ce qui explique pourquoi des entreprises comme Alibaba Group investissent massivement dans ce domaine.&lt;/p&gt;
&lt;p&gt;La sortie de &lt;a href=&quot;https://github.com/QwenLM/Qwen3&quot; target=&quot;_blank&quot;&gt;Qwen 3&lt;/a&gt; marque une étape importante non seulement pour les réseaux neuronaux d&#39;une entreprise, mais aussi sur la scène mondiale. Par rapport à son prédécesseur, le modèle introduit plusieurs innovations importantes.&lt;/p&gt;
&lt;h2&gt;Caractéristiques&lt;/h2&gt;
&lt;p&gt;Qwen 2.5 a été pré-entraîné sur un ensemble de données de 18 milliards de jetons, alors que le nouveau modèle a doublé cette quantité pour atteindre 36 milliards de jetons. Le plus grand ensemble de données a considérablement amélioré la précision du modèle de base. Il est intéressant de noter qu&#39;en plus des données Internet accessibles au public recueillies par l&#39;analyse syntaxique, le système a également été entraîné sur des documents PDF. Ces documents sont généralement bien structurés et riches en connaissances, ce qui permet au modèle de fournir des réponses plus précises et de mieux comprendre les formulations complexes.&lt;/p&gt;
&lt;p&gt;L&#39;une des orientations les plus prometteuses du développement de l&#39;IA est la construction de modèles capables de raisonner, qui peuvent élargir le contexte de la tâche grâce à un processus itératif. D&#39;une part, cela permet une résolution plus complète des problèmes, mais d&#39;autre part, le raisonnement a tendance à ralentir considérablement le processus. C&#39;est pourquoi les développeurs de Qwen 3 ont introduit deux modes de fonctionnement :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Thinking mode.&lt;/b&gt; Le modèle construit le contexte étape par étape avant de fournir une réponse finale. Cela permet d&#39;aborder des problèmes complexes qui nécessitent une compréhension approfondie.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Non-thinking mode.&lt;/b&gt; Le modèle répond presque instantanément mais peut produire des réponses plus superficielles sans analyse approfondie.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ce contrôle manuel du comportement du modèle améliore l&#39;expérience de l&#39;utilisateur pour de nombreuses tâches de routine. La réduction de l&#39;utilisation du mode réflexion diminue également de manière significative la charge du GPU, ce qui permet de traiter plus de jetons dans le même laps de temps.&lt;/p&gt;
&lt;p&gt;Outre ce choix binaire, il existe également un mécanisme de commutation douce. Ce comportement hybride permet au modèle de s&#39;adapter au contexte en utilisant des mécanismes de pondération internes. Si le modèle estime qu&#39;une tâche est difficile, il déclenchera automatiquement un raisonnement ou même une auto-vérification. Il peut également répondre à des signaux de l&#39;utilisateur tels que &quot;Réfléchissons étape par étape&quot;.&lt;/p&gt;
&lt;p&gt;Une autre amélioration significative est l&#39;extension de la prise en charge multilingue. Alors que Qwen 2.5 ne prenait en charge que 29 langues, la version 3 peut désormais comprendre et générer du texte dans 119 langues et dialectes. Cela a considérablement amélioré le suivi des instructions et la compréhension du contexte. Par conséquent, Qwen 3 peut désormais être utilisé efficacement dans des environnements non anglophones.&lt;/p&gt;
&lt;p&gt;En outre, Qwen 3 est désormais beaucoup mieux intégré aux serveurs MCP, ce qui permet au modèle d&#39;approfondir la résolution des problèmes et d&#39;exécuter des actions. Il peut désormais interagir avec des sources externes et gérer directement des processus complexes.&lt;/p&gt;
&lt;h2&gt;Formation au modèle&lt;/h2&gt;
&lt;h3&gt;Préformation&lt;/h3&gt;
&lt;p&gt;Un tel bond en avant n&#39;aurait pas été possible sans un système de formation en plusieurs étapes. Dans un premier temps, le modèle a été pré-entraîné sur 30B tokens avec une longueur de contexte de 4K, ce qui lui a permis d&#39;acquérir des connaissances générales et des compétences linguistiques de base.&lt;/p&gt;
&lt;p&gt;Cette étape a été suivie d&#39;une phase d&#39;affinement à l&#39;aide de données plus scientifiques et mieux structurées. Au cours de cette étape, le modèle a également acquis la capacité d&#39;écrire efficacement des applications dans plusieurs langages de programmation.&lt;/p&gt;
&lt;p&gt;Enfin, il a été entraîné sur un ensemble de données de haute qualité avec un contexte étendu. Par conséquent, Qwen 3 prend désormais en charge une longueur de contexte effective de 128 000 tokens, soit environ 350 pages de texte dactylographié, en fonction de la langue. Par exemple, les langues basées sur le cyrillique ont souvent des tokens plus courts en raison de la morphologie et de l&#39;utilisation de préfixes, de suffixes, etc.&lt;/p&gt;
&lt;h3&gt;Pipeline de raisonnement&lt;/h3&gt;
&lt;p&gt;La construction de modèles capables de raisonner est un processus fascinant mais laborieux qui combine plusieurs techniques existantes visant à simuler la pensée humaine. Sur la base des informations publiquement disponibles, nous pouvons supposer que la formation au raisonnement de Qwen 3 s&#39;est déroulée en quatre étapes principales :&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; Entraînement du modèle à décomposer les problèmes en plusieurs étapes sans adaptation préalable. Cela l&#39;aide à apprendre la pensée itérative et à développer une couche de base de compétences de raisonnement.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Reinforcement learning based on reasoning.&lt;/b&gt; À ce stade, les récompenses dépendent non seulement de la réponse finale, mais aussi de la manière dont le modèle construit des chaînes de raisonnement logiques, interprétables et structurées. L&#39;absence d&#39;erreurs et d&#39;hallucinations est également évaluée.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Merging reasoning modes.&lt;/b&gt; L&#39;être humain s&#39;appuie généralement sur deux styles de pensée : rapide (intuitif) et lent (analytique). En fonction du type de tâche, le modèle neuronal doit apprendre à passer d&#39;un style à l&#39;autre et à les intégrer. Cela se fait généralement à l&#39;aide d&#39;exemples qui mélangent les deux styles ou par le biais de jetons spéciaux indiquant le style à appliquer.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;General reinforcement learning.&lt;/b&gt; Cette dernière étape ressemble à un environnement de bac à sable où le modèle apprend à interagir avec des outils, à effectuer des tâches en plusieurs étapes et à développer un comportement adaptatif. C&#39;est également à ce stade qu&#39;il s&#39;adapte aux préférences de l&#39;utilisateur.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Qwen 3 est une étape importante pour Alibaba Group. Sa qualité de formation et sa méthodologie en font un concurrent sérieux face à des acteurs établis comme OpenAI et Anthropic. Les améliorations par rapport à la version précédente sont substantielles.&lt;/p&gt;
&lt;p&gt;Un avantage supplémentaire est sa nature open-source, avec la base de code disponible publiquement sur GitHub sous la licence Apache 2.0.&lt;/p&gt;
&lt;p&gt;La poursuite du développement de la famille de modèles Qwen contribuera à renforcer sa position dans l&#39;arène mondiale de l&#39;IA et à réduire l&#39;écart avec les modèles commerciaux à source fermée. Toutes les réalisations actuelles sont, d&#39;une manière ou d&#39;une autre, des étapes vers le progrès de l&#39;humanité dans la construction de l&#39;AGI.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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>Serveur MCP basé sur le N8N</title>
      <link>https://www.leadergpu.fr/catalog/623-serveur-mcp-bas-sur-le-n8n</link>
      <description>&lt;p&gt;Le développement des réseaux neuronaux génératifs s&#39;est considérablement accéléré ces dernières années. Ils sont devenus nettement plus rapides et plus précis dans leurs réponses et ont appris à raisonner. Cependant, leurs capacités sont encore fondamentalement limitées par leur architecture. Par exemple, chaque LLM existant au moment de la rédaction du présent document a une date limite de connaissance. Cela signifie que chaque jour qui passe, un tel LLM devient plus susceptible de produire des réponses incorrectes, simplement parce qu&#39;il manque d&#39;informations sur les événements qui se sont produits après cette date.&lt;/p&gt;
&lt;p&gt;Cette limitation nécessite de réentraîner le modèle entièrement sur des données plus fraîches, ce qui est coûteux et prend du temps. Mais il existe une autre solution. Si vous permettez au modèle d&#39;interagir avec le monde extérieur, il peut trouver et mettre à jour de manière indépendante les informations demandées lors d&#39;une conversation avec l&#39;utilisateur, sans avoir besoin d&#39;être réentraîné.&lt;/p&gt;
&lt;p&gt;C&#39;est à peu près ainsi que fonctionne le mécanisme RAG (Retrieval Augmented Generation). Lorsqu&#39;il répond à une question, le modèle interroge d&#39;abord une base de données vectorielles préparée à l&#39;avance et, s&#39;il trouve des informations pertinentes, il les incorpore à l&#39;invite. Ainsi, en expliquant et en mettant à jour la base de données vectorielle, la qualité des réponses LLM peut être grandement améliorée.&lt;/p&gt;
&lt;p&gt;Mais il existe un autre moyen, encore plus intéressant, d&#39;intégrer un contexte actualisé dans les messages-guides. Il s&#39;agit du MCP, qui signifie Model Context Protocol (protocole de contexte de modèle). Il a été développé à l&#39;origine par Anthropic pour son modèle Claude. Le moment clé a été l&#39;ouverture du code source du MCP, qui a permis à des milliers de chercheurs en IA de construire des serveurs personnalisés à des fins diverses.&lt;/p&gt;
&lt;p&gt;L&#39;essence de MCP est de donner à un modèle de réseau neuronal l&#39;accès à des outils qui lui permettent de mettre à jour ses connaissances de manière indépendante et d&#39;effectuer diverses actions pour résoudre efficacement des tâches données. C&#39;est le modèle lui-même qui décide de l&#39;outil à utiliser et de son adéquation à chaque situation.&lt;/p&gt;
&lt;p&gt;La prise en charge du MCP est rapidement apparue dans divers IDE tels que Cursor, ainsi que dans des plates-formes d&#39;automatisation telles que N8N. Cette dernière est particulièrement intuitive, car les flux de travail sont créés visuellement, ce qui les rend plus faciles à comprendre. Dans N8N, vous pouvez vous connecter à un serveur MCP existant ou créer votre propre serveur. En outre, vous pouvez même organiser une connexion directe au sein d&#39;un seul flux de travail. Mais allons-y pas à pas.&lt;/p&gt;
&lt;h2&gt;Création d&#39;un agent IA simple&lt;/h2&gt;
&lt;p&gt;Avant de commencer, assurez-vous que l&#39;exigence principale est remplie, vous avez un LLM prêt pour les connexions. Il peut s&#39;agir d&#39;un modèle local utilisant Ollama ou d&#39;un service externe comme ChatGPT d&#39;OpenAI. Dans le premier cas, vous aurez besoin de connaître l&#39;adresse de l&#39;API locale d&#39;Ollama (et éventuellement son authentification), et dans le second cas, vous aurez besoin d&#39;un compte OpenAI actif avec suffisamment de crédits.&lt;/p&gt;
&lt;p&gt;La construction d&#39;un agent commence par le nœud clé AI Agent. Au minimum, il doit être lié à deux autres nœuds, l&#39;un pour servir de déclencheur et l&#39;autre pour se connecter au LLM. Si vous ne spécifiez pas de déclencheur, le système en créera un automatiquement, déclenchant l&#39;agent à la réception de n&#39;importe quel message dans le chat interne :&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;La seule pièce manquante est le LLM. Vous pouvez par exemple utiliser notre &lt;a href=&quot;https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un&quot;&gt;Open WebUI : Tout en un&lt;/a&gt; pour configurer Ollama avec une interface web. Le seul changement requis est que les conteneurs du N8N et de l&#39;Open WebUI doivent être sur le même réseau. Par exemple, si le conteneur N8N est sur un réseau nommé &lt;b translate=&quot;no&quot;&gt;web&lt;/b&gt;, alors dans la commande de déploiement pour Open WebUI, remplacez &lt;b translate=&quot;no&quot;&gt;--network=host&lt;/b&gt; par &lt;b translate=&quot;no&quot;&gt;--network=web&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Dans certains cas, vous devrez également définir manuellement la variable d&#39;environnement &lt;b translate=&quot;no&quot;&gt;OLLAMA_HOST&lt;/b&gt;, par exemple : &lt;b translate=&quot;no&quot;&gt;-e OLLAMA_HOST=0.0.0.0&lt;/b&gt;. Cela permet de se connecter à l&#39;API Ollama non seulement à partir de l&#39;hôte local, mais aussi à partir d&#39;autres conteneurs. Supposons qu&#39;Ollama soit déployé dans un conteneur nommé &lt;b translate=&quot;no&quot;&gt;ollama-webui&lt;/b&gt;. L&#39;URL de base pour se connecter à partir de N8N serait alors :&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;Avant de connecter le nœud Ollama Chat Model, n&#39;oubliez pas de télécharger au moins un modèle. Vous pouvez le faire depuis l&#39;interface web ou via le CLI du conteneur. La commande suivante téléchargera le modèle Llama 3.1 avec 8 milliards de paramètres :&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;Une fois téléchargé et installé, le modèle apparaîtra automatiquement dans la liste des modèles disponibles :&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;Un flux de travail minimal d&#39;agent d&#39;intelligence artificielle ressemble à ceci :&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;Sous cette forme, l&#39;agent ne peut utiliser qu&#39;un seul modèle et ne stocke pas les données d&#39;entrée ni n&#39;améliore les invites à l&#39;aide d&#39;outils externes. Il est donc logique d&#39;ajouter au moins le nœud &lt;b translate=&quot;no&quot;&gt;Simple Memory&lt;/b&gt;. Pour les charges légères, il suffit de stocker les demandes et les réponses.&lt;/p&gt;
&lt;p&gt;Mais revenons à MCP. Pour commencer, créez un serveur en utilisant le nœud spécial &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;Ce nœud est entièrement autonome et ne nécessite aucune activation externe. Il est déclenché uniquement par une requête externe entrante à son adresse webhook. Par défaut, il existe deux URL : &lt;b translate=&quot;no&quot;&gt;Test URL&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;Production URL&lt;/b&gt;. La première est utilisée pendant le développement, tandis que la seconde ne fonctionne que lorsque le flux de travail est sauvegardé et activé.&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;Le déclencheur est inutile en soi, il a besoin d&#39;outils connectés. Par exemple, connectons l&#39;un des outils les plus simples : une calculatrice. Elle attendra une expression mathématique en entrée. Les nœuds communiquent à l&#39;aide de JSON, de sorte que pour que la calculatrice calcule 2 + 2, l&#39;entrée doit être :&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;Les LLM peuvent facilement générer ce type de JSON à partir de descriptions de tâches en texte brut et les envoyer au nœud, qui effectue les calculs et renvoie le résultat. Connectons le client MCP à l&#39;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;Il convient de noter que ce nœud n&#39;a besoin d&#39;aucune connexion supplémentaire. Dans ses paramètres, il suffit de spécifier l&#39;adresse du point de terminaison où il enverra les données de l&#39;agent IA. Dans notre exemple, cette adresse pointe vers le conteneur nommé &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;Bien sûr, à ce stade, vous pouvez spécifier n&#39;importe quelle adresse de serveur MCP externe disponible. Mais pour cet article, nous utiliserons une instance locale fonctionnant au sein de N8N. Voyons comment le client et le serveur se comportent lorsqu&#39;il est demandé à l&#39;agent AI d&#39;effectuer une simple opération mathématique :&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;Dès qu&#39;il reçoit la demande, l&#39;agent d&#39;intelligence artificielle.. :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Rechercher dans la mémoire simple si l&#39;utilisateur a déjà demandé cette opération ou si un contexte peut être réutilisé.&lt;/li&gt;
    &lt;li&gt;Envoyer l&#39;invite au LLM, qui décomposera correctement l&#39;expression mathématique et préparera le JSON correspondant.&lt;/li&gt;
    &lt;li&gt;Envoyez le JSON à la calculatrice et recevez le résultat.&lt;/li&gt;
    &lt;li&gt;Utilisez le LLM pour générer la réponse finale et insérez le résultat dans la réponse.&lt;/li&gt;
    &lt;li&gt;Stocker le résultat dans la mémoire simple.&lt;/li&gt;
    &lt;li&gt;Produire le message dans le 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;De même, les agents peuvent travailler avec d&#39;autres outils sur le serveur MCP. Au lieu de la mémoire simple, vous pouvez utiliser des options plus avancées comme MongoDB, Postgres, Redis, ou même quelque chose comme Zep. Bien entendu, ces options nécessitent une maintenance minimale de la base de données, mais les performances globales augmenteront de manière significative.&lt;/p&gt;
&lt;p&gt;Il existe également beaucoup plus d&#39;options pour la sélection des outils. Dans sa version initiale, le nœud &lt;b translate=&quot;no&quot;&gt;MCP Server Trigger&lt;/b&gt; prend en charge plus de 200 outils. Il peut s&#39;agir de n&#39;importe quoi, depuis de simples requêtes HTTP jusqu&#39;à des intégrations préconstruites avec des services internet publics. Au sein d&#39;un même flux de travail, vous pouvez créer à la fois un serveur et un client. Une chose importante à noter : ces nœuds ne peuvent pas être connectés visuellement dans l&#39;éditeur, et c&#39;est le comportement attendu :&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;Au lieu du déclencheur par défaut, vous pouvez utiliser d&#39;autres options telles que la réception d&#39;un message par l&#39;intermédiaire d&#39;un messager, la soumission d&#39;un formulaire sur un site web ou l&#39;exécution selon un calendrier. Cela vous permet de mettre en place des flux de travail qui réagissent à des événements ou effectuent des opérations de routine, comme l&#39;exportation quotidienne de données de Google Ads.&lt;/p&gt;
&lt;p&gt;Les possibilités offertes par les agents d&#39;intelligence artificielle ne s&#39;arrêtent pas là. Vous pouvez construire des systèmes multi-agents utilisant différents modèles de réseaux neuronaux qui travaillent ensemble pour résoudre des tâches avec une plus grande précision, en tenant compte de beaucoup plus de facteurs d&#39;influence dans le processus.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/622-comment-installer-n8n&quot;&gt;Comment installer N8N&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/602-comment-surveiller-l-application-langflow&quot;&gt;Comment surveiller l&#39;application LangFlow&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>Comment installer N8N</title>
      <link>https://www.leadergpu.fr/catalog/622-comment-installer-n8n</link>
      <description>&lt;p&gt;En 2025, les agents d&#39;intelligence artificielle restent l&#39;une des approches les plus prometteuses pour résoudre des tâches complexes à l&#39;aide de grands modèles linguistiques. Ces agents sont autonomes et capables de sélectionner eux-mêmes divers outils pour accomplir les tâches qui leur sont confiées. Cette approche permet d&#39;obtenir des résultats avec moins d&#39;implication humaine et une meilleure qualité. Elle ouvre également la voie à la découverte de méthodes plus originales et plus efficaces pour traiter les problèmes.&lt;/p&gt;
&lt;p&gt;Au lieu de simplement formuler une tâche, vous demandez au réseau neuronal de la résoudre de manière autonome, en fonction des ressources qui lui sont allouées. Toutefois, pour que ce système fonctionne, il faut un mécanisme qui relie les interfaces des réseaux neuronaux à divers outils, qu&#39;il s&#39;agisse d&#39;une recherche sur le web ou d&#39;une base de données vectorielles pour le stockage des résultats intermédiaires.&lt;/p&gt;
&lt;p&gt;n8n est une plateforme d&#39;automatisation qui prend en charge l&#39;intégration de divers réseaux neuronaux et services publics. Les utilisateurs peuvent concevoir visuellement la manière dont les données seront traitées et le résultat final à obtenir. Contrairement aux solutions classiques sans code, n8n permet d&#39;inclure du code arbitraire à n&#39;importe quelle étape du processus, ce qui est particulièrement utile lorsque les fonctionnalités intégrées ne sont pas suffisantes.&lt;/p&gt;
&lt;p&gt;Le résultat est un système qui combine la simplicité de l&#39;absence de code avec la flexibilité de la programmation traditionnelle. Cependant, pour bien le comprendre, vous devrez passer du temps à explorer et à examiner des exemples de flux de travail pour une meilleure compréhension. Dans cet article, nous allons vous expliquer comment déployer n8n sur les serveurs LeaderGPU.&lt;/p&gt;
&lt;h2&gt;Préparation du serveur&lt;/h2&gt;
&lt;h3&gt;Mise à jour du système&lt;/h3&gt;
&lt;p&gt;Mettre à jour la liste des paquets et mettre à niveau tous les paquets installés :&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;Installez automatiquement le pilote NVIDIA® recommandé (propriétaire) ou utilisez notre guide pas à pas &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot; target=&quot;_blank&quot;&gt;Installer les pilotes NVIDIA® sous 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;Redémarrez le serveur :&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;Installer Docker&lt;/h3&gt;
&lt;p&gt;Vous pouvez utiliser le script d&#39;installation officiel :&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;Ajoutons la clé GPG du NVIDIA® container toolkit et le dépôt pour l&#39;intégration de Docker :&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;Mettez à jour la liste des paquets et installez le 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;Redémarrez Docker pour appliquer les changements et activer le toolkit installé :&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;Installer n8n&lt;/h3&gt;
&lt;p&gt;Pour permettre au système de stocker des données, vous devez créer un volume avant de lancer le conteneur :&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;Lançons maintenant un conteneur qui ouvrira le port 5678 pour les connexions externes et montera le volume &lt;b translate=&quot;no&quot;&gt;n8n_data&lt;/b&gt; créé dans le répertoire &lt;b translate=&quot;no&quot;&gt;/home/node/.n8n&lt;/b&gt; à l&#39;intérieur du conteneur :&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;La première fois que vous lancerez l&#39;application, vous serez peut-être surpris par le message d&#39;erreur suivant :&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;Il ne s&#39;agit pas vraiment d&#39;une erreur, mais plutôt d&#39;un avertissement sur la manière de configurer correctement le système pour l&#39;accès. Le problème est que, par défaut, le système ne dispose pas d&#39;un certificat TLS/HTTPS. Sans ce certificat, la connexion ne sera pas sécurisée. Vous avez donc trois options :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Connect your own certificate&lt;/b&gt;. Vous pouvez le faire en spécifiant les chemins d&#39;accès aux fichiers de certificat via des variables d&#39;environnement, ou en configurant un serveur proxy inverse.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Create an SSH tunnel and forward port 5678&lt;/b&gt; Pour ce faire, vous pouvez utiliser le nom de l&#39;hôte local sur l&#39;ordinateur à partir duquel vous vous connectez. De cette manière, vous obtiendrez immédiatement une connexion personnelle sécurisée. Cependant, personne d&#39;autre ne pourra accéder au serveur de manière externe.&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;Bypass the warning&lt;/b&gt;. S&#39;il s&#39;agit d&#39;un serveur de test qui n&#39;est pas destiné à être utilisé en production et que vous ne vous souciez pas de la sécurité, vous pouvez désactiver l&#39;avertissement en définissant la variable d&#39;environnement &lt;b translate=&quot;no&quot;&gt;N8N_SECURE_COOKIE&lt;/b&gt; à &lt;b translate=&quot;no&quot;&gt;FALSE&lt;/b&gt;. Cette pratique est fortement déconseillée car elle rend le serveur vulnérable à des attaques potentielles. Néanmoins, cela peut être acceptable dans certains cas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cet article explorera chaque option en détail afin que vous puissiez choisir la bonne.&lt;/p&gt;
&lt;h2&gt;Connexion au serveur&lt;/h2&gt;
&lt;p&gt;Si vous n&#39;avez pas encore de certificat SSL, nous vous recommandons d&#39;en commander un sur &lt;a href=&quot;https://www.leaderssl.com/&quot; target=&quot;_blank&quot;&gt;&lt;/a&gt;LeaderSSL. Il peut être utilisé pour n&#39;importe quel site web, magasin en ligne ou pour vérifier l&#39;authenticité d&#39;un courriel.&lt;/p&gt;
&lt;h3&gt;Utilisation des variables d&#39;environnement&lt;/h3&gt;
&lt;p&gt;La manière la plus simple de configurer HTTPS est de télécharger votre certificat sur le serveur et de le spécifier via les variables d&#39;environnement Docker. Commencez par créer un répertoire pour les fichiers du certificat :&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;Vous pouvez télécharger ces fichiers (généralement cert.crt et privkey.key) dans ce répertoire en utilisant n&#39;importe quelle méthode. Pour plus d&#39;informations, voir :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/495-change-de-fichiers-depuis-windows&quot;&gt;Échange de fichiers depuis Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/494-change-de-fichiers-depuis-linux&quot;&gt;Échange de fichiers depuis Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/496-change-de-fichiers-depuis-macos&quot;&gt;Échange de fichiers depuis macOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lançons maintenant le conteneur à l&#39;aide d&#39;une commande complète :&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;Voici une description détaillée de chaque argument :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;sudo docker run -d&lt;/b&gt; lance le conteneur Docker en mode démon (arrière-plan)&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--name n8n&lt;/b&gt; attribue un nom au conteneur &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; transmet le port &lt;b translate=&quot;no&quot;&gt;5678&lt;/b&gt; au conteneur&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v n8n_data:/home/node/.n8n&lt;/b&gt; crée et monte un volume nommé &lt;b translate=&quot;no&quot;&gt;n8n_data&lt;/b&gt; dans le répertoire caché &lt;b translate=&quot;no&quot;&gt;/home/node/.n8n&lt;/b&gt; à l&#39;intérieur du conteneur&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v ~/n8n-certs:/certs&lt;/b&gt; monte le répertoire des certificats&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-e N8N_PROTOCOL=https&lt;/b&gt; force N8N à utiliser le protocole HTTPS&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; définit le chemin d&#39;accès au fichier de certificat&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; définit le chemin d&#39;accès à la clé du certificat&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;docker.n8n.io/n8nio/n8n&lt;/b&gt; source de l&#39;image du conteneur&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Traefik&lt;/h3&gt;
&lt;p&gt;Une configuration un peu plus complexe mais flexible consiste à utiliser le serveur proxy inverse Traefik pour sécuriser la connexion à N8N. Le fichier de configuration est basé sur la méthode officielle spécifiée dans la documentation. Tout d&#39;abord, installez l&#39;outil &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;Nous allons déployer Traefik et N8N ensemble, et ils doivent être sur le même réseau. Créez un réseau appelé &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;Maintenant, créez un fichier &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; pour définir et exécuter les deux conteneurs :&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;En plus du fichier &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt;, nous allons créer un autre fichier nommé &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt;. Ce fichier contiendra des variables telles que le nom de domaine et l&#39;adresse électronique utilisés pour demander un certificat SSL à Let&#39;s Encrypt. Si nous devons changer quelque chose, comme le nom de domaine, il nous suffira de le mettre à jour dans ce fichier et de recréer le conteneur.&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;Enfin, déployez les deux conteneurs :&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;
Maintenant, N8N est disponible ici : &lt;b translate=&quot;no&quot;&gt;https://n8n.example.com&lt;/b&gt;.&lt;h3&gt;Gestionnaire de proxy Nginx&lt;/h3&gt;
&lt;p&gt;Contrairement à Traefik, qui est configuré via des fichiers, Nginx Proxy Manager offre une interface web conviviale. Cependant, il ne détecte pas les services de manière dynamique, vous devez les ajouter manuellement. Néanmoins, il fonctionne bien pour les services statiques comme N8N.&lt;/p&gt;
&lt;p&gt;Créez un autre fichier &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; dans un répertoire séparé avec le contenu suivant :&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;Déployer avec :&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;Ouvrez ensuite l&#39;interface web à l&#39;adresse suivante &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;Nom d&#39;utilisateur : &lt;b translate=&quot;no&quot;&gt;admin@example.com&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;Mot de passe : &lt;b translate=&quot;no&quot;&gt;changeme&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vous serez invité à mettre à jour vos informations d&#39;identification. Ensuite, ouvrez &lt;b translate=&quot;no&quot;&gt;Hosts → Proxy Hosts → Add Proxy Host&lt;/b&gt;, entrez votre nom de domaine (par exemple, &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;Remplissez les champs nécessaires :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Remplacez &lt;b translate=&quot;no&quot;&gt;Destination/IP&lt;/b&gt; par &lt;b translate=&quot;no&quot;&gt;n8n&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Réglez &lt;b translate=&quot;no&quot;&gt;Port&lt;/b&gt; sur &lt;b translate=&quot;no&quot;&gt;5678&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Sous l&#39;onglet &lt;b translate=&quot;no&quot;&gt;SSL&lt;/b&gt;, choisissez &lt;b translate=&quot;no&quot;&gt;Request a new SSL certificate with Let’s Encrypt&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Saisissez votre adresse électronique et acceptez les conditions.&lt;/li&gt;
    &lt;li&gt;Cliquez sur &lt;b&gt;Websockets support&lt;/b&gt;.&lt;/li&gt;
    &lt;li&gt;Cliquez éventuellement sur &lt;b translate=&quot;no&quot;&gt;Force SSL&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Après avoir appuyé sur le bouton &lt;b translate=&quot;no&quot;&gt;Save&lt;/b&gt;, le certificat sera demandé et installé :&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;Une fois cela fait, l&#39;ouverture de votre domaine conduira à l&#39;interface N8N.&lt;/p&gt;
&lt;h3&gt;Tunnel SSH&lt;/h3&gt;
&lt;p&gt;Si vous n&#39;avez pas besoin de l&#39;accessibilité externe de N8N, vous pouvez transférer le port 5678 via SSH. Cela crypte tout le trafic, et N8N sera disponible à l&#39;adresse &lt;b translate=&quot;no&quot;&gt;http://localhost:5678/&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Remarque : cette configuration ne fonctionnera pas pour les intégrations avec des services externes tels que les messageries qui nécessitent un accès HTTPS public.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;La manière la plus simple de transférer le port est d&#39;utiliser le client SSH populaire &lt;a href=&quot;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html&quot; target=&quot;_blank&quot;&gt;PuTTY&lt;/a&gt;. Une fois installé, ouvrez &lt;b translate=&quot;no&quot;&gt;SSH → Tunnels&lt;/b&gt; et définissez &lt;b translate=&quot;no&quot;&gt;Source port - 5678&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;Destination&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;localhost:5678&lt;/b&gt;. Cliquez ensuite sur &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;Retournez à &lt;b translate=&quot;no&quot;&gt;Session&lt;/b&gt;, entrez l&#39;IP de votre serveur et cliquez sur &lt;b translate=&quot;no&quot;&gt;Open&lt;/b&gt;. Une fois authentifié, le tunnel est actif. Ouvrez &lt;b translate=&quot;no&quot;&gt;http://localhost:5678&lt;/b&gt; dans un navigateur pour accéder à N8N.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Remarque : la connexion ne fonctionne que lorsque la session SSH est active. La fermeture de PuTTY met fin au tunnel.&lt;/i&gt;&lt;/p&gt;
&lt;h3&gt;Contournement&lt;/h3&gt;
&lt;p&gt;Cette méthode n&#39;est pas recommandée sur les réseaux publics. Si vous lancez le conteneur avec la variable d&#39;environnement &lt;b translate=&quot;no&quot;&gt;N8N_SECURE_COOKIE=false&lt;/b&gt;, l&#39;avertissement disparaîtra et vous accéderez au tunnel 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; cela expose le panneau d&#39;administration de N8N via HTTP non chiffré, ce qui le rend vulnérable aux attaques MITM (Man-In-The-Middle) et permet potentiellement à un attaquant de prendre entièrement le contrôle de votre serveur.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un&quot;&gt;Open WebUI : Tout en un&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/602-comment-surveiller-l-application-langflow&quot;&gt;Comment surveiller l&#39;application LangFlow&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.fr/catalog/614-triton-inference-server</link>
      <description>&lt;p&gt;Les exigences des entreprises peuvent varier, mais elles partagent toutes un principe fondamental : les systèmes doivent fonctionner rapidement et offrir la meilleure qualité possible. Lorsqu&#39;il s&#39;agit d&#39;inférence de réseaux neuronaux, l&#39;utilisation efficace des ressources informatiques devient cruciale. Toute sous-utilisation du GPU ou tout temps d&#39;inactivité se traduit directement par des pertes financières.&lt;/p&gt;
&lt;p&gt;Prenons l&#39;exemple d&#39;une place de marché. Ces plateformes hébergent de nombreux produits, chacun avec de multiples attributs : descriptions textuelles, spécifications techniques, catégories et contenu multimédia comme des photos et des vidéos. Tous les contenus doivent être modérés afin de maintenir des conditions équitables pour les vendeurs et d&#39;éviter que des produits interdits ou des contenus illégaux n&#39;apparaissent sur la plateforme.&lt;/p&gt;
&lt;p&gt;La modération manuelle est possible, mais elle est lente et inefficace. Dans l&#39;environnement concurrentiel actuel, les vendeurs doivent élargir rapidement leur gamme de produits : plus les articles apparaissent rapidement sur la place de marché, plus ils ont de chances d&#39;être découverts et achetés. La modération manuelle est également coûteuse et sujette à l&#39;erreur humaine, ce qui risque de laisser passer des contenus inappropriés.&lt;/p&gt;
&lt;p&gt;La modération automatique à l&#39;aide de réseaux neuronaux spécialement entraînés offre une solution. Cette approche présente de multiples avantages : elle réduit considérablement les coûts de modération tout en améliorant généralement la qualité. Les réseaux neuronaux traitent les contenus beaucoup plus rapidement que les humains, ce qui permet aux vendeurs de passer plus vite l&#39;étape de la modération, en particulier lorsqu&#39;ils traitent de gros volumes de produits.&lt;/p&gt;
&lt;p&gt;Cette approche n&#39;est pas sans poser de problèmes. La mise en œuvre de la modération automatisée nécessite le développement et l&#39;entraînement de modèles de réseaux neuronaux, ce qui requiert à la fois du personnel qualifié et des ressources informatiques considérables. Toutefois, les avantages apparaissent rapidement après la mise en œuvre initiale. L&#39;ajout d&#39;un déploiement automatisé des modèles peut considérablement rationaliser les opérations en cours.&lt;/p&gt;
&lt;h2&gt;Inférence&lt;/h2&gt;
&lt;p&gt;Supposons que nous ayons compris les procédures d&#39;apprentissage automatique. L&#39;étape suivante consiste à déterminer comment exécuter l&#39;inférence du modèle sur un serveur loué. Pour un modèle unique, vous choisissez généralement un outil qui fonctionne bien avec le cadre spécifique sur lequel il a été construit. Cependant, lorsqu&#39;il s&#39;agit de plusieurs modèles créés dans des cadres différents, deux options s&#39;offrent à vous.&lt;/p&gt;
&lt;p&gt;Vous pouvez soit convertir tous les modèles dans un format unique, soit choisir un outil qui prend en charge plusieurs cadres. Le serveur d&#39;inférence Triton™ s&#39;inscrit parfaitement dans la deuxième approche. Il prend en charge les backends suivants :&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;En outre, vous pouvez utiliser n&#39;importe quelle application comme backend. Par exemple, si vous avez besoin d&#39;un post-traitement avec une application C/C++, vous pouvez l&#39;intégrer de manière transparente.&lt;/p&gt;
&lt;h2&gt;Mise à l&#39;échelle&lt;/h2&gt;
&lt;p&gt;Triton™ Inference Server gère efficacement les ressources informatiques sur un seul serveur en exécutant plusieurs modèles simultanément et en répartissant la charge de travail sur les GPU.&lt;/p&gt;
&lt;p&gt;L&#39;installation se fait par le biais d&#39;un conteneur Docker. Les ingénieurs DevOps peuvent contrôler l&#39;allocation des GPU au démarrage, en choisissant d&#39;utiliser tous les GPU ou d&#39;en limiter le nombre. Bien que le logiciel ne gère pas directement la mise à l&#39;échelle horizontale, vous pouvez utiliser des équilibreurs de charge traditionnels comme HAproxy ou déployer des applications dans un cluster Kubernetes à cette fin.&lt;/p&gt;
&lt;h2&gt;Préparation du système&lt;/h2&gt;
&lt;p&gt;Pour configurer Triton™ sur un serveur LeaderGPU fonctionnant sous Ubuntu 22.04, commencez par mettre à jour le système à l&#39;aide de cette commande :&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;Tout d&#39;abord, installez les pilotes NVIDIA® à l&#39;aide du script d&#39;installation automatique :&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;Redémarrez le serveur pour appliquer les modifications :&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;Une fois le serveur remis en ligne, installez Docker à l&#39;aide du script d&#39;installation suivant :&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;Étant donné que Docker ne peut pas transmettre les GPU aux conteneurs par défaut, vous aurez besoin du NVIDIA® Container Toolkit. Ajoutez le dépôt NVIDIA® en téléchargeant et en enregistrant sa clé GPG :&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;Mettez à jour le cache des paquets et installez la boîte à outils :&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;Redémarrer Docker pour activer les nouvelles capacités :&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;Le système d&#39;exploitation est maintenant prêt à être utilisé.&lt;/p&gt;
&lt;h2&gt;Installation du serveur d&#39;inférence Triton™&lt;/h2&gt;
&lt;p&gt;Téléchargez le référentiel du projet :&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;Ce référentiel contient des échantillons de réseaux neuronaux préconfigurés et un script de téléchargement de modèle. Naviguez jusqu&#39;au répertoire 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;Téléchargez les modèles en exécutant le script suivant, qui les enregistrera à l&#39;adresse &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;L&#39;architecture du serveur d&#39;inférence Triton™ exige que les modèles soient stockés séparément. Vous pouvez les stocker localement dans n&#39;importe quel répertoire du serveur ou sur le réseau de stockage. Lorsque vous démarrez le serveur, vous devez monter ce répertoire dans le conteneur au point de montage /models. Ce répertoire sert de dépôt pour toutes les versions des modèles.&lt;/p&gt;
&lt;p&gt;Lancez le conteneur à l&#39;aide de la commande suivante&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;Voici ce que fait chaque paramètre :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gpus=all&lt;/b&gt; spécifie que tous les GPU disponibles seront utilisés dans le serveur ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--rm&lt;/b&gt; détruit le conteneur une fois le processus terminé ou arrêté ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8000:8000&lt;/b&gt; transmet le port 8000 pour recevoir les requêtes HTTP ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8001:8001&lt;/b&gt; transmet le port 8001 pour recevoir les requêtes gRPC ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-p8002:8002&lt;/b&gt; transmet le port 8002 pour demander des métriques ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v ~/server/docs/examples/model_repository:/models&lt;/b&gt; transmet le répertoire contenant les modèles ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;nvcr.io/nvidia/tritonserver:25.01-py3&lt;/b&gt; l&#39;adresse du conteneur du catalogue NGC™ ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;tritonserver --model-repository=/models&lt;/b&gt; lance le serveur d&#39;inférence Triton™ avec l&#39;emplacement du référentiel de modèles à /models.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La sortie de la commande montrera tous les modèles disponibles dans le référentiel, chacun étant prêt à accepter des requêtes :&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;Les trois services ont été lancés avec succès sur les ports 8000, 8001 et 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;En utilisant l&#39;utilitaire nvtop, nous pouvons vérifier que tous les GPU sont prêts à accepter la charge :&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;Installation du client&lt;/h2&gt;
&lt;p&gt;Pour accéder à notre serveur, nous devons générer une requête appropriée à l&#39;aide du client inclus dans le SDK. Nous pouvons télécharger ce SDK sous la forme d&#39;un conteneur Docker :&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;Exécutez le conteneur en mode interactif pour accéder à la 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;Testons ceci avec le modèle DenseNet au format ONNX, en utilisant la méthode INCEPTION pour prétraiter et analyser l&#39;image &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;Le client contactera le serveur, qui créera un lot et le traitera en utilisant les GPU disponibles du conteneur. Voici le résultat :&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;Préparation du dépôt&lt;/h2&gt;
&lt;p&gt;Pour que Triton™ gère correctement les modèles, vous devez préparer le référentiel d&#39;une manière spécifique. Voici la structure du répertoire :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;model_repository/ 
        └── your_model/ 
                ├── config.pbtxt 
                └── 1/
                    └── model.*&lt;/pre&gt;
&lt;p&gt;Chaque modèle a besoin de son propre répertoire contenant un fichier de configuration &lt;b translate=&quot;no&quot;&gt;config.pbtxt&lt;/b&gt; avec sa description. Voici un exemple :&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;Dans cet exemple, un modèle nommé &lt;b translate=&quot;no&quot;&gt;Test&lt;/b&gt; sera exécuté sur le backend PyTorch. Le paramètre &lt;b translate=&quot;no&quot;&gt;max_batch_size&lt;/b&gt; définit le nombre maximal d&#39;éléments pouvant être traités simultanément, ce qui permet d&#39;équilibrer efficacement la charge entre les ressources. La définition de cette valeur à zéro désactive la mise en lot, ce qui fait que le modèle traite les demandes de manière séquentielle.&lt;/p&gt;
&lt;p&gt;Le modèle accepte une entrée et produit une sortie, toutes deux utilisant le type de nombre FP32. Les paramètres doivent correspondre exactement aux exigences du modèle. Pour le traitement d&#39;images, une spécification de dimension typique est &lt;b translate=&quot;no&quot;&gt;dims: [ 3, 224, 224 ]&lt;/b&gt;, où :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;3&lt;/b&gt; - nombre de canaux de couleur (RVB) ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;224&lt;/b&gt; - hauteur de l&#39;image en pixels ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;224&lt;/b&gt; - largeur de l&#39;image en pixels.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La sortie &lt;b translate=&quot;no&quot;&gt;dims: [ 1000 ]&lt;/b&gt; représente un vecteur unidimensionnel de 1000 éléments, ce qui convient aux tâches de classification d&#39;images. Pour déterminer la dimensionnalité correcte de votre modèle, consultez sa documentation. Si le fichier de configuration est incomplet, Triton™ tentera de générer automatiquement les paramètres manquants.&lt;/p&gt;
&lt;h2&gt;Lancement d&#39;un modèle personnalisé&lt;/h2&gt;
&lt;p&gt;Lançons l&#39;inférence du modèle DeepSeek-R1 distillé dont nous avons &lt;a href=&quot;https://www.leadergpu.fr/catalog/613-deepseek-r1-l-avenir-des-llm&quot;&gt;parlé&lt;/a&gt; précédemment. Tout d&#39;abord, nous allons créer la structure de répertoire nécessaire :&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;Naviguez jusqu&#39;au répertoire du modèle :&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;Créer un fichier de configuration &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;Collez les éléments suivants :&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;Enregistrez le fichier en appuyant sur &lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt;, puis l&#39;éditeur avec &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;. Naviguez jusqu&#39;au répertoire &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;Créer un fichier de configuration du modèle &lt;b translate=&quot;no&quot;&gt;model.json&lt;/b&gt; avec les paramètres suivants :&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;Notez que la valeur de &lt;b translate=&quot;no&quot;&gt;gpu_memory_utilization&lt;/b&gt; varie selon le GPU et doit être déterminée expérimentalement. Pour ce guide, nous utiliserons &lt;b translate=&quot;no&quot;&gt;0.9&lt;/b&gt;. La structure de votre répertoire à l&#39;intérieur de &lt;b translate=&quot;no&quot;&gt;~/model_repository&lt;/b&gt; devrait maintenant ressembler à ceci :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;└── deepseek
        ├── 1
        │   └── model.json
        └── config.pbtxt&lt;/pre&gt;
&lt;p&gt;Définissez la variable &lt;b translate=&quot;no&quot;&gt;LOCAL_MODEL_REPOSITORY&lt;/b&gt; pour plus de commodité :&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;Démarrez le serveur d&#39;inférence avec cette commande :&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;Voici ce que fait chaque paramètre :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--rm&lt;/b&gt; supprime automatiquement le conteneur après l&#39;avoir arrêté ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-it&lt;/b&gt; exécute le conteneur en mode interactif avec une sortie terminal ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--net&lt;/b&gt; L&#39;hôte utilise la pile réseau de l&#39;hôte au lieu de l&#39;isolation du conteneur ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--shm-size=2g&lt;/b&gt; fixe la mémoire partagée à 2 Go ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--ulimit memlock=-1&lt;/b&gt; supprime la limite de verrouillage de la mémoire ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--ulimit stack=67108864&lt;/b&gt; fixe la taille de la pile à 64 Mo ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gpus all&lt;/b&gt; autorise l&#39;accès à tous les GPU du serveur ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;-v $LOCAL_MODEL_REPOSITORY:/opt/tritonserver/model_repository&lt;/b&gt; monte le répertoire du modèle local dans le conteneur ;&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; spécifie le conteneur avec le support du backend vLLM ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;tritonserver --model-repository=model_repository/&lt;/b&gt; lance le serveur d&#39;inférence Triton™ avec l&#39;emplacement du référentiel de modèles à model_repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Testez le serveur en envoyant une requête avec &lt;b translate=&quot;no&quot;&gt;curl&lt;/b&gt;, en utilisant une simple invite et une limite de réponse de 4096 jetons :&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;Le serveur reçoit et traite la demande avec succès.&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;Le planificateur de tâches interne de Triton™ traite toutes les demandes entrantes lorsque le serveur est en charge.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Le serveur d&#39;inférence Triton™ excelle dans le déploiement de modèles d&#39;apprentissage automatique en production en distribuant efficacement les demandes sur les GPU disponibles. Cela permet de maximiser l&#39;utilisation des ressources serveur louées et de réduire les coûts de l&#39;infrastructure informatique. Le logiciel fonctionne avec différents backends, notamment vLLM pour les modèles de langage de grande taille.&lt;/p&gt;
&lt;p&gt;Comme il s&#39;installe sous forme de conteneur Docker, vous pouvez facilement l&#39;intégrer dans n&#39;importe quel pipeline CI/CD moderne. Essayez-le vous-même en &lt;a href=&quot;https://www.leadergpu.fr/fr#chose-best&quot;&gt;louant un serveur&lt;/a&gt; auprès de LeaderGPU.&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 : l&#39;avenir des LLM</title>
      <link>https://www.leadergpu.fr/catalog/613-deepseek-r1-l-avenir-des-llm</link>
      <description>&lt;p&gt;Bien que les réseaux neuronaux génératifs se soient développés rapidement, leur progression est restée relativement stable ces dernières années. Cette situation a changé avec l&#39;arrivée de DeepSeek, un réseau neuronal chinois qui a non seulement eu un impact sur le marché boursier, mais qui a également attiré l&#39;attention des développeurs et des chercheurs du monde entier. Contrairement à d&#39;autres grands projets, le code de DeepSeek a été publié sous la licence permissive MIT. Cette évolution vers l&#39;open source a été saluée par la communauté, qui s&#39;est empressée d&#39;explorer les capacités du nouveau modèle.&lt;/p&gt;
&lt;p&gt;L&#39;aspect le plus impressionnant est que l&#39;entraînement de ce nouveau réseau neuronal aurait coûté 20 fois moins cher que les concurrents offrant une qualité similaire. La formation du modèle n&#39;a nécessité que 55 jours et 5,6 millions de dollars. La publication de DeepSeek a déclenché l&#39;une des plus fortes baisses en une seule journée de l&#39;histoire des marchés boursiers américains. Bien que les marchés se soient finalement stabilisés, l&#39;impact a été considérable.&lt;/p&gt;
&lt;p&gt;Cet article examine dans quelle mesure les titres des médias reflètent la réalité et explore les configurations LeaderGPU adaptées à l&#39;installation de ce réseau neuronal.&lt;/p&gt;
&lt;h2&gt;Caractéristiques architecturales&lt;/h2&gt;
&lt;p&gt;DeepSeek a choisi une voie d&#39;optimisation maximale, ce qui n&#39;est pas surprenant compte tenu des restrictions à l&#39;exportation imposées par la Chine aux États-Unis. Ces restrictions empêchent le pays d&#39;utiliser officiellement les modèles de GPU les plus avancés pour le développement de l&#39;IA.&lt;/p&gt;
&lt;p&gt;Le modèle utilise la technologie Multi Token Prediction (MTP), qui prédit plusieurs jetons en une seule étape d&#39;inférence au lieu d&#39;un seul. Cela fonctionne grâce à un décodage parallèle des jetons combiné à des couches masquées spéciales qui maintiennent l&#39;autorégressivité.&lt;/p&gt;
&lt;p&gt;Les essais de MTP ont donné des résultats remarquables, augmentant les vitesses de génération de 2 à 4 fois par rapport aux méthodes traditionnelles. L&#39;excellente évolutivité de la technologie la rend précieuse pour les applications actuelles et futures de traitement du langage naturel.&lt;/p&gt;
&lt;p&gt;Le modèle Multi-Head Latent Attention (MLA) est doté d&#39;un mécanisme d&#39;attention amélioré. Lorsque le modèle construit de longues chaînes de raisonnement, il maintient une attention ciblée sur le contexte à chaque étape. Cette amélioration permet de mieux gérer les concepts abstraits et les dépendances textuelles.&lt;/p&gt;
&lt;p&gt;La principale caractéristique de MLA est sa capacité à ajuster dynamiquement les poids de l&#39;attention à travers différents niveaux d&#39;abstraction. Lors du traitement de requêtes complexes, MLA examine les données sous plusieurs angles : le sens des mots, la structure des phrases et le contexte général. Ces perspectives forment des couches distinctes qui influencent le résultat final. Pour maintenir la clarté, MLA équilibre soigneusement l&#39;impact de chaque couche tout en restant concentré sur la tâche principale.&lt;/p&gt;
&lt;p&gt;Les développeurs de DeepSeek ont intégré la technologie Mixture of Experts (MoE) dans le modèle. Elle contient 256 réseaux neuronaux experts pré-entraînés, chacun étant spécialisé dans des tâches différentes. Le système active 8 de ces réseaux pour chaque entrée de jeton, ce qui permet un traitement efficace des données sans augmenter les coûts de calcul.&lt;/p&gt;
&lt;p&gt;Dans le modèle complet avec 671b paramètres, seuls 37b sont activés pour chaque jeton. Le modèle sélectionne intelligemment les paramètres les plus pertinents pour traiter chaque jeton entrant. Cette optimisation efficace permet d&#39;économiser des ressources informatiques tout en maintenant des performances élevées.&lt;/p&gt;
&lt;p&gt;Une caractéristique cruciale de tout chatbot à réseau neuronal est la longueur de sa fenêtre contextuelle. Llama 2 a une limite de contexte de 4 096 tokens, GPT-3.5 traite 16 284 tokens, tandis que GPT-4 et DeepSeek peuvent traiter jusqu&#39;à 128 000 tokens (environ 100 000 mots, soit l&#39;équivalent de 300 pages de texte dactylographié).&lt;/p&gt;
&lt;h2&gt;R - pour Reasoning (raisonnement)&lt;/h2&gt;
&lt;p&gt;DeepSeek-R1 a acquis un mécanisme de raisonnement similaire à celui de l&#39;OpenAI o1, ce qui lui permet de traiter des tâches complexes de manière plus efficace et plus précise. Au lieu de fournir des réponses immédiates, le modèle élargit le contexte en générant un raisonnement étape par étape dans de petits paragraphes. Cette approche améliore la capacité du réseau neuronal à identifier les relations complexes entre les données, ce qui permet d&#39;obtenir des réponses plus complètes et plus précises.&lt;/p&gt;
&lt;p&gt;Lorsqu&#39;il est confronté à une tâche complexe, DeepSeek utilise son mécanisme de raisonnement pour décomposer le problème en éléments et analyser chacun d&#39;entre eux séparément. Le modèle synthétise ensuite ces résultats pour générer une réponse de l&#39;utilisateur. Bien que cette approche semble idéale pour les réseaux neuronaux, elle s&#39;accompagne de défis importants.&lt;/p&gt;
&lt;p&gt;Tous les LLM modernes partagent un trait inquiétant : des hallucinations artificielles. Lorsqu&#39;il est confronté à une question à laquelle il ne peut répondre, au lieu de reconnaître ses limites, le modèle peut générer des réponses fictives étayées par des faits inventés.&lt;/p&gt;
&lt;p&gt;Appliquées à un réseau neuronal de raisonnement, ces hallucinations pourraient compromettre le processus de réflexion en fondant les conclusions sur des informations fictives plutôt que factuelles. Cela pourrait conduire à des conclusions erronées - un défi que les chercheurs et les développeurs de réseaux neuronaux devront relever à l&#39;avenir.&lt;/p&gt;
&lt;h2&gt;Consommation de VRAM&lt;/h2&gt;
&lt;p&gt;Voyons comment exécuter et tester DeepSeek R1 sur un serveur dédié, en nous concentrant sur les besoins en mémoire vidéo du GPU.&lt;/p&gt;
&lt;table style=&quot;margin: auto;&quot; width=&quot;50%&quot;&gt;
    &lt;th&gt;Modèle&lt;/th&gt;
    &lt;th&gt;VRAM (Mo)&lt;/th&gt;
    &lt;th&gt;Taille du modèle (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;deepseek-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;deepseek-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;deepseek-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;deepseek-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;deepseek-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;Les trois premières options (1.5b, 7b, 8b) sont des modèles de base qui peuvent gérer efficacement la plupart des tâches. Ces modèles fonctionnent sans problème avec n&#39;importe quel GPU grand public doté de 6 à 8 Go de mémoire vidéo. Les versions intermédiaires (14b et 32b) sont idéales pour les tâches professionnelles mais nécessitent plus de VRAM. Les plus grands modèles (70b et 671b) nécessitent des GPU spécialisés et sont principalement utilisés pour la recherche et les applications industrielles.&lt;/p&gt;
&lt;h2&gt;Choix du serveur&lt;/h2&gt;
&lt;p&gt;Pour vous aider à choisir un serveur pour l&#39;inférence DeepSeek, voici les configurations LeaderGPU idéales pour chaque groupe de modèles :&lt;/p&gt;
&lt;h3&gt;1.5b / 7b / 8b / 14b / 32b / 70b&lt;/h3&gt;
&lt;p&gt;Pour ce groupe, n&#39;importe quel serveur avec les types de GPU suivants conviendra. La plupart des serveurs LeaderGPU exécuteront ces réseaux neuronaux sans problème. Les performances dépendent principalement du nombre de cœurs CUDA®. Nous recommandons les serveurs dotés de plusieurs GPU, tels que :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/?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.fr/?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;Passons maintenant au cas le plus difficile : comment exécuter l&#39;inférence sur un modèle dont la taille de base est de 404 Go ? Cela signifie qu&#39;environ 470 Go de mémoire vidéo seront nécessaires. LeaderGPU propose plusieurs configurations avec les GPU suivants capables de gérer cette charge :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/?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.fr/?fltr_type%5B%5D=h100#filter_block&quot;&gt;H100&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les deux configurations gèrent la charge du modèle de manière efficace, en la répartissant de manière égale sur plusieurs GPU. Par exemple, voici à quoi ressemble un serveur avec 8xH100 après avoir chargé le modèle deepseek-r1:671b :&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;La charge de calcul s&#39;équilibre dynamiquement entre les GPU, tandis que les interconnexions NVLink® à haut débit évitent les goulets d&#39;étranglement dans l&#39;échange de données, garantissant ainsi des performances maximales.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;DeepSeek-R1 combine de nombreuses technologies innovantes telles que la prédiction multi-token, l&#39;attention latente multi-têtes et le mélange d&#39;experts en un seul modèle significatif. Ce logiciel open-source démontre que les LLM peuvent être développés plus efficacement avec moins de ressources informatiques. Le modèle comporte plusieurs versions, de la plus petite (1,5 milliard) à la plus grande (671 milliards), qui nécessitent du matériel spécialisé avec plusieurs GPU haut de gamme travaillant en parallèle.&lt;/p&gt;
&lt;p&gt;En louant un serveur chez LeaderGPU pour l&#39;inférence DeepSeek-R1, vous bénéficiez d&#39;une large gamme de configurations, de fiabilité et de tolérance aux pannes. Notre équipe de support technique vous aidera en cas de problèmes ou de questions, tandis que l&#39;installation automatique du système d&#39;exploitation réduit le temps de déploiement.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.leadergpu.fr/#chose-best&quot;&gt;Choisissez votre serveur LeaderGPU&lt;/a&gt; et découvrez les possibilités qui s&quot;offrent à vous lorsque vous utilisez des modèles de réseaux neuronaux modernes. Si vous avez des questions, n&#39;hésitez pas à les poser dans notre chat ou par &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 : installation et test</title>
      <link>https://www.leadergpu.fr/catalog/611-intel-habana-gaudi-2-installation-et-test</link>
      <description>&lt;p&gt;Avant de commencer à installer le logiciel d&#39;accélération Gaudi 2, il y a une caractéristique importante qui mérite d&#39;être mentionnée. Nous sommes habitués au fait que l&#39;entraînement et l&#39;inférence des réseaux neuronaux peuvent être réalisés à l&#39;aide de GPU. Cependant, Intel Habana Gaudi 2 est très différent des GPU et représente une classe différente de dispositifs conçus uniquement pour accélérer les tâches d&#39;IA.&lt;/p&gt;
&lt;p&gt;De nombreuses applications et cadres familiers ne fonctionneront pas sans une préparation préalable du système d&#39;exploitation et, dans certains cas, sans un &lt;a href=&quot;https://docs.habana.ai/en/latest/PyTorch/PyTorch_Model_Porting/GPU_Migration_Toolkit/GPU_Migration_Toolkit.html&quot;&gt;kit d&#39;outils de migration GPU&lt;/a&gt; spécial. Cela explique le grand nombre d&#39;étapes préparatoires que nous décrivons dans cet article. Commençons dans l&#39;ordre.&lt;/p&gt;
&lt;h2&gt;Étape 1. Installer la pile logicielle SynapseAI&lt;/h2&gt;
&lt;p&gt;Pour commencer à travailler avec les accélérateurs Intel Habana Gaudi 2, vous devez installer la pile logicielle SynapseAI. Elle comprend un compilateur graphique spécial qui transforme la topologie du modèle de réseau neuronal pour optimiser efficacement l&#39;exécution sur l&#39;architecture Gaudi, des bibliothèques API pour la mise à l&#39;échelle horizontale, ainsi qu&#39;un SDK distinct pour la création d&#39;algorithmes et de modèles d&#39;apprentissage automatique de haute performance.&lt;/p&gt;
&lt;p&gt;Séparément, nous notons que SynapseAI est la partie qui vous permet de créer un pont entre les cadres populaires tels que PyTorch/TensorFlow et les accélérateurs d&#39;IA de Gaudi 2. Cela vous permet de travailler avec des abstractions familières, et Gaudi 2 optimise indépendamment les calculs. Les opérateurs spécifiques pour lesquels les accélérateurs n&#39;ont pas de support matériel sont exécutés sur le CPU.&lt;/p&gt;
&lt;p&gt;Pour simplifier l&#39;installation des composants individuels de SynapseAI, un script shell pratique a été créé. Téléchargez-le :&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;Rendez le fichier exécutable :&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;Exécuter le script :&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;Suivez les invites du système pendant l&#39;installation. Vous trouverez un rapport détaillé dans le fichier journal. Vous pouvez y voir quels paquets ont été installés et si les accélérateurs ont été trouvés et initialisés avec succès.&lt;/p&gt;
&lt;p&gt;Les journaux sont ici : /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;Tout comme l&#39;utilitaire nvidia-smi fournit des informations sur les GPU installés et les processus de calcul en cours, SynapseAI dispose d&#39;un programme similaire. Vous pouvez le lancer pour obtenir un rapport sur l&#39;état actuel des accélérateurs d&#39;IA Gaudi 2 :&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;Étape 2. Test TensorFlow&lt;/h2&gt;
&lt;p&gt;TensorFlow est l&#39;une des plateformes les plus populaires pour l&#39;apprentissage automatique. En utilisant le même script d&#39;installation, vous pouvez installer une version préconstruite de TensorFlow avec le support des accélérateurs Gaudi 2. Commençons par installer les dépendances générales :&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;Ensuite, nous allons installer les dépendances pour 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;Installer la plateforme TensorFlow dans un environnement virtuel implémenté à l&#39;aide du mécanisme Python Virtual Environment (venv) :&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;Activons l&#39;environnement virtuel créé :&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;Créer un exemple de code Python simple qui utilisera les capacités des accélérateurs Gaudi 2 :&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;Enfin, exécutez l&#39;application :&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;Pour quitter l&#39;environnement virtuel, exécutez la commande suivante :&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;Étape 3. Cloner le référentiel de formation&lt;/h2&gt;
&lt;p&gt;Cloner le référentiel avec le code MLperf :&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;Créer un répertoire séparé qui sera utilisé par le conteneur Docker avec 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;Modifier le répertoire :&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;Exportons quelques variables d&#39;environnement :&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;Créez de nouveaux répertoires en utilisant les variables créées :&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;Copier l&#39;application benchmark dans $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;Exporter une autre variable qui contiendra un lien pour télécharger la version désirée du conteneur Docker :&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;Étape 4. Installer Docker&lt;/h2&gt;
&lt;p&gt;Notre instance fonctionne sous Ubuntu Linux 22.04 LTS et ne supporte pas Docker par défaut. Donc, avant de télécharger et d&#39;exécuter des conteneurs, vous devez installer le support Docker. Rafraîchissons le cache des paquets et installons quelques paquets de base dont vous aurez besoin plus tard :&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;Pour installer Docker, vous devez ajouter un dépôt de projet signé numériquement. Téléchargez la clé de signature numérique et ajoutez-la au magasin de clés du système d&#39;exploitation :&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 peut fonctionner sur des plateformes aux architectures diverses. La commande suivante détectera l&#39;architecture de votre serveur et ajoutera la ligne de dépôt correspondante à la liste du gestionnaire de paquets APT :&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;Mettez à jour le cache des paquets et les politiques et installez 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;Enfin, vérifiez que le démon Docker est opérationnel :&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;Étape 5. Exécuter le conteneur Docker&lt;/h2&gt;
&lt;p&gt;Lançons le conteneur en mode privilégié en utilisant les variables spécifiées précédemment :&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;Pour plus de commodité, vous pouvez accéder au terminal à l&#39;intérieur du conteneur via SSH :&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;Pour ouvrir un shell de commande (bash) dans la session en cours, exécutez la commande suivante :&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;Étape 6. Préparer un jeu de données&lt;/h2&gt;
&lt;p&gt;Pour exécuter les tests d&#39;implémentation de Bert à partir de MLperf, vous avez besoin d&#39;un jeu de données préparé. La meilleure méthode consiste à générer un jeu de données à partir de données préchargées. Le référentiel MLperf comprend un script spécial, prepare_data.sh, qui nécessite un ensemble spécifique de paquets pour fonctionner. Naviguons vers le répertoire suivant :&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;Installer tous les paquets nécessaires en utilisant la liste pré-générée et le gestionnaire de paquets 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 -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Définissez la variable PYTORCH_BERT_DATA pour indiquer au script où stocker les données :&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;Exécutez le script :&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;La procédure de génération est assez longue et peut prendre plusieurs heures. Soyez patient et n&#39;interrompez pas le processus. Si vous prévoyez de vous déconnecter de la session SSH, il est recommandé d&#39;utiliser l&#39;utilitaire &lt;a href=&quot;https://www.geeksforgeeks.org/screen-command-in-linux-with-examples/&quot;&gt;screen&lt;/a&gt; immédiatement avant de démarrer le conteneur Docker.&lt;/p&gt;
&lt;h2&gt;Étape 7. Emballer l&#39;ensemble de données&lt;/h2&gt;
&lt;p&gt;L&#39;étape suivante consiste à &quot;découper&quot; l&#39;ensemble de données en morceaux égaux pour le lancement ultérieur de MLperf. Créons un répertoire séparé pour les données empaquetées :&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;Exécuter le script d&#39;emballage :&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;Étape 8. Exécuter un test&lt;/h2&gt;
&lt;p&gt;Maintenant que l&#39;ensemble de données est préparé, il est temps d&#39;exécuter le test. Cependant, il est impossible de le faire sans préparation préalable. Les auteurs du test de Bert ont laissé quelques valeurs codées en dur dans le script, qui vont interférer avec l&#39;exécution du test. Tout d&#39;abord, renommez le répertoire suivant :&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;Changez le répertoire :&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;L&#39;éditeur GNU Nano n&#39;étant pas installé dans le conteneur, il doit être installé séparément. Vous pouvez également utiliser l&#39;éditeur Vi intégré :&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;Maintenant, éditez le script de lancement du test :&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;Trouvez la première ligne :&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;Remplacer par ce qui suit :&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;Trouvez la deuxième ligne :&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;Remplacer par ce qui suit :&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;Enregistrer le fichier et quitter.&lt;/p&gt;
&lt;p&gt;Le code du test comprend une fonction de limitation qui empêche le gradient de dépasser certaines valeurs, prévenant ainsi une croissance exponentielle potentielle. Pour des raisons qui nous sont inconnues, cette fonction est absente de la version de PyTorch utilisée dans le conteneur, ce qui fait que le test se termine anormalement pendant la phase d&#39;échauffement.&lt;/p&gt;
&lt;p&gt;Une solution potentielle pourrait être de supprimer temporairement cette fonction du code du fichier fastddp.py. Pour ce faire, ouvrez le fichier :&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;Trouvez et commentez les trois lignes de code suivantes en utilisant le # (symbole shebang) de manière à ce qu&#39;elles ressemblent à ceci :&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;Enregistrez également le fichier et quittez. Changez de répertoire :&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;Enfin, exécutez le script. L&#39;exécution prendra environ 20 minutes :&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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/606-qu-est-ce-que-la-distillation-des-connaissances&quot;&gt;Qu&#39;est-ce que la distillation des connaissances ?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/607-avantages-et-inconv-nients-du-partage-du-gpu&quot;&gt;Avantages et inconvénients du partage du GPU&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/609-nvidia-rtx-50-attentes-et-r-alit&quot;&gt;NVIDIA® RTX™ 50 : attentes et réalité&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 : attentes et réalité</title>
      <link>https://www.leadergpu.fr/catalog/609-nvidia-rtx-50-attentes-et-r-alit</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;Examinons tout d&#39;abord la gamme. La série RTX™ 40 a été lancée avec 6 modèles, allant de la RTX™ 4060 à la RTX™ 4090. Alors que beaucoup s&#39;attendaient à une gamme similaire pour la série RTX™ 50, cela ne s&#39;est pas produit. Au lieu de cela, la famille RTX™ 50 ne comprend que 4 modèles : RTX™ 5070, RTX™ 5070 Ti, RTX™ 5080, et RTX™ 5090. Nous pourrions voir les RTX™ 5050 et RTX5060 à l&#39;avenir, mais aucune source officielle n&#39;a encore vérifié ces cartes graphiques.&lt;/p&gt;
&lt;h2&gt;Processus technologique&lt;/h2&gt;
&lt;p&gt;La loi de Moore, l&#39;observation empirique selon laquelle &quot;le nombre de transistors dans un circuit intégré double environ tous les deux ans&quot;, est souvent considérée comme n&#39;étant plus pertinente pour les performances des puces. Depuis 2022, Jensen Huang a déclaré à plusieurs reprises que la loi de Moore était morte. Il a proposé un nouveau concept qui met l&#39;accent sur le développement simultané de l&#39;architecture, des micropuces, des bibliothèques de logiciels et des algorithmes.&lt;/p&gt;
&lt;p&gt;Ce changement nous permet de nous concentrer sur les performances globales du système plutôt que sur le seul nombre de transistors. Le concept d&#39;efficacité informatique a suscité des discussions permanentes au sein de la communauté technologique. Bien que les points de vue sur ce sujet varient, l&#39;industrie est clairement confrontée à des obstacles physiques et économiques qui l&#39;empêchent de poursuivre la miniaturisation.&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;Examinons la nouvelle génération de technologie de traitement des GPU. La présentation ne l&#39;a pas spécifiquement mentionné, mais toutes les cartes de la génération précédente ont été construites sur le processus 4N. &lt;b translate=&quot;no&quot;&gt;The RTX™ 50 series uses a different 4NP process technology&lt;/b&gt;. En même temps, il est important de comprendre que 4N et 4NP ne sont que des noms marketing. Les transistors eux-mêmes conservent une taille de 5 nm.&lt;/p&gt;
&lt;p&gt;La technologie améliorée du processus 4NP permet principalement une plus grande densité de transistors sur la puce et des vitesses d&#39;horloge plus rapides. Alors que les experts avaient prédit que la RTX™ 50 utiliserait la même technologie de traitement que la RTX™ 40, ils se sont techniquement trompés, mais pas de beaucoup, puisque la taille des transistors reste inchangée et que TSMC continue d&#39;être le fabricant.&lt;/p&gt;
&lt;h2&gt;Nombre de cœurs&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;Avant la sortie de la série RTX™ 50, de nombreuses fuites de données ont révélé les caractéristiques de base du GPU. Les premiers rapports d&#39;initiés datant de juillet 2024 suggéraient que le vaisseau amiral comporterait 24 576 cœurs, 192 cœurs de Ray-tracing et 768 cœurs de Tensor. Toutefois, des fuites ultérieures ont ajusté ces chiffres à des valeurs plus réalistes.&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;La RTX™ 5090 finale a été livrée avec &lt;b translate=&quot;no&quot;&gt;21,760 CUDA® cores&lt;/b&gt; (contre 16 384 pour la RTX™ 4090), &lt;b translate=&quot;no&quot;&gt;170 Ray-tracing cores&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;680 Tensor cores&lt;/b&gt;. Cette évolution s&#39;inscrit dans la stratégie récente de l&#39;entreprise, qui consiste à augmenter les performances non seulement en augmentant le nombre de transistors, mais aussi en optimisant l&#39;architecture de manière globale.&lt;/p&gt;
&lt;h2&gt;Mémoire&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;L&#39;utilisation de la mémoire GDDR7 par les nouveaux GPU n&#39;est pas une surprise. Les experts du secteur avaient prédit cette évolution en 2024 après que les trois principaux fabricants (Samsung, Micron et SK hynix) eurent présenté successivement leurs prototypes GDDR7. NVIDIA® a été généreux dans la distribution de la mémoire : le modèle de base &lt;b translate=&quot;no&quot;&gt;RTX™ 5070&lt;/b&gt; comprend &lt;b translate=&quot;no&quot;&gt;12 GB GDDR7&lt;/b&gt; sur un bus &lt;b translate=&quot;no&quot;&gt;192-bit&lt;/b&gt;, tandis que le modèle &lt;b translate=&quot;no&quot;&gt;RTX™ 5070 Ti and RTX™ 5080&lt;/b&gt; comprend &lt;b translate=&quot;no&quot;&gt;16 GB GDDR7&lt;/b&gt; sur un bus &lt;b translate=&quot;no&quot;&gt;256-bit&lt;/b&gt;. En haut de gamme, le modèle phare &lt;b translate=&quot;no&quot;&gt;RTX™ 5090&lt;/b&gt; est accompagné d&#39;une énorme mémoire &lt;b translate=&quot;no&quot;&gt;32 GB GDDR7&lt;/b&gt; sur un bus &lt;b translate=&quot;no&quot;&gt;512-bit&lt;/b&gt;.&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;Les experts avaient initialement prévu que le débit maximal de cette configuration de mémoire serait de 1,5 Tbps. Cependant, la réalité a dépassé ces attentes, &lt;b translate=&quot;no&quot;&gt;achieving a throughput of 1,7 Tbps&lt;/b&gt;. Cette amélioration spectaculaire profite principalement aux capacités de traitement de l&#39;intelligence artificielle du GPU plutôt qu&#39;aux performances des jeux. La combinaison d&#39;une capacité élevée et d&#39;une mémoire rapide de la nouvelle génération est particulièrement précieuse pour les grands modèles de langage et les réseaux neuronaux génératifs.&lt;/p&gt;
&lt;h2&gt;Technologies&lt;/h2&gt;
&lt;h3&gt;Pour les joueurs&lt;/h3&gt;
&lt;p&gt;Le ray tracing en temps réel est devenu l&#39;une des technologies GPU les plus révolutionnaires, marquant le début de la gamme RTX™. Pour de nombreux consommateurs, cette fonctionnalité a été un facteur clé dans leur décision d&#39;achat. Dans les cartes de la série RTX™ 50, la version 4 de DLSS (Deep Learning Super Sampling) pourrait jouer un rôle tout aussi important. Cette technologie augmente considérablement les performances du GPU dans les jeux grâce à son approche de rendu d&#39;images hybrides.&lt;/p&gt;
&lt;p&gt;Lorsque DLSS est activé, au lieu de rendre chaque image de manière conventionnelle, certaines images sont générées en temps réel à l&#39;aide de l&#39;IA. Alors que les premières versions de cette technologie ne permettaient que d&#39;augmenter la résolution des images, DLSS 3 a introduit une capacité plus avancée : pour chaque image rendue de manière conventionnelle, il est possible de générer une image supplémentaire créée par l&#39;IA.&lt;/p&gt;
&lt;p&gt;DLSS 4 génère trois images créées par l&#39;IA pour chaque image rendue de manière traditionnelle. &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; L&#39;IA analyse les mouvements de l&#39;objet et de la scène pour s&#39;assurer que les images générées correspondent étroitement aux images rendues de manière conventionnelle.&lt;/p&gt;
&lt;p&gt;Cela soulève une question importante : comment gérer le décalage d&#39;entrée ? Étant donné que la génération d&#39;images prend du temps, chaque itération augmente le temps de réponse. Une image fluide avec une réponse lente aux actions du joueur peut avoir un impact important sur l&#39;expérience de jeu. &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;En particulier, Frame Warp a été intégré au système. Cette technologie réduit la latence des jeux en mettant à jour les images rendues avec la dernière entrée de la souris juste avant l&#39;affichage. Elle améliore à la fois la compétition multijoueurs et la réactivité des joueurs individuels.&lt;/p&gt;
&lt;h3&gt;Pour les créateurs de contenu&lt;/h3&gt;
&lt;p&gt;La série RTX™ 50 n&#39;est pas seulement destinée aux jeux. Les créateurs de contenu vidéo trouveront une valeur significative dans ces nouveaux GPU. Le modèle phare RTX™ 5090 est équipé de 3 encodeurs et de 2 décodeurs, contre 2 encodeurs et 1 décodeur pour la RTX™ 4090. Ces composants ont été améliorés grâce à un développement collaboratif avec les leaders de l&#39;industrie : Adobe, Blackmagic Design, ByteDance et 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;Au-delà des améliorations de la vitesse brute, la qualité a également été améliorée. &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; Cela signifie un rendu vidéo plus rapide sur la RTX™ 5090, et une réduction du temps entre l&#39;édition et la production.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Avec un recul de six mois, les prévisions et les attentes des experts se sont révélées trop optimistes. À mesure que la date de sortie approchait, il est devenu évident que les nouveaux GPU offriraient plus que de simples unités de calcul supplémentaires. &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;Au CES 2025, lors de la présentation de la série GPU 50, une nouvelle ère de l&#39;IA a été dévoilée. Cette vision dépeint un monde où les assistants numériques et les robots gèrent des tâches complexes. Au cœur de ce monde se trouverait un écosystème combinant des supercalculateurs pour l&#39;entraînement à l&#39;IA, des accélérateurs d&#39;inférence abordables pour les appareils grand public et des logiciels polyvalents fonctionnant à la fois localement et dans le nuage. Si l&#39;étendue de cet avenir reste incertaine, une chose est sûre : nous sommes sur le point de transformer la science-fiction en réalité.&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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/606-qu-est-ce-que-la-distillation-des-connaissances&quot;&gt;Qu&#39;est-ce que la distillation des connaissances ?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/607-avantages-et-inconv-nients-du-partage-du-gpu&quot;&gt;Avantages et inconvénients du partage du GPU&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/611-intel-habana-gaudi-2-installation-et-test&quot;&gt;Intel Habana Gaudi 2 : installation et test&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>Avantages et inconvénients du partage du GPU</title>
      <link>https://www.leadergpu.fr/catalog/607-avantages-et-inconv-nients-du-partage-du-gpu</link>
      <description>&lt;p&gt;La loi de Moore est restée d&#39;actualité pendant près d&#39;un demi-siècle. Les puces des processeurs contiennent toujours plus de transistors et les technologies progressent chaque jour. L&#39;évolution de la technologie s&#39;accompagne de celle de notre approche de l&#39;informatique. L&#39;essor de certaines tâches informatiques a considérablement influencé le développement du matériel. Par exemple, les appareils conçus à l&#39;origine pour le traitement graphique sont aujourd&#39;hui des outils essentiels et abordables pour les réseaux neuronaux modernes.&lt;/p&gt;
&lt;p&gt;La gestion des ressources informatiques s&#39;est également transformée. Aujourd&#39;hui, les services de masse utilisent rarement des ordinateurs centraux, comme c&#39;était le cas dans les années 1970 et 1980. Ils préfèrent les services en nuage ou la construction de leur propre infrastructure. Cette évolution a modifié les demandes des clients, qui privilégient une mise à l&#39;échelle rapide et à la demande, ainsi qu&#39;une utilisation maximale des ressources informatiques allouées.&lt;/p&gt;
&lt;p&gt;Les technologies de virtualisation et de conteneurisation sont apparues comme des solutions. Les applications sont désormais regroupées dans des conteneurs avec toutes les bibliothèques nécessaires, ce qui simplifie le déploiement et la mise à l&#39;échelle. Cependant, la gestion manuelle est devenue impraticable lorsque le nombre de conteneurs a grimpé en flèche pour atteindre des milliers. Des orchestrateurs spécialisés comme Kubernetes assurent désormais une gestion et une mise à l&#39;échelle efficaces. Ces outils sont devenus un élément essentiel de toute infrastructure informatique moderne.&lt;/p&gt;
&lt;h2&gt;Virtualisation des serveurs&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;Parallèlement, les technologies de virtualisation ont évolué, permettant la création d&#39;environnements isolés au sein d&#39;un même serveur physique. Les machines virtuelles se comportent de la même manière que les serveurs physiques ordinaires, ce qui permet d&#39;utiliser des outils de gestion standard. Selon l&#39;hyperviseur, une API spécialisée est souvent incluse, facilitant l&#39;automatisation des procédures de routine.&lt;/p&gt;
&lt;p&gt;Toutefois, cette flexibilité s&#39;accompagne d&#39;une sécurité réduite. Les attaquants ne ciblent plus les machines virtuelles individuelles, mais exploitent les vulnérabilités de l&#39;hyperviseur. En prenant le contrôle d&#39;un hyperviseur, les attaquants peuvent accéder à volonté à toutes les machines virtuelles associées. Malgré les améliorations constantes de la sécurité, les hyperviseurs modernes restent des cibles attrayantes.&lt;/p&gt;
&lt;p&gt;La virtualisation traditionnelle répond à deux problèmes clés. Premier point : elle garantit l&#39;isolement des machines virtuelles les unes par rapport aux autres. Les solutions &quot;bare-metal&quot; évitent ce problème car les clients louent des serveurs physiques entiers qu&#39;ils contrôlent. Mais pour les machines virtuelles, l&#39;isolation est basée sur un logiciel au niveau de l&#39;hyperviseur. Une erreur de code ou un bogue aléatoire peut compromettre cette isolation, entraînant un risque de fuite ou de corruption des données.&lt;/p&gt;
&lt;p&gt;Le deuxième problème concerne la gestion des ressources. S&#39;il est possible de garantir l&#39;allocation de ressources à des machines virtuelles spécifiques, la gestion d&#39;un grand nombre de machines pose un dilemme. Les ressources peuvent être sous-utilisées, ce qui se traduit par une diminution du nombre de machines virtuelles par serveur physique. Ce scénario n&#39;est pas rentable pour l&#39;infrastructure et conduit inévitablement à des augmentations de prix.&lt;/p&gt;
&lt;p&gt;Une autre solution consiste à utiliser des mécanismes de gestion automatique des ressources. Bien qu&#39;une machine virtuelle se voie attribuer des caractéristiques déclarées spécifiques, en fait, seul le minimum requis est fourni dans ces limites. Si la machine a besoin de plus de temps processeur ou de mémoire vive, l&#39;hyperviseur tentera de le lui fournir, mais ne peut le garantir. Cette situation est similaire à la surréservation dans les avions, lorsque les compagnies aériennes vendent plus de billets qu&#39;il n&#39;y a de places disponibles.&lt;/p&gt;
&lt;p&gt;La logique est identique. Si les statistiques montrent qu&#39;environ 10 % des passagers n&#39;arrivent pas à temps pour leur vol, les compagnies aériennes peuvent vendre 10 % de billets en plus avec un risque minimal. Si tous les passagers arrivent, certains n&#39;auront pas de place à bord. La compagnie aérienne devra faire face à des conséquences mineures sous la forme d&#39;une indemnisation, mais elle continuera probablement à appliquer cette pratique.&lt;/p&gt;
&lt;p&gt;De nombreux fournisseurs d&#39;infrastructures emploient une stratégie similaire. Certains sont transparents à ce sujet, déclarant qu&#39;ils ne garantissent pas une disponibilité constante des ressources informatiques mais offrent des prix considérablement réduits. D&#39;autres utilisent des mécanismes similaires sans en faire la publicité. Ils font le pari que tous les clients n&#39;utiliseront pas systématiquement 100 % des ressources de leur serveur et que, même si certains le font, ils seront minoritaires. Pendant ce temps, les ressources inutilisées génèrent des bénéfices.&lt;/p&gt;
&lt;p&gt;Dans ce contexte, les solutions &quot;bare-metal&quot; présentent un avantage. Elles garantissent que les ressources allouées sont entièrement gérées par le client et ne sont pas partagées avec d&#39;autres utilisateurs du fournisseur d&#39;infrastructure. Cela élimine les scénarios dans lesquels une charge élevée de l&#39;utilisateur d&#39;un serveur voisin a un impact négatif sur les performances.&lt;/p&gt;
&lt;h2&gt;Virtualisation du GPU&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;La virtualisation classique est inévitablement confrontée au défi de l&#39;émulation des dispositifs physiques. Pour réduire les frais généraux, des technologies spéciales ont été développées pour permettre aux machines virtuelles d&#39;accéder directement aux périphériques physiques du serveur. Cette approche fonctionne bien dans de nombreux cas, mais lorsqu&#39;elle est appliquée aux processeurs graphiques, elle crée des limitations immédiates. Par exemple, si un serveur dispose de 8 GPU, seules 8 machines virtuelles peuvent y accéder.&lt;/p&gt;
&lt;p&gt;La technologie vGPU a été inventée pour pallier cette limitation. Elle divise un GPU en plusieurs GPU logiques, qui peuvent ensuite être assignés à des machines virtuelles. Cela permet à chaque machine virtuelle d&#39;obtenir sa &quot;part de gâteau&quot;, et leur nombre total n&#39;est plus limité par le nombre de cartes vidéo installées sur le serveur.&lt;/p&gt;
&lt;p&gt;Les GPU virtuels sont le plus souvent utilisés lors de la mise en place de VDI (Virtual Desktop Infrastructure) dans les domaines où les machines virtuelles ont besoin d&#39;une accélération 3D. Par exemple, le poste de travail virtuel d&#39;un concepteur ou d&#39;un planificateur implique généralement un traitement graphique. La plupart des applications dans ces domaines effectuent des calculs à la fois sur le processeur central et sur le GPU. Cette approche hybride augmente considérablement la productivité et garantit une utilisation optimale des ressources informatiques disponibles.&lt;/p&gt;
&lt;p&gt;Toutefois, cette technologie présente plusieurs inconvénients. Elle n&#39;est pas supportée par tous les GPU et n&#39;est disponible que dans le segment des serveurs. La prise en charge dépend également de la version installée du système d&#39;exploitation et du pilote GPU. vGPU possède un mécanisme de licence distinct, ce qui augmente considérablement les coûts d&#39;exploitation. En outre, ses composants logiciels peuvent potentiellement servir de vecteurs d&#39;attaque.&lt;/p&gt;
&lt;p&gt;Récemment, des informations ont &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;été publiées&lt;/a&gt; sur huit vulnérabilités affectant tous les utilisateurs de GPU NVIDIA®. Six vulnérabilités ont été identifiées dans les pilotes de GPU et deux dans le logiciel vGPU. Ces problèmes ont été rapidement résolus, mais ils rappellent que les mécanismes d&#39;isolation de ces systèmes ne sont pas sans faille. Une surveillance constante et l&#39;installation opportune des mises à jour restent les principaux moyens de garantir la sécurité.&lt;/p&gt;
&lt;p&gt;Lors de la mise en place d&#39;une infrastructure destinée à traiter des données confidentielles et sensibles, toute virtualisation devient un facteur de risque potentiel. Dans ce cas, une approche &quot;bare-metal&quot; peut offrir une meilleure qualité et une meilleure sécurité.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La mise en place d&#39;une infrastructure informatique nécessite toujours une évaluation des risques. Les questions clés à se poser sont les suivantes : Les données des clients sont-elles protégées en toute sécurité ? Les technologies choisies créent-elles des vecteurs d&#39;attaque supplémentaires ? Comment isoler et éliminer les vulnérabilités potentielles ? Répondre à ces questions permet de faire des choix éclairés et de se prémunir contre des problèmes futurs.&lt;/p&gt;
&lt;p&gt;Chez LeaderGPU, nous sommes parvenus à une conclusion claire : actuellement, la technologie bare-metal est supérieure pour assurer la sécurité des données des utilisateurs tout en servant d&#39;excellente base pour construire un cloud bare-metal. Cette approche permet à nos clients de conserver leur flexibilité sans prendre les risques supplémentaires associés à la virtualisation des GPU.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/606-qu-est-ce-que-la-distillation-des-connaissances&quot;&gt;Qu&#39;est-ce que la distillation des connaissances ?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/609-nvidia-rtx-50-attentes-et-r-alit&quot;&gt;NVIDIA® RTX™ 50 : attentes et réalité&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/611-intel-habana-gaudi-2-installation-et-test&quot;&gt;Intel Habana Gaudi 2 : installation et test&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>Qu&#39;est-ce que la distillation des connaissances ?</title>
      <link>https://www.leadergpu.fr/catalog/606-qu-est-ce-que-la-distillation-des-connaissances</link>
      <description>&lt;p&gt;Les grands modèles linguistiques (LLM) font désormais partie intégrante de notre vie grâce à leurs capacités uniques. Ils comprennent le contexte et génèrent des textes cohérents et détaillés sur cette base. Ils peuvent traiter et répondre dans n&#39;importe quelle langue tout en tenant compte des nuances culturelles de chacune d&#39;entre elles.&lt;/p&gt;
&lt;p&gt;Les LLM excellent dans la résolution de problèmes complexes, la programmation, les conversations, etc. Cette polyvalence provient du traitement de grandes quantités de données de formation, d&#39;où le terme &quot;large&quot;. Ces modèles peuvent contenir des dizaines ou des centaines de milliards de paramètres, ce qui les rend gourmands en ressources pour une utilisation quotidienne.&lt;/p&gt;
&lt;p&gt;La formation est le processus le plus exigeant. Les modèles de réseaux neuronaux apprennent en traitant d&#39;énormes ensembles de données, en ajustant leurs &quot;poids&quot; internes pour former des connexions stables entre les neurones. Ces connexions stockent des connaissances que le réseau neuronal formé peut ensuite utiliser sur des appareils finaux.&lt;/p&gt;
&lt;p&gt;Toutefois, la plupart des terminaux ne disposent pas de la puissance de calcul nécessaire pour faire fonctionner ces modèles. Par exemple, l&#39;exécution de la version complète de Llama 2 (70B paramètres) nécessite un GPU avec 48 Go de mémoire vidéo, un matériel dont peu d&#39;utilisateurs disposent à la maison, et encore moins sur des appareils mobiles.&lt;/p&gt;
&lt;p&gt;Par conséquent, la plupart des réseaux neuronaux modernes fonctionnent dans une infrastructure en nuage plutôt que sur des appareils portables, qui y accèdent par l&#39;intermédiaire d&#39;API. Néanmoins, les fabricants d&#39;appareils progressent de deux manières : en équipant les appareils d&#39;unités de calcul spécialisées telles que les NPU et en développant des méthodes pour améliorer les performances des modèles de réseaux neuronaux compacts.&lt;/p&gt;
&lt;h2&gt;Réduire la taille&lt;/h2&gt;
&lt;h3&gt;Couper l&#39;excédent&lt;/h3&gt;
&lt;p&gt;La quantification est la première méthode, et la plus efficace, de réduction de la taille des réseaux neuronaux. Les poids des réseaux neuronaux utilisent généralement des nombres à virgule flottante de 32 bits, mais il est possible de les réduire en modifiant ce format. L&#39;utilisation de valeurs de 8 bits (ou même de valeurs binaires dans certains cas) peut décupler la taille du réseau, bien que la précision des réponses s&#39;en trouve considérablement réduite.&lt;/p&gt;
&lt;p&gt;L&#39;élagage est une autre approche qui consiste à supprimer les connexions sans importance dans le réseau neuronal. Ce processus fonctionne à la fois pendant la formation et avec les réseaux terminés. Au-delà des simples connexions, l&#39;élagage peut supprimer des neurones ou des couches entières. Cette réduction des paramètres et des connexions permet de diminuer les besoins en mémoire.&lt;/p&gt;
&lt;p&gt;La décomposition matricielle ou tensorielle est la troisième technique courante de réduction de la taille. La décomposition d&#39;une grande matrice en un produit de trois matrices plus petites permet de réduire le nombre total de paramètres tout en maintenant la qualité. La taille du réseau peut ainsi être réduite des dizaines de fois. La décomposition tensorielle offre des résultats encore meilleurs, bien qu&#39;elle nécessite davantage d&#39;hyperparamètres.&lt;/p&gt;
&lt;p&gt;Bien que ces méthodes réduisent efficacement la taille, elles sont toutes confrontées au problème de la perte de qualité. Les modèles compressés de grande taille sont plus performants que leurs homologues plus petits non compressés, mais chaque compression risque de réduire la précision de la réponse. La distillation des connaissances représente une tentative intéressante d&#39;équilibrer la qualité et la taille.&lt;/p&gt;
&lt;h3&gt;Essayons ensemble&lt;/h3&gt;
&lt;p&gt;La distillation des connaissances s&#39;explique le mieux par l&#39;analogie entre un étudiant et un enseignant. Tandis que les étudiants apprennent, les enseignants enseignent et mettent continuellement à jour leurs connaissances. Lorsque tous deux sont confrontés à de nouvelles connaissances, l&#39;enseignant a un avantage, car il peut s&#39;appuyer sur ses vastes connaissances dans d&#39;autres domaines, alors que l&#39;étudiant ne dispose pas encore de cette base.&lt;/p&gt;
&lt;p&gt;Ce principe s&#39;applique aux réseaux neuronaux. Lorsque l&#39;on entraîne deux réseaux neuronaux du même type mais de tailles différentes sur des données identiques, le réseau le plus grand obtient généralement de meilleurs résultats. Sa plus grande capacité de &quot;connaissance&quot; lui permet d&#39;obtenir des réponses plus précises que son homologue plus petit. Cela soulève une question intéressante : pourquoi ne pas entraîner le petit réseau non seulement sur l&#39;ensemble des données, mais aussi sur les résultats plus précis du grand réseau ?&lt;/p&gt;
&lt;p&gt;Ce processus est la distillation des connaissances : une forme d&#39;apprentissage supervisé où un modèle plus petit apprend à reproduire les prédictions d&#39;un modèle plus grand. Si cette technique permet de compenser la perte de qualité due à la réduction de la taille des réseaux neuronaux, elle nécessite des ressources informatiques et un temps de formation supplémentaires.&lt;/p&gt;
&lt;h2&gt;Logiciel et logique&lt;/h2&gt;
&lt;p&gt;Les fondements théoriques étant désormais clairs, examinons le processus d&#39;un point de vue technique. Nous commencerons par les outils logiciels qui peuvent vous guider tout au long des étapes de formation et de distillation des connaissances.&lt;/p&gt;
&lt;p&gt;Python, avec la bibliothèque &lt;a href=&quot;https://pytorch.org/torchtune/stable/index.html&quot;&gt;TorchTune&lt;/a&gt; de l&#39;écosystème &lt;a href=&quot;https://pytorch.org/&quot;&gt;PyTorch&lt;/a&gt;, offre l&#39;approche la plus simple pour étudier et affiner de grands modèles de langage. Voici comment fonctionne l&#39;application :&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;Deux modèles sont chargés : un modèle complet (enseignant) et un modèle réduit (élève). Au cours de chaque itération de formation, le modèle de l&#39;enseignant génère des prédictions à haute température tandis que le modèle de l&#39;étudiant traite l&#39;ensemble de données pour faire ses propres prédictions.&lt;/p&gt;
&lt;p&gt;Les valeurs de sortie brutes (logits) des deux modèles sont évaluées à l&#39;aide d&#39;une fonction de perte (une mesure numérique de l&#39;écart d&#39;une prédiction par rapport à la valeur correcte). Des ajustements de poids sont ensuite appliqués au modèle de l&#39;élève par rétropropagation. Cela permet au petit modèle d&#39;apprendre et de reproduire les prédictions du modèle de l&#39;enseignant.&lt;/p&gt;
&lt;p&gt;Le principal fichier de configuration dans le code de l&#39;application est appelé &quot;recette&quot;. Ce fichier stocke tous les paramètres et réglages de la distillation, ce qui rend les expériences reproductibles et permet aux chercheurs de suivre l&#39;influence des différents paramètres sur le résultat final.&lt;/p&gt;
&lt;p&gt;Lors de la sélection des valeurs des paramètres et des nombres d&#39;itérations, il est essentiel de maintenir un équilibre. Un modèle trop distillé risque de perdre sa capacité à reconnaître les détails subtils et le contexte, et d&#39;adopter par défaut des réponses toutes faites. Bien qu&#39;il soit pratiquement impossible d&#39;atteindre un équilibre parfait, un suivi attentif du processus de distillation peut améliorer considérablement la qualité de prédiction des modèles de réseaux neuronaux, même les plus modestes.&lt;/p&gt;
&lt;p&gt;Il convient également de prêter attention au suivi pendant le processus de formation. Cela permettra d&#39;identifier les problèmes à temps et de les corriger rapidement. Pour ce faire, vous pouvez utiliser l&#39;outil &lt;a href=&quot;https://www.tensorflow.org/tensorboard&quot;&gt;TensorBoard&lt;/a&gt;. Il s&#39;intègre parfaitement aux projets PyTorch et vous permet d&#39;évaluer visuellement de nombreuses mesures, telles que la précision et les pertes. En outre, il vous permet de construire un graphique de modèle, de suivre l&#39;utilisation de la mémoire et le temps d&#39;exécution des opérations.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La distillation des connaissances est une méthode efficace pour optimiser les réseaux neuronaux afin d&#39;améliorer les modèles compacts. Elle donne de meilleurs résultats lorsqu&#39;il est essentiel d&#39;équilibrer les performances et la qualité des réponses.&lt;/p&gt;
&lt;p&gt;Bien que la distillation des connaissances nécessite un suivi attentif, ses résultats peuvent être remarquables. Les modèles deviennent beaucoup plus petits tout en maintenant la qualité de la prédiction, et ils fonctionnent mieux avec moins de ressources informatiques.&lt;/p&gt;
&lt;p&gt;Lorsqu&#39;elle est bien planifiée avec des paramètres appropriés, la distillation des connaissances est un outil essentiel pour créer des réseaux neuronaux compacts sans sacrifier la qualité.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/607-avantages-et-inconv-nients-du-partage-du-gpu&quot;&gt;Avantages et inconvénients du partage du GPU&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/609-nvidia-rtx-50-attentes-et-r-alit&quot;&gt;NVIDIA® RTX™ 50 : attentes et réalité&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/611-intel-habana-gaudi-2-installation-et-test&quot;&gt;Intel Habana Gaudi 2 : installation et test&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 par MetaAI : créer de la musique par description</title>
      <link>https://www.leadergpu.fr/catalog/604-audiocraft-par-metaai-cr-er-de-la-musique-par-description</link>
      <description>&lt;p&gt;Les réseaux neuronaux génératifs modernes deviennent de plus en plus intelligents. Ils écrivent des histoires, engagent des conversations avec les gens et créent des images ultra-réalistes. Aujourd&#39;hui, ils peuvent produire de simples morceaux de musique sans faire appel à des artistes professionnels. Ce futur est devenu une réalité aujourd&#39;hui. C&#39;est normal, car les harmonies et les rythmes musicaux sont ancrés dans des principes mathématiques.&lt;/p&gt;
&lt;p&gt;Meta a démontré son engagement dans le monde des logiciels libres. Ils ont mis à la disposition du public trois modèles de réseaux neuronaux qui permettent de créer des sons et de la musique à partir de descriptions textuelles :&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://musicgen.com/&quot;&gt;MusicGen&lt;/a&gt; - génère de la musique à partir d&#39;un texte.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://audiocraft.metademolab.com/audiogen.html&quot;&gt;AudioGen&lt;/a&gt; - génère de l&#39;audio à partir d&#39;un texte.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/facebookresearch/encodec&quot;&gt;EnCodec&lt;/a&gt; - compresseur audio neuronal de haute qualité.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;MusicGen a été entraîné sur 20 000 heures de musique. Vous pouvez l&#39;utiliser localement via les serveurs dédiés de LeaderGPU en tant que plateforme.&lt;/p&gt;
&lt;h2&gt;Installation standard&lt;/h2&gt;
&lt;p&gt;Mettre à jour le dépôt de cache des paquets :&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;Installer le gestionnaire de paquets Python, pip, et les bibliothèques ffmpeg :&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;Installez torch 2.0 ou une version plus récente à l&#39;aide de 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;La commande suivante installe automatiquement &lt;b translate=&quot;no&quot;&gt;audiocraft&lt;/b&gt; et toutes les dépendances nécessaires :&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;Ecrivons une application Python simple, utilisant le &lt;a href=&quot;https://huggingface.co/facebook/musicgen-large&quot;&gt;grand modèle MusicGen pré-entraîné&lt;/a&gt; avec 3.3B paramètres :&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;Exécuter l&#39;application créée :&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;Après quelques secondes, le fichier généré (0.wav) apparaît dans le répertoire.&lt;/p&gt;
&lt;h2&gt;Café Vampir 3&lt;/h2&gt;
&lt;p&gt;Cloner un dépôt de projet :&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;Ouvrez le répertoire cloné :&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;Exécutez la commande qui prépare votre système et installe tous les paquets nécessaires :&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;Ensuite, lancez le serveur Coffee Vampire 3 avec la commande suivante :&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 utilise Flask comme framework. Par défaut, il fonctionne sur localhost avec le port 5000. Si vous souhaitez un accès à distance, veuillez utiliser la fonction de redirection de port dans votre client SSH. Sinon, vous pouvez organiser une connexion VPN au serveur.&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Attention ! Il s&#39;agit d&#39;une action potentiellement dangereuse ; utilisez-la à vos propres risques :&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;Descendez jusqu&#39;à la fin et remplacez &lt;b translate=&quot;no&quot;&gt;socketio.run(app)&lt;/b&gt; par &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;Enregistrez le fichier et exécutez le serveur à l&#39;aide de la commande ci-dessus. Cela permet d&#39;accéder au serveur depuis l&#39;internet public sans aucune authentification.&lt;/p&gt;
&lt;p&gt;N&#39;oubliez pas &lt;b translate=&quot;no&quot;&gt;disable AdBlock software&lt;/b&gt;, car il peut bloquer le lecteur de musique sur le côté droit de la page web. Vous pouvez commencer par saisir l&#39;invite et confirmer en cliquant sur le bouton &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 Generation WebUI&lt;/h2&gt;
&lt;h3&gt;Étape 1. Pilotes&lt;/h3&gt;
&lt;p&gt;Mettez à jour le dépôt de cache des paquets :&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;Installer les pilotes NVIDIA® à l&#39;aide de l&#39;installateur automatique ou de notre guide &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;Installer les pilotes NVIDIA® sous 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;Redémarrer le serveur :&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;Étape 2. Docker&lt;/h3&gt;
&lt;p&gt;L&#39;étape suivante consiste à installer Docker. Installons quelques paquets qui doivent être ajoutés au dépôt Docker : &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;Téléchargez la clé GPG de Docker et stockez-la :&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;Ajouter le dépôt :&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;Installer &lt;b translate=&quot;no&quot;&gt;Docker CE&lt;/b&gt; (Community Edition) avec CLI et le runtime &lt;b translate=&quot;no&quot;&gt;containerd&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-ce docker-ce-cli containerd.io&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ajouter l&#39;utilisateur actuel au groupe docker :&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;Appliquer les modifications sans procédure de déconnexion et de connexion :&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;Étape 3. Passage du GPU&lt;/h3&gt;
&lt;p&gt;Activons le passthrough des GPU NVIDIA® dans Docker. La commande suivante lit la version actuelle du système d&#39;exploitation dans la variable distribution, que nous utiliserons à l&#39;étape suivante :&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;Téléchargez la clé GPG du dépôt NVIDIA® et stockez-la :&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;Téléchargez la liste des dépôts NVIDIA® et stockez-la pour l&#39;utiliser dans le gestionnaire de paquets APT standard :&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;Mettez à jour le dépôt de cache des paquets et installez le kit d&#39;outils GPU passthrough :&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;Redémarrer le démon Docker :&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;Étape 4. L&#39;interface Web&lt;/h3&gt;
&lt;p&gt;Télécharger l&#39;archive du référentiel :&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;Décompressez-la :&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;Ouvrez le répertoire du projet :&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;Commencer à construire l&#39;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;Exécuter le conteneur créé :&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;Vous pouvez maintenant ouvrir &lt;b translate=&quot;no&quot;&gt;http://[server_ip]:7860&lt;/b&gt;, saisir votre invite, sélectionner le modèle nécessaire et cliquer sur le bouton &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/903/original/sh_audiocraft_by_metaai_create_music_by_description_2.png?1713360865
&quot; alt=&quot;Audiocraft generated sound&quot;&gt;
&lt;p&gt;Le système télécharge automatiquement le modèle sélectionné lors de la première génération. Bon appétit !&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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.fr/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>Comment surveiller l&#39;application LangFlow</title>
      <link>https://www.leadergpu.fr/catalog/602-comment-surveiller-l-application-langflow</link>
      <description>&lt;p&gt;Dans notre article &lt;a href=&quot;https://www.leadergpu.fr/articles/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Constructeur d&#39;applications IA à code bas Langflow&lt;/a&gt;, nous avons exploré comment démarrer avec l&#39;environnement de programmation visuel de ce constructeur d&#39;applications IA à code bas. Il permet à tous, même à ceux qui n&#39;ont pas de connaissances en programmation, de créer des applications alimentées par de grands modèles de réseaux neuronaux. Il peut s&#39;agir de chatbots d&#39;IA ou d&#39;applications de traitement de documents capables d&#39;analyser et de résumer du contenu.&lt;/p&gt;
&lt;p&gt;Langflow utilise une approche par blocs de construction où les utilisateurs connectent des composants préfabriqués pour créer l&#39;application souhaitée. Cependant, deux défis majeurs se posent souvent : le dépannage lorsque les réseaux neuronaux se comportent de manière inattendue et la gestion des coûts. Les réseaux neuronaux nécessitent des ressources informatiques considérables, ce qui rend essentiel le contrôle et la prévision des dépenses d&#39;infrastructure.&lt;/p&gt;
&lt;p&gt;LangWatch répond à ces deux défis. Cet outil spécialisé aide les développeurs de Langflow à surveiller les demandes des utilisateurs, à suivre les coûts et à détecter les anomalies, par exemple lorsque les applications sont utilisées de manière non intentionnelle.&lt;/p&gt;
&lt;p&gt;Cet outil a été conçu à l&#39;origine comme un service, mais il peut être déployé sur n&#39;importe quel serveur, y compris localement. Il s&#39;intègre à la plupart des fournisseurs de LLM, qu&#39;ils soient basés sur le cloud ou sur site. Comme il s&#39;agit d&#39;un logiciel libre, LangWatch peut être adapté à presque tous les projets : ajout de nouvelles fonctionnalités ou connexion avec des systèmes internes.&lt;/p&gt;
&lt;p&gt;LangWatch vous permet de créer des alertes lorsque des indicateurs spécifiques dépassent des seuils définis. Cela vous permet de détecter rapidement les augmentations inattendues des coûts des demandes ou les délais de réponse inhabituels. Une détection précoce permet d&#39;éviter les dépenses imprévues et les attaques de service potentielles.&lt;/p&gt;
&lt;p&gt;Pour les chercheurs en réseaux neuronaux, cette application permet à la fois de surveiller et d&#39;optimiser les demandes courantes des utilisateurs. Elle fournit également des outils permettant d&#39;évaluer la qualité de la réponse du modèle et d&#39;effectuer les ajustements nécessaires.&lt;/p&gt;
&lt;h2&gt;Démarrage rapide&lt;/h2&gt;
&lt;h3&gt;Préparation du système&lt;/h3&gt;
&lt;p&gt;Comme pour Langflow, la façon la plus simple d&#39;exécuter l&#39;application est de passer par un conteneur Docker. Avant d&#39;installer LangWatch, vous devez installer Docker Engine sur votre serveur. Tout d&#39;abord, mettez à jour votre cache de paquets et les paquets vers leurs dernières versions :&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;Installez les paquets supplémentaires requis par Docker :&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;Télécharger la clé GPG pour ajouter le dépôt officiel de Docker :&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;Ajoutez le dépôt à APT en utilisant la clé que vous avez téléchargée et installée précédemment :&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;Actualiser la liste des paquets :&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;Pour s&#39;assurer que Docker sera installé à partir du dépôt nouvellement ajouté et non à partir de celui du système, vous pouvez exécuter la commande suivante :&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;Installer le moteur Docker :&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;Vérifiez que Docker a été installé avec succès et que le démon correspondant est en cours d&#39;exécution et dans l&#39;état &lt;b translate=&quot;no&quot;&gt;active (running)&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 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;Construire et exécuter&lt;/h3&gt;
&lt;p&gt;Une fois Docker Engine installé et lancé, vous pouvez télécharger le référentiel de l&#39;application LangWatch :&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;L&#39;application comprend un exemple de fichier de configuration avec des variables d&#39;environnement. Copiez ce fichier pour que l&#39;utilitaire de construction d&#39;image puisse le traiter :&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;Vous êtes maintenant prêt pour le premier lancement :&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;Le système va prendre un moment pour télécharger toutes les couches de conteneurs nécessaires à LangWatch. Une fois le téléchargement terminé, vous verrez un message de la console indiquant que l&#39;application est disponible à l&#39;adresse :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;http://[LeaderGPU_IP_address]:3000&lt;/pre&gt;
&lt;p&gt;Accédez à cette page dans votre navigateur, où vous serez invité à créer un compte utilisateur :&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;Contrairement à Langflow, l&#39;authentification est activée par défaut dans ce système. Après avoir ouvert une session, vous devrez configurer le système pour qu&#39;il recueille les données de votre serveur Langflow.&lt;/p&gt;
&lt;h2&gt;Intégration de Langflow&lt;/h2&gt;
&lt;p&gt;LangWatch a besoin d&#39;une source de données pour fonctionner. Le serveur écoute sur le port 3000 et utilise une API RESTful, qui authentifie les données entrantes grâce à une clé API générée automatiquement.&lt;/p&gt;
&lt;p&gt;Pour activer le transfert de données, vous devez définir deux variables dans les fichiers de configuration de Langflow : &lt;b translate=&quot;no&quot;&gt;LANGWATCH_ENDPOINT&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;LANGWATCH_API_KEY&lt;/b&gt;. Tout d&#39;abord, établissez une connexion SSH à votre serveur Langflow (qui devrait être hors ligne pendant ce processus).&lt;/p&gt;
&lt;p&gt;Naviguez jusqu&#39;au répertoire contenant l&#39;exemple de configuration pour 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;Ouvrez le fichier de configuration pour l&#39;éditer :&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;Dans la section &quot;environnement :&quot;, ajoutez les variables suivantes (sans crochets [] ni guillemets) :&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;Le fichier YML nécessite un formatage spécifique. Respectez ces deux règles essentielles :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Utilisez des espaces (2 ou 4) pour l&#39;indentation, jamais de tabulations.&lt;/li&gt;
    &lt;li&gt;Maintenir une structure hiérarchique correcte avec une indentation cohérente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Enregistrez le fichier avec &lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt; et quittez l&#39;éditeur avec &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;, Langflow est maintenant prêt à être lancé :&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;Après le lancement, vérifiez que tout fonctionne correctement. Créez un nouveau projet ou ouvrez un projet existant, puis lancez un dialogue via Playground. Langflow enverra automatiquement des données à LangWatch pour surveillance, que vous pourrez visualiser dans l&#39;interface web.&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;Dans la section de vérification de l&#39;intégration, une coche apparaît sur l&#39;élément &quot;Sync your first message&quot;. Cela indique que les données de Langflow sont envoyées avec succès vers LangWatch, confirmant que votre configuration est correcte. Examinons ce qui apparaît dans la section &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;La section Messages affiche les données entrées dans l&#39;application, les paramètres utilisés pour la génération de la réponse et la réponse du réseau neuronal lui-même. Vous pouvez évaluer la qualité de la réponse et utiliser divers filtres pour trier les données, même avec des centaines ou des milliers de messages.&lt;/p&gt;
&lt;p&gt;Après cette configuration initiale, explorez systématiquement les fonctionnalités de l&#39;application. Dans la section &lt;b translate=&quot;no&quot;&gt;Evaluations&lt;/b&gt;, vous pouvez configurer des algorithmes de vérification du dialogue pour la modération du dialogue ou la reconnaissance des données, tels que &lt;b translate=&quot;no&quot;&gt;PII Detection&lt;/b&gt;. Cette fonction analyse les données saisies pour détecter les informations sensibles telles que les numéros de sécurité sociale ou les numéros de téléphone.&lt;/p&gt;
&lt;p&gt;L&#39;application propose des options locales et en nuage par l&#39;intermédiaire de fournisseurs tels qu&#39;Azure ou Cloudflare. Pour utiliser les fonctions en nuage, vous devez disposer d&#39;un compte auprès de ces services, ainsi que des adresses de leurs points d&#39;extrémité et des clés API. N&#39;oubliez pas qu&#39;il s&#39;agit de fournisseurs tiers ; vérifiez donc directement le coût de leurs services.&lt;/p&gt;
&lt;p&gt;Pour les options locales, l&#39;application est dotée de fonctionnalités RAG (Retrieval-augmented generation) sophistiquées. Vous pouvez mesurer la précision et la pertinence du contenu généré par RAG et utiliser les statistiques recueillies pour optimiser le système RAG afin d&#39;obtenir des réponses plus précises de la part du réseau neuronal.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/586-photogramm-trie-avec-meshroom&quot;&gt;Photogrammétrie avec Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/588-rendu-distance-de-blender-avec-flamenco&quot;&gt;Rendu à distance de Blender avec 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>Langflow, créateur d&#39;applications d&#39;IA à code réduit</title>
      <link>https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit</link>
      <description>&lt;p&gt;Le développement de logiciels a évolué de manière spectaculaire ces dernières années. Les programmeurs modernes ont désormais accès à des centaines de langages et de cadres de programmation. Au-delà des approches impératives et déclaratives traditionnelles, une nouvelle méthode passionnante de création d&#39;applications est en train d&#39;émerger. Cette approche innovante exploite la puissance des réseaux neuronaux, ouvrant ainsi de fantastiques possibilités aux développeurs.&lt;/p&gt;
&lt;p&gt;Les gens se sont habitués aux assistants IA dans les IDE qui aident à l&#39;autocomplétion du code et aux réseaux neuronaux modernes qui génèrent facilement du code pour de simples jeux en Python. Cependant, de nouveaux outils hybrides émergent et pourraient révolutionner le paysage du développement. L&#39;un de ces outils est Langflow.&lt;/p&gt;
&lt;p&gt;Langflow a de multiples fonctions. Pour les développeurs professionnels, il offre un meilleur contrôle sur des systèmes complexes tels que les réseaux neuronaux. Pour les personnes peu familiarisées avec la programmation, il permet de créer des applications simples mais pratiques. Ces objectifs sont atteints par différents moyens, que nous allons explorer plus en détail.&lt;/p&gt;
&lt;h2&gt;Réseaux neuronaux&lt;/h2&gt;
&lt;p&gt;Le concept de réseau neuronal peut être simplifié pour les utilisateurs. Imaginez une boîte noire qui reçoit des données d&#39;entrée et des paramètres influençant le résultat final. Cette boîte traite les données d&#39;entrée à l&#39;aide d&#39;algorithmes complexes, souvent qualifiés de &quot;magiques&quot;, et produit des données de sortie qui peuvent être présentées à l&#39;utilisateur.&lt;/p&gt;
&lt;p&gt;Le fonctionnement interne de cette boîte noire varie en fonction de la conception du réseau neuronal et des données d&#39;entraînement. Il est essentiel de comprendre que les développeurs et les utilisateurs ne peuvent jamais obtenir des résultats sûrs à 100 %. Contrairement à la programmation traditionnelle où 2 + 2 est toujours égal à 4, un réseau neuronal peut donner cette réponse avec 99 % de certitude, tout en conservant une marge d&#39;erreur.&lt;/p&gt;
&lt;p&gt;Le contrôle du processus de &quot;réflexion&quot; d&#39;un réseau neuronal est indirect. Nous ne pouvons ajuster que certains paramètres, comme la &quot;température&quot;. Ce paramètre détermine le degré de créativité ou de contrainte du réseau neuronal dans son approche. Une valeur de température basse limite le réseau à une approche plus formelle et structurée des tâches et des solutions. À l&#39;inverse, des valeurs de température élevées accordent au réseau une plus grande liberté, ce qui peut l&#39;amener à s&#39;appuyer sur des faits moins fiables, voire à créer des informations fictives.&lt;/p&gt;
&lt;p&gt;Cet exemple illustre la manière dont les utilisateurs peuvent influencer le résultat final. Pour la programmation traditionnelle, cette incertitude constitue un défi important : des erreurs peuvent apparaître de manière inattendue et les résultats spécifiques deviennent imprévisibles. Cependant, cette imprévisibilité est avant tout un problème pour les ordinateurs, et non pour les humains qui peuvent s&#39;adapter à des résultats variables et les interpréter.&lt;/p&gt;
&lt;p&gt;Si les résultats d&#39;un réseau neuronal sont destinés à un être humain, la formulation spécifique utilisée pour les décrire est généralement moins importante. Compte tenu du contexte, les gens peuvent interpréter correctement divers résultats du point de vue de la machine. Alors que des concepts tels que &quot;valeur positive&quot;, &quot;résultat obtenu&quot; ou &quot;décision positive&quot; peuvent signifier à peu près la même chose pour une personne, la programmation traditionnelle aurait du mal à gérer cette flexibilité. Elle devrait tenir compte de toutes les variations possibles des réponses, ce qui est pratiquement impossible.&lt;/p&gt;
&lt;p&gt;En revanche, si la suite du traitement est confiée à un autre réseau neuronal, celui-ci peut comprendre et traiter correctement le résultat obtenu. Sur cette base, il peut alors formuler sa propre conclusion avec un certain degré de confiance, comme nous l&#39;avons mentionné plus haut.&lt;/p&gt;
&lt;h2&gt;Code bas&lt;/h2&gt;
&lt;p&gt;La plupart des langages de programmation impliquent l&#39;écriture de code. Les programmeurs créent la logique de chaque partie d&#39;une application dans leur esprit, puis la décrivent à l&#39;aide d&#39;expressions spécifiques au langage. Ce processus forme un algorithme : une séquence claire d&#39;actions menant à un résultat spécifique et prédéterminé. Il s&#39;agit d&#39;une tâche complexe qui nécessite un effort mental important et une compréhension approfondie des capacités du langage.&lt;/p&gt;
&lt;p&gt;Cependant, il n&#39;est pas nécessaire de réinventer la roue. De nombreux problèmes rencontrés par les développeurs modernes ont déjà été résolus de diverses manières. Des extraits de code pertinents peuvent souvent être &lt;a href=&quot;https://stackoverflow.com/&quot;&gt;trouvés&lt;/a&gt; sur StackOverflow. La programmation moderne peut être comparée à l&#39;assemblage d&#39;un tout à partir de pièces de différents jeux de construction. Le système Lego offre un modèle réussi, ayant standardisé différents jeux de pièces pour assurer la compatibilité.&lt;/p&gt;
&lt;p&gt;La méthode de programmation low-code suit un principe similaire. Différents éléments de code sont modifiés pour s&#39;adapter parfaitement les uns aux autres et sont présentés aux développeurs sous forme de blocs prêts à l&#39;emploi. Chaque bloc peut avoir des entrées et des sorties de données. La documentation spécifie la tâche que chaque type de bloc résout et le format dans lequel il accepte ou produit des données.&lt;/p&gt;
&lt;p&gt;En connectant ces blocs dans une séquence spécifique, les développeurs peuvent former l&#39;algorithme d&#39;une application et visualiser clairement sa logique opérationnelle. L&#39;exemple le plus connu de cette méthode de programmation est sans doute la méthode graphique de la tortue, couramment utilisée dans les établissements d&#39;enseignement pour présenter les concepts de programmation et développer la pensée algorithmique.&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;L&#39;essence de cette méthode est simple : il s&#39;agit de dessiner des images sur l&#39;écran à l&#39;aide d&#39;une tortue virtuelle qui laisse une trace en rampant sur la toile. En utilisant des blocs prêts à l&#39;emploi, tels que le déplacement d&#39;un nombre déterminé de pixels, la rotation à des angles spécifiques ou l&#39;élévation et l&#39;abaissement du stylo, les développeurs peuvent créer des programmes qui dessinent les images qu&#39;ils souhaitent. La création d&#39;applications à l&#39;aide d&#39;un constructeur à code bas est similaire aux graphiques de tortue, mais elle permet aux utilisateurs de résoudre un large éventail de problèmes, et pas seulement de dessiner sur un canevas.&lt;/p&gt;
&lt;p&gt;C&#39;est l&#39;outil de programmation Node-RED d&#39;IBM qui a le mieux mis en œuvre cette méthode. Il a été développé comme un moyen universel de garantir le fonctionnement conjoint de divers appareils, services en ligne et API. L&#39;équivalent des extraits de code étaient des nœuds de la bibliothèque standard (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;Les capacités de Node-RED peuvent être étendues en installant des modules complémentaires ou en créant des nœuds personnalisés qui exécutent des actions de données spécifiques. Les développeurs placent les nœuds de la palette sur le bureau et établissent des relations entre eux. Ce processus crée la logique de l&#39;application, la visualisation aidant à maintenir la clarté.&lt;/p&gt;
&lt;p&gt;En ajoutant les réseaux neuronaux à ce concept, on obtient un système fascinant. Au lieu de traiter les données à l&#39;aide de formules mathématiques spécifiques, vous pouvez les introduire dans un réseau neuronal et spécifier la sortie souhaitée. Bien que les données d&#39;entrée puissent varier légèrement à chaque fois, les résultats peuvent être interprétés par des humains ou d&#39;autres réseaux neuronaux.&lt;/p&gt;
&lt;h2&gt;Génération augmentée par récupération (RAG)&lt;/h2&gt;
&lt;p&gt;La précision des données dans les grands modèles linguistiques est une préoccupation urgente. Ces modèles reposent uniquement sur les connaissances acquises au cours de la formation, qui dépendent de la pertinence des ensembles de données utilisés. Par conséquent, les grands modèles linguistiques peuvent ne pas disposer de suffisamment de données pertinentes, ce qui peut conduire à des résultats erronés.&lt;/p&gt;
&lt;p&gt;Pour résoudre ce problème, des méthodes de mise à jour des données sont nécessaires. Permettre aux réseaux neuronaux d&#39;extraire le contexte de sources supplémentaires, telles que des sites web, peut améliorer de manière significative la qualité des réponses. C&#39;est précisément ainsi que fonctionne la méthode RAG (Retrieval-Augmented Generation). Les données supplémentaires sont converties en représentations vectorielles et stockées dans une base de données.&lt;/p&gt;
&lt;p&gt;En fonctionnement, les modèles de réseaux neuronaux peuvent convertir les demandes des utilisateurs en représentations vectorielles et les comparer à celles stockées dans la base de données. Lorsque des vecteurs similaires sont trouvés, les données sont extraites et utilisées pour former une réponse. Les bases de données vectorielles sont suffisamment rapides pour prendre en charge ce système en temps réel.&lt;/p&gt;
&lt;p&gt;Pour que ce système fonctionne correctement, il faut établir une interaction entre l&#39;utilisateur, le modèle de réseau neuronal, les sources de données externes et la base de données vectorielles. Langflow simplifie cette configuration grâce à sa composante visuelle - les utilisateurs construisent simplement des blocs standard et les &quot;relient&quot;, créant ainsi un chemin pour le flux de données.&lt;/p&gt;
&lt;p&gt;La première étape consiste à alimenter la base de données vectorielles avec les sources pertinentes. Il peut s&#39;agir de fichiers provenant d&#39;un ordinateur local ou de pages web provenant d&#39;Internet. Voici un exemple simple de chargement de données dans la base de données :&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;Maintenant que nous disposons d&#39;une base de données vectorielle en plus du LLM formé, nous pouvons l&#39;incorporer dans le schéma général. Lorsqu&#39;un utilisateur soumet une requête dans le chat, il forme simultanément une invite et interroge la base de données vectorielle. Si des vecteurs similaires sont trouvés, les données extraites sont analysées et ajoutées en tant que contexte à l&#39;invite formée. Le système envoie ensuite une requête au réseau neuronal et transmet la réponse reçue à l&#39;utilisateur dans le 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;Bien que l&#39;exemple mentionne des services en nuage tels qu&#39;OpenAI et AstraDB, vous pouvez utiliser n&#39;importe quel service compatible, y compris ceux déployés localement sur les serveurs LeaderGPU. Si vous ne trouvez pas l&#39;intégration dont vous avez besoin dans la liste des blocs disponibles, vous pouvez l&#39;écrire vous-même ou ajouter un bloc créé par quelqu&#39;un d&#39;autre.&lt;/p&gt;
&lt;h2&gt;Démarrage rapide&lt;/h2&gt;
&lt;h3&gt;Préparation du système&lt;/h3&gt;
&lt;p&gt;La façon la plus simple de déployer Langflow est de le faire dans un conteneur Docker. Pour configurer le serveur, commencez par installer Docker Engine. Ensuite, mettez à jour le cache de paquets et les paquets avec leurs dernières versions :&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;Installer les paquets supplémentaires requis par Docker :&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;Télécharger la clé GPG pour ajouter le dépôt officiel de Docker :&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;Ajoutez le dépôt à APT en utilisant la clé que vous avez téléchargée et installée précédemment :&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;Actualiser la liste des paquets :&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;Pour s&#39;assurer que Docker sera installé à partir du dépôt nouvellement ajouté et non à partir de celui du système, vous pouvez exécuter la commande suivante :&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;Installer le moteur Docker :&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;Vérifiez que Docker a été installé avec succès et que le démon correspondant est en cours d&#39;exécution et dans l&#39;état &lt;b translate=&quot;no&quot;&gt;active (running)&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 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;Construire et exécuter&lt;/h3&gt;
&lt;p&gt;Tout est prêt pour construire et exécuter un conteneur Docker avec Langflow. Cependant, il y a une mise en garde : au moment de la rédaction de ce guide, la dernière version (taguée v1.1.0) a une erreur et ne démarre pas. Pour éviter ce problème, nous utiliserons la version précédente, v1.0.19.post2, qui fonctionne parfaitement dès son téléchargement.&lt;/p&gt;
&lt;p&gt;L&#39;approche la plus simple consiste à télécharger le dépôt du projet depuis 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;Naviguez jusqu&#39;au répertoire contenant l&#39;exemple de configuration de déploiement :&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;Vous devez maintenant faire deux choses. Tout d&#39;abord, modifiez la balise release afin qu&#39;une version fonctionnelle (au moment de la rédaction de ces instructions) soit construite. Deuxièmement, ajoutez une autorisation simple afin que personne ne puisse utiliser le système sans connaître le login et le mot de passe.&lt;/p&gt;
&lt;p&gt;Ouvrez le fichier de configuration :&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;au lieu de la ligne suivante :&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;spécifier la version au lieu de la balise &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;Vous devez également ajouter trois variables à la section &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;La première variable désactive l&#39;accès à l&#39;interface web sans autorisation. La deuxième ajoute le nom d&#39;utilisateur qui recevra les droits d&#39;administrateur du système. La troisième ajoute le mot de passe correspondant.&lt;/p&gt;
&lt;p&gt;Si vous prévoyez de stocker le fichier &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt; dans un système de contrôle de version, évitez d&#39;écrire le mot de passe directement dans ce fichier. Créez plutôt un fichier distinct avec une extension &lt;b translate=&quot;no&quot;&gt;.env&lt;/b&gt; dans le même répertoire et stockez-y la valeur de la variable.&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;Dans le fichier &lt;b translate=&quot;no&quot;&gt;docker-compose.yml&lt;/b&gt;, vous pouvez désormais faire référence à une variable au lieu de spécifier directement un mot de passe :&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;Pour éviter d&#39;exposer accidentellement le fichier &lt;b translate=&quot;no&quot;&gt;*.env&lt;/b&gt; sur GitHub, n&#39;oubliez pas de l&#39;ajouter à &lt;b translate=&quot;no&quot;&gt;.gitignore&lt;/b&gt;. Votre mot de passe sera ainsi raisonnablement à l&#39;abri d&#39;un accès non désiré.&lt;/p&gt;
&lt;p&gt;Il ne reste plus qu&#39;à construire notre conteneur et à l&#39;exécuter :&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;Ouvrez la page web à &lt;b translate=&quot;no&quot;&gt;http://[LeaderGPU_IP_address]:7860&lt;/b&gt;, et vous verrez le formulaire d&#39;autorisation :&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;Une fois que vous avez saisi votre login et votre mot de passe, le système vous donne accès à l&#39;interface web où vous pouvez créer vos propres applications. Pour des conseils plus approfondis, nous vous suggérons de consulter &lt;a href=&quot;https://docs.langflow.org/&quot;&gt;la documentation officielle&lt;/a&gt;. Elle fournit des détails sur diverses variables d&#39;environnement qui permettent de personnaliser facilement le système en fonction de vos besoins.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/602-comment-surveiller-l-application-langflow&quot;&gt;Comment surveiller l&#39;application LangFlow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/586-photogramm-trie-avec-meshroom&quot;&gt;Photogrammétrie avec Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/588-rendu-distance-de-blender-avec-flamenco&quot;&gt;Rendu à distance de Blender avec 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.fr/catalog/598-easy-diffusion-ui</link>
      <description>&lt;p&gt;Easy Diffusion UI est un logiciel open source disponible en téléchargement sur GitHub. Voici comment l&#39;installer sur Ubuntu 22.04 LTS. Si vous venez de louer un serveur, installez les pilotes GPU et étendez votre répertoire personnel. Ensuite, téléchargez la dernière version d&#39;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;Décompressez l&#39;archive ZIP téléchargée :&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;Changer de répertoire pour 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;Démarrer l&#39;installation :&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;Il s&#39;agit d&#39;une collection de scripts qui télécharge et installe automatiquement tous les composants nécessaires. Il télécharge également le modèle standard de diffusion stable au format SafeTensors. Une fois tous les téléchargements et installations terminés, l&#39;interface utilisateur d&#39;Easy Diffusion se lancera automatiquement.&lt;/p&gt;
&lt;h2&gt;Utilisation de&lt;/h2&gt;
&lt;p&gt;L&#39;article précédent, &lt;a href=&quot;https://www.leadergpu.fr/catalog/565-stable-diffusion-webui&quot;&gt;Stable Diffusion WebUI&lt;/a&gt;, décrit une méthode pour accepter les connexions depuis l&#39;internet public et fournit une autorisation simple de login et de mot de passe. Dans le cas présent, nous souhaitons démontrer une autre méthode universelle pour transférer des ports par le biais d&#39;une connexion SSH. Nous utilisons PuTTY pour établir une connexion sécurisée avec le serveur distant. Vous trouverez plus d&#39;informations à ce sujet dans notre guide &lt;a href=&quot;https://www.leadergpu.fr/articles/488-connectez-vous-un-serveur-linux&quot;&gt;Se connecter à un serveur Linux&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour choisir les ports à transférer, ouvrez &lt;b translate=&quot;no&quot;&gt;Connection &gt; SSH &gt; Tunnels&lt;/b&gt; dans l&#39;arbre d&#39;options de gauche. Tapez &lt;b translate=&quot;no&quot;&gt;9000&lt;/b&gt; dans le champ &lt;b translate=&quot;no&quot;&gt;Source Port&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;127.0.0.1:9000&lt;/b&gt; dans le champ &lt;b translate=&quot;no&quot;&gt;Destination&lt;/b&gt;. Cliquez ensuite sur le bouton &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;Vous pouvez ensuite revenir à &lt;b translate=&quot;no&quot;&gt;Session&lt;/b&gt; et l&#39;enregistrer pour une utilisation ultérieure. Connectez-vous au serveur distant comme d&#39;habitude. Désormais, toutes les données que vous envoyez ou recevez sur le port 9000 de l&#39;adresse de bouclage 127.0.0.1 seront redirigées vers le serveur distant. Cette méthode crée un tunnel virtuel sécurisé qui existe aussi longtemps que la connexion.&lt;/p&gt;
&lt;p&gt;Une fois que Easy Diffusion UI démarre et que le transfert de port est activé, vous pouvez ouvrir un navigateur web et naviguer jusqu&#39;à l&#39;adresse &lt;a href=&quot;http://127.0.0.1:9000&quot;&gt;http://127.0.0.1:9000.&lt;/a&gt; Nous vous recommandons de télécharger et d&#39;installer des modèles personnalisés, comme décrit dans cet article, plutôt que de vous fier uniquement au modèle standard pour générer des images. N&#39;oubliez pas d&#39;augmenter le nombre d&#39;étapes d&#39;inférence et d&#39;ajuster la résolution d&#39;image souhaitée (marquée par des astérisques).&lt;/p&gt;
&lt;p&gt;L&#39;un des principaux avantages de l&#39;interface utilisateur d&#39;Easy Diffusion est sa prise en charge de plusieurs GPU. Lorsque vous souhaitez créer un lot d&#39;images, vous pouvez choisir le nombre d&#39;images qui seront créées en parallèle. Par exemple, si vous avez une configuration à double GPU :&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;Vous pouvez afficher la charge du GPU pendant le processus de génération d&#39;images. Établissez une autre connexion SSH et exécutez une seule commande :&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;Easy Diffusion UI simplifie également la création d&#39;invites en fournissant de nombreux exemples de modificateurs d&#39;image. Vous pouvez les mélanger pour obtenir des résultats plus précis :&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;C&#39;est une bonne idée d&#39;explorer &lt;a href=&quot;https://openart.ai/promptbook&quot;&gt;PromptBook d&#39;OpenArt&lt;/a&gt;. Ce guide peut considérablement améliorer vos compétences en matière de création d&#39;invites. Avec l&#39;interface Easy Diffusion, une fois l&#39;image générée, vous pouvez la télécharger, l&#39;utiliser comme exemple pour générer l&#39;image suivante ou la modifier en un seul clic :&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;L&#39;utilisation la plus courante du bouton &lt;b translate=&quot;no&quot;&gt;Upscale&lt;/b&gt; consiste à augmenter la résolution d&#39;une image. Le réseau neuronal génératif utilise l&#39;image originale comme base et ajoute des pixels supplémentaires, interpolant ainsi l&#39;image source à la taille souhaitée.&lt;/p&gt;
&lt;p&gt;Lors de la génération de visages, des problèmes peuvent survenir, tels que des yeux mal alignés, des tailles disproportionnées ou des parties mal formées. Heureusement, ces problèmes peuvent être résolus à l&#39;aide du bouton &lt;b translate=&quot;no&quot;&gt;Fix Faces&lt;/b&gt;. En outre, des invites négatives peuvent être utilisées pour empêcher la génération de visages incorrects.&lt;/p&gt;
&lt;h2&gt;Désinstaller&lt;/h2&gt;
&lt;p&gt;Tous les fichiers, scripts, bibliothèques et modèles sont stockés dans un seul répertoire. Si vous souhaitez supprimer Easy Diffusion UI de votre serveur, il vous suffit d&#39;effacer ce répertoire ainsi que tout son contenu :&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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/catalog/584-open-webui-tout-en-un&quot;&gt;Open WebUI : Tout en un&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/590-fooocus-repenser-le-sd-et-le-mj&quot;&gt;Fooocus : Repenser le SD et le 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.fr/catalog/597-stable-video-diffusion</link>
      <description>&lt;p&gt;Les réseaux neuronaux génératifs peuvent créer différents types de contenu. Stable Diffusion a été créé pour générer des images à partir d&#39;une description textuelle. Cependant, il peut également être utilisé pour créer de la musique, des sons et même des vidéos. Aujourd&#39;hui, nous allons vous montrer comment créer de courtes vidéos à partir d&#39;une seule image en utilisant Stable Diffusion avec WebUI et ComfyUI.&lt;/p&gt;
&lt;h2&gt;Installer Stable Diffusion&lt;/h2&gt;
&lt;p&gt;Commençons par installer Stable Diffusion en suivant notre &lt;a href=&quot;https://www.leadergpu.com/articles/506-stable-diffusion-webui&quot;&gt;guide pas à pas&lt;/a&gt;. Après l&#39;installation, veuillez interrompre l&#39;exécution du script &lt;b translate=&quot;no&quot;&gt;webui.sh&lt;/b&gt; en appuyant sur Ctrl + C et fermer la connexion SSH. Le système ne vous permet pas d&#39;installer des extensions avec les options --listen (--share) activées. Cela signifie que vous devez mettre en place une redirection de port (7860 et 8189) de votre machine locale vers le serveur distant. Le premier port est nécessaire pour WebUI et le second pour ComfyUI.&lt;/p&gt;
&lt;p&gt;Par exemple, dans PuTTY, vous devez ouvrir &lt;b translate=&quot;no&quot;&gt;Connection &gt;&gt; SSH &gt;&gt; Tunnels&lt;/b&gt; et ajouter deux nouveaux ports transférés comme le montre la capture d&#39;écran suivante :&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;Maintenant, vous pouvez vous reconnecter au serveur distant et exécuter ./webui.sh à nouveau.&lt;/p&gt;
&lt;p&gt;Ouvrez cette URL dans votre navigateur :&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;Naviguez jusqu&#39;à &lt;b translate=&quot;no&quot;&gt;Extensions &gt;&gt; Available&lt;/b&gt;, puis cliquez sur le bouton &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;Le système téléchargera le fichier JSON avec toutes les extensions disponibles. Tapez &lt;b translate=&quot;no&quot;&gt;ComfyUI&lt;/b&gt; dans le champ de recherche et cliquez sur le bouton &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;La page web sera rechargée et vous obtiendrez un nouvel onglet &lt;b translate=&quot;no&quot;&gt;ComfyUI&lt;/b&gt; dans le panneau principal. Allez-y et cliquez sur &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;Lorsque l&#39;installation est terminée, interrompez à nouveau l&#39;exécution du script webui.sh en appuyant sur &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt;.&lt;/p&gt;
&lt;h2&gt;Installer le modèle de diffusion vidéo stable&lt;/h2&gt;
&lt;p&gt;Ouvrez le répertoire du modèle :&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;Télécharger le modèle complet de diffusion vidéo stable :&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;Retour au répertoire d&#39;origine :&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;Et relancez le service Stable Diffusion :&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;Téléchargez l&#39;&lt;a href=&quot;https://github.com/enikolair/comfyui-workflow-svd/blob/main/workflow.json&quot;&gt;exemple de&lt;/a&gt; workflow de diffusion vidéo stable au format JSON. Effacez le flux de travail par défaut de ComfyUI en appuyant sur &lt;b translate=&quot;no&quot;&gt;Clear&lt;/b&gt;, puis &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt; l&#39;exemple téléchargé :&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;Assurez-vous que vous avez sélectionné le bon modèle dans le nœud &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;Cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;choose file to upload&lt;/b&gt; dans le nœud &lt;b translate=&quot;no&quot;&gt;Load Image&lt;/b&gt; et sélectionnez une image unique que le réseau neuronal génératif transformera en vidéo :&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;Essayez de générer une vidéo avec tous les paramètres par défaut en cliquant sur le bouton &lt;b translate=&quot;no&quot;&gt;Queue Prompt&lt;/b&gt;:&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;Une fois le processus terminé, vous obtiendrez votre vidéo au format WEBP dans le nœud &lt;b translate=&quot;no&quot;&gt;SaveAnimatedWEBP&lt;/b&gt;. Cliquez avec le bouton droit de la souris sur la vidéo générée et choisissez &lt;b translate=&quot;no&quot;&gt;Save Image&lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;Voici le &lt;a href=&quot;https://assets.getwildcard.com/system/images/imgs/000/000/963/original/sh_stable_video_diffusion_10.gif?1714024668&quot;&gt;résultat final GIF&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Résolution des problèmes&lt;/h2&gt;
&lt;p&gt;Si vous obtenez un message d&#39;erreur : &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; veuillez suivre les étapes suivantes :&lt;/p&gt;
&lt;p&gt;Renommez le répertoire utils en 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;Modifier &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;Remplacer cette ligne :&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;par :&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;Sauvegardez le fichier (&lt;b translate=&quot;no&quot;&gt;Ctrl + O&lt;/b&gt;) et quittez l&#39;éditeur (&lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;). Editez ensuite &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;Remplacez cette ligne :&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;par :&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;Sauvegardez le fichier, quittez l&#39;éditeur et relancez le service de diffusion stable :&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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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.fr/catalog/604-audiocraft-par-metaai-cr-er-de-la-musique-par-description&quot;&gt;AudioCraft par MetaAI : créer de la musique par description&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 pour Windows</title>
      <link>https://www.leadergpu.fr/catalog/596-pytorch-pour-windows</link>
      <description>&lt;p&gt;Avant de commencer à installer PyTorch, vous devez installer l&#39;interpréteur Python et Microsoft Visual C++ Redistributable. Ouvrez un navigateur web et accédez à la &lt;a href=&quot;https://www.python.org/downloads/windows/&quot;&gt;page de téléchargement de&lt;/a&gt; Python. Trouvez la dernière version de Python 3 et cliquez sur le lien :&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;Faites ensuite défiler la page et cliquez sur &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;Ouvrez le fichier téléchargé pour procéder à l&#39;installation :&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;Cochez la case &lt;b translate=&quot;no&quot;&gt;Add python.exe to PATH&lt;/b&gt; et cliquez sur &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;Attendez une minute pour que le processus d&#39;installation se termine :&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;Vous pouvez optionnellement &lt;b translate=&quot;no&quot;&gt;Disable path length limit&lt;/b&gt; si vous prévoyez d&#39;utiliser des noms longs qui pourraient dépasser les limites de &lt;b translate=&quot;no&quot;&gt;MAX_PATH&lt;/b&gt;:&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;Installer MS Visual C++&lt;/h2&gt;
&lt;p&gt;Ensuite, téléchargez Microsoft Visual C++ Redistributable en utilisant &lt;a href=&quot;https://aka.ms/vs/16/release/vc_redist.x64.exe&quot;&gt;ce lien&lt;/a&gt; et cliquez sur le programme d&#39;installation :&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;Vous devez cocher la case &lt;b translate=&quot;no&quot;&gt;I agree to the license terms and conditions&lt;/b&gt; et cliquer sur le bouton &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/835/original/sh_pytorch_for_windows_8.png?1712315044&quot; alt=&quot;Visual C++ accept EULA&quot;&gt;
&lt;p&gt;Après quelques secondes, ce logiciel sera installé et vous pourrez &lt;b translate=&quot;no&quot;&gt;Close&lt;/b&gt; l&#39;installer :&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;Maintenant, tout est prêt pour l&#39;installation de PyTorch. Cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Start&lt;/b&gt; et tapez &lt;b translate=&quot;no&quot;&gt;cmd&lt;/b&gt; sur le clavier. Faites un clic droit sur &lt;b translate=&quot;no&quot;&gt;Command Prompt&lt;/b&gt; et sélectionnez &lt;b translate=&quot;no&quot;&gt;Run as administrator&lt;/b&gt; dans le menu contextuel :&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;Installer PyTorch&lt;/h2&gt;
&lt;p&gt;Exécutez la commande suivante :&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;Si vous souhaitez installer une version spécifique de PyTorch, vous pouvez la spécifier lors de l&#39;installation :&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;Une fois l&#39;installation terminée, vérifions que PyTorch fonctionne correctement. Exécutez la commande suivante pour ouvrir l&#39;interpréteur Python :&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;Tapez ces deux chaînes de caractères, en terminant votre saisie par la touche &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;Si vous obtenez un résultat comme celui-ci, cela signifie que PyTorch a été installé correctement :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;2.0.1+cu117&lt;/pre&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/595-pytorch-pour-linux&quot;&gt;PyTorch pour Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/581-privategpt-l-ia-pour-les-documents&quot;&gt;PrivateGPT : L&#39;IA pour les documents&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un&quot;&gt;Open WebUI : Tout en un&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 pour Linux</title>
      <link>https://www.leadergpu.fr/catalog/595-pytorch-pour-linux</link>
      <description>&lt;p&gt;Les distributions Linux modernes dépendent fortement de la version installée de Python. Par conséquent, avant d&#39;installer PyTorch, nous vous recommandons de créer un environnement virtuel à l&#39;aide de notre guide pas à pas sur &lt;a href=&quot;https://www.leadergpu.fr/articles/510-utilitaires-syst-me-linux&quot;&gt;les utilitaires du système Linux&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Activez l&#39;environnement virtuel créé et procédez à la mise à niveau par pip3 :&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;Démarrer l&#39;installation de PyTorch :&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;Si vous souhaitez installer une version spécifique de PyTorch, tapez simplement le numéro de version requis :&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;Lorsque l&#39;installation est terminée, vérifions que PyTorch a été installé correctement. Ouvrez l&#39;interpréteur Python :&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;Tapez ces deux chaînes de caractères, en terminant votre saisie par la touche Entrée :&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;Si vous obtenez un résultat comme celui-ci, cela signifie que PyTorch a été installé correctement :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;2.0.1+cu117&lt;/pre&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/596-pytorch-pour-windows&quot;&gt;PyTorch pour Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/601-langflow-cr-ateur-d-applications-d-ia-code-r-duit&quot;&gt;Langflow, créateur d&#39;applications d&#39;IA à code réduit&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/604-audiocraft-par-metaai-cr-er-de-la-musique-par-description&quot;&gt;AudioCraft par MetaAI : créer de la musique par description&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.fr/catalog/594-stable-diffusion-riffusion</link>
      <description>&lt;p&gt;Dans nos articles précédents, nous avons exploré les capacités fascinantes de la diffusion stable pour générer des images captivantes. Cependant, il est important de noter que ce puissant réseau neuronal génératif a encore plus à offrir.&lt;/p&gt;
&lt;p&gt;Riffusion est un modèle de diffusion stable pour la création et l&#39;édition de musique. Avec Riffusion, vous pouvez générer un spectrogramme d&#39;un segment musical désiré et le transformer sans effort en un extrait musical. Installons Riffusion sur un serveur LeaderGPU et essayons-le en action.&lt;/p&gt;
&lt;h2&gt;Conditions préalables&lt;/h2&gt;
&lt;p&gt;Commencez par mettre à jour le dépôt de cache des paquets et les paquets installés :&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;N&#39;oubliez pas d&#39;installer les pilotes NVIDIA® à l&#39;aide de la commande &lt;b translate=&quot;no&quot;&gt;autoinstall&lt;/b&gt; ou manuellement, en suivant notre guide &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;étape par étape :&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;Redémarrez le serveur :&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;Pour créer un environnement virtuel, les développeurs suggèrent d&#39;utiliser un outil appelé Anaconda. Vous pouvez également utiliser venv, dont nous avons parlé dans le tutoriel sur les utilitaires du système Linux. Téléchargez le script d&#39;installation d&#39;Anaconda à l&#39;aide de 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;Rendez-le exécutable :&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;et l&#39;exécuter :&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;Répondez OUI à toutes les questions, sauf à la dernière (installer Microsoft VSCode). Ensuite, reconnectez-vous à la console SSH et créez un nouvel environnement virtuel avec 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;Activez le nouvel environnement virtuel :&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;Si vous souhaitez utiliser des formats musicaux autres que wav, il est nécessaire d&#39;installer également le jeu de bibliothèques FFmpeg :&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;Installer Riffusion&lt;/h2&gt;
&lt;p&gt;Clonez le dépôt Riffusion :&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;Ouvrir le répertoire téléchargé :&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;Effectuons quelques modifications dans le fichier d&#39;exigences. Cela permet d&#39;éviter les erreurs de compatibilité avec 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;Trouver et corriger les versions des paquets :&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;Enregistrez les modifications et poursuivez la préparation de l&#39;environnement virtuel. La commande suivante installe tous les paquets nécessaires :&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;Enfin, vous pouvez ouvrir une &quot;aire de jeu&quot;. Il s&#39;agit d&#39;une interface web simple qui vous permet d&#39;en savoir plus sur les fonctionnalités de 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;Ouvrez votre navigateur préféré et entrez l&#39;adresse &lt;b translate=&quot;no&quot;&gt;http://[SERVER_IP]:8501/&lt;/b&gt;&lt;/p&gt;
&lt;h2&gt;Tester une aire de jeux&lt;/h2&gt;
&lt;p&gt;Vous pouvez maintenant créer de la musique à l&#39;aide d&#39;invites textuelles et en modifiant les autres paramètres :&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;Vous pouvez également faire des choses délicates, comme diviser l&#39;audio en composants distincts. Par exemple, vous pouvez extraire la voix de Bohemian rhapsody de Queen :&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;N&#39;oubliez pas qu&#39;il ne s&#39;agit là que d&#39;un exemple de la manière dont Riffusion peut être utilisé. En créant votre propre application, vous pouvez obtenir des résultats bien plus captivants. Les puissants serveurs de LeaderGPU se chargeront des calculs.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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.fr/catalog/604-audiocraft-par-metaai-cr-er-de-la-musique-par-description&quot;&gt;AudioCraft par MetaAI : créer de la musique par description&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: Générer des visages reproductibles</title>
      <link>https://www.leadergpu.fr/catalog/593-stable-diffusion-g-n-rer-des-visages-reproductibles</link>
      <description>&lt;p&gt;La répétabilité est l&#39;aspect le plus important lors de la création de contenu graphique à l&#39;aide de réseaux neuronaux génératifs. Cela est vrai quel que soit le type de contenu créé, qu&#39;il s&#39;agisse d&#39;un personnage de cinéma ou de jeu, d&#39;un paysage ou d&#39;un environnement scénique. Le problème principal peut être formulé comme suit : &quot;Comment puis-je répéter mon résultat ? Chaque fois que vous commencez à générer des images avec les mêmes invites positives et négatives, vous obtiendrez des résultats différents. Parfois, les différences sont mineures et acceptables, mais dans la plupart des cas, elles peuvent poser un problème.&lt;/p&gt;
&lt;p&gt;La diffusion stable est apprise sur un vaste ensemble de données issues du monde réel, ce qui explique pourquoi la répétabilité n&#39;est pas un point fort de ce modèle de réseau neuronal. Toutefois, cette règle ne s&#39;applique pas aux photos de célébrités. Ces photos sont beaucoup plus fréquentes dans le monde réel et, par conséquent, dans l&#39;ensemble de données sur lequel Stable Diffusion a été entraîné. Vous pouvez utiliser ces photos comme une &quot;constante&quot; ou un &quot;point de départ&quot; dans le processus de génération.&lt;/p&gt;
&lt;h2&gt;Méthode 1. &quot;Secoué, pas remué&quot;&lt;/h2&gt;
&lt;p&gt;Bien entendu, il n&#39;est pas nécessaire de créer uniquement des images de célébrités, mais vous pouvez utiliser plusieurs invites pertinentes pour obtenir des résultats plus ou moins cohérents. Par exemple, nous pouvons prendre deux chanteuses grecques célèbres : Elena Paparizou et Marina Satti, et obtenir des résultats reproductibles :&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;Realistic Vision 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;Cela fonctionne avec n&#39;importe quelle célébrité, car Stable Diffusion a essayé de reproduire les traits les plus saillants du visage. Ici, nous utilisons le même modèle et &quot;secouons&quot; deux stars hollywoodiennes (Dwayne Johnson et Danny Trejo) en un nouveau personnage synthétique.&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;Chaque fois que vous mélangez les mêmes célébrités, vous obtenez des résultats similaires. Examinons une autre méthode pour générer des personnages reproductibles.&lt;/p&gt;
&lt;h2&gt;Méthode 2. Ancre de nom&lt;/h2&gt;
&lt;p&gt;Les célébrités sont un bon début, mais examinons d&#39;autres méthodes pour obtenir des résultats reproductibles. La réponse est très simple : nous pouvons utiliser plusieurs noms humains. Chaque nation possède des noms uniques, liés à des caractéristiques linguistiques. Par exemple, le nom grec Kostas peut se traduire par &quot;travail&quot; ou &quot;effort&quot;, tandis que Nikos signifie &quot;Victoire du peuple&quot;. Ces deux noms créent une image unique de la personne générée, ce qui aide les modèles de réseaux neuronaux à comprendre nos objectifs de création.&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;Générons de nombreuses images (80-100) pour la création ultérieure d&#39;ensembles de données. L&#39;invite principale a été choisie pour fournir des images pratiques qui peuvent être facilement éliminées de l&#39;arrière-plan. Les invites négatives nous évitent d&#39;inclure dans l&#39;ensemble de données des images aléatoires présentant des distorsions, ainsi que des images de femmes.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Conseil : si vous recevez des images très différentes les unes des autres, essayez de modifier le paramètre CFG Scale de 7,5 à 15. Cela forcera le réseau neuronal à suivre les invites de manière plus formelle.&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;Vous pouvez sélectionner vos propres noms uniques à l&#39;aide d&#39;un générateur de noms simple, comme &lt;a href=&quot;https://www.behindthename.com/names/list&quot;&gt;Behind the Name&lt;/a&gt;. Vous pouvez également utiliser la fonction ControlNet pour obtenir un meilleur contrôle.&lt;/p&gt;
&lt;h2&gt;Méthode 3. Enseigner l&#39;apparence&lt;/h2&gt;
&lt;p&gt;Nous ne pouvons pas influencer directement le résultat final, mais nous observons que certains tokens (tels que les tokens d&#39;images de célébrités) ont plus de poids que d&#39;autres. Cela signifie que nous pouvons créer notre jeton &quot;célébrité&quot; conditionnel en créant une invite appropriée pour ce jeton et en entraînant le modèle sur ce jeton. C&#39;est ainsi que fonctionne LoRA (Low-Rank Adaptation of Large Language Models). Vous pouvez utiliser &lt;a href=&quot;https://www.leadergpu.fr/articles/592-stable-diffusion-lora-selfie&quot;&gt;notre guide étape par étape&lt;/a&gt; pour entraîner votre propre modèle LoRA sur la base d&#39;un ensemble de données créé par vos soins.&lt;/p&gt;
&lt;p&gt;Après avoir supprimé l&#39;arrière-plan, nous obtenons des portraits clairs et les utilisons pour créer un modèle LoRA spécifique. Ce modèle permet de reproduire un visage avec quelques changements mineurs :&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;Maintenant, nous pouvons générer ce personnage dans différents lieux, créer des histoires et le placer dans différents rôles : du jardinier à l&#39;homme d&#39;affaires. Son visage sera toujours reconnaissable et reproductible :&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;Cette méthode n&#39;est pas idéale, mais elle fonctionne parfaitement dans diverses situations. Vous n&#39;avez pas besoin de préparer un ensemble de données à partir d&#39;une personne réelle, et il peut être généré à distance :&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;Vous pouvez tenter de créer un tel personnage virtuel vous-même, sans l&#39;aide d&#39;un designer professionnel ou d&#39;un spécialiste de la modélisation 3D. Tout ce dont vous avez besoin, ce sont des GPU rapides, que vous pouvez trouver dans les serveurs dédiés de &lt;a href=&quot;https://www.leadergpu.fr/&quot;&gt;LeaderGPU&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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.fr/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.fr/catalog/592-stable-diffusion-lora-selfie</link>
      <description>&lt;p&gt;Vous pouvez créer votre premier ensemble de données à l&#39;aide d&#39;un appareil photo simple et d&#39;un arrière-plan relativement uniforme, tel qu&#39;un mur blanc ou un rideau occultant monotone. Pour un échantillon de données, j&#39;ai utilisé un appareil photo sans miroir Olympus OM-D EM5 Mark II avec des objectifs 14-42. Cet appareil photo peut être commandé à distance à partir de n&#39;importe quel smartphone et dispose d&#39;un mode de prise de vue en continu très rapide.&lt;/p&gt;
&lt;p&gt;J&#39;ai monté l&#39;appareil photo sur un trépied et j&#39;ai réglé la priorité de mise au point sur le visage. Ensuite, j&#39;ai sélectionné le mode dans lequel l&#39;appareil photo capture 10 images consécutives toutes les 3 secondes et j&#39;ai lancé le processus. Pendant la prise de vue, j&#39;ai lentement tourné la tête dans la direction sélectionnée et j&#39;ai changé de direction toutes les 10 images :&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;Le résultat était d&#39;environ 100 images avec un arrière-plan monotone :&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;L&#39;étape suivante consiste à supprimer l&#39;arrière-plan et à laisser le portrait sur un fond blanc.&lt;/p&gt;
&lt;h2&gt;Supprimer l&#39;arrière-plan&lt;/h2&gt;
&lt;p&gt;Vous pouvez utiliser la fonction standard d&#39;Adobe Photoshop &lt;b translate=&quot;no&quot;&gt;Remove background&lt;/b&gt; et le traitement par lots. Stockons les actions que nous voulons appliquer à chaque image d&#39;un ensemble de données. Ouvrez une image, cliquez sur l&#39;icône du triangle, puis sur le symbole &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt;:&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;Saisissez le nom de la nouvelle action, par exemple, &lt;b translate=&quot;no&quot;&gt;Remove Background&lt;/b&gt; et cliquez sur &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;Dans l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Layers&lt;/b&gt;, trouvez le symbole du cadenas et cliquez dessus :&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;Cliquez ensuite sur le bouton &lt;b translate=&quot;no&quot;&gt;Remove background&lt;/b&gt; dans le panneau flottant :&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;Cliquez avec le bouton droit de la souris sur &lt;b translate=&quot;no&quot;&gt;Layer 0&lt;/b&gt; et sélectionnez &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;Toutes nos actions ont été enregistrées. Arrêtons ce processus :&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;Vous pouvez maintenant fermer le fichier ouvert sans enregistrer les modifications et sélectionner &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;Sélectionnez les répertoires d&#39;entrée et de sortie, choisissez l&#39;action &lt;b translate=&quot;no&quot;&gt;Remove Background&lt;/b&gt; créée à l&#39;étape 4 et cliquez sur le bouton &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;Soyez patient. Adobe Photoshop ouvrira chaque image dans le répertoire sélectionné, répétera les actions enregistrées (désactiver le verrouillage des calques, supprimer l&#39;arrière-plan, aplatir l&#39;image) et les enregistrera dans un autre répertoire sélectionné. Ce processus peut prendre quelques minutes, en fonction du nombre d&#39;images.&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;Lorsque le processus est terminé, vous pouvez passer à l&#39;étape suivante.&lt;/p&gt;
&lt;h2&gt;Téléchargement sur le serveur&lt;/h2&gt;
&lt;p&gt;Utilisez l&#39;un des guides suivants (adaptés au système d&#39;exploitation de votre PC) pour télécharger le répertoire &lt;b translate=&quot;no&quot;&gt;dataset&lt;/b&gt; sur le serveur distant. Par exemple, placez-le dans le répertoire d&#39;accueil de l&#39;utilisateur par défaut, &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.fr/articles/494-change-de-fichiers-depuis-linux&quot;&gt;Échange de fichiers à partir de Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/495-change-de-fichiers-depuis-windows&quot;&gt;Échange de fichiers depuis Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/496-change-de-fichiers-depuis-macos&quot;&gt;Échange de fichiers à partir de macOS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Pré-installation&lt;/h2&gt;
&lt;p&gt;Mise à jour des paquets système existants :&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;Installer deux paquets supplémentaires :&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;Installons la version 11.8 de la boîte à outils CUDA®. Téléchargez le fichier pin spécifique :&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;La commande suivante place le fichier téléchargé dans le répertoire système, qui est contrôlé par le gestionnaire de paquets &lt;b translate=&quot;no&quot;&gt;apt&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 mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;L&#39;étape suivante consiste à télécharger le référentiel CUDA® principal :&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;Ensuite, procédez à l&#39;installation du paquet à l&#39;aide de l&#39;utilitaire standard &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;Copiez le trousseau de clés GPG dans le répertoire système. Il pourra ainsi être utilisé par les utilitaires du système d&#39;exploitation, y compris le gestionnaire de paquets apt :&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;Mettre à jour les dépôts de cache du système :&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;Installer la boîte à outils CUDA® à l&#39;aide d&#39;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;Ajoutez CUDA® à PATH. Ouvrez le shell bash 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;Ajoutez les lignes suivantes à la fin du fichier :&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;Enregistrez le fichier et redémarrez le serveur :&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;Installer l&#39;entraîneur&lt;/h2&gt;
&lt;p&gt;Copier le dépôt du projet Kohya sur le serveur :&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;Ouvrir le répertoire téléchargé :&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;Rendez le script d&#39;installation exécutable :&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;Exécuter le script :&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;Vous recevrez un message d&#39;avertissement de l&#39;utilitaire d&#39;accélération. Résolvons le problème. Activez l&#39;environnement virtuel du projet :&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;Installez le paquetage manquant :&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;Et configurez manuellement l&#39;utilitaire d&#39;accélération :&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;Attention, l&#39;activation d&#39;un nombre impair de CPU provoquera une erreur. Par exemple, si j&#39;ai 5 GPU, seuls 4 peuvent être utilisés avec ce logiciel. Sinon, une erreur se produira au démarrage du processus. Vous pouvez immédiatement vérifier la nouvelle configuration de l&#39;utilitaire en appelant un test par défaut :&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;Si tout va bien, vous recevrez un message comme celui-ci :&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;Maintenant, vous pouvez initier le serveur public du formateur avec l&#39;&lt;a href=&quot;https://www.gradio.app/&quot;&gt;interface graphique de Gradio&lt;/a&gt; et une simple authentification par login/mot de passe (changez l&#39;utilisateur/mot de passe par le vôtre) :&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;Vous recevrez deux chaînes de caractères :&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;Ouvrez votre navigateur web et entrez l&#39;URL publique dans la barre d&#39;adresse. Saisissez votre nom d&#39;utilisateur et votre mot de passe dans les champs appropriés, puis cliquez sur Connexion :&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;Préparer le jeu de données&lt;/h2&gt;
&lt;p&gt;Commencez par créer un nouveau dossier dans lequel vous stockerez le modèle LoRA entraîné :&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;Ouvrez les onglets suivants : &lt;b translate=&quot;no&quot;&gt;Utilities &gt;&gt; Captioning &gt;&gt; BLIP captioning&lt;/b&gt;. Remplissez les champs comme indiqué dans l&#39;image et cliquez sur &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;Le formateur téléchargera et exécutera un modèle de réseau neuronal spécifique (1,6 Gb) qui crée des invites textuelles pour chaque fichier image dans le répertoire sélectionné. Il sera exécuté sur un seul GPU et prendra environ une minute.&lt;/p&gt;
&lt;p&gt;Passez à l&#39;onglet &lt;b translate=&quot;no&quot;&gt;LoRA &gt;&gt; Tools &gt;&gt; Dataset preparation &gt;&gt; Dreambooth/LoRA folder preparation&lt;/b&gt;, remplissez les trous et appuyez successivement sur &lt;b translate=&quot;no&quot;&gt;Prepare training data&lt;/b&gt; et &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;Dans cet exemple, nous utilisons le nom &lt;b translate=&quot;no&quot;&gt;nikolai&lt;/b&gt; comme &lt;b translate=&quot;no&quot;&gt;Instance prompt&lt;/b&gt; et &quot;person&quot; comme &lt;b translate=&quot;no&quot;&gt;Class prompt&lt;/b&gt;. Nous définissons également &lt;b translate=&quot;no&quot;&gt;/home/usergpu/dataset&lt;/b&gt; comme &lt;b translate=&quot;no&quot;&gt;Training Images&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;/home/usergpu/myloramodel&lt;/b&gt; comme &lt;b translate=&quot;no&quot;&gt;Destination training directory&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Passez à nouveau à l&#39;onglet &lt;b translate=&quot;no&quot;&gt;LoRA &gt;&gt; Training &gt;&gt; Folders&lt;/b&gt;. Assurez-vous que les noms &lt;b translate=&quot;no&quot;&gt;Image folder&lt;/b&gt;, &lt;b translate=&quot;no&quot;&gt;Output folder&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;Logging folder&lt;/b&gt; sont correctement remplis. Si vous le souhaitez, vous pouvez remplacer &lt;b translate=&quot;no&quot;&gt;Model output name&lt;/b&gt; par votre propre adresse. Enfin, cliquez sur le bouton &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;Le système commencera à télécharger des fichiers et des modèles supplémentaires (~10 GB). Ensuite, le processus d&#39;apprentissage commencera. En fonction de la quantité d&#39;images et des paramètres appliqués, cela peut prendre plusieurs heures. Une fois la formation terminée, vous pouvez télécharger le répertoire &lt;b translate=&quot;no&quot;&gt;/home/usergpu/myloramodel&lt;/b&gt; sur votre ordinateur pour une utilisation ultérieure.&lt;/p&gt;
&lt;h2&gt;Testez votre LoRA&lt;/h2&gt;
&lt;p&gt;Nous avons préparé quelques articles sur Stable Diffusion et ses forks. Vous pouvez essayer d&#39;installer Easy Diffusion avec notre guide &lt;a href=&quot;https://www.leadergpu.fr/articles/598-easy-diffusion-ui&quot;&gt;Easy Diffusion UI&lt;/a&gt;. Une fois que le système a été installé et fonctionne, vous pouvez télécharger votre modèle LoRA au format SafeTensors directement sur &lt;b translate=&quot;no&quot;&gt;/home/usergpu/easy-diffusion/models/lora&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mettez à jour la page web d&#39;Easy Diffusion et sélectionnez votre modèle dans la liste déroulante :&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;Écrivons une simple invite, &lt;b translate=&quot;no&quot;&gt;portrait of &amp;lt;nikolai&amp;gt; wearing a cowboy hat&lt;/b&gt;, et générons nos premières images. Ici, nous avons utilisé un &lt;a href=&quot;https://www.leadergpu.fr/articles/566-mod-les-de-stable-diffusion-personnalisation-et-options&quot;&gt;modèle de diffusion stable personnalisé&lt;/a&gt; téléchargé sur &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;Vous pouvez expérimenter avec des invites et des modèles, basés sur la diffusion stable, pour obtenir de meilleurs résultats. Nous vous souhaitons beaucoup de plaisir !&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/593-stable-diffusion-g-n-rer-des-visages-reproductibles&quot;&gt;Stable Diffusion: Générer des visages reproductibles&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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: Qu&#39;est-ce que ControlNet ?</title>
      <link>https://www.leadergpu.fr/catalog/591-stable-diffusion-qu-est-ce-que-controlnet</link>
      <description>&lt;p&gt;Les personnes qui découvrent les réseaux neuronaux génératifs pensent souvent à tort que le contrôle du résultat final est extrêmement difficile, en particulier lorsqu&#39;il s&#39;agit de modifier le résultat en changeant la formulation de l&#39;invite. À l&#39;heure actuelle, il existe une série d&#39;outils connus sous le nom de ControlNet qui facilitent un contrôle relativement simple et efficace des résultats de la génération.&lt;/p&gt;
&lt;p&gt;Dans cet article, nous allons montrer comment manipuler facilement la pose des personnages générés en utilisant des images préexistantes et des &quot;squelettes&quot; personnalisés, à l&#39;aide d&#39;un de ces outils, &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;Étape 1. Installer la diffusion stable&lt;/h2&gt;
&lt;p&gt;Veuillez utiliser &lt;a href=&quot;https://www.leadergpu.fr/articles/565-stable-diffusion-webui&quot;&gt;notre guide pas à pas&lt;/a&gt; pour installer Stable Diffusion avec le modèle de base et l&#39;interface WebUI. Ce guide est basé sur le script AUTOMATIC1111.&lt;/p&gt;
&lt;h2&gt;Etape 2. Installer l&#39;extension ControlNet&lt;/h2&gt;
&lt;p&gt;Nous déconseillons fortement l&#39;installation de l&#39;extension ControlNet (sd-webui-controlnet) à partir du &lt;a href=&quot;https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json&quot;&gt;dépôt standard en&lt;/a&gt; raison de problèmes potentiels de fonctionnalité. L&#39;un des problèmes majeurs que nous avons rencontrés lors de la préparation de ce guide est le blocage de l&#39;interface web. Bien que l&#39;image soit initialement générée avec succès, l&#39;interface WebUI ne répond plus lorsque l&#39;image est générée une seconde fois. Une solution alternative serait d&#39;installer la même extension à partir d&#39;une source externe.&lt;/p&gt;
&lt;p&gt;Ouvrez l&#39;interface WebUI et suivez les onglets : &lt;b translate=&quot;no&quot;&gt;Extensions &gt; Install from URL&lt;/b&gt;. Collez cette URL dans le champ approprié :&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;Cliquez ensuite sur le bouton &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;Lorsque le processus est terminé avec succès, le message suivant doit apparaître :&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;Redémarrons l&#39;URL en cliquant sur le bouton Appliquer et redémarrer l&#39;interface utilisateur dans l&#39;onglet Installé :&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;Après le redémarrage de l&#39;interface, le nouvel élément ControlNet apparaît avec de nombreuses options supplémentaires :&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;Étape 3. Télécharger OpenPose&lt;/h2&gt;
&lt;h3&gt;Ajouter la clé HF&lt;/h3&gt;
&lt;p&gt;Générons et ajoutons une clé SSH que vous pourrez utiliser dans 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;Lorsque la paire de clés est générée, vous pouvez afficher la clé publique dans l&#39;émulateur de terminal :&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;Copiez toutes les informations commençant par ssh-rsa et se terminant par usergpu@gpuserver, comme indiqué dans la capture d&#39;écran suivante :&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;Ouvrez un navigateur web, tapez &lt;a href=&quot;https://huggingface.co/&quot;&gt;https://huggingface.co/&lt;/a&gt; dans la barre d&#39;adresse et appuyez sur &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Connectez-vous à votre compte HF et ouvrez les &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;paramètres du profil&lt;/a&gt;. Choisissez ensuite &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; et cliquez sur le bouton &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;Remplissez le &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; et collez le &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; copié depuis le terminal. Sauvegardez la clé en appuyant sur &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt;:&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;Maintenant, votre compte HF est lié à la clé SSH publique. La seconde partie (clé privée) est stockée sur le serveur. L&#39;étape suivante consiste à installer une extension Git LFS (Large File Storage) spécifique, qui est utilisée pour télécharger des fichiers volumineux tels que des modèles de réseaux neuronaux.&lt;/p&gt;
&lt;h3&gt;Installer Git LFS&lt;/h3&gt;
&lt;p&gt;L&#39;étape suivante consiste à installer une extension Git LFS (Large File Storage) spécifique, utilisée pour télécharger des fichiers volumineux tels que des modèles de réseaux neuronaux. Ouvrez votre répertoire personnel :&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;Téléchargez et exécutez le script shell. Ce script installe un nouveau dépôt tiers avec 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;Vous pouvez maintenant l&#39;installer à l&#39;aide du gestionnaire de paquets standard :&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;Configurons git pour qu&#39;il utilise notre pseudo HF :&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;Et lié au compte email HF :&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;Télécharger le référentiel&lt;/h3&gt;
&lt;p&gt;Nous recommandons, si possible, d&#39;utiliser un disque dur local pour télécharger et stocker les modèles. Pour en savoir plus, consultez notre guide &quot; &lt;a href=&quot;https://www.leadergpu.fr/articles/492-partitionnement-de-disque-sous-linux&quot;&gt;Partitionnement des disques sous Linux&quot;&lt;/a&gt;. Pour cet exemple, nous avons monté un disque SSD sur le point de montage /mnt/fastdisk. Il appartiendra à l&#39;utilisateur par défaut :&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;Ouvrez le répertoire :&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;Clonez le dépôt ControlNet à partir de HuggingFace. Git-LFS précédemment installé remplacera automatiquement les pointeurs par de vrais fichiers :&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;Dans cet exemple, nous n&#39;ajoutons qu&#39;un seul modèle à l&#39;interface Web de diffusion stable. Cependant, vous pouvez copier tous les modèles disponibles dans le référentiel (~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;Étape 4. Exécuter le processus de génération&lt;/h2&gt;
&lt;p&gt;Le modèle actuel fourni est assez basique et pourrait ne pas donner de résultats satisfaisants. Nous suggérons donc de le remplacer par un modèle personnalisé. Vous trouverez des indications sur la manière de procéder dans cet article : &lt;a href=&quot;https://www.leadergpu.fr/articles/566-mod-les-de-stable-diffusion-personnalisation-et-options&quot;&gt;Modèles de diffusion stable : personnalisation et options&lt;/a&gt;. Pour cet exemple, nous avons téléchargé &lt;a href=&quot;https://civitai.com/api/download/models/130072&quot;&gt;RealisticVision v6.0 B1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez générer votre première image à l&#39;aide d&#39;OpenPose, ouvrez l&#39;onglet &lt;b translate=&quot;no&quot;&gt;ControlNet&lt;/b&gt;, choisissez &lt;b translate=&quot;no&quot;&gt;OpenPose&lt;/b&gt;, cochez &lt;b translate=&quot;no&quot;&gt;Enable&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;Allow Preview&lt;/b&gt;. Cliquez ensuite sur &lt;b translate=&quot;no&quot;&gt;Upload&lt;/b&gt; pour ajouter une image contenant la pose souhaitée :&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;Vous pouvez demander au système de générer un aperçu de la pose en cliquant sur le bouton avec l&#39;icône d&#39;explosion :&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;A gauche, l&#39;image originale est affichée. À droite, vous pouvez voir le &quot;squelette&quot; représentant la pose telle qu&#39;elle a été reconnue par le modèle de réseau neuronal :&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;Vous pouvez maintenant taper l&#39;invite principale, par exemple &quot;&lt;b translate=&quot;no&quot;&gt;dancing bear, by Pixar&lt;/b&gt;&quot; ou &quot;&lt;b translate=&quot;no&quot;&gt;dancing fox, by Pixar&lt;/b&gt;&quot; et cliquer sur le bouton &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt;. Après quelques secondes, vous obtiendrez des résultats comme ceux-ci :&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;Le système tentera de générer une nouvelle image à partir du &quot;squelette&quot; obtenu à partir de l&#39;image originale. Dans certains cas, la pose peut ne pas être exacte, mais cela peut être facilement corrigé en modifiant manuellement le &quot;squelette&quot;.&lt;/p&gt;
&lt;h2&gt;Étape 5. Modification de la pose&lt;/h2&gt;
&lt;p&gt;Bien que cela puisse sembler magique, le modèle n&#39;est pas parfait et des erreurs occasionnelles peuvent avoir un impact sur l&#39;image finale. Pour éviter tout problème lors de la génération de l&#39;image, vous avez la possibilité d&#39;ajuster manuellement le &quot;squelette&quot; en cliquant sur le bouton &lt;b translate=&quot;no&quot;&gt;Edit&lt;/b&gt;:&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;Dans l&#39;éditeur fourni, vous pouvez facilement ajuster la pose par glisser-déposer, ou supprimer les points non désirés par un clic droit. Il suffit ensuite de cliquer sur le bouton &lt;b translate=&quot;no&quot;&gt;Send pose to ControlNet&lt;/b&gt; pour que la nouvelle pose soit appliquée :&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;Au-delà d&#39;OpenPose, ControlNet offre une variété d&#39;outils pour personnaliser et perfectionner vos résultats. De plus, les serveurs dédiés fournis par LeaderGPU garantissent un processus rapide et pratique.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/catalog/593-stable-diffusion-g-n-rer-des-visages-reproductibles&quot;&gt;Stable Diffusion: Générer des visages reproductibles&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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 : Repenser le SD et le MJ</title>
      <link>https://www.leadergpu.fr/catalog/590-fooocus-repenser-le-sd-et-le-mj</link>
      <description>&lt;p&gt;L&#39;avènement de Stable Diffusion et de MidJourney a révolutionné notre compréhension du potentiel des réseaux neuronaux génératifs. Ces outils ont dévoilé une nouvelle perspective sur le processus de création d&#39;images et sur la mesure dans laquelle nous pouvons le manipuler. L&#39;approche principale consiste à fournir au système des indications sur le résultat souhaité. Nous mettons essentiellement l&#39;accent sur trois aspects importants : l&#39;objet, le style et l&#39;environnement.&lt;/p&gt;
&lt;p&gt;Des invites supplémentaires fournissant des instructions plus spécifiques, telles que la composition souhaitée, le type d&#39;appareil photo/objectif et la colorisation, sont également importantes, mais pas indispensables. Plus les instructions sont complètes, plus il est facile pour le réseau neuronal de les traiter. Le rôle d&#39;un ingénieur rapide a même émergé dans l&#39;espace professionnel. Toutefois, ce rôle peut être facilement remplacé par les mêmes réseaux neuronaux génératifs. En combinant la création d&#39;images avec des compétences en matière de création de texte, nous pouvons générer des invites supplémentaires afin d&#39;obtenir un résultat optimal.&lt;/p&gt;
&lt;p&gt;C&#39;est le concept fondamental de Fooocus. Il intègre le modèle XL Stable Diffusion et un générateur de messages basé sur GPT2, qui enrichit et détaille votre message simple. De plus, Fooocus est équipé de diverses améliorations et extensions. Ces fonctionnalités facilitent la génération d&#39;images spectaculaires à travers une interface simple, dépourvue d&#39;outils complexes. Entrons dans le vif du sujet et installons Fooocus sur un serveur dédié LeaderGPU.&lt;/p&gt;
&lt;h2&gt;Conditions préalables&lt;/h2&gt;
&lt;p&gt;Commencez par les prérequis de l&#39;installation et redémarrez ensuite :&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;Télécharger le script shell qui installe Anaconda pour la gestion des environnements virtuels :&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;Définissez le drapeau d&#39;exécution et fournissez l&#39;accès aux données :&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;Exécuter le script d&#39;installation :&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;Une fois le processus terminé, nous vous recommandons de déconnecter la session SSH et de vous préparer à la redirection de port. Vous devez transférer le port 7865 du serveur distant vers une adresse de bouclage locale, 127.0.0.1:7865. Pour plus d&#39;informations, veuillez vous référer à l&#39;un de nos guides précédents : &lt;a href=&quot;https://www.leadergpu.fr/articles/597-stable-video-diffusion&quot;&gt;La diffusion vidéo stable&lt;/a&gt;. Ensuite, reconnectez-vous et procédez au clonage du dépôt du projet sur un GitHub.&lt;/p&gt;
&lt;h2&gt;Fooocus install&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;Changez de répertoire pour 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;Créer un environnement virtuel en utilisant Anaconda et la configuration YAML préparée par l&#39;auteur du projet :&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;Changeons notre environnement de base pour un environnement nouvellement créé :&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;L&#39;étape suivante consiste à installer les bibliothèques Python :&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;Maintenant, tout est prêt à démarrer :&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;Le démarrage initial peut prendre un certain temps, car l&#39;application vérifie et télécharge tous les fichiers nécessaires au fonctionnement. Vous pouvez prendre une tasse de café pendant ce temps. Une fois le processus terminé, ouvrez votre navigateur et tapez l&#39;URL suivante dans la barre d&#39;adresse :&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;Saisissez votre simple invite et cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt;. Si vous voulez plus de contrôle, cochez &lt;b translate=&quot;no&quot;&gt;Advanced&lt;/b&gt; et sélectionnez les options nécessaires :&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;La véritable magie se déroule en coulisses. Dès que vous cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Generate&lt;/b&gt;, votre message est transféré au modèle linguistique basé sur le GPT2. Ce modèle transforme votre bref message en un mélange de messages positifs et négatifs élaborés. Ce mélange est ensuite introduit dans le modèle Stable Diffusion XL, affiné pour émuler le style MidJourney. Par conséquent, même une brève invite peut générer des résultats impressionnants.&lt;/p&gt;
&lt;p&gt;Bien sûr, il n&#39;y a aucune restriction à la rédaction de vos propres messages-guides. Cependant, après plusieurs itérations, il devient évident que même en l&#39;absence d&#39;une telle possibilité, le contenu généré reste intriguant et diversifié.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/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.fr/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>Rendu à distance de Blender avec Flamenco</title>
      <link>https://www.leadergpu.fr/catalog/588-rendu-distance-de-blender-avec-flamenco</link>
      <description>&lt;p&gt;Lorsque le rendu de scènes lourdes dans &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt; commence à prendre trop de temps à votre équipe, vous avez deux options : soit mettre à niveau l&#39;ordinateur de chaque membre de l&#39;équipe, soit sous-traiter le rendu à une ferme dédiée. De nombreuses entreprises proposent des solutions de rendu prêtes à l&#39;emploi, mais si vous avez besoin d&#39;un contrôle total sur l&#39;infrastructure, ces solutions peuvent ne pas être l&#39;option la plus fiable.&lt;/p&gt;
&lt;p&gt;Une autre approche pourrait consister à créer une infrastructure hybride. Dans ce cas, le stockage des données et la gestion de la ferme de rendu sont conservés dans votre infrastructure existante. Le seul élément qui serait situé à l&#39;extérieur serait les &lt;a href=&quot;https://www.leadergpu.com/&quot;&gt;serveurs GPU&lt;/a&gt; loués sur lesquels le rendu serait effectué.&lt;/p&gt;
&lt;p&gt;En général, l&#39;infrastructure de la ferme de rendu pour Blender ressemble à ceci :&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;Ici, nous avons un nœud central &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; qui organise tous les processus. Il reçoit les tâches de rendu des utilisateurs via une adresse spécifique &lt;b translate=&quot;no&quot;&gt;Blender Add-on&lt;/b&gt; et déplace tous les fichiers nécessaires vers &lt;b translate=&quot;no&quot;&gt;Shared Storage&lt;/b&gt;. Ensuite, &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; distribue les tâches à &lt;b translate=&quot;no&quot;&gt;Worker nodes&lt;/b&gt;. Ils reçoivent un travail contenant toutes les informations sur l&#39;endroit où le travailleur peut trouver les fichiers à rendre et sur ce qu&#39;il doit faire avec les résultats obtenus. Pour mettre en œuvre ce schéma, vous pouvez utiliser une application entièrement libre et gratuite appelée &lt;a href=&quot;https://flamenco.blender.org/&quot;&gt;Flamenco&lt;/a&gt;. Dans ce guide, nous montrons comment préparer tous les nœuds, en particulier les nœuds &lt;b translate=&quot;no&quot;&gt;Manager&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Le nœud &lt;b translate=&quot;no&quot;&gt;Storage&lt;/b&gt; n&#39;a pas d&#39;exigences particulières. Il peut être utilisé avec n&#39;importe quel système d&#39;exploitation prenant en charge les protocoles SMB/CIFS ou NFS. La seule exigence est que le répertoire de stockage soit monté et accessible par le système d&#39;exploitation. Dans votre infrastructure, il peut s&#39;agir de n&#39;importe quel dossier partagé accessible à tous les nœuds.&lt;/p&gt;
&lt;p&gt;Chaque nœud a des adresses IP différentes et le serveur &lt;b translate=&quot;no&quot;&gt;Wireguard VPN&lt;/b&gt; sera un point central qui les réunira en un seul réseau L2. Ce serveur, situé sur le périmètre externe, vous permet de travailler sans modifier la politique NAT existante.&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;Pour cet exemple, nous créons la configuration mixte suivante :&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; (serveur virtuel par n&#39;importe quel fournisseur d&#39;infrastructure) avec une IP externe ;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.2 - Worker node&lt;/b&gt; (serveur dédié de LeaderGPU) avec une IP externe ;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.3 - Manager node&lt;/b&gt; (serveur virtuel dans le réseau du bureau) situé derrière le NAT ;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.4 - Storage node&lt;/b&gt; (serveur virtuel dans le réseau de bureau) situé derrière NAT ;&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;10.0.0.5 - User node&lt;/b&gt; (ordinateur portable du consommateur dans le réseau du bureau) situé derrière NAT.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Étape 1. Wireguard&lt;/h2&gt;
&lt;h3&gt;Serveur VPN&lt;/h3&gt;
&lt;p&gt;Vous pouvez installer et configurer Wireguard manuellement, en utilisant un guide officiel et des exemples. Cependant, il existe une alternative plus simple : un script non officiel réalisé par un ingénieur logiciel parisien (Stanislas aka &lt;a href=&quot;https://github.com/angristan&quot;&gt;angristan&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Téléchargez le script depuis 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;Rendez-le exécutable :&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;Exécuter :&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;Suivez les instructions et définissez la plage d&#39;adresses IP &lt;b translate=&quot;no&quot;&gt;10.0.0.1/24&lt;/b&gt;. Le système vous demandera de créer immédiatement un fichier de configuration pour le premier client. Selon le plan, ce client sera le nœud de travail avec le nom &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt; et l&#39;adresse &lt;b translate=&quot;no&quot;&gt;10.0.0.2&lt;/b&gt;. Lorsque le script est terminé, un fichier de configuration apparaît dans le répertoire racine : &lt;b translate=&quot;no&quot;&gt;/root/wg0-client-Worker.conf&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Exécutez la commande suivante pour visualiser cette configuration :&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;Exécutez à nouveau le script d&#39;installation pour créer un autre client. Ajoutez tous les futurs clients de cette manière, et enfin, vous pouvez vérifier que tous les fichiers de configuration ont été créés :&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;Clients VPN&lt;/h3&gt;
&lt;p&gt;Les clients VPN comprennent tous les nœuds qui doivent être connectés à un réseau unique. Dans notre guide, il s&#39;agit du nœud gestionnaire, du nœud de stockage, du nœud client (si vous utilisez Linux) et des nœuds de travail. Si le serveur VPN s&#39;exécute sur un nœud de travail, il n&#39;est pas nécessaire de le configurer en tant que client (cette étape peut être ignorée).&lt;/p&gt;
&lt;p&gt;Mettez à jour le référentiel de cache des paquets, puis installez les paquets Wireguard et CIFS :&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;Élever les privilèges au niveau du superutilisateur :&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;Ouvrez le répertoire de configuration de Wireguard :&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;Exécutez la commande &lt;b translate=&quot;no&quot;&gt;umask&lt;/b&gt; afin que seul le superutilisateur ait accès aux fichiers de ce répertoire :&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;Générer une clé privée et l&#39;enregistrer dans un fichier :&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;Générer une clé publique à partir de la clé privée :&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;Créer un fichier de configuration :&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;Collez votre propre configuration, créée pour ce 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;N&#39;oubliez pas d&#39;ajouter l&#39;option &lt;b translate=&quot;no&quot;&gt;PersistentKeepalive = 1&lt;/b&gt; (où 1 signifie 1 seconde) sur chaque nœud situé derrière un NAT. Vous pouvez choisir cette période de manière expérimentale. La valeur recommandée par les auteurs de Wireguard est de 25. Sauvegardez le fichier et quittez, en utilisant le raccourci &lt;b translate=&quot;no&quot;&gt;CTRL + X&lt;/b&gt; et la touche &lt;b translate=&quot;no&quot;&gt;Y&lt;/b&gt; pour confirmer.&lt;/p&gt;
&lt;p&gt;Si vous voulez laisser passer le trafic internet, mettez &lt;b translate=&quot;no&quot;&gt;AllowedIPs&lt;/b&gt; à &lt;b translate=&quot;no&quot;&gt;0.0.0.0/0,::/0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Déconnectez-vous ensuite du compte root :&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;Démarrez la connexion à l&#39;aide de 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;Vérifiez que tout est en ordre et que le service a bien démarré :&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;Si vous rencontrez une erreur telle que &quot;resolvconf : command not found&quot; dans Ubuntu 22.04, créez simplement un lien symbolique :&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;Activez le nouveau service pour qu&#39;il se connecte automatiquement pendant que le système d&#39;exploitation démarre :&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;Vous pouvez maintenant vérifier la connectivité en envoyant des paquets d&#39;écho :&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;Étape 2. Nœud NAS&lt;/h2&gt;
&lt;p&gt;Connectez-vous au serveur VPN en utilisant le guide de l&#39;étape 1. Ensuite, installez les paquets Samba serveur et 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;Sauvegardez votre configuration par défaut :&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;Créez un répertoire qui sera utilisé comme partage :&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;Créer un nouveau groupe d&#39;utilisateurs qui aura accès au nouveau partage :&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;Ajouter un utilisateur existant au groupe créé :&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;Définir un mot de passe pour cet utilisateur. Cette étape est nécessaire car le mot de passe du système et le mot de passe Samba sont des entités différentes :&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;Supprimer la configuration par défaut :&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;et en créer une nouvelle :&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;Sauvegardez le fichier et testez les nouveaux paramètres :&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;Redémarrez les deux services Samba :&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;Enfin, donnez l&#39;autorisation de partager le dossier :&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;Étape 3. Connexion du client Samba&lt;/h2&gt;
&lt;p&gt;Tous les nœuds de Flamenco utilisent un répertoire partagé situé dans /mnt/flamenco. Vous devez monter ce répertoire sur chaque noeud avant d&#39;exécuter les scripts flamenco-client ou flamenco-manager. Dans cet exemple, nous utilisons un nœud de travail hébergé sur LeaderGPU avec le nom d&#39;utilisateur &lt;b translate=&quot;no&quot;&gt;usergpu&lt;/b&gt;. Veuillez remplacer ces détails par les vôtres s&#39;ils diffèrent.&lt;/p&gt;
&lt;p&gt;Créez un fichier caché dans lequel vous pouvez stocker les informations d&#39;identification du partage SMB :&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;Tapez ces deux chaînes de caractères :&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;Enregistrez ce fichier et quittez. Ensuite, sécurisez ce fichier en modifiant les autorisations d&#39;accès :&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;Créez un nouveau répertoire qui peut être utilisé comme point de montage pour attacher le stockage distant :&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;Et faire de l&#39;utilisateur le propriétaire de ce répertoire :&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;Il ne reste plus qu&#39;à faire en sorte que le répertoire réseau soit monté automatiquement :&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;Ajoutez deux lignes à votre configuration VPN dans la section &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;Redémarrez le serveur :&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;Vérifiez que les services sont chargés et que le répertoire partagé est monté avec succès :&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;Étape 4. Nœud du gestionnaire&lt;/h2&gt;
&lt;p&gt;Établissez une connexion VPN en utilisant le guide de l&#39;étape 1. Arrêtez le service VPN avant de continuer :&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;Préparons-nous. Le montage automatique nécessite des utilitaires pour le protocole CIFS :&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;La prochaine étape importante est l&#39;installation de Blender. Vous pouvez le faire en utilisant le gestionnaire de paquets APT standard, mais cela installera probablement l&#39;une des anciennes versions (inférieure à v3.6.4). Utilisons Snap pour installer la dernière version :&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;Vérifiez la version installée à l&#39;aide de la commande suivante :&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;Si vous recevez un message d&#39;erreur indiquant qu&#39;il manque des bibliothèques, installez-les simplement. Toutes ces bibliothèques sont incluses dans le paquetage XOrg :&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;Télécharger l&#39;application :&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;Décompressez l&#39;archive téléchargée :&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;Allez dans le répertoire créé :&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;Et démarrez Flamenco pour la première fois :&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;Ouvrez l&#39;adresse suivante dans votre navigateur web: &lt;a href=&quot;http://10.0.0.3:8080/&quot;&gt; http://10.0.0.3:8080/&lt;/a&gt;. Cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Let&#39;s go&lt;/b&gt;. Tapez &lt;b translate=&quot;no&quot;&gt;/mnt/flamenco&lt;/b&gt; dans le champ requis, puis cliquez sur &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 tentera de localiser le fichier exécutable de Blender. Si vous avez installé Blender à partir de Snap, le chemin sera &lt;b translate=&quot;no&quot;&gt;/snap/bin/blender&lt;/b&gt;. Vérifiez ce point et cliquez sur &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;Vérifiez le résumé et cliquez sur &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;Retournez dans la session SSH et utilisez le raccourci clavier &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt; pour interrompre l&#39;application. Le premier lancement génère le fichier de configuration &lt;b translate=&quot;no&quot;&gt;flamenco-manager.yaml&lt;/b&gt;. Ajoutons quelques options aux sections &lt;b translate=&quot;no&quot;&gt;variables&lt;/b&gt; et &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;Le premier bloc additionnel décrit des &lt;a href=&quot;https://flamenco.blender.org/usage/variables/multi-platform/&quot;&gt;variables bidirectionnelles&lt;/a&gt; supplémentaires, qui sont nécessaires pour les fermes multiplateformes. Cela résout le principal problème lié aux barres obliques et aux chemins d&#39;accès. Sous Linux, nous utilisons le symbole de la barre oblique (/) comme séparateur, mais sous Windows, nous utilisons le symbole de la barre oblique inverse (\). Ici, nous créons la règle de remplacement pour toutes les alternatives disponibles : Linux, Windows et 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;Lorsque vous montez un partage réseau sous Windows, vous devez choisir une lettre de lecteur. Par exemple, notre &lt;b translate=&quot;no&quot;&gt;Storage&lt;/b&gt; est monté avec la lettre &lt;b translate=&quot;no&quot;&gt;Z:&lt;/b&gt;. La règle de remplacement indique au système que pour la plateforme Windows, le chemin &lt;b translate=&quot;no&quot;&gt;/mnt/flamenco&lt;/b&gt; sera situé à &lt;b translate=&quot;no&quot;&gt;Z:\&lt;/b&gt;. Pour macOS, ce chemin sera &lt;b translate=&quot;no&quot;&gt;/Volumes/shared/flamenco&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Regardez le deuxième bloc ajouté. Il indique à Blender d&#39;utiliser le moteur de rendu &lt;a href=&quot;https://www.cycles-renderer.org/&quot;&gt;Cycles&lt;/a&gt; et appelle un simple script Python, &lt;b translate=&quot;no&quot;&gt;gpurender.py&lt;/b&gt;, lorsque Blender s&#39;exécute. Il s&#39;agit d&#39;une astuce simple pour sélectionner le GPU au lieu du CPU. Il n&#39;y a pas d&#39;option standard pour faire cela directement. Vous ne pouvez pas invoquer &lt;b translate=&quot;no&quot;&gt;blender --use-gpu&lt;/b&gt; ou quelque chose de similaire. Cependant, vous pouvez invoquer n&#39;importe quel script Python externe en utilisant l&#39;option &lt;b translate=&quot;no&quot;&gt;-P&lt;/b&gt;. Cette commande demande à &lt;b translate=&quot;no&quot;&gt;Worker&lt;/b&gt; de trouver un script dans le répertoire local et de l&#39;exécuter lorsque la tâche assignée invoque l&#39;exécutable de Blender.&lt;/p&gt;
&lt;p&gt;Maintenant, nous pouvons déléguer le contrôle de l&#39;application au sous-système init de &lt;a href=&quot;https://systemd.io/&quot;&gt;systemd&lt;/a&gt;. Informons le système de l&#39;emplacement du répertoire de travail, du fichier exécutable et des privilèges de l&#39;utilisateur requis pour le lancement. Créez un nouveau fichier :&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;Remplissez-le avec les chaînes suivantes :&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;Enregistrez le fichier et quittez l&#39;éditeur de texte nano.&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;Activer le démarrage automatique lorsque le système démarre :&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;Étape 5. Nœud de travail&lt;/h2&gt;
&lt;p&gt;Connectez-vous au serveur VPN en utilisant le guide de l&#39;étape 1 et montez le partage de l&#39;étape 3. Arrêtez le service VPN avant de continuer :&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;Les fichiers *.blend modernes sont compressés avec l&#39;algorithme Zstandard. Pour éviter les erreurs, il est essentiel d&#39;intégrer la prise en charge de cet algorithme :&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;Télécharger l&#39;application :&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;Décompressez l&#39;archive téléchargée :&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;Naviguez jusqu&#39;au répertoire créé :&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;Créer un script supplémentaire qui active le rendu GPU lors de l&#39;exécution des jobs Flamenco :&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;Sauvegardez le fichier et quittez. Ensuite, créez un service séparé pour exécuter Flamenco à partir de 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;Rechargez la configuration et démarrez le nouveau 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;Activer le démarrage automatique lorsque le système démarre :&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;Étape 6. Nœud utilisateur&lt;/h2&gt;
&lt;p&gt;Le nœud utilisateur peut être géré avec n&#39;importe quel système d&#39;exploitation. Dans ce guide, nous montrons comment configurer un nœud avec Windows 11 et les 4 composants nécessaires :&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Connexion VPN&lt;/li&gt;
  &lt;li&gt;Répertoire distant monté&lt;/li&gt;
  &lt;li&gt;Blender installé&lt;/li&gt;
  &lt;li&gt;Module complémentaire Flamenco&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Téléchargez et installez Wireguard depuis le &lt;a href=&quot;https://download.wireguard.com/windows-client/wireguard-installer.exe&quot;&gt;site officiel&lt;/a&gt;. Créez un nouveau fichier texte et collez la configuration générée pour le client à l&#39;étape 1. Renommez le fichier en &lt;b translate=&quot;no&quot;&gt;flamenco.conf&lt;/b&gt; et ajoutez-le dans Wireguard en utilisant le bouton &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;Connectez-vous à votre serveur en appuyant sur le bouton &lt;b translate=&quot;no&quot;&gt;Activate&lt;/b&gt;:&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;Montons un répertoire distant. Cliquez avec le bouton droit de la souris sur &lt;b translate=&quot;no&quot;&gt;This PC&lt;/b&gt; et sélectionnez &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;Choisissez &lt;b translate=&quot;no&quot;&gt;Z:&lt;/b&gt; comme lettre de lecteur, tapez l&#39;adresse du partage Samba &lt;b translate=&quot;no&quot;&gt;\\10.0.0.4\private&lt;/b&gt; et n&#39;oubliez pas de cocher &lt;b translate=&quot;no&quot;&gt;Connect using different credentials&lt;/b&gt;. Cliquez ensuite sur &lt;b translate=&quot;no&quot;&gt;Finish&lt;/b&gt;. Le système vous demandera d&#39;entrer un nom d&#39;utilisateur et un mot de passe pour le partage. Après cela, le répertoire réseau sera monté en tant que lecteur Z :.&lt;/p&gt;
&lt;p&gt;Téléchargez et installez Blender à partir du &lt;a href=&quot;https://www.blender.org/download/&quot;&gt;site officiel&lt;/a&gt;. Ensuite, ouvrez l&#39;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; et installez le module complémentaire Flamenco. Activez-le dans les préférences : &lt;b translate=&quot;no&quot;&gt;Edit &gt; Preferences &gt; Add-ons&lt;/b&gt;. Cochez &lt;b translate=&quot;no&quot;&gt;System: Flamenco 3&lt;/b&gt;, entrez l&#39;URL du gestionnaire &lt;a href=&quot;http://10.0.0.3:8080&quot;&gt;http://10.0.0.3:8080&lt;/a&gt;, et cliquez sur le bouton d&#39;actualisation. Le système se connectera au nœud du gestionnaire et chargera automatiquement les paramètres de stockage :&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;Ouvrez le fichier à rendre. Dans l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Scene&lt;/b&gt;, choisissez &lt;b translate=&quot;no&quot;&gt;Cycles&lt;/b&gt; dans la liste déroulante Render &lt;b translate=&quot;no&quot;&gt;Engine&lt;/b&gt;. N&#39;oubliez pas d&#39;enregistrer le fichier, car ces paramètres sont stockés directement dans le fichier *.blend :&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;Faites défiler la page vers le bas et trouvez la section &lt;b translate=&quot;no&quot;&gt;Flamenco 3&lt;/b&gt;. Cliquez sur &lt;b translate=&quot;no&quot;&gt;Fetch job types&lt;/b&gt; pour obtenir une liste des types disponibles. Sélectionnez &lt;b translate=&quot;no&quot;&gt;Simple Blender Render&lt;/b&gt; dans la liste déroulante et définissez d&#39;autres options, telles que le nombre d&#39;images, la taille des blocs et le dossier de sortie. Enfin, cliquez sur &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;Le module complémentaire Flamenco crée une nouvelle tâche et télécharge un fichier blend vers le stockage partagé. Le système soumettra la tâche à un travailleur disponible et lancera le processus de rendu :&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;Si vous vérifiez la charge du GPU avec nvtop ou des utilitaires similaires, vous verrez que tous les GPU ont des tâches de calcul :&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;Vous trouverez le résultat dans un répertoire que vous avez sélectionné à l&#39;étape précédente. Exemple &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;ici&lt;/a&gt; (&lt;a href=&quot;https://www.blender.org/download/demo-files/&quot;&gt;Ripple Dreams&lt;/a&gt; par &lt;a href=&quot;https://twitter.com/redjam_9&quot;&gt;James Redmond&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/586-photogramm-trie-avec-meshroom&quot;&gt;Photogrammétrie avec Meshroom&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/590-fooocus-repenser-le-sd-et-le-mj&quot;&gt;Fooocus : Repenser le SD et le MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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>Photogrammétrie avec Meshroom</title>
      <link>https://www.leadergpu.fr/catalog/586-photogramm-trie-avec-meshroom</link>
      <description>&lt;p&gt;La photogrammétrie est une méthode qui consiste à transformer des objets physiques en modèles numériques tridimensionnels pouvant être édités à l&#39;aide d&#39;un logiciel 3D. Ce processus utilise généralement des appareils spécialisés appelés scanners 3D, qui se déclinent en deux types principaux : optique et laser.&lt;/p&gt;
&lt;p&gt;Les scanners optiques utilisent souvent une ou plusieurs caméras numériques et un éclairage spécial pour illuminer uniformément l&#39;objet pendant la numérisation. Cela permet de créer un modèle 3D. Les scanners laser, quant à eux, utilisent des faisceaux laser. Ces appareils émettent plusieurs faisceaux laser et mesurent le temps nécessaire à chaque faisceau pour rebondir sur l&#39;objet. À l&#39;aide de ces données et des informations fournies par les capteurs de position, le scanner calcule la distance entre chaque point de l&#39;objet. Il en résulte un &quot;nuage de points&quot; qui constitue la base du modèle 3D.&lt;/p&gt;
&lt;h3&gt;Nuage de points&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;Pour construire le futur cadre d&#39;un objet, le système doit connaître les coordonnées de chaque sommet dans l&#39;espace tridimensionnel. L&#39;ensemble des sommets est appelé nuage de points. Plus il y a de sommets, plus l&#39;objet sera détaillé. La création d&#39;un nuage de points est la première étape, et l&#39;une des plus cruciales, de la recréation d&#39;un modèle 3D à partir de photographies.&lt;/p&gt;
&lt;p&gt;Il est important de noter que chaque sommet du nuage de points n&#39;est initialement pas connecté à d&#39;autres sommets. Cela permet un filtrage facile : conserver les points nécessaires et supprimer les autres, avant de commencer à recréer le maillage de l&#39;objet.&lt;/p&gt;
&lt;h3&gt;Objets maillés&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;Un objet maillé est un type de modèle 3D constitué de primitives géométriques triangulaires, souvent appelées mailles ou polymés. Une fois que les points de l&#39;objet sont formés, l&#39;application peut composer indépendamment des primitives triangulaires à partir de ces points. En connectant ces primitives, il est possible de créer un modèle 3D de presque n&#39;importe quelle forme. À ce stade, le modèle n&#39;a pas de couleur et reste non peint.&lt;/p&gt;
&lt;p&gt;L&#39;étape suivante de texturation permet de résoudre ce problème.&lt;/p&gt;
&lt;h3&gt;La texturation&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;L&#39;étape finale consiste à étirer la texture de l&#39;image extraite des photos sur l&#39;objet maillé préparé. La qualité des photos prises et leur résolution jouent ici un rôle essentiel. Si elle est faible, le résultat final ne sera pas du meilleur effet. En revanche, si un nombre suffisant de photos de bonne qualité ont été prises, vous obtiendrez un modèle 3D d&#39;un objet réel entièrement prêt à l&#39;emploi. Vous trouverez ci-dessous quelques conseils utiles sur la préparation des photos originales.&lt;/p&gt;
&lt;h2&gt;Réglages de l&#39;appareil photo&lt;/h2&gt;
&lt;p&gt;Pour éviter toute déception lors de vos premières tentatives de création d&#39;un modèle 3D à partir de photos, tenez compte de ces règles de base simples. Chacune de ces règles vous aidera à éviter les problèmes qui surviennent généralement au cours de la phase de création de l&#39;objet maillé.&lt;/p&gt;
&lt;p&gt;Tout d&#39;abord, ne vous fiez pas aux réglages automatiques de votre appareil photo numérique. Les appareils photo modernes tentent d&#39;équilibrer quatre paramètres clés de manière indépendante :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;ISO,&lt;/li&gt;
    &lt;li&gt;la balance des blancs,    &lt;/li&gt;
    &lt;li&gt;la vitesse d&#39;obturation,&lt;/li&gt;
    &lt;li&gt;l&#39;ouverture.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En mode automatique, même de légères modifications des conditions extérieures peuvent faire varier ces paramètres d&#39;une image à l&#39;autre. Ces variations peuvent entraîner des incohérences notables lors de l&#39;étape de texturation.&lt;/p&gt;
&lt;p&gt;Pour conserver des paramètres cohérents d&#39;une image à l&#39;autre, utilisez le mode &lt;b translate=&quot;no&quot;&gt;Manual&lt;/b&gt; (M). L&#39;ouverture est un paramètre crucial. En fonction de votre objectif, essayez d&#39;obtenir une position où elle est presque fermée. Cela permet d&#39;obtenir une profondeur de champ maximale : moins l&#39;ouverture est grande, mieux c&#39;est. Évitez toutefois les valeurs extrêmes. Si votre objectif peut être proche de &lt;b translate=&quot;no&quot;&gt;f/22&lt;/b&gt;, vous obtiendrez de bons résultats en utilisant des valeurs comprises entre &lt;b translate=&quot;no&quot;&gt;f/11&lt;/b&gt; et &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;A gauche f/11, à droite f/22&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;La fermeture du diaphragme crée toutefois un autre problème : le manque de lumière. Ce problème peut être résolu de deux manières : en augmentant la sensibilité ISO ou en allongeant la vitesse d&#39;obturation. Les deux méthodes affectent le résultat final, mais de manière différente. L&#39;augmentation de la sensibilité ISO à 6400 introduit du bruit numérique dans l&#39;image, il est donc préférable d&#39;utiliser les valeurs les plus basses possibles. Pour obtenir des résultats proches de l&#39;idéal, il est logique de régler la sensibilité ISO sur 100. Cependant, cela signifie que le problème de l&#39;éclairage insuffisant persiste :&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;A gauche ISO 100, à droite ISO 6400&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Le moyen le plus efficace d&#39;augmenter la quantité de lumière passant par le capteur de l&#39;appareil photo dans des conditions de faible éclairage est d&#39;allonger la vitesse d&#39;obturation. Plus l&#39;obturateur reste ouvert longtemps, plus le nombre de photons atteignant le capteur est élevé, ce qui se traduit par une meilleure qualité d&#39;image. Cette approche présente toutefois un défi : sans trépied, une vitesse d&#39;obturation de 1/50 seconde ou plus peut rendre l&#39;image floue. L&#39;utilisation d&#39;un trépied élimine ce problème.&lt;/p&gt;
&lt;p&gt;La balance des blancs est le dernier paramètre crucial. Il est important de désactiver le réglage automatique et de choisir soit un profil prédéfini (tel que &quot;Journée ensoleillée&quot;), soit une valeur personnalisée en Kelvin. Par exemple, 5200K est un réglage courant. Les valeurs inférieures font pencher la teinte vers le jaune, tandis que les valeurs supérieures font pencher la teinte vers le bleu. Pour éviter des corrections de couleur fastidieuses lors du post-traitement, utilisez le même profil de balance des blancs pour toutes les photos d&#39;une série.&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;Profils de balance des blancs. À gauche &quot;Journée ensoleillée&quot;, à droite &quot;Auto&quot;&lt;/i&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;En résumé, pour prendre des photos de haute qualité pour la photogrammétrie :&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Utilisez un trépied lorsque la lumière est insuffisante.&lt;/li&gt;
    &lt;li&gt;Fermez le diaphragme presque au minimum.&lt;/li&gt;
    &lt;li&gt;Réglez la sensibilité ISO à sa valeur minimale.&lt;/li&gt;
    &lt;li&gt;Choisissez une vitesse d&#39;obturation qui vous donne le résultat souhaité (ou utilisez l&#39;indicateur d&#39;exposition intégré à votre appareil photo).&lt;/li&gt;
    &lt;li&gt;Utilisez le même préréglage de balance des blancs.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Prendre des photos&lt;/h2&gt;
&lt;p&gt;Voyons maintenant combien de photos prendre et sous quels angles. Le type d&#39;objet et son arrière-plan influencent considérablement le résultat final. Les objets sans surface brillante, transparente ou réfléchissante sont idéaux pour la photogrammétrie. Dans la pratique, les objets tels que les fenêtres et le verre doivent souvent être corrigés ultérieurement dans un éditeur 3D. Cependant, la technique générale de prise de vue reste la même.&lt;/p&gt;
&lt;p&gt;Pour les petits objets placés sur une surface, imaginez une sphère autour de l&#39;objet. Prenez des photos comme si votre appareil photo faisait trois fois le tour de l&#39;objet : une fois par le bas, une fois par le milieu et une fois par le haut.&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;Il est essentiel que l&#39;objet occupe au moins la moitié, et de préférence les trois quarts, de chaque image. Au lieu d&#39;utiliser le zoom, essayez de vous rapprocher physiquement de l&#39;objet. Lors de la création d&#39;un point de nuage, le logiciel a besoin d&#39;autant de pixels que possible.&lt;/p&gt;
&lt;p&gt;Lors de la prise de vue, n&#39;oubliez pas que le logiciel combine les images en un seul objet pour obtenir une géométrie correcte. Prenez au moins trois images de chaque angle. Une fois l&#39;objet centré dans le cadre, divisez-le mentalement en trois parties égales. Prenez trois photos, chacune se concentrant sur un tiers de l&#39;objet. Cela permet à l&#39;application de calculer avec précision l&#39;emplacement de chaque point dans l&#39;espace 3D. Après avoir photographié l&#39;objet sous tous les angles et côtés possibles, vous pouvez commencer à préparer le logiciel.&lt;/p&gt;
&lt;h2&gt;Installer Meshroom&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://alicevision.org/&quot;&gt;Meshroom&lt;/a&gt; est une application gratuite et multiplateforme qui exécute de manière séquentielle toutes les étapes du traitement, en utilisant les ressources du processeur et du processeur graphique. Bien qu&#39;il puisse fonctionner sur un ordinateur domestique standard, chaque étape peut prendre du temps. Pour les projets à grande échelle impliquant la reconstruction 3D de nombreux objets, comme la création d&#39;une scène 3D impressionnante, la location d&#39;un &lt;a href=&quot;https://www.leadergpu.fr/&quot;&gt;serveur GPU dédié&lt;/a&gt; peut être une solution pratique.&lt;/p&gt;
&lt;p&gt;Considérons un serveur LeaderGPU avec la configuration suivante : &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;. Nous utiliserons Windows Server 2022 comme système d&#39;exploitation. Avant d&#39;installer Meshroom, vous devez effectuer quelques opérations préliminaires :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/489-connectez-vous-un-serveur-windows&quot;&gt;Se connecter à un serveur Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/500-installer-les-pilotes-nvidia-sous-windows&quot;&gt;Installer les pilotes NVIDIA® dans Windows&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/513-rendu-gpu-en-rdp&quot;&gt;Rendu GPU dans RDP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Visitez le site officiel du projet pour &lt;a href=&quot;https://alicevision.org/#meshroom&quot;&gt;télécharger Meshroom&lt;/a&gt;. Décompressez l&#39;archive résultante pour trouver une application prête à l&#39;emploi qui ne nécessite pas d&#39;installation supplémentaire. Lancez &lt;b translate=&quot;no&quot;&gt;Meshroom.exe&lt;/b&gt; pour commencer.&lt;/p&gt;
&lt;h3&gt;Télécharger les images&lt;/h3&gt;
&lt;p&gt;La fenêtre principale de l&#39;application est divisée en deux parties : la partie supérieure et la partie inférieure. La partie supérieure contient la galerie d&#39;images, la visionneuse d&#39;images et la visionneuse 3D. La partie inférieure contient l&#39;éditeur graphique et le gestionnaire de tâches. Pour commencer, faites glisser et déposez vos photos capturées dans la zone désignée. Les formats de fichiers compressés (par exemple, JPG) et RAW sont tous deux pris en charge. Il est recommandé d&#39;utiliser les fichiers RAW car ils contiennent beaucoup plus de données pour chaque image.&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;Veuillez noter que vous disposez déjà par défaut d&#39;un pipeline standard prêt à l&#39;emploi, qui est affiché de manière schématique dans l&#39;éditeur de graphiques. Il s&#39;agit de l&#39;une des commandes les plus importantes, qui permet de configurer tous les aspects du traitement de l&#39;image à chaque étape. Vous pouvez exécuter manuellement chaque étape en cliquant avec le bouton droit de la souris et en sélectionnant &lt;b translate=&quot;no&quot;&gt;Compute&lt;/b&gt; dans le menu déroulant.&lt;/p&gt;
&lt;p&gt;Mais pour la première fois, vous pouvez simplement cliquer sur le bouton vert &lt;b translate=&quot;no&quot;&gt;Start&lt;/b&gt;, et l&#39;application fera tout pour vous. Elle vous invitera à sauvegarder le projet, afin de ne pas perdre accidentellement les résultats du calcul. Cliquez sur &lt;b translate=&quot;no&quot;&gt;Save&lt;/b&gt;, indiquez un nom et un répertoire et enregistrez le projet :&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;Ensuite, l&#39;application transfère toutes les étapes de traitement de l&#39;éditeur graphique au gestionnaire des tâches, qui gère leur exécution dans un ordre spécifique. Pour vérifier l&#39;état de chaque étape, sélectionnez le bloc correspondant dans l&#39;éditeur de graphique et cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Log&lt;/b&gt; dans le coin inférieur droit de l&#39;écran. Vous pouvez également voir en temps réel quelle étape est en cours de traitement :&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;Sur le côté droit, vous pouvez voir le nuage de points que vous avez construit. Le résultat final, généré à l&#39;aide du pipeline standard, est disponible dans le répertoire :&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;Bien entendu, si vous fixez au préalable le chemin de sortie dans le nœud final du pipeline, l&#39;objet se retrouvera sur le chemin que vous avez spécifié. Vous pouvez ensuite l&#39;importer dans n&#39;importe quel éditeur de texte pour corriger les surfaces, ajouter des sources de lumière et d&#39;autres effets avant le rendu.&lt;/p&gt;
&lt;h2&gt;Intégration&lt;/h2&gt;
&lt;p&gt;Si le résultat initial est impressionnant, il doit souvent être affiné dans un éditeur 3D. Meshroom simplifie ce processus en vous permettant d&#39;importer non seulement le modèle, mais aussi le nuage de points et les positions de la caméra dans des éditeurs tiers tels que &lt;a href=&quot;https://www.sidefx.com/&quot;&gt;Houdini&lt;/a&gt; ou &lt;a href=&quot;https://www.blender.org/&quot;&gt;Blender&lt;/a&gt;. Dans la section suivante, nous allons voir comment procéder.&lt;/p&gt;
&lt;h3&gt;Houdini&lt;/h3&gt;
&lt;p&gt;En fait, Meshroom est une interface conviviale pour le moteur AliceVision, qui gère toutes les opérations liées au calcul. Cette interface implémente le pipeline et le gestionnaire de tâches correspondants. Si vous utilisez Houdini, vous pouvez créer votre propre pipeline directement dans l&#39;application et l&#39;utiliser avec d&#39;autres outils, sans avoir à lancer Meshroom séparément.&lt;/p&gt;
&lt;p&gt;Pour commencer, il est préférable de &lt;a href=&quot;https://www.sidefx.com/download/download-houdini/120709/&quot;&gt;télécharger&lt;/a&gt; et d&#39;installer un lanceur dédié qui gérera les mises à jour et les plugins de Houdini. Ensuite, ajoutez le plugin SideFX Labs, qui offre de nombreux outils supplémentaires, dont des nœuds spécifiques pour AliceVision. Pour ce faire, cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt;, puis sélectionnez &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;Faites défiler la liste et sélectionnez &lt;b translate=&quot;no&quot;&gt;SideFX Labs&lt;/b&gt;, puis cliquez sur le bouton &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;Pour installer un plugin, procédez comme suit : Cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Start Launcher&lt;/b&gt;, accédez à la section &lt;b translate=&quot;no&quot;&gt;Labs/Packages&lt;/b&gt; dans le menu de gauche et sélectionnez &lt;b translate=&quot;no&quot;&gt;Install packages&lt;/b&gt;. Une fenêtre s&#39;ouvrira dans laquelle vous pourrez choisir les paquets à installer :&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;Choisissez le paquet &lt;b translate=&quot;no&quot;&gt;Production Build&lt;/b&gt; correspondant à votre version de Houdini et cliquez sur &lt;b translate=&quot;no&quot;&gt;Install&lt;/b&gt;. Redémarrez ensuite l&#39;application pour vous assurer que les nouvelles icônes d&#39;effets apparaissent en haut :&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;Il est essentiel de noter que vous ne trouverez aucune mention d&#39;AliceVision ou de Meshlab ici. Cela s&#39;explique par le fait que le plugin correspondant ne fonctionne que dans le pipeline de contexte géométrique. Pour le vérifier, cliquez sur l&#39;icône &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt;, puis sélectionnez &lt;b translate=&quot;no&quot;&gt;New Pane Tab Type&lt;/b&gt; et &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;Appuyez sur la touche &lt;b translate=&quot;no&quot;&gt;Tab&lt;/b&gt; et ajoutez un nœud &lt;b translate=&quot;no&quot;&gt;Geometry&lt;/b&gt;:&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;Double-cliquez pour ouvrir le nœud créé et tapez &lt;b translate=&quot;no&quot;&gt;av&lt;/b&gt; sur votre clavier. Le système affiche instantanément une liste de nœuds disponibles commençant par les symboles Labs AV. Ces nœuds vous permettent de contrôler le moteur AliceVision et de l&#39;intégrer dans vos propres pipelines :&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;Pour créer un pipeline approprié, reportez-vous à la &lt;a href=&quot;https://www.sidefx.com/tutorials/alicevision-plugin/&quot;&gt;documentation officielle&lt;/a&gt; du plugin. De plus, pensez à ajouter le répertoire AliceVision à la liste des variables d&#39;environnement dans le fichier houdini.env. Pour une installation standard utilisant le launcher, ce fichier est typiquement situé dans le répertoire &lt;b translate=&quot;no&quot;&gt;C:\Users\Administrator\Documents\houdini20.5\&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Ouvrez le fichier houdini.env avec n&#39;importe quel éditeur de texte et ajoutez la ligne suivante :&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;Par exemple, si vous avez installé Meshroom dans le répertoire racine du disque D :, votre chemin pourrait ressembler à ceci :&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;Enregistrez le fichier, puis redémarrez l&#39;application Houdini.&lt;/p&gt;
&lt;h3&gt;Blender&lt;/h3&gt;
&lt;p&gt;Pour les utilisateurs de Blender, nous recommandons le plugin &lt;b translate=&quot;no&quot;&gt;Meshroom2Blender&lt;/b&gt;. Bien qu&#39;il fonctionne différemment du plugin Houdini, il vous permet d&#39;exporter les nuages de points et les positions de caméra calculés par Meshroom vers Blender. Pour accéder au code du plugin, ouvrez le lien dans votre navigateur :&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;Enregistrez le code sous &lt;b translate=&quot;no&quot;&gt;view3d_point_cloud_visualizer.py&lt;/b&gt; dans un répertoire approprié. Ensuite, ouvrez Blender et naviguez jusqu&#39;à &lt;b translate=&quot;no&quot;&gt;Edit&lt;/b&gt; - &lt;b translate=&quot;no&quot;&gt;Preferences&lt;/b&gt;. De là, sélectionnez l&#39;onglet &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;Cliquez sur la flèche vers le bas et sélectionnez &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;Dans la nouvelle fenêtre ouverte, naviguez jusqu&#39;au répertoire où vous avez sauvegardé le plugin. Sélectionnez le fichier du plugin et cliquez sur le bouton &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;Le plugin est maintenant installé. Il est recommandé de redémarrer l&#39;application. Après le redémarrage, vous verrez l&#39;élément &lt;b translate=&quot;no&quot;&gt;Point Cloud Visualizer&lt;/b&gt; en mode visualisation. Le plugin vous demande de spécifier le chemin d&#39;accès à un fichier avec l&#39;extension &lt;b translate=&quot;no&quot;&gt;.ply&lt;/b&gt;:&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;Par défaut, Meshroom ne génère pas ce type de fichier. Pour le créer, ouvrez le pipeline et ajoutez le noeud &lt;b translate=&quot;no&quot;&gt;ConvertSfMFormat&lt;/b&gt;. Utilisez en entrée le &lt;b translate=&quot;no&quot;&gt;SfMData&lt;/b&gt; du nœud &lt;b translate=&quot;no&quot;&gt;StructureFromMotion&lt;/b&gt;. En sortie, spécifiez le &lt;b translate=&quot;no&quot;&gt;Images Folder&lt;/b&gt; du nœud &lt;b translate=&quot;no&quot;&gt;Texturing&lt;/b&gt;.&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;La dernière étape consiste à spécifier le format. Cliquez sur &lt;b translate=&quot;no&quot;&gt;SfM File Format&lt;/b&gt; dans le nœud &lt;b translate=&quot;no&quot;&gt;ConvertSfMFormat&lt;/b&gt; et sélectionnez &lt;b translate=&quot;no&quot;&gt;ply&lt;/b&gt; dans la liste déroulante :&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;Cliquez avec le bouton droit de la souris sur le nœud créé et sélectionnez &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;Une fois le processus terminé, vous trouverez le fichier requis dans le répertoire :&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;Vous pouvez le charger dans Blender de deux manières : via le plugin susmentionné ou via le processus d&#39;importation standard &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;Pour plus d&#39;informations sur l&#39;utilisation de ce plugin, nous vous suggérons de consulter le &lt;a href=&quot;https://github.com/tibicen/meshroom2blender&quot;&gt;dépôt du projet&lt;/a&gt; ou une ressource web spécialisée.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;La photogrammétrie est un vaste domaine de connaissances, dans lequel nous avons essayé de présenter seulement quelques techniques de base pour convertir des images 2D en un modèle 3D. Cette technique est utilisée dans de nombreuses industries, de l&#39;architecture à la création de jeux vidéo.&lt;/p&gt;
&lt;p&gt;Après avoir acquis une première expérience de la prise de vue d&#39;un ensemble de données et de sa transformation cohérente en un modèle 3D, vous serez en mesure d&#39;améliorer vos compétences et de transférer des objets physiques dans un espace 3D virtuel. Enfin, LeaderGPU vous aidera en termes de puissance de calcul, en réduisant le temps de calcul et en libérant votre poste de travail pour d&#39;autres tâches, souvent plus prioritaires.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/588-rendu-distance-de-blender-avec-flamenco&quot;&gt;Rendu à distance de Blender avec Flamenco&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/590-fooocus-repenser-le-sd-et-le-mj&quot;&gt;Fooocus : Repenser le SD et le MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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 : Tout en un</title>
      <link>https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un</link>
      <description>&lt;p&gt;Open WebUI a été développé à l&#39;origine pour Ollama, dont nous avons parlé dans l&#39;un de nos articles. Auparavant, il s&#39;appelait Ollama WebUI, mais au fil du temps, l&#39;accent a été mis sur l&#39;universalité de l&#39;application, et le nom a été changé en Open WebUI. Ce logiciel résout le problème clé du travail pratique avec de grands modèles de réseaux neuronaux placés localement ou sur des serveurs contrôlés par l&#39;utilisateur.&lt;/p&gt;
&lt;h2&gt;Installation du logiciel&lt;/h2&gt;
&lt;p&gt;La méthode d&#39;installation principale et préférée consiste à déployer un conteneur Docker. Cela vous permet de ne pas penser à la présence de dépendances ou d&#39;autres composants qui garantissent le bon fonctionnement du logiciel. Cependant, vous pouvez installer Open WebUI en clonant le dépôt du projet depuis GitHub et en le construisant à partir du code source. Dans cet article, nous examinerons les deux options.&lt;/p&gt;
&lt;p&gt;Avant de commencer, assurez-vous que les pilotes GPU sont installés sur le serveur. Notre instruction &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;Installer les pilotes NVIDIA® sous Linux&lt;/a&gt; vous aidera à le faire.&lt;/p&gt;
&lt;h3&gt;Utilisation de Docker&lt;/h3&gt;
&lt;p&gt;Si vous venez de commander un serveur, vous ne disposerez pas du moteur Docker ni de l&#39;ensemble des outils nécessaires pour transférer les GPU dans le conteneur. Nous ne recommandons pas d&#39;installer Docker à partir du dépôt standard d&#39;Ubuntu, car il peut être obsolète et ne pas prendre en charge toutes les options modernes. Il est préférable d&#39;utiliser le script d&#39;installation publié sur le site officiel :&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;En plus de Docker, vous devez installer le NVIDIA® Container Toolkit, donc activer le dépôt NVIDIA® :&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;Mettez à jour votre cache de paquets et installez 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;Pour que la chaîne d&#39;outils fonctionne, vous devez redémarrer le démon Docker :&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;Vous pouvez maintenant exécuter le conteneur souhaité. Notez que la commande suivante n&#39;isole pas les conteneurs du réseau de l&#39;hôte car plus tard, vous pourrez activer des options supplémentaires, telles que la génération d&#39;images à l&#39;aide de l&#39;interface Web de Stable Diffusion. Cette commande téléchargera et exécutera automatiquement toutes les couches de l&#39;image :&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;Utilisation de Git&lt;/h3&gt;
&lt;h4&gt;Ubuntu 22.04&lt;/h4&gt;
&lt;p&gt;Tout d&#39;abord, vous devez cloner le contenu du dépôt :&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;Ouvrez le répertoire téléchargé :&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;Copiez l&#39;exemple de configuration (vous pouvez le modifier si nécessaire), qui définira les variables d&#39;environnement pour la construction :&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;Installer le programme d&#39;installation NVM, qui vous aidera à installer la version requise de Node.js sur le serveur :&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;Ensuite, vous devez fermer et rouvrir la session SSH pour que la commande suivante fonctionne correctement.&lt;/p&gt;
&lt;p&gt;Installer le gestionnaire de paquets Node :&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;Installez la version 22 de Node.js (version actuelle au moment de la rédaction de cet article) :&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;Installer les dépendances nécessaires à la poursuite de l&#39;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;Commençons la construction. Veuillez noter qu&#39;il faut plus de 4 Go de RAM libre :&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;Le frontend est prêt ; il est maintenant temps de préparer le backend. Allez dans le répertoire portant le même nom :&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;Installez les paquets pip et ffmpeg :&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;Avant l&#39;installation, vous devez ajouter un nouveau chemin à la variable d&#39;environnement :&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;Ajoutez la ligne suivante à la fin du fichier :&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;Mettons-le à jour avec la dernière version :&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;Vous pouvez maintenant installer les dépendances :&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;Installer 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;Tout est prêt pour lancer l&#39;application :&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;Lors de l&#39;installation d&#39;OpenWebUI sur Ubuntu 24.04/24.10, vous serez confronté à un défi majeur : le système d&#39;exploitation utilise Python 3.12 par défaut, alors qu&#39;OpenWebUI ne supporte que la version 3.11. Vous ne pouvez pas simplement rétrograder Python, car cela casserait le système d&#39;exploitation. Comme le paquetage python3.11 n&#39;est pas disponible dans les dépôts standard, vous devrez créer un environnement virtuel pour utiliser la bonne version de Python.&lt;/p&gt;
&lt;p&gt;La meilleure solution consiste à utiliser le système de gestion de paquets Conda. Conda fonctionne comme pip mais ajoute un support d&#39;environnement virtuel similaire à venv. Comme vous n&#39;avez besoin que de fonctionnalités de base, vous utiliserez Miniconda, une distribution légère. Téléchargez la dernière version sur 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;Exécutez le script :&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;
Créons un environnement virtuel nommé pyenv et spécifions la version 3.11 de Python :&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;Activez l&#39;environnement créé :&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;Vous pouvez maintenant procéder à l&#39;installation standard d&#39;OpenWebUI pour Ubuntu 22.04. L&#39;environnement virtuel garantit que tous les scripts d&#39;installation se dérouleront sans problème et sans conflit de version de paquetage.&lt;/p&gt;
&lt;h2&gt;Modèles&lt;/h2&gt;
&lt;h3&gt;Bibliothèque Ollama&lt;/h3&gt;
&lt;p&gt;Open WebUI vous permet de télécharger des modèles directement à partir de l&#39;interface web, en spécifiant uniquement le nom au format &lt;b translate=&quot;no&quot;&gt;model:size&lt;/b&gt;. Pour ce faire, naviguez jusqu&#39;à &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; et cliquez sur &lt;b translate=&quot;no&quot;&gt;Connections&lt;/b&gt;. Cliquez ensuite sur l&#39;icône de clé à molette en face de la chaîne &lt;b translate=&quot;no&quot;&gt;http://localhost:11434&lt;/b&gt;. Après avoir consulté les noms des modèles de la &lt;a href=&quot;https://ollama.com/library&quot;&gt;bibliothèque&lt;/a&gt;, saisissez son nom et cliquez sur l&#39;icône de téléchargement :&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;Le système téléchargera ensuite automatiquement le modèle requis, qui sera immédiatement disponible. En fonction de la taille sélectionnée, le téléchargement peut prendre plus ou moins de temps. Avant de procéder au téléchargement, assurez-vous qu&#39;il y a suffisamment d&#39;espace sur le disque dur. Pour plus d&#39;informations, voir l&#39;article &lt;a href=&quot;https://www.leadergpu.fr/articles/492-partitionnement-de-disque-sous-linux&quot;&gt;Partitionnement du disque sous Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Modèles personnalisés&lt;/h3&gt;
&lt;p&gt;Si vous devez intégrer un modèle de réseau neuronal qui ne se trouve pas dans la bibliothèque Ollama, vous pouvez utiliser la fonction expérimentale et charger n&#39;importe quel modèle arbitraire au format GGUF. Pour ce faire, allez sur &lt;b translate=&quot;no&quot;&gt;Settings - Admin Settings - Connections&lt;/b&gt; et cliquez sur l&#39;icône de clé à molette en face de &lt;b translate=&quot;no&quot;&gt;http://localhost:11434&lt;/b&gt;. Cliquez sur &lt;b translate=&quot;no&quot;&gt;Show&lt;/b&gt; dans la section &lt;b translate=&quot;no&quot;&gt;Experimental&lt;/b&gt;. Par défaut, le mode fichier est activé, ce qui vous permet de charger un fichier à partir de votre ordinateur local. Si vous cliquez sur &lt;b translate=&quot;no&quot;&gt;File Mode&lt;/b&gt;, vous passez à &lt;b translate=&quot;no&quot;&gt;URL Mode&lt;/b&gt;, qui vous permet de spécifier l&#39;URL du fichier modèle, et le serveur le téléchargera automatiquement :&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;Outre une interface web pratique et fonctionnelle, Open WebUI permet d&#39;étendre les capacités des différents modèles et d&#39;assurer leur utilisation conjointe. Par exemple, il est facile de télécharger des documents pour former une base de données vectorielle RAG (Retrieval-augmented generation). Au cours du processus de génération d&#39;une réponse à l&#39;utilisateur, LLM pourra s&#39;appuyer non seulement sur les données obtenues directement à la suite de la formation, mais aussi sur les données placées dans une base de données vectorielles similaire.&lt;/p&gt;
&lt;h3&gt;Les documents&lt;/h3&gt;
&lt;p&gt;Par défaut, Open WebUI recherche dans le répertoire /data/docs les fichiers qui peuvent être placés dans l&#39;espace vectoriel de la base de données et effectue la transformation en utilisant le modèle intégré &lt;a href=&quot;https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2&quot;&gt;all-MiniLM-L6-v2&lt;/a&gt;. Ce n&#39;est pas le seul modèle adapté à cette tâche, il est donc judicieux d&#39;essayer d&#39;autres options, par exemple dans cette liste.&lt;/p&gt;
&lt;p&gt;Les documents texte, dépourvus de balises et d&#39;autres caractères spéciaux, sont les mieux adaptés à RAG. Bien sûr, vous pouvez télécharger des documents tels quels, mais cela peut affecter considérablement la précision des réponses générées. Par exemple, si vous disposez d&#39;une base de connaissances au format Markdown, vous pouvez d&#39;abord la débarrasser de son formatage, puis la télécharger dans /data/docs.&lt;/p&gt;
&lt;h3&gt;Recherche sur le web&lt;/h3&gt;
&lt;p&gt;Outre les documents locaux, il est possible de demander au modèle de réseau neuronal d&#39;utiliser n&#39;importe quel site web comme source de données. Cela lui permettra de répondre à des questions en utilisant non seulement les données sur lesquelles il a été formé, mais aussi des données hébergées sur des sites web spécifiés par l&#39;utilisateur.&lt;/p&gt;
&lt;p&gt;En fait, il s&#39;agit d&#39;un type de RAG, qui reçoit des pages HTML en entrée et les transforme ensuite d&#39;une manière spéciale, en les plaçant dans une base de données vectorielle. La recherche dans une telle base de données sera très rapide ; par conséquent, le modèle de réseau neuronal sera en mesure de générer rapidement une réponse sur la base de ses résultats. Open WebUI prend en charge différents moteurs de recherche, mais ne peut en utiliser qu&#39;un seul à la fois, ce qui est spécifié dans les paramètres.&lt;/p&gt;
&lt;p&gt;Pour inclure les résultats de la recherche Web dans les réponses du réseau neuronal, cliquez sur &lt;b translate=&quot;no&quot;&gt;+&lt;/b&gt; (symbole plus) et faites glisser le commutateur Recherche Web :&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;Génération d&#39;images&lt;/h2&gt;
&lt;p&gt;Le point fort d&#39;Open WebUI est que ce logiciel permet de combiner plusieurs réseaux neuronaux aux tâches différentes pour résoudre un seul problème. Par exemple, Llama 3.1 mène parfaitement un dialogue avec l&#39;utilisateur en plusieurs langues, mais ses réponses seront exclusivement textuelles. Il ne peut pas générer d&#39;images, il n&#39;y a donc aucun moyen d&#39;illustrer ses réponses.&lt;/p&gt;
&lt;p&gt;Stable Diffusion, dont nous avons souvent parlé, est à l&#39;opposé : ce réseau neuronal génère parfaitement des images, mais ne peut pas du tout travailler avec des textes. Les développeurs d&#39;Open WebUI ont essayé de combiner les points forts des deux réseaux neuronaux dans un seul dialogue et ont mis en œuvre le schéma de travail suivant.&lt;/p&gt;
&lt;p&gt;Lorsque vous menez un dialogue dans Open WebUI, un bouton spécial apparaît à côté de chaque réponse du réseau neuronal. En cliquant dessus, vous obtiendrez une illustration de cette réponse directement dans le dialogue :&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;Pour ce faire, il faut appeler l&#39;API WebUI de Stable Diffusion et, pour l&#39;instant, une connexion avec les versions d&#39;Automatic1111 et une connexion à ComfyUI sont disponibles. Vous pouvez également générer des images via le réseau neuronal Dall-E, mais il ne peut pas être déployé localement - il s&#39;agit d&#39;un service payant de génération d&#39;images dont le code source est fermé.&lt;/p&gt;
&lt;p&gt;Cette fonctionnalité ne fonctionnera que si, en plus d&#39;Open WebUI avec Ollama, Stable Diffusion WebUI est installé sur le serveur. Vous pouvez trouver les instructions d&#39;installation &lt;a href=&quot;https://www.leadergpu.fr/articles/565-stable-diffusion-webui&quot;&gt;ici&lt;/a&gt;. La seule chose qui mérite d&#39;être mentionnée est que lors de l&#39;exécution du script ./webui.sh, vous devrez spécifier une clé supplémentaire pour activer l&#39;API :&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;Un autre problème peut survenir en raison d&#39;un manque de mémoire vidéo. Si vous rencontrez ce problème, vous pouvez utiliser deux clés utiles : &lt;b translate=&quot;no&quot;&gt;--medvram&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;--lowvram&lt;/b&gt;. Vous éviterez ainsi l&#39;erreur &quot;Out-of-memory&quot; au démarrage de la génération.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/583-comment-fonctionne-ollama&quot;&gt;Comment fonctionne Ollama?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant 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>Comment fonctionne Ollama ?</title>
      <link>https://www.leadergpu.fr/catalog/583-comment-fonctionne-ollama</link>
      <description>&lt;p&gt;Ollama est un outil permettant d&#39;exécuter localement de grands modèles de réseaux neuronaux. L&#39;utilisation des services publics est souvent perçue par les entreprises comme un risque potentiel de fuite de données confidentielles et sensibles. Par conséquent, le déploiement de LLM sur un serveur contrôlé vous permet de gérer de manière indépendante les données qui y sont placées tout en utilisant les forces de LLM.&lt;/p&gt;
&lt;p&gt;Cela permet également d&#39;éviter la situation désagréable du verrouillage du fournisseur, où tout service public peut unilatéralement cesser de fournir des services. Bien entendu, l&#39;objectif initial est de permettre l&#39;utilisation de réseaux neuronaux génératifs dans des lieux où l&#39;accès à l&#39;internet est absent ou difficile (par exemple, dans un avion).&lt;/p&gt;
&lt;p&gt;L&#39;idée était de simplifier le lancement, le contrôle et le réglage fin des LLM. Au lieu d&#39;instructions complexes en plusieurs étapes, Ollama vous permet d&#39;exécuter une simple commande et de recevoir le résultat final après un certain temps. Il sera présenté simultanément sous la forme d&#39;un modèle de réseau neuronal local, avec lequel vous pouvez communiquer à l&#39;aide d&#39;une interface web et d&#39;une API pour une intégration facile dans d&#39;autres applications.&lt;/p&gt;
&lt;p&gt;Pour de nombreux développeurs, cet outil est devenu très utile, car dans la plupart des cas, il était possible d&#39;intégrer Ollama à l&#39;IDE utilisé et de recevoir des recommandations ou du code prêt à l&#39;emploi écrit directement pendant que l&#39;on travaillait sur l&#39;application.&lt;/p&gt;
&lt;p&gt;À l&#39;origine, Ollama était destiné uniquement aux ordinateurs équipés du système d&#39;exploitation macOS, mais il a ensuite été porté sur Linux et Windows. Une version spéciale a également été publiée pour travailler dans des environnements conteneurisés tels que Docker. Actuellement, il fonctionne aussi bien sur les ordinateurs de bureau que sur les serveurs dédiés dotés d&#39;un GPU. Ollama permet de passer d&#39;un modèle à l&#39;autre dès la sortie de la boîte et de maximiser toutes les ressources disponibles. Bien entendu, ces modèles ne sont pas aussi performants sur un ordinateur de bureau classique, mais ils fonctionnent de manière tout à fait adéquate.&lt;/p&gt;
&lt;h2&gt;Comment installer Ollama&lt;/h2&gt;
&lt;p&gt;Ollama peut être installé de deux manières : sans utiliser la conteneurisation, en utilisant un script d&#39;installation, et en tant que conteneur Docker prêt à l&#39;emploi. La première méthode facilite la gestion des composants du système et des modèles installés, mais est moins tolérante aux pannes. La seconde méthode est plus tolérante aux pannes, mais son utilisation nécessite de prendre en compte tous les aspects inhérents aux conteneurs : une gestion un peu plus complexe et une approche différente du stockage des données.&lt;/p&gt;
&lt;p&gt;Quelle que soit la méthode choisie, plusieurs étapes supplémentaires sont nécessaires pour préparer le système d&#39;exploitation.&lt;/p&gt;
&lt;h3&gt;Les prérequis&lt;/h3&gt;
&lt;p&gt;Mettre à jour le dépôt de cache des paquets et les paquets installés :&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;Installer tous les pilotes GPU nécessaires à l&#39;aide de la fonction d&#39;installation automatique :&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;Redémarrer le serveur :&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;Installation par script&lt;/h3&gt;
&lt;p&gt;Le script suivant détecte l&#39;architecture du système d&#39;exploitation actuel et installe la version appropriée d&#39;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;Pendant l&#39;opération, le script créera un utilisateur &lt;b translate=&quot;no&quot;&gt;ollama&lt;/b&gt; distinct, sous lequel le démon correspondant sera lancé. Incidemment, le même script fonctionne bien dans WSL2, permettant l&#39;installation de la version Linux d&#39;Ollama sur Windows Server.&lt;/p&gt;
&lt;h3&gt;Installation via Docker&lt;/h3&gt;
&lt;p&gt;Il existe plusieurs méthodes pour installer Docker Engine sur un serveur. La plus simple consiste à utiliser un script spécifique qui installe la version actuelle de Docker. Cette approche est efficace pour Ubuntu Linux, de la version 20.04 (LTS) à la dernière version, 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;Pour que les conteneurs Docker interagissent correctement avec le GPU, une boîte à outils supplémentaire doit être installée. Comme il n&#39;est pas disponible dans les dépôts de base d&#39;Ubuntu, vous devez d&#39;abord ajouter un dépôt tiers à l&#39;aide de la commande suivante :&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;Mettre à jour le dépôt de cache de paquets :&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;Et installez le paquet &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;N&#39;oubliez pas de redémarrer le daemon docker 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;Il est temps de télécharger et d&#39;exécuter Ollama avec l&#39;interface web Open-WebUI :&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;Ouvrez le navigateur web et naviguez vers &lt;b translate=&quot;no&quot;&gt;http://[server-ip]:3000&lt;/b&gt;:&lt;/p&gt;
&lt;h2&gt;Télécharger et exécuter les modèles&lt;/h2&gt;
&lt;h3&gt;En ligne de commande&lt;/h3&gt;
&lt;p&gt;Il suffit d&#39;exécuter la commande suivante :&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 l&#39;interface WebUI&lt;/h3&gt;
&lt;p&gt;Ouvrez &lt;b translate=&quot;no&quot;&gt;Settings &gt; Models&lt;/b&gt;, tapez le nom du modèle nécessaire, par exemple, &lt;b translate=&quot;no&quot;&gt;llama3&lt;/b&gt; et cliquez sur le bouton avec le symbole de téléchargement :&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;Le modèle sera téléchargé et installé automatiquement. Une fois le téléchargement terminé, fermez la fenêtre de configuration et sélectionnez le modèle téléchargé. Vous pourrez alors entamer un dialogue avec lui :&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;Intégration du VSCode&lt;/h2&gt;
&lt;p&gt;Si vous avez installé Ollama en utilisant le script d&#39;installation, vous pouvez lancer n&#39;importe quel modèle supporté presque instantanément. Dans l&#39;exemple suivant, nous lancerons le modèle par défaut attendu par l&#39;extension Ollama Autocoder (&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;Par défaut, Ollama permet de travailler à travers une API, autorisant uniquement les connexions à partir de l&#39;hôte local. Par conséquent, avant d&#39;installer et d&#39;utiliser l&#39;extension pour Visual Studio Code, une redirection de port est nécessaire. Plus précisément, vous devez rediriger le port distant &lt;b translate=&quot;no&quot;&gt;11434&lt;/b&gt; vers votre ordinateur local. Vous trouverez un exemple de cette procédure dans notre article sur &lt;a href=&quot;https://www.leadergpu.fr/articles/598-easy-diffusion-ui&quot;&gt;Easy Diffusion WebUI&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tapez &lt;b translate=&quot;no&quot;&gt;Ollama Autocoder&lt;/b&gt; dans un champ de recherche, puis cliquez sur &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;Après l&#39;installation de l&#39;extension, un nouvel élément intitulé &lt;b translate=&quot;no&quot;&gt;Autocomplete with Ollama&lt;/b&gt; sera disponible dans la palette de commandes. Commencez à coder et lancez cette commande.&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;L&#39;extension se connectera au serveur LeaderGPU en utilisant la redirection de port et dans quelques secondes, le code généré s&#39;affichera sur votre écran :&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;Vous pouvez assigner cette commande à un raccourci clavier. Vous pouvez assigner cette commande à un raccourci clavier. Utilisez-la chaque fois que vous souhaitez compléter votre code avec un fragment généré. Ce n&#39;est qu&#39;un exemple des extensions VSCode disponibles. Le principe du transfert de port d&#39;un serveur distant vers un ordinateur local vous permet de mettre en place un seul serveur avec un LLM en cours d&#39;exécution pour toute une équipe de développeurs. Cette garantie empêche les entreprises tierces ou les pirates d&#39;utiliser le code envoyé.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/584-open-webui-tout-en-un&quot;&gt;Open WebUI: Tout en un&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant 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 : L&#39;IA pour les documents</title>
      <link>https://www.leadergpu.fr/catalog/581-privategpt-l-ia-pour-les-documents</link>
      <description>&lt;p&gt;Les grands modèles linguistiques ont beaucoup évolué ces dernières années et sont devenus des outils efficaces pour de nombreuses tâches. Le seul problème lié à leur utilisation est que la plupart des produits basés sur ces modèles utilisent des services prêts à l&#39;emploi d&#39;entreprises tierces. Cette utilisation peut entraîner la fuite de données sensibles, c&#39;est pourquoi de nombreuses entreprises évitent de télécharger des documents internes dans des services LLM publics.&lt;/p&gt;
&lt;p&gt;Un projet comme PrivateGPT pourrait être une solution. Il est initialement conçu pour un usage entièrement local. Sa force réside dans le fait que vous pouvez soumettre divers documents en entrée, et le réseau neuronal les lira pour vous et fournira ses propres commentaires en réponse à vos demandes. Par exemple, vous pouvez lui faire parvenir des textes volumineux et lui demander de tirer des conclusions sur la base de la demande de l&#39;utilisateur. Cela vous permet d&#39;économiser considérablement du temps sur la relecture.&lt;/p&gt;
&lt;p&gt;C&#39;est particulièrement vrai dans des domaines professionnels comme la médecine. Par exemple, un médecin peut poser un diagnostic et demander au réseau neuronal de le confirmer sur la base de l&#39;ensemble des documents téléchargés. Cela permet d&#39;obtenir un avis indépendant supplémentaire et de réduire ainsi le nombre d&#39;erreurs médicales. Comme les demandes et les documents ne quittent pas le serveur, on peut être sûr que les données reçues n&#39;apparaîtront pas dans le domaine public.&lt;/p&gt;
&lt;p&gt;Aujourd&#39;hui, nous allons vous montrer comment déployer un réseau neuronal sur des serveurs dédiés LeaderGPU avec le système d&#39;exploitation Ubuntu 22.04 LTS en seulement 20 minutes.&lt;/p&gt;
&lt;h2&gt;Préparation du système&lt;/h2&gt;
&lt;p&gt;Commencez par mettre à jour vos paquets vers la dernière version :&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;Installez maintenant des paquets supplémentaires, des bibliothèques et le pilote graphique NVIDIA®. Tous ces éléments seront nécessaires pour construire le logiciel et l&#39;exécuter sur le 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;Installation de CUDA® 12.4&lt;/h2&gt;
&lt;p&gt;En plus du pilote, vous devez installer le kit d&#39;outils NVIDIA® CUDA®. Ces instructions ont été testées sur CUDA® 12.4, mais tout devrait également fonctionner sur CUDA® 12.2. Cependant, gardez à l&#39;esprit que vous devrez indiquer la version installée lorsque vous spécifierez le chemin d&#39;accès aux fichiers exécutables.&lt;/p&gt;
&lt;p&gt;Exécutez la commande suivante de manière séquentielle :&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;Vous &lt;a href=&quot;https://www.leadergpu.fr/articles/615-installer-la-bo-te-outils-cuda-sous-linux&quot;&gt;trouverez&lt;/a&gt; plus d&#39;informations sur l&#39;installation de CUDA® dans notre base de connaissances. Redémarrez le serveur :&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 install&lt;/h2&gt;
&lt;p&gt;Il est temps d&#39;installer un simple utilitaire de contrôle de version Python appelé PyEnv. Il s&#39;agit d&#39;une version améliorée du projet similaire pour Ruby (&lt;a href=&quot;https://github.com/rbenv/rbenv&quot;&gt;rbenv&lt;/a&gt;), configuré pour fonctionner avec Python. Il peut être installé avec un script d&#39;une ligne :&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;Vous devez maintenant ajouter quelques variables à la fin du fichier script, qui est exécuté lors de la connexion. Les trois premières lignes sont responsables du bon fonctionnement de PyEnv, et la quatrième est nécessaire pour Poetry, qui sera installé plus tard :&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;Appliquez les réglages que vous avez effectués :&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;Installer la version 3.11 de Python :&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;Créer un environnement virtuel pour 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;Installation de Poetry&lt;/h2&gt;
&lt;p&gt;La prochaine pièce du puzzle est Poetry. Il s&#39;agit d&#39;un analogue de pip pour la gestion des dépendances dans les projets Python. L&#39;auteur de Poetry était fatigué d&#39;avoir constamment affaire à différentes méthodes de configuration, telles que &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;, et d&#39;autres. C&#39;est ce qui a motivé le développement d&#39;un nouvel outil qui utilise un fichier &lt;b translate=&quot;no&quot;&gt;pyproject.toml&lt;/b&gt;, qui stocke toutes les informations de base sur un projet, et pas seulement une liste de dépendances.&lt;/p&gt;
&lt;p&gt;Installer la poésie :&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 install&lt;/h2&gt;
&lt;p&gt;Maintenant que tout est prêt, vous pouvez cloner le dépôt PrivateGPT :&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;Allez sur le dépôt téléchargé :&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;Exécuter l&#39;installation des dépendances à l&#39;aide de Poetry tout en activant les composants supplémentaires :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;ui&lt;/b&gt; - ajoute une interface web de gestion basée sur &lt;a href=&quot;https://www.gradio.app/&quot;&gt;Gradio&lt;/a&gt; à l&#39;application dorsale ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;embedding-huggingface&lt;/b&gt; - permet d&#39;intégrer des modèles téléchargés depuis &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; - ajoute la prise en charge de l&#39;inférence directe des modèles au format GGUF ;&lt;/li&gt;
    &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;vector-stores-qdrant&lt;/b&gt; - ajoute la base de données vectorielle qdrant.&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;Définissez votre jeton d&#39;accès à Hugging Face. Pour plus d&#39;informations, veuillez lire &lt;a href=&quot;https://huggingface.co/docs/hub/security-tokens&quot; target=&quot;_blank&quot;&gt;cet article&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;export HF_TOKEN=&quot;YOUR_HUGGING_FACE_ACCESS_TOKEN&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Maintenant, exécutez le script d&#39;installation, qui téléchargera automatiquement le modèle et les poids (Meta Llama 3.1 8B Instruct par défaut) :&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;La commande suivante recompile &lt;b translate=&quot;no&quot;&gt;llms-llama-cpp&lt;/b&gt; séparément pour activer la prise en charge de NVIDIA® CUDA®, afin de décharger les charges de travail sur le GPU :&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;Si vous obtenez une erreur du type &lt;b&gt;nvcc fatal : Unsupported gpu architecture &#39;compute_&#39;&lt;/b&gt;, indiquez simplement l&#39;architecture exacte du GPU que vous utilisez. Par exemple : &lt;b&gt;DCMAKE_CUDA_ARCHITECTURES=86&lt;/b&gt; pour NVIDIA® RTX™ 3090.&lt;/p&gt;
&lt;p&gt;La dernière étape avant de commencer est d&#39;installer le support pour les appels asynchrones (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 run&lt;/h2&gt;
&lt;p&gt;Exécute PrivateGPT à l&#39;aide d&#39;une seule commande :&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;Ouvrez votre navigateur web et allez à la page &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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/571-starcoder-votre-assistant-de-codage-local&quot;&gt;StarCoder : votre assistant de codage local&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/590-fooocus-repenser-le-sd-et-le-mj&quot;&gt;Fooocus : Repenser le SD et le MJ&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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.fr/catalog/579-qwen-2-vs-llama-3</link>
      <description>&lt;p&gt;Les grands modèles de langage (LLM) ont eu un impact considérable sur notre vie. Malgré la compréhension de leur structure interne, ces modèles restent un point d&#39;attention pour les scientifiques qui les comparent souvent à une &quot;boîte noire&quot;. Le résultat final dépend non seulement de la conception du LLM, mais aussi de son entraînement et des données utilisées pour l&#39;entraînement.&lt;/p&gt;
&lt;p&gt;Alors que les scientifiques trouvent des opportunités de recherche, les utilisateurs finaux sont principalement intéressés par deux choses : la vitesse et la qualité. Ces critères jouent un rôle crucial dans le processus de sélection. Pour comparer avec précision deux LLM, de nombreux facteurs apparemment sans rapport doivent être normalisés.&lt;/p&gt;
&lt;p&gt;L&#39;équipement utilisé pour les interférences et l&#39;environnement logiciel, y compris le système d&#39;exploitation, les versions des pilotes et les progiciels, ont l&#39;impact le plus important. Il est essentiel de sélectionner une version du LLM qui fonctionne sur différents équipements et de choisir une mesure de vitesse facilement compréhensible.&lt;/p&gt;
&lt;p&gt;Nous avons choisi le nombre de jetons par seconde (jetons/s) comme mesure. Il est important de noter qu&#39;un jeton ≠ un mot. Le LLM décompose les mots en éléments plus simples, typiques d&#39;une langue spécifique, appelés &quot;tokens&quot;.&lt;/p&gt;
&lt;p&gt;La prévisibilité statistique du caractère suivant varie d&#39;une langue à l&#39;autre, de sorte que la tokenisation diffère. Par exemple, en anglais, environ 100 jetons sont dérivés de chaque 75 mots. Dans les langues utilisant l&#39;alphabet cyrillique, le nombre de jetons par mot peut être plus élevé. Ainsi, 75 mots dans une langue cyrillique, comme le russe, peuvent correspondre à 120-150 tokens.&lt;/p&gt;
&lt;p&gt;Vous pouvez vérifier cela en utilisant l&#39;outil &lt;a href=&quot;https://platform.openai.com/tokenizer&quot;&gt;Tokenizer&lt;/a&gt; d&#39;OpenAI. Il montre combien de tokens un fragment de texte est décomposé, ce qui fait du nombre de tokens par seconde un bon indicateur de la vitesse et des performances d&#39;un LLM en matière de traitement du langage naturel.&lt;/p&gt;
&lt;p&gt;Chaque test a été réalisé sur le système d&#39;exploitation Ubuntu 22.04 LTS avec les pilotes NVIDIA® version 535.183.01 et la boîte à outils NVIDIA® CUDA® 12.5 installée. Des questions ont été formulées pour évaluer la qualité et la vitesse du LLM. La vitesse de traitement de chaque réponse a été enregistrée et contribuera à la valeur moyenne pour chaque configuration testée.&lt;/p&gt;
&lt;p&gt;Nous avons commencé à tester différents GPU, des modèles les plus récents aux plus anciens. Une condition essentielle pour le test était de mesurer les performances d&#39;un seul GPU, même si plusieurs étaient présents dans la configuration du serveur. En effet, les performances d&#39;une configuration avec plusieurs GPU dépendent de facteurs supplémentaires tels que la présence d&#39;une interconnexion à grande vitesse entre eux (NVLink).&lt;/p&gt;
&lt;p&gt;Outre la vitesse, nous avons également tenté d&#39;évaluer la qualité des réponses sur une échelle de 5 points, où 5 représente le meilleur résultat. Ces informations sont fournies ici à des fins de compréhension générale uniquement. À chaque fois, nous poserons les mêmes questions au réseau neuronal et tenterons de discerner avec quelle précision chacun d&#39;entre eux comprend ce que l&#39;utilisateur attend de lui.&lt;/p&gt;
&lt;h2&gt;Qwen 2&lt;/h2&gt;
&lt;p&gt;Récemment, une équipe de développeurs du groupe Alibaba a présenté la deuxième version de son réseau neuronal génératif Qwen. Il comprend 27 langues et est bien optimisé pour elles. Qwen 2 est disponible en différentes tailles afin de faciliter son déploiement sur n&#39;importe quel appareil (des systèmes embarqués à ressources très limitées aux serveurs dédiés équipés de GPU) :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;0.5B : adapté à l&#39;IoT et aux systèmes embarqués ;&lt;/li&gt;
    &lt;li&gt;1.5B : une version étendue pour les systèmes embarqués, utilisée lorsque les capacités de 0.5B ne suffisent pas ;&lt;/li&gt;
    &lt;li&gt;7B : modèle de taille moyenne, bien adapté au traitement du langage naturel ;&lt;/li&gt;
    &lt;li&gt;57B : grand modèle haute performance adapté aux applications exigeantes ;&lt;/li&gt;
    &lt;li&gt;72B : le modèle ultime Qwen 2, conçu pour résoudre les problèmes les plus complexes et traiter de grands volumes de données.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les versions 0.5B et 1.5B ont été entraînées sur des ensembles de données avec une longueur de contexte de 32K. Les versions 7B et 72B ont déjà été entraînées sur le contexte de 128K. Le modèle de compromis 57B a été entraîné sur des ensembles de données avec une longueur de contexte de 64K. Les créateurs positionnent Qwen 2 comme un analogue de Llama 3 capable de résoudre les mêmes problèmes, mais beaucoup plus rapidement.&lt;/p&gt;
&lt;h2&gt;Llama 3&lt;/h2&gt;
&lt;p&gt;La troisième version du réseau neuronal génératif de la famille MetaAI Llama a été introduite en avril 2024. Contrairement à Qwen 2, elle n&#39;a été publiée qu&#39;en deux versions : 8B et 70B. Ces modèles se positionnent comme un outil universel permettant de résoudre de nombreux problèmes dans des cas variés. Ils poursuivent la tendance au multilinguisme et à la multimodalité, tout en devenant plus rapides que les versions précédentes et en supportant une plus grande longueur de contexte.&lt;/p&gt;
&lt;p&gt;Les créateurs de Llama 3 ont essayé d&#39;affiner les modèles afin de réduire le pourcentage d&#39;hallucinations statistiques et d&#39;augmenter la variété des réponses. Llama 3 est donc tout à fait capable de donner des conseils pratiques, d&#39;aider à rédiger une lettre d&#39;affaires ou de spéculer sur un sujet spécifié par l&#39;utilisateur. Les ensembles de données sur lesquels les modèles de Llama 3 ont été entraînés avaient une longueur de contexte de 128K et plus de 5% comprenaient des données en 30 langues. Toutefois, comme l&#39;indique le communiqué de presse, les performances de génération en anglais seront nettement plus élevées que dans toute autre langue.&lt;/p&gt;
&lt;h2&gt;Comparaison&lt;/h2&gt;
&lt;h3&gt;NVIDIA® RTX™ A6000&lt;/h3&gt;
&lt;p&gt;Commençons nos mesures de vitesse avec le GPU NVIDIA® RTX™ A6000, basé sur l&#39;architecture Ampere (à ne pas confondre avec la NVIDIA® RTX™ A6000 Ada). Cette carte a des caractéristiques très modestes, mais en même temps, elle dispose de 48 Go de VRAM, ce qui lui permet de fonctionner avec des modèles de réseaux neuronaux assez importants. Malheureusement, la faible vitesse d&#39;horloge et la bande passante sont les raisons de la faible vitesse d&#39;inférence des LLM textuels.&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;Immédiatement après le lancement, le réseau neuronal Qwen 2 a commencé à surpasser Llama 3. En répondant aux mêmes questions, la différence de vitesse moyenne était de 24 % en faveur de Qwen 2. La vitesse de génération des réponses était de l&#39;ordre de 11 à 16 tokens par seconde. C&#39;est 2 à 3 fois plus rapide que d&#39;essayer d&#39;exécuter la génération même sur un CPU puissant, mais dans notre classement, c&#39;est le résultat le plus modeste.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ 3090&lt;/h3&gt;
&lt;p&gt;Le prochain GPU est également construit sur l&#39;architecture Ampere, a 2 fois moins de mémoire vidéo, mais en même temps, il fonctionne à une fréquence plus élevée (19500 MHz contre 16000 Mhz). La bande passante de la mémoire vidéo est également plus élevée (936,2 Go/s contre 768 Go/s). Ces deux facteurs augmentent considérablement les performances de la RTX™ 3090, même si l&#39;on tient compte du fait qu&#39;elle possède 256 cœurs CUDA® de moins.&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;Ici, vous pouvez clairement voir que Qwen 2 est beaucoup plus rapide (jusqu&#39;à 23%) que Llama 3 en effectuant les mêmes tâches. En ce qui concerne la qualité de la génération, le support multilingue de Qwen 3 est vraiment digne d&#39;éloges, et le modèle répond toujours dans la même langue que celle dans laquelle la question a été posée. Avec Llama 3, à cet égard, il arrive souvent que le modèle comprenne la question elle-même, mais préfère formuler des réponses en anglais.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ 4090&lt;/h3&gt;
&lt;p&gt;Voyons maintenant le plus intéressant : voyons comment la NVIDIA® RTX™ 4090, construite sur l&#39;architecture Ada Lovelace, du nom de la mathématicienne anglaise Augusta Ada King, comtesse de Lovelace, s&#39;acquitte de la même tâche. Elle est devenue célèbre pour avoir été la première programmeuse de l&#39;histoire de l&#39;humanité, et à l&#39;époque où elle a écrit son premier programme, il n&#39;existait pas d&#39;ordinateur assemblé capable de l&#39;exécuter. Cependant, il a été reconnu que l&#39;algorithme décrit par Ada pour calculer les nombres de Bernoulli était le premier programme au monde écrit pour être joué sur un ordinateur.&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;Le graphique montre clairement que la RTX™ 4090 a fait face à l&#39;inférence des deux modèles presque deux fois plus vite. Il est intéressant de noter que dans l&#39;une des itérations, le Llama 3 a réussi à surpasser le Qwen 2 de 1,2%. Toutefois, si l&#39;on tient compte des autres itérations, le Qwen 2 a conservé sa position de leader, restant 7 % plus rapide que le Llama 3. Dans toutes les itérations, la qualité des réponses des deux réseaux neuronaux était élevée, avec un nombre minimum d&#39;hallucinations. Le seul défaut est que, dans de rares cas, un ou deux caractères chinois ont été mélangés aux réponses, ce qui n&#39;a en rien affecté le sens général.&lt;/p&gt;
&lt;h3&gt;NVIDIA® RTX™ A40&lt;/h3&gt;
&lt;p&gt;La prochaine carte NVIDIA® RTX™ A40, sur laquelle nous avons effectué des tests similaires, est à nouveau construite sur l&#39;architecture Ampere et dispose de 48 Go de mémoire vidéo sur la carte mère. Par rapport à la RTX™ 3090, cette mémoire est légèrement plus rapide (20000 MHz contre 19500 MHz), mais sa bande passante est plus faible (695,8 Go/s contre 936,2 Go/s). Cette situation est compensée par le plus grand nombre de cœurs CUDA® (10752 contre 10496), ce qui permet à la RTX™ A40 d&#39;être légèrement plus performante que la 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;En ce qui concerne la comparaison de la vitesse des modèles, Qwen 2 devance également Llama 3 dans toutes les itérations. Lorsqu&#39;il fonctionne sur la RTX™ A40, la différence de vitesse est d&#39;environ 15% avec les mêmes réponses. Dans certaines tâches, Qwen 2 a donné un peu plus d&#39;informations importantes, tandis que Llama 3 a été aussi précis que possible et a donné des exemples. Malgré cela, tout doit être revérifié, car parfois les deux modèles commencent à produire des réponses controversées.&lt;/p&gt;
&lt;h3&gt;NVIDIA® L20&lt;/h3&gt;
&lt;p&gt;Le dernier participant à notre test est le NVIDIA® L20. Ce GPU est construit comme la RTX™ 4090, sur l&#39;architecture Ada Lovelace. Il s&#39;agit d&#39;un modèle assez récent, présenté à l&#39;automne 2023. Il embarque 48 Go de mémoire vidéo et 11776 cœurs CUDA®. La bande passante mémoire est inférieure à celle de la RTX™ 4090 (864 Go/s contre 936,2 Go/s), tout comme la fréquence effective. Les scores d&#39;inférence NVIDIA® L20 des deux modèles seront donc plus proches de 3090 que de 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;Le test final n&#39;a pas apporté de surprises. Qwen 2 s&#39;est avéré plus rapide que Llama 3 dans toutes les itérations.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Regroupons tous les résultats collectés dans un seul graphique. Qwen 2 a été plus rapide que Llama 3 de 7% à 24% selon le GPU utilisé. Sur la base de ces résultats, nous pouvons clairement conclure que si vous avez besoin d&#39;obtenir une inférence rapide à partir de modèles tels que Qwen 2 ou Llama 3 sur des configurations mono-GPU, alors le leader incontesté sera la RTX™ 3090. Une alternative possible pourrait être l&#39;A40 ou la L20. Mais il ne vaut pas la peine d&#39;exécuter l&#39;inférence de ces modèles sur des cartes Ampere de la génération A6000.&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;Nous n&#39;avons délibérément pas mentionné les cartes avec une plus petite quantité de mémoire vidéo, par exemple la NVIDIA® RTX™ 2080Ti, dans les tests, car il n&#39;est pas possible d&#39;y adapter les modèles 7B ou 8B mentionnés ci-dessus sans quantification. Malheureusement, le modèle 1,5B Qwen 2 n&#39;a pas de réponses de haute qualité et ne peut pas servir de remplacement complet pour le 7B.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/576-votre-propre-vicuna-sous-linux&quot;&gt;Votre propre Vicuna sous 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>Votre propre Qwen utilisant HF</title>
      <link>https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf</link>
      <description>&lt;p&gt;Les grands modèles de réseaux neuronaux, avec leurs capacités extraordinaires, sont fermement ancrés dans nos vies. Reconnaissant qu&#39;il s&#39;agit d&#39;une opportunité de développement futur, les grandes entreprises ont commencé à développer leurs propres versions de ces modèles. Le géant chinois Alibaba n&#39;est pas resté inactif. Il a créé son propre modèle, QWen (Tongyi Qianwen), qui est devenu la base de nombreux autres modèles de réseaux neuronaux.&lt;/p&gt;
&lt;h2&gt;Conditions préalables&lt;/h2&gt;
&lt;h3&gt;Mettre à jour le cache et les paquets&lt;/h3&gt;
&lt;p&gt;Mettons à jour le cache des paquets et mettons à niveau votre système d&#39;exploitation avant de commencer à configurer Qwen. Nous devons également ajouter les paquets d&#39;installation Python (PIP), s&#39;ils ne sont pas déjà présents dans le système. Veuillez noter que pour ce guide, nous utilisons Ubuntu 22.04 LTS comme système d&#39;exploitation :&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;Installer les pilotes NVIDIA®&lt;/h3&gt;
&lt;p&gt;Vous pouvez utiliser l&#39;utilitaire automatisé qui est inclus par défaut dans les distributions Ubuntu :&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;Vous pouvez également installer les pilotes NVIDIA® manuellement à l&#39;aide de notre &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;guide étape par étape&lt;/a&gt;. N&#39;oubliez pas de redémarrer le serveur :&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;Interface web de génération de texte&lt;/h2&gt;
&lt;h3&gt;Cloner le dépôt&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire de travail sur le 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;Cloner le référentiel du projet :&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;Installer les exigences&lt;/h3&gt;
&lt;p&gt;Ouvrir le répertoire téléchargé :&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;Vérifier et installer tous les composants manquants :&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;Ajouter une clé SSH à HF&lt;/h2&gt;
&lt;p&gt;Avant de commencer, vous devez configurer la redirection de port (port distant 7860 vers 127.0.0.1:7860) dans votre client SSH. Vous trouverez des informations complémentaires dans l&#39;article suivant : &lt;a href=&quot;https://www.leadergpu.fr/articles/488-connectez-vous-un-serveur-linux&quot;&gt;Se connecter à un serveur Linux&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mettre à jour le dépôt de cache des paquets et les paquets installés :&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;Générer et ajouter une clé SSH que vous pouvez utiliser dans 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;Lorsque la paire de clés est générée, vous pouvez afficher la clé publique dans l&#39;émulateur de terminal :&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;Copiez toutes les informations commençant par ssh-rsa et se terminant par usergpu@gpuserver comme indiqué dans la capture d&#39;écran suivante :&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;Ouvrez un navigateur web, tapez &lt;a href=&quot;https://huggingface.co/&quot;&gt;https://huggingface.co/&lt;/a&gt; dans la barre d&#39;adresse et appuyez sur &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Connectez-vous à votre compte HF et ouvrez les &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;paramètres du profil&lt;/a&gt;. Choisissez ensuite &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; et cliquez sur le bouton &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;Remplissez le &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; et collez le &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; copié depuis le terminal. Sauvegardez la clé en appuyant sur &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt;:&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;Maintenant, votre compte HF est lié à la clé SSH publique. La seconde partie (clé privée) est stockée sur le serveur. L&#39;étape suivante consiste à installer une extension Git LFS (Large File Storage) spécifique, qui est utilisée pour télécharger des fichiers volumineux tels que des modèles de réseaux neuronaux. Ouvrez votre répertoire personnel :&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;Téléchargez et exécutez le script shell. Ce script installe un nouveau dépôt tiers avec 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;Vous pouvez maintenant l&#39;installer à l&#39;aide du gestionnaire de paquets standard :&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;Configurons git pour qu&#39;il utilise notre pseudo HF :&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;Et lié au compte email HF :&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;Télécharger le modèle&lt;/h2&gt;
&lt;p&gt;L&#39;étape suivante consiste à télécharger le modèle en utilisant la technique de clonage de référentiel couramment utilisée par les développeurs de logiciels. La seule différence est que le Git-LFS précédemment installé traitera automatiquement les fichiers pointeurs marqués et téléchargera tout le contenu. Ouvrez le répertoire nécessaire (/mnt/fastdisk dans notre exemple) :&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;Cette commande peut prendre un certain temps :&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;Exécuter le modèle&lt;/h2&gt;
&lt;p&gt;Exécuter un script qui démarrera le serveur web et spécifiera /mnt/fastdisk comme répertoire de travail avec les modèles. Ce script peut télécharger des composants supplémentaires lors du premier lancement.&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;Ouvrez votre navigateur web et sélectionnez le site &lt;b translate=&quot;no&quot;&gt;llama.cpp&lt;/b&gt; dans la liste déroulante &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;Veillez à définir le paramètre &lt;b translate=&quot;no&quot;&gt;n-gpu-layers&lt;/b&gt;. C&#39;est lui qui est responsable du pourcentage de calculs qui sera déchargé sur le GPU. Si vous laissez le chiffre à 0, tous les calculs seront effectués sur le CPU, ce qui est assez lent. Une fois tous les paramètres définis, cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt;. Ensuite, allez dans l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt; et sélectionnez &lt;b translate=&quot;no&quot;&gt;Instruct mode&lt;/b&gt;. Vous pouvez maintenant saisir n&#39;importe quel message et recevoir une réponse :&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;Le traitement sera effectué par défaut sur tous les GPU disponibles, en tenant compte des paramètres spécifiés précédemment :&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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/576-votre-propre-vicuna-sous-linux&quot;&gt;Votre propre Vicuna sous 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>Votre propre Vicuna sous Linux</title>
      <link>https://www.leadergpu.fr/catalog/576-votre-propre-vicuna-sous-linux</link>
      <description>&lt;p&gt;Cet article vous guidera à travers le processus de déploiement d&#39;une alternative LLaMA de base sur un serveur LeaderGPU. Pour ce faire, nous utiliserons le projet &lt;a href=&quot;https://github.com/lm-sys/FastChat&quot;&gt;FastChat&lt;/a&gt; et le modèle &lt;a href=&quot;https://lmsys.org/blog/2023-03-30-vicuna/&quot;&gt;Vicuna&lt;/a&gt; disponible gratuitement. &lt;/p&gt;
&lt;p&gt;Le modèle que nous utiliserons est basé sur l&#39;architecture LLaMA de Meta mais a été optimisé pour un déploiement efficace sur du matériel grand public. Cette configuration offre un bon équilibre entre les performances et les besoins en ressources, ce qui la rend adaptée aux environnements de test et de production.&lt;/p&gt;
&lt;h2&gt;Préinstallation&lt;/h2&gt;
&lt;p&gt;Préparons l&#39;installation de FastChat en mettant à jour le dépôt de cache des paquets :&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;Installez automatiquement les pilotes NVIDIA® à l&#39;aide de la commande suivante :&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;Vous pouvez également installer ces pilotes manuellement à l&#39;aide de &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;notre guide étape par étape&lt;/a&gt;. Redémarrez ensuite le serveur :&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;L&#39;étape suivante consiste à installer 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;Installer FastChat&lt;/h2&gt;
&lt;h3&gt;Depuis PyPi&lt;/h3&gt;
&lt;p&gt;Il y a deux façons d&#39;installer FastChat. Vous pouvez l&#39;installer directement depuis PyPi :&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;Depuis GitHub&lt;/h3&gt;
&lt;p&gt;Alternativement, vous pouvez cloner le dépôt FastChat depuis GitHub et l&#39;installer :&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;N&#39;oubliez pas de mettre à jour PIP avant de continuer :&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;Lancer FastChat&lt;/h2&gt;
&lt;h3&gt;Premier départ&lt;/h3&gt;
&lt;p&gt;Pour assurer un lancement initial réussi, il est recommandé d&#39;appeler manuellement FastChat directement depuis la ligne de commande :&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;Cette action récupère et télécharge automatiquement le modèle désigné de votre choix, qui doit être spécifié en utilisant le paramètre --model-path. Le 7b représente un modèle avec 7 milliards de paramètres. Il s&#39;agit du modèle le plus léger, adapté aux GPU dotés de 16 Go de mémoire vidéo. Des liens vers des modèles avec un plus grand nombre de paramètres peuvent être trouvés dans le fichier &lt;a href=&quot;https://github.com/lm-sys/FastChat/blob/main/README.md&quot;&gt;Readme&lt;/a&gt; du projet.&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;Vous avez maintenant la possibilité d&#39;engager une conversation avec le chatbot directement dans l&#39;interface de ligne de commande ou de configurer une interface Web. Elle contient trois composants :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Le contrôleur&lt;/li&gt;
    &lt;li&gt;Travailleurs&lt;/li&gt;
    &lt;li&gt;Serveur web Gradio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Mise en place des services&lt;/h3&gt;
&lt;p&gt;Transformons chaque composant en un service systemd séparé. Créez 3 fichiers séparés avec le contenu suivant :&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 met généralement à jour sa base de données de démons au cours du processus de démarrage du système. Cependant, vous pouvez le faire manuellement à l&#39;aide de la commande suivante :&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;Ajoutons maintenant trois nouveaux services au démarrage et lançons-les immédiatement à l&#39;aide de l&#39;option &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;Cependant, si vous tentez d&#39;ouvrir une interface web à l&#39;adresse http://[IP_ADDRESS]:7860, vous tomberez sur une interface totalement inutilisable, sans aucun modèle disponible. Pour résoudre ce problème, arrêtez le service d&#39;interface web :&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;Exécutez le service web manuellement :&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;Ajouter une authentification&lt;/h3&gt;
&lt;p&gt;Cette action appelle un autre script, qui va enregistrer le modèle précédemment téléchargé dans une base de données interne de Gradio. Attendez quelques secondes et interrompez le processus en utilisant le raccourci &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt;. Nous allons également nous occuper de la sécurité et activer un mécanisme d&#39;authentification simple pour accéder à l&#39;interface web. Ouvrez le fichier suivant si vous avez installé FastChat depuis 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;ou&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;Faites défiler l&#39;écran jusqu&#39;à la fin. Trouvez cette ligne :&lt;/p&gt;
&lt;pre translate=&quot;no&quot;&gt;auth=auth,&lt;/pre&gt;
&lt;p&gt;Modifiez-la en définissant le nom d&#39;utilisateur ou le mot de passe de votre choix :&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;Sauvegardez le fichier et quittez en utilisant le raccourci &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt;. Enfin, démarrez l&#39;interface web :&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;Ouvrez &lt;b translate=&quot;no&quot;&gt;http://[IP_ADDRESS]:7860&lt;/b&gt; dans votre navigateur et profitez de FastChat avec 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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant 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>Votre propre LLaMa 2 sous Linux</title>
      <link>https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux</link>
      <description>&lt;h2&gt;Étape 1. Préparer le système d&#39;exploitation&lt;/h2&gt;
&lt;h3&gt;Mise à jour du cache et des paquets&lt;/h3&gt;
&lt;p&gt;Mettons à jour le cache des paquets et mettons à niveau votre système d&#39;exploitation avant de commencer à configurer LLaMa 2. Veuillez noter que pour ce guide, nous utilisons Ubuntu 22.04 LTS comme système d&#39;exploitation :&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;Nous devons également ajouter Python Installer Packages (PIP), s&#39;il n&#39;est pas déjà présent dans le système :&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;Installer les pilotes NVIDIA®&lt;/h3&gt;
&lt;p&gt;Vous pouvez utiliser l&#39;utilitaire automatisé qui est inclus par défaut dans les distributions Ubuntu :&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;Vous pouvez également installer les pilotes NVIDIA® manuellement à l&#39;aide de &lt;a href=&quot;https://www.leadergpu.fr/articles/499-installer-les-pilotes-nvidia-sous-linux&quot;&gt;notre guide étape par étape&lt;/a&gt;. N&#39;oubliez pas de redémarrer le serveur :&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;Étape 2. Obtenir des modèles de MetaAI&lt;/h2&gt;
&lt;h3&gt;Demande officielle&lt;/h3&gt;
&lt;p&gt;Ouvrez l&#39;adresse suivante dans votre navigateur &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;Remplissez tous les champs nécessaires, lisez les conditions d&#39;utilisation et cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Agree and Continue&lt;/b&gt;. Après quelques minutes (heures, jours), vous recevrez une URL de téléchargement spéciale, qui vous autorise à télécharger des modèles pendant une période de 24 heures.&lt;/p&gt;
&lt;h3&gt;Cloner le dépôt&lt;/h3&gt;
&lt;p&gt;Avant de télécharger, vérifiez l&#39;espace de stockage disponible :&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;Si vous avez des disques locaux non montés, veuillez suivre les instructions de la section &lt;a href=&quot;https://www.leadergpu.fr/articles/492-partitionnement-de-disque-sous-linux&quot;&gt;Partitionnement des disques sous Linux&lt;/a&gt;. Ceci est important car les modèles téléchargés peuvent être très volumineux et vous devez planifier leur emplacement de stockage à l&#39;avance. Dans cet exemple, nous avons un disque SSD local monté dans le répertoire /mnt/fastdisk. Ouvrons-le :&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;Créer une copie du référentiel LLaMa original :&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;Si vous rencontrez une erreur de permission, accordez simplement les permissions à l&#39;utilisateurergpu :&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;Téléchargement par script&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire téléchargé :&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;Exécuter le script :&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;Passer l&#39;URL fournie par MetaAI et sélectionner tous les modèles nécessaires. Nous recommandons de télécharger tous les modèles disponibles afin d&#39;éviter de redemander l&#39;autorisation. Toutefois, si vous avez besoin d&#39;un modèle spécifique, ne téléchargez que celui-ci.&lt;/p&gt;
&lt;h3&gt;Test rapide via l&#39;application d&#39;exemple&lt;/h3&gt;
&lt;p&gt;Pour commencer, nous pouvons vérifier s&#39;il manque des composants. Si des bibliothèques ou des applications sont manquantes, le gestionnaire de paquets les installera automatiquement :&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;L&#39;étape suivante consiste à ajouter de nouveaux binaires à 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;Exécutez l&#39;exemple de démonstration :&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;L&#39;application créera un processus de calcul sur le premier GPU et simulera un dialogue simple avec des demandes typiques, en générant des réponses à l&#39;aide de LLaMa 2.&lt;/p&gt;
&lt;h2&gt;Étape 3. Obtenir llama.cpp&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; est un projet créé par le physicien bulgare et développeur de logiciels Georgi Gerganov. Il comporte de nombreux utilitaires qui facilitent l&#39;utilisation de ce modèle de réseau neuronal. Toutes les parties de llama.cpp sont des logiciels libres et sont distribuées sous la &lt;a href=&quot;https://github.com/ggerganov/llama.cpp/blob/master/LICENSE&quot;&gt;licence MIT.&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Cloner le dépôt&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire de travail sur le 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;Cloner le référentiel du projet :&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;Compiler les applications&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire cloné :&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;Lancez le processus de compilation à l&#39;aide de la commande suivante :&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;Étape 4. Obtenir text-generation-webui&lt;/h2&gt;
&lt;h3&gt;Cloner le dépôt&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire de travail sur le 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;Cloner le référentiel du projet :&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;Installer les exigences&lt;/h3&gt;
&lt;p&gt;Ouvrir le répertoire téléchargé :&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;Vérifier et installer tous les composants manquants :&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;Étape 5. Convertir PTH en GGUF&lt;/h2&gt;
&lt;h3&gt;Formats courants&lt;/h3&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;PTH (Python TorcH)&lt;/b&gt; - Un format consolidé. Il s&#39;agit essentiellement d&#39;une archive ZIP standard avec un dictionnaire d&#39;états PyTorch sérialisé. Cependant, ce format a des alternatives plus rapides telles que GGML et GGUF.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;GGML (Georgi Gerganov’s Machine Learning)&lt;/b&gt; - Il s&#39;agit d&#39;un format de fichier créé par Georgi Gerganov, l&#39;auteur de llama.cpp. Il est basé sur une bibliothèque du même nom, écrite en C++, qui a considérablement augmenté les performances des grands modèles de langage. Il a été remplacé par le format moderne GGUF.&lt;/p&gt;
&lt;p&gt;&lt;b translate=&quot;no&quot;&gt;GGUF (Georgi Gerganov’s Unified Format)&lt;/b&gt; - Il s&#39;agit d&#39;un format de fichier largement utilisé pour les LLM, pris en charge par diverses applications. Il offre une flexibilité, une évolutivité et une compatibilité accrues pour la plupart des cas d&#39;utilisation.&lt;/p&gt;
&lt;h3&gt;llama.cpp convert.py script&lt;/h3&gt;
&lt;p&gt;Modifie les paramètres du modèle avant de le convertir :&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;Corrigez &lt;b translate=&quot;no&quot;&gt;&quot;vocab_size&quot;: -1&lt;/b&gt; en &lt;b translate=&quot;no&quot;&gt;&quot;vocab_size&quot;: 32000&lt;/b&gt;. Sauvegardez le fichier et quittez. Ouvrez ensuite le répertoire 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;Exécutez le script qui convertira le modèle au format GGUF :&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;Si toutes les étapes précédentes sont correctes, vous recevrez un message comme celui-ci :&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;Étape 6. WebUI&lt;/h2&gt;
&lt;h3&gt;Comment démarrer l&#39;interface WebUI&lt;/h3&gt;
&lt;p&gt;Ouvrez le répertoire :&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;Exécuter le script de démarrage avec quelques paramètres utiles :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--model-dir&lt;/b&gt; indique le chemin d&#39;accès correct aux modèles&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--share&lt;/b&gt; crée un lien public temporaire (si vous ne voulez pas transmettre un port via SSH)&lt;/li&gt;
  &lt;li&gt;&lt;b translate=&quot;no&quot;&gt;--gradio-auth&lt;/b&gt; ajoute une autorisation avec un login et un mot de passe (remplacez user:password par le vôtre)&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;Après un lancement réussi, vous recevrez un lien local et un lien de partage temporaire pour l&#39;accès :&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;Ce lien de partage expire dans 72 heures.&lt;/p&gt;
&lt;h3&gt;Charger le modèle&lt;/h3&gt;
&lt;p&gt;Autorisez-vous dans l&#39;interface WebUI en utilisant le nom d&#39;utilisateur et le mot de passe sélectionnés et suivez ces 5 étapes simples :&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Naviguez jusqu&#39;à l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Model&lt;/b&gt;.&lt;/li&gt;
  &lt;li&gt;Sélectionnez &lt;b translate=&quot;no&quot;&gt;ggml-model-f16.gguf&lt;/b&gt; dans le menu déroulant.&lt;/li&gt;
  &lt;li&gt;Choisissez le nombre de couches que vous souhaitez calculer sur le GPU (&lt;b translate=&quot;no&quot;&gt;n-gpu-layers&lt;/b&gt;).&lt;/li&gt;
  &lt;li&gt;Choisissez le nombre de threads que vous souhaitez démarrer (&lt;b translate=&quot;no&quot;&gt;threads&lt;/b&gt;).  &lt;/li&gt;
  &lt;li&gt;Cliquez sur le bouton &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;Démarrer le dialogue&lt;/h3&gt;
&lt;p&gt;Changez l&#39;onglet en &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt;, tapez votre invite et cliquez sur &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;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face&quot;&gt;Llama 3 utilisant Hugging Face&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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 utilisant Hugging Face</title>
      <link>https://www.leadergpu.fr/catalog/573-llama-3-utilisant-hugging-face</link>
      <description>&lt;p&gt;Le 18 avril 2024, le dernier modèle linguistique majeur de MetaAI, Llama 3, a été publié. Deux versions ont été présentées aux utilisateurs : 8B et 70B. La première version contient plus de 15 000 tokens et a été entraînée sur des données valables jusqu&#39;en mars 2023. La seconde version, plus volumineuse, a été entraînée sur des données valables jusqu&#39;en décembre 2023.&lt;/p&gt;

&lt;h2&gt;Étape 1. Préparer le système d&#39;exploitation&lt;/h2&gt;

&lt;h3&gt;Mise à jour du cache et des paquets&lt;/h3&gt;

&lt;p&gt;Mettons à jour le cache des paquets et mettons à niveau votre système d&#39;exploitation avant de commencer à installer LLaMa 3. Veuillez noter que pour ce guide, nous utilisons Ubuntu 22.04 LTS comme système d&#39;exploitation :&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;Nous devons également ajouter Python Installer Packages (PIP), s&#39;il n&#39;est pas déjà présent dans le système :&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;Installer les pilotes NVIDIA®&lt;/h3&gt;

&lt;p&gt;Vous pouvez utiliser l&#39;utilitaire automatisé qui est inclus par défaut dans les distributions Ubuntu :&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;Vous pouvez également installer les pilotes NVIDIA® manuellement. N&#39;oubliez pas de redémarrer le serveur :&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;Étape 2. Obtenir le modèle&lt;/h2&gt;

&lt;p&gt;Connectez-vous à &lt;a href=&quot;https://huggingface.co/&quot;&gt;Hugging Face&lt;/a&gt; en utilisant votre nom d&#39;utilisateur et votre mot de passe. Allez sur la page correspondant à la version LLM souhaitée : &lt;a href=&quot;https://huggingface.co/meta-llama/Meta-Llama-3-8B&quot;&gt;Meta-Llama-3-8B&lt;/a&gt; ou &lt;a href=&quot;https://huggingface.co/meta-llama/Meta-Llama-3-70B&quot;&gt;Meta-Llama-3-70B&lt;/a&gt;. Au moment de la publication de cet article, l&#39;accès au modèle est fourni sur une base individuelle. Remplissez un court formulaire et cliquez sur le bouton &lt;b translate=&quot;no&quot;&gt;Submit&lt;/b&gt;:&lt;/p&gt;

&lt;h3&gt;Demande d&#39;accès à 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;Vous recevrez ensuite un message indiquant que votre demande a été soumise :&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;Vous obtiendrez l&#39;accès après 30-40 minutes et en serez informé par e-mail.&lt;/p&gt;

&lt;h3&gt;Ajouter une clé SSH à HF&lt;/h3&gt;

&lt;p&gt;Générez et ajoutez une clé SSH que vous pourrez utiliser dans 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;Lorsque la paire de clés est générée, vous pouvez afficher la clé publique dans l&#39;émulateur de terminal :&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;Copiez toutes les informations commençant par &lt;b translate=&quot;no&quot;&gt;ssh-rsa&lt;/b&gt; et se terminant par &lt;b translate=&quot;no&quot;&gt;usergpu@gpuserver&lt;/b&gt;, comme indiqué dans la capture d&#39;écran suivante :&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;Ouvrez les &lt;a href=&quot;https://huggingface.co/settings/profile&quot;&gt;paramètres du profil de&lt;/a&gt; Hugging Face. Choisissez ensuite &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; et cliquez sur le bouton Ajouter une clé SSH :&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;Remplissez le &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; et collez le &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; copié depuis le terminal. Enregistrez la clé en appuyant sur &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt;:&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;Maintenant, votre compte HF est lié à la clé SSH publique. La seconde partie (clé privée) est stockée sur le serveur. L&#39;étape suivante consiste à installer une extension Git LFS (Large File Storage) spécifique, qui est utilisée pour télécharger des fichiers volumineux tels que des modèles de réseaux neuronaux. Ouvrez votre répertoire personnel :&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;Téléchargez et exécutez le script shell. Ce script installe un nouveau dépôt tiers avec 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;Vous pouvez maintenant l&#39;installer à l&#39;aide du gestionnaire de paquets standard :&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;Configurons git pour qu&#39;il utilise notre pseudo HF :&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;Et lié au compte email HF :&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;Télécharger le modèle&lt;/h3&gt;

&lt;p&gt;Ouvrir le répertoire cible :&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;Et commencez à télécharger le référentiel. Pour cet exemple, nous avons choisi la version 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;Ce processus prend jusqu&#39;à 5 minutes. Vous pouvez le surveiller en exécutant la commande suivante dans une autre console SSH :&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;Vous verrez alors que l&#39;espace libre sur le disque monté se réduit, ce qui garantit que le téléchargement progresse et que les données sont sauvegardées. L&#39;état est actualisé toutes les demi-secondes. Pour arrêter manuellement la visualisation, appuyez sur le raccourci Ctrl + C.&lt;/p&gt;

&lt;p&gt;Vous pouvez également installer &lt;a href=&quot;https://github.com/aristocratos/btop&quot;&gt;btop&lt;/a&gt; et surveiller le processus à l&#39;aide de cet utilitaire :&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;Pour quitter l&#39;utilitaire btop, appuyez sur la touche &lt;b translate=&quot;no&quot;&gt;Esc&lt;/b&gt; et sélectionnez &lt;b translate=&quot;no&quot;&gt;Quit&lt;/b&gt;.&lt;/p&gt;

&lt;h2&gt;Étape 3. Exécuter le modèle&lt;/h2&gt;

&lt;p&gt;Ouvrez le répertoire :&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;Télécharger le dépôt Llama 3 :&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;Changez de répertoire :&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;Exécuter l&#39;exemple :&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;Vous pouvez maintenant utiliser Llama 3 dans vos applications.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant HF&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/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 : votre assistant de codage local</title>
      <link>https://www.leadergpu.fr/catalog/571-starcoder-votre-assistant-de-codage-local</link>
      <description>&lt;p&gt;Microsoft CoPilot a révolutionné le domaine du développement logiciel. Cet assistant IA aide grandement les développeurs à effectuer diverses tâches de codage, leur facilitant ainsi la vie. Cependant, l&#39;un des inconvénients est qu&#39;il ne s&#39;agit pas d&#39;une application autonome, mais plutôt d&#39;un service basé sur le cloud. Cela signifie que les utilisateurs doivent accepter les conditions générales du service et payer un abonnement.&lt;/p&gt;
&lt;p&gt;Heureusement, le monde des logiciels libres nous offre de nombreuses alternatives. Au moment de la rédaction de cet article, l&#39;alternative la plus notable à CoPilot est StarCoder, développé par le projet BigCode. StarCoder est un modèle de réseau neuronal étendu avec 15,5 milliards de paramètres, entraîné sur plus de 80 langages de programmation.&lt;/p&gt;
&lt;p&gt;Ce modèle est distribué sur Hugging Face (HF) à l&#39;aide d&#39;un &lt;a href=&quot;https://huggingface.co/docs/hub/models-gated&quot; target=&quot;_blank&quot;&gt;modèle gated&lt;/a&gt; sous l&#39;&lt;a href=&quot;https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement&quot; target=&quot;_blank&quot;&gt;accord de licence BigCode OpenRAIL-M v1&lt;/a&gt;. Vous pouvez télécharger et utiliser ce modèle gratuitement, mais vous devez avoir un compte HF avec une clé SSH associée. Avant de pouvoir télécharger, vous devez suivre quelques étapes supplémentaires.&lt;/p&gt;
&lt;h2&gt;Ajouter une clé SSH à HF&lt;/h2&gt;
&lt;p&gt;Avant de commencer, vous devez configurer le transfert de port (port distant 7860 vers 127.0.0.1:7860) dans votre client SSH. Vous trouverez des informations supplémentaires dans les articles suivants :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/597-stable-video-diffusion&quot;&gt;Diffusion vidéo stable&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/488-connectez-vous-un-serveur-linux&quot;&gt;Se connecter à un serveur Linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mettre à jour le dépôt de cache des paquets et les paquets installés :&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;Installons le gestionnaire de paquets du système Python (PIP) :&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;Générer et ajouter une clé SSH que vous pouvez utiliser dans 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;Lorsque la paire de clés est générée, vous pouvez afficher la clé publique dans l&#39;émulateur de terminal :&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;Copiez toutes les informations commençant par ssh-rsa et se terminant par usergpu@gpuserver comme indiqué dans la capture d&#39;écran suivante :&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;Ouvrez un navigateur web, tapez &lt;a href=&quot;https://huggingface.co/&quot; target=&quot;_blank&quot;&gt;https://huggingface.co/&lt;/a&gt; dans la barre d&#39;adresse et appuyez sur &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Connectez-vous à votre compte HF et ouvrez les &lt;a href=&quot;https://huggingface.co/settings/profile&quot; target=&quot;_blank&quot;&gt;paramètres du profil&lt;/a&gt;. Choisissez ensuite &lt;b translate=&quot;no&quot;&gt;SSH and GPG Keys&lt;/b&gt; et cliquez sur le bouton &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;Remplissez le &lt;b translate=&quot;no&quot;&gt;Key name&lt;/b&gt; et collez le &lt;b translate=&quot;no&quot;&gt;SSH Public key&lt;/b&gt; copié depuis le terminal. Sauvegardez la clé en appuyant sur &lt;b translate=&quot;no&quot;&gt;Add key&lt;/b&gt;:&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;Maintenant, votre compte HF est lié à la clé SSH publique. La seconde partie (clé privée) est stockée sur le serveur. L&#39;étape suivante consiste à installer une extension Git LFS (Large File Storage) spécifique, qui est utilisée pour télécharger des fichiers volumineux tels que des modèles de réseaux neuronaux. Ouvrez votre répertoire personnel :&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;Téléchargez et exécutez le script shell. Ce script installe un nouveau dépôt tiers avec 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;Vous pouvez maintenant l&#39;installer à l&#39;aide du gestionnaire de paquets standard :&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;Configurons git pour qu&#39;il utilise notre pseudo HF :&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;Et lié au compte email HF :&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;Télécharger le modèle&lt;/h2&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Veuillez noter que StarCoder au format binaire peut prendre beaucoup d&#39;espace disque (&amp;gt;75 GB). N&#39;oubliez pas de vous référer à &lt;a href=&quot;https://www.leadergpu.fr/articles/492-partitionnement-de-disque-sous-linux&quot;&gt;cet article&lt;/a&gt; pour vous assurer que vous utilisez la bonne partition montée.&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;Tout est prêt pour le téléchargement du modèle. Ouvrez le répertoire cible :&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;et commencez à télécharger le référentiel :&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;Ce processus peut prendre jusqu&#39;à 15 minutes. Soyez patient. Vous pouvez surveiller ce processus en exécutant la commande suivante dans une autre console SSH :&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;Vous verrez alors que l&#39;espace libre sur le disque monté se réduit, ce qui garantit que le téléchargement progresse et que les données sont sauvegardées. L&#39;état est actualisé toutes les demi-secondes. Pour arrêter manuellement la visualisation, appuyez sur le raccourci &lt;b translate=&quot;no&quot;&gt;Ctrl + C&lt;/b&gt;.&lt;/p&gt;
&lt;h2&gt;Exécuter le modèle complet avec l&#39;interface WebUI&lt;/h2&gt;
&lt;p&gt;Clonez le dépôt du projet :&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;Ouvrir le répertoire téléchargé :&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;Exécuter le script de démarrage :&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;Le script vérifiera la présence des dépendances nécessaires sur le serveur. Toute dépendance manquante sera installée automatiquement. Lorsque l&#39;application démarre, ouvrez votre navigateur web et tapez l&#39;adresse suivante :&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;Ouvrez l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Model&lt;/b&gt; et sélectionnez le modèle téléchargé &lt;b translate=&quot;no&quot;&gt;starcoder&lt;/b&gt; dans la liste déroulante. Cliquez sur la liste &lt;b translate=&quot;no&quot;&gt;Model loader&lt;/b&gt; et choisissez &lt;b translate=&quot;no&quot;&gt;Transformers&lt;/b&gt;. Réglez le curseur de mémoire maximale du GPU pour chaque GPU installé. Ce paramètre est très important, car s&#39;il est fixé à 0, l&#39;utilisation de la VRAM est limitée et le modèle ne peut pas se charger correctement. Vous devez également définir l&#39;utilisation maximale de la mémoire vive. Cliquez maintenant sur le bouton &lt;b translate=&quot;no&quot;&gt;Load&lt;/b&gt; et attendez la fin du processus de chargement :&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;Passez à l&#39;onglet &lt;b translate=&quot;no&quot;&gt;Chat&lt;/b&gt; et testez la conversation avec le modèle. Veuillez noter que Starcoder n&#39;est pas destiné à des dialogues comme ChatGPT. Cependant, il peut être utile pour vérifier les erreurs dans le code et suggérer des solutions.&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;Si vous souhaitez obtenir un modèle de dialogue complet, vous pouvez essayer deux autres modèles : &lt;a href=&quot;https://huggingface.co/HuggingFaceH4/starchat-alpha&quot; target=&quot;_blank&quot;&gt;starchat-alpha&lt;/a&gt; et &lt;a href=&quot;https://huggingface.co/HuggingFaceH4/starchat-beta&quot; target=&quot;_blank&quot;&gt;starchat-beta&lt;/a&gt;. Ces modèles ont été mis au point pour conduire un dialogue comme le fait ChatGPT. Les commandes suivantes permettent de télécharger et d&#39;exécuter ces modèles :&lt;/p&gt;
&lt;p&gt;Pour 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;Pour 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;La procédure de chargement est la même que celle décrite ci-dessus. Vous trouverez également une &lt;a href=&quot;https://github.com/bigcode-project/starcoder.cpp/tree/main&quot; target=&quot;_blank&quot;&gt;implémentation C++&lt;/a&gt; de starcoder, qui sera efficace pour l&#39;inférence CPU.&lt;/p&gt;
&lt;p&gt;Voir aussi:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/574-votre-propre-llama-2-sous-linux&quot;&gt;Votre propre LLaMa 2 sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/576-votre-propre-vicuna-sous-linux&quot;&gt;Votre propre Vicuna sous Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/catalog/578-votre-propre-qwen-utilisant-hf&quot;&gt;Votre propre Qwen utilisant 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>Modèles de Stable Diffusion: personnalisation et options</title>
      <link>https://www.leadergpu.fr/catalog/566-mod-les-de-stable-diffusion-personnalisation-et-options</link>
      <description>&lt;p&gt;Le tuning est un excellent moyen d&#39;améliorer chaque voiture ou gadget. Les réseaux neuronaux génératifs peuvent également être réglés. Aujourd&#39;hui, nous ne souhaitons pas approfondir la structure de la diffusion stable, mais nous voulons obtenir de meilleurs résultats qu&#39;avec une configuration standard.&lt;/p&gt;
&lt;p&gt;Il existe deux moyens simples d&#39;y parvenir : l&#39;installation de modèles personnalisés et l&#39;utilisation des options d&#39;optimisation standard. Dans cet article, nous verrons comment installer de nouveaux modèles dans Stable Diffusion et quelles options nous permettent d&#39;utiliser le matériel plus efficacement.&lt;/p&gt;
&lt;p&gt;Si vous souhaitez partager des photos amusantes de chats mignons ou de plats succulents, vous les publiez généralement sur Instagram. Si vous développez des applications et souhaitez mettre le code à la disposition de tous, vous le publiez sur GitHub. Mais si vous entraînez un modèle d&#39;IA graphique et que vous souhaitez le partager, vous devriez vous intéresser à &lt;a href=&quot;https://civitai.com/&quot;&gt;CivitAI&lt;/a&gt;. Il s&#39;agit d&#39;une vaste plateforme permettant de partager les connaissances et les résultats avec les membres de la communauté.&lt;/p&gt;
&lt;p&gt;Avant de commencer le téléchargement, vous devez changer le répertoire de travail. Tous les modèles d&#39;IA dans Stable Diffusion sont placés dans le répertoire &quot;models&quot;:Avant de commencer le téléchargement, vous devez changer le répertoire de travail. Tous les modèles d&#39;IA de Stable Diffusion sont placés dans le répertoire &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;Vérifions quels sont les modèles fournis par défaut :&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;Il n&#39;y a qu&#39;un seul modèle avec le nom &quot;v1-5-pruned-emaonly&quot; et l&#39;extension &quot;safetensors&quot;. Ce modèle est un bon point de départ, mais nous avons cinq modèles plus intéressants. Nous allons les télécharger et les comparer avec le modèle standard.&lt;/p&gt;
&lt;h2&gt;Invitations à la diffusion stable&lt;/h2&gt;
&lt;p&gt;Pour montrer visuellement la différence entre les deux modèles, nous avons créé des messages-guides simples :&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;Pour de nombreux modèles, la représentation précise de la géométrie et des traits du visage peut constituer un défi important. Pour y remédier, ajoutez des invites négatives pour vous assurer que les images sont générées sans ces caractéristiques :&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;Définissez la valeur maximale des pas d&#39;échantillonnage (150) pour obtenir plus de détails dans le résultat.&lt;/p&gt;
&lt;h3&gt;Modèle standard&lt;/h3&gt;
&lt;p&gt;Le modèle standard donne de bons résultats dans ce type de tâches. Cependant, certains détails ne sont pas tout à fait exacts. Par exemple, il y a un problème avec les yeux : ils sont clairement disproportionnés :&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;Si vous regardez le diadème, il est également tordu et asymétrique. Le reste des détails est bien exécuté et correspond aux indications données. L&#39;arrière-plan est flou parce que nous avons choisi l&#39;option &quot;85 mm&quot;. Il s&#39;agit d&#39;une longueur focale très couramment utilisée pour les portraits dans la photographie professionnelle.&lt;/p&gt;
&lt;h3&gt;Vision réaliste&lt;/h3&gt;
&lt;p&gt;Ce modèle est idéal pour les portraits. L&#39;image apparaît comme si elle avait été prise avec un objectif de qualité ayant la longueur focale spécifiée. Les proportions du visage et du corps sont exactes, la robe est parfaitement ajustée et le diadème sur la tête est esthétiquement plaisant :&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;À propos, l&#39;auteur recommande d&#39;utiliser le modèle suivant pour les questions négatives :&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;Mais même avec nos questions simples, le résultat est excellent.&lt;/p&gt;
Téléchargez le modèle ici : &lt;a href=&quot;https://civitai.com/models/4201/realistic-vision-v20&quot;&gt;Vision réaliste&lt;/a&gt;&lt;h3&gt;Délibérée&lt;/h3&gt;
&lt;p&gt;Un autre modèle étonnant pour ce type d&#39;usage. Ici aussi, les détails sont bien élaborés, mais soyez prudent et surveillez le nombre de doigts. Il s&#39;agit d&#39;un problème très courant avec les réseaux neuronaux : ils peuvent souvent dessiner des doigts supplémentaires, voire des membres entiers.&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;La création de lignes visuelles est l&#39;une des techniques cinématographiques préférées. Ainsi, ce modèle a également choisi de dessiner une personne sur fond de sentier forestier.&lt;/p&gt;
&lt;p&gt;Téléchargez le modèle ici : &lt;a href=&quot;https://huggingface.co/XpucT/Deliberate&quot;&gt;Délibéré&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;OpenJourney&lt;/h3&gt;
&lt;p&gt;Parmi les réseaux neuronaux génératifs, Midjourney (MJ) a fait l&#39;objet d&#39;une attention particulière. MJ a été un pionnier dans ce domaine et est souvent cité en exemple. Les images qu&#39;il crée ont un style unique. OpenJourney s&#39;inspire du style MJ et est une diffusion stable convenablement réglée.&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;Les images générées ressemblent à un dessin animé. Elles sont vibrantes et lumineuses. Pour de meilleurs résultats, ajoutez l&#39;invite de style &lt;b translate=&quot;no&quot;&gt;mdjrny-v4&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;Téléchargez le modèle ici : &lt;a href=&quot;https://huggingface.co/prompthero/openjourney&quot;&gt;OpenJourney&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Tout&lt;/h3&gt;
&lt;p&gt;Ce modèle crée des images à la manière d&#39;un dessinateur professionnel de manga (personne qui dessine des bandes dessinées). Ainsi, nous avons obtenu une princesse de style anime.&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;Ce modèle est entraîné sur des images d&#39;une résolution de 768x768. Vous pouvez définir cette résolution pour obtenir de meilleurs résultats que la résolution standard de 512x512.&lt;/p&gt;
&lt;p&gt;Téléchargez le modèle ici : &lt;a href=&quot;https://civitai.com/models/66/anything-v3&quot;&gt;Tout&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Entreprise Memphis&lt;/h3&gt;
&lt;p&gt;Ce style d&#39;images a connu une grande popularité au début des années 2020 et a été largement utilisé comme style d&#39;entreprise dans différentes sociétés de haute technologie. Malgré les critiques, on le retrouve souvent dans les présentations et les sites web.&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;La princesse s&#39;est avérée être minimaliste, mais assez jolie. Les détails que le modèle a placés sur l&#39;arrière-plan sont particulièrement amusants.&lt;/p&gt;
&lt;p&gt;Téléchargez le modèle ici : &lt;a href=&quot;https://huggingface.co/jinofcoolnes/corporate_memphis&quot;&gt;Corporate Memphis&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Options de diffusion stable&lt;/h2&gt;
&lt;p&gt;La diffusion stable consomme beaucoup de ressources, c&#39;est pourquoi de nombreuses options ont été développées. La plus populaire d&#39;entre elles est &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt;. Cette option active deux mécanismes d&#39;optimisation. Le premier réduit la consommation de mémoire et le second est utilisé pour augmenter la vitesse.&lt;/p&gt;
&lt;p&gt;Si vous essayez d&#39;ajouter --xformers sans étapes supplémentaires, vous obtiendrez une erreur indiquant que les paquets&lt;a href=&quot;https://pypi.org/project/torch/&quot;&gt;(torch&lt;/a&gt; et &lt;a href=&quot;https://pypi.org/project/torchvision/&quot;&gt;torchvision&lt;/a&gt;) sont compilés pour différentes versions de CUDA®. Pour résoudre ce problème, nous devons entrer dans l&#39;environnement virtuel Python (venv) qui est utilisé pour Stable Diffusion. Ensuite, installez les paquets pour la version souhaitée de CUDA® (v1.18).&lt;/p&gt;
&lt;p&gt;Tout d&#39;abord, nous devons mettre à jour le cache des paquets apt et installer le programme d&#39;installation des paquets pour Python (pip). L&#39;étape suivante consiste à activer Python venv avec le 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;Après cela, l&#39;invite de la ligne de commande devient &lt;b translate=&quot;no&quot;&gt;(venv) username@hostname:~$&lt;/b&gt;. Installons les paquets torch et torchvision avec CUDA® 11.8 :&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;Ce processus peut prendre plusieurs minutes car les paquets sont assez volumineux. Vous aurez juste le temps de vous servir un café. Enfin, vous pouvez désactiver l&#39;environnement virtuel et démarrer Stable Diffusion avec l&#39;option &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt; (remplacez &lt;b translate=&quot;no&quot;&gt;[user]&lt;/b&gt; et &lt;b translate=&quot;no&quot;&gt;[password]&lt;/b&gt; par vos propres valeurs) :&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;L&#39;alternative la plus rapide à &lt;b translate=&quot;no&quot;&gt;--xformers&lt;/b&gt; est &lt;b translate=&quot;no&quot;&gt;--opt-sdp-no-mem-attention&lt;/b&gt;, qui consomme plus de mémoire mais fonctionne un peu plus rapidement. Vous pouvez utiliser cette option sans étapes supplémentaires.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Aujourd&#39;hui, nous avons examiné les capacités de la diffusion stable lorsqu&#39;elle est combinée à d&#39;autres modèles ajoutés et à des options d&#39;optimisation. N&#39;oubliez pas qu&#39;en augmentant ou en diminuant le nombre d&#39;étapes d&#39;échantillonnage, vous pouvez ajuster le niveau de détail de l&#39;image finale.&lt;/p&gt;
&lt;p&gt;Bien entendu, il ne s&#39;agit là que d&#39;une petite partie de ce que vous pouvez faire avec un tel réseau neuronal génératif. Commandez donc &lt;a href=&quot;https://www.leadergpu.fr/#chose-best&quot;&gt;un serveur GPU dès maintenant&lt;/a&gt; et commencez à expérimenter. De nombreuses autres découvertes et opportunités vous attendent. Des cartes vidéo rapides et puissantes vous aideront à gagner du temps et à générer des images intéressantes.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/565-stable-diffusion-webui&quot;&gt;Interface Web de diffusion stable&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/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.fr/articles/595-pytorch-pour-linux&quot;&gt;PyTorch pour Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/596-pytorch-pour-windows&quot;&gt;PyTorch pour 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.fr/catalog/565-stable-diffusion-webui</link>
      <description>&lt;p&gt;Les réseaux neuronaux génératifs semblent magiques. Ils répondent à des questions, créent des images et écrivent même du code dans différents langages de programmation. Le succès de ces réseaux repose sur deux éléments : des modèles pré-entraînés et des accélérateurs matériels. Il est certes possible d&#39;utiliser les cœurs de l&#39;unité centrale pour cette charge de travail, mais ce serait comme une course d&#39;escargots. La génération d&#39;une petite image peut prendre beaucoup de temps - des dizaines de minutes. Générer la même image sur un GPU prendrait des centaines de fois moins de temps.&lt;/p&gt;
&lt;p&gt;Le premier secret réside dans le nombre de cœurs. Les cœurs de l&#39;unité centrale sont universels et peuvent traiter des instructions complexes. Cependant, les processeurs de serveurs conventionnels ont un maximum de 64 cœurs. Même dans les systèmes multiprocesseurs, le nombre de cœurs dépasse rarement 256. Les cœurs des GPU sont plus simples, ce qui permet d&#39;en placer beaucoup plus sur la puce. Par exemple, une NVIDIA® RTX™ 4090 possède 16 384 cœurs.&lt;/p&gt;
&lt;p&gt;Le deuxième secret réside dans le fait que la charge de travail peut être divisée en plusieurs tâches simples, qui peuvent être exécutées en parallèle sur des cœurs GPU dédiés. Cette astuce permet d&#39;accélérer considérablement le traitement des données. Aujourd&#39;hui, nous allons voir comment cela fonctionne et déployer un réseau neuronal génératif &lt;a href=&quot;https://github.com/Stability-AI/stablediffusion&quot;&gt;Stable Diffusion Web UI&lt;/a&gt; sur l&#39;infrastructure &lt;a href=&quot;https://www.leadergpu.fr/&quot;&gt;LeaderGPU&lt;/a&gt;. Prenons l&quot;exemple d&#39;un serveur équipé d&#39;une NVIDIA® RTX™ 4090 qui possède 16 384 cœurs de GPU. Comme système d&#39;exploitation, nous avons sélectionné la version LTS actuelle Ubuntu 22.04 et choisi l&#39;option &quot;Installer les pilotes NVIDIA® et CUDA® 11.8&quot;.&lt;/p&gt;
&lt;h2&gt;Préparation du système&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;Avant de commencer, prenons en compte la mémoire. Stable Diffusion est un gros système qui peut occuper jusqu&#39;à 13G sur votre disque dur. Le disque virtuel standard dans une installation LeaderGPU est de 100G. Le système d&#39;exploitation occupe 25G. Si nous déployons Stable Diffusion sans étendre la partition home, nous allons épuiser toute la mémoire libre et rencontrer une erreur &quot;No space left on device&quot;. C&#39;est une bonne idée d&#39;étendre notre répertoire personnel.&lt;/p&gt;
&lt;h3&gt;Étendre le répertoire personnel&lt;/h3&gt;
&lt;p&gt;Tout d&#39;abord, nous devons vérifier tous les disques disponibles.&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;Ensuite, nous devons créer une nouvelle partition Linux sur notre disque SSD physique, /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;Appuyez sur les touches suivantes, une par une : &lt;b translate=&quot;no&quot;&gt;g → n → Enter → Enter → Enter → w&lt;/b&gt;. Il en résultera une nouvelle partition /dev/sda1 sans système de fichiers. Maintenant, créez un système de fichiers ext4 sur cette partition :&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;Lorsque le processus est terminé, nous passons à l&#39;étape suivante.&lt;/p&gt;
&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;Attention ! Veuillez procéder à l&#39;opération suivante avec le plus grand soin. Toute erreur commise lors de la modification du fichier fstab peut empêcher votre serveur de démarrer normalement et peut nécessiter une réinitialisation complète du système d&#39;exploitation.&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;Copiez &lt;b translate=&quot;no&quot;&gt;UUID&lt;/b&gt; (fb2ba455-2b8d-4da0-8719-ce327d0026bc dans l&#39;exemple) de la partition &lt;b translate=&quot;no&quot;&gt;/dev/sda1&lt;/b&gt;. Ensuite, nous allons demander au système de monter automatiquement ce lecteur par son UUID au moment du démarrage :&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;Saisissez cette ligne avant &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;Exemple :&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;Quittez avec le raccourci clavier &lt;b translate=&quot;no&quot;&gt;Ctrl + X&lt;/b&gt; et confirmez l&#39;enregistrement du fichier en appuyant sur &lt;b translate=&quot;no&quot;&gt;Enter&lt;/b&gt;. Les nouveaux paramètres seront appliqués au prochain démarrage du système. Redémarrons le serveur :&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;Après le redémarrage, nous pouvons vérifier tous les répertoires montés à l&#39;aide de la commande suivante :&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;Superbe ! Mais maintenant, nous n&#39;avons plus le droit d&#39;écrire quelque chose dans notre répertoire personnel parce qu&#39;il a été modifié par le fichier de configuration &lt;b translate=&quot;no&quot;&gt;fstab&lt;/b&gt;. Il est temps de récupérer la propriété du répertoire :&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;Bon travail ! Passons à l&#39;étape suivante.&lt;/p&gt;
&lt;h3&gt;Installer les paquets de base&lt;/h3&gt;
&lt;p&gt;Mettez à jour le cache logiciel à partir des dépôts officiels d&#39;Ubuntu et mettez à niveau certains paquets :&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;Le système a informé qu&#39;un nouveau noyau a été installé et qu&#39;il sera opérationnel après le redémarrage du système. Sélectionnez deux fois &lt;b translate=&quot;no&quot;&gt;OK&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Ensuite, nous devons résoudre les dépendances, qui nécessitent Stable Diffusion. Le premier paquet ajoute la fonctionnalité d&#39;environnement virtuel 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-venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le deuxième paquet ajoute une implémentation de la fonction &lt;b translate=&quot;no&quot;&gt;malloc()&lt;/b&gt; du langage de programmation C, personnalisée par Google. Elle évite l&#39;erreur &lt;b translate=&quot;no&quot;&gt;“Cannot locate TCMalloc”&lt;/b&gt; et améliore l&#39;utilisation de la mémoire du processeur.&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;Enfin, redémarrez le serveur :&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;Diffusion stable automatique 1111 : script d&#39;installation&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;La façon la plus simple d&#39;installer Stable Diffusion avec WebUI est d&#39;utiliser le script écrit par l&#39;utilisateur GitHub &lt;a href=&quot;https://github.com/AUTOMATIC1111&quot;&gt;AUTOMATIC1111&lt;/a&gt;. Ce script télécharge et installe ces deux parties tout en résolvant toutes les dépendances nécessaires.&lt;/p&gt;
&lt;p&gt;Téléchargeons le script :&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;Ensuite, donnons-lui l&#39;accès aux données de modification et exécutons-le comme un programme :&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;Exécuter le script téléchargé :&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;Ce processus peut prendre quelques minutes. Tout est prêt pour créer des images parfaites avec Stable Diffusion.&lt;/p&gt;
&lt;h3&gt;Résolution des problèmes&lt;/h3&gt;
&lt;p&gt;Si vous rencontrez l&#39;erreur &quot;Torch is not able to use GPU&quot;, vous pouvez la corriger en réinstallant 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;Vous devez redémarrer le système d&#39;exploitation pour activer le pilote :&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;Générer&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;Le script d&#39;installation &lt;b translate=&quot;no&quot;&gt;./webui.sh&lt;/b&gt; a une autre fonction. Il sert simultanément la partie serveur de Stable Diffusion et WebUI. Cependant, si vous l&#39;utilisez sans arguments, le serveur sera disponible en tant que démon local à l&#39;adresse &lt;a href=&quot;http://127.0.0.1:7860&quot;&gt;http://127.0.0.1:7860&lt;/a&gt;. Ce problème peut être résolu de deux manières : la redirection de port à travers un tunnel SSH ou l&#39;autorisation de connexions à partir d&#39;IP externes.&lt;/p&gt;
&lt;p&gt;La seconde méthode est plus simple : il suffit d&#39;ajouter l&#39;option &lt;b translate=&quot;no&quot;&gt;--listen&lt;/b&gt; pour se connecter à l&#39;interface web à l&#39;adresse &lt;b translate=&quot;no&quot;&gt;http://[YOUR_LEADERGPU_SERVER_IP_ADDRESS]:7860&lt;/b&gt;. Cependant, cette méthode n&#39;est pas du tout sûre, car tous les utilisateurs d&#39;Internet y auront accès. Pour éviter toute utilisation non autorisée, ajoutez l&#39;option &lt;b translate=&quot;no&quot;&gt;--gradio-auth&lt;/b&gt; à côté du nom d&#39;utilisateur et du mot de passe, séparés par deux points :&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;Le script télécharge les modèles de base et les dépendances nécessaires pour la première fois :&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;Vous pouvez apprécier le résultat. Il vous suffit de saisir quelques invites, de les séparer par des virgules et de cliquer sur le bouton Générer. Après quelques secondes, une image générée par le réseau neuronal s&#39;affiche.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Nous sommes passés d&#39;un serveur LeaderGPU vide avec seulement un système d&#39;exploitation préinstallé à une instance prête à l&#39;emploi avec Stable Diffusion et une interface WebUI. La prochaine fois, nous en apprendrons plus sur l&#39;optimisation des performances logicielles et sur la manière d&#39;améliorer correctement votre instance Stable Diffusion avec de nouvelles versions de pilotes et de paquets.&lt;/p&gt;
&lt;p&gt;Voir aussi :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/566-mod-les-de-stable-diffusion-personnalisation-et-options&quot;&gt;Modèles de diffusion stable : personnalisation et options&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/598-easy-diffusion-ui&quot;&gt;Interface de diffusion facile&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/595-pytorch-pour-linux&quot;&gt;PyTorch pour Linux&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.leadergpu.fr/articles/596-pytorch-pour-windows&quot;&gt;PyTorch pour 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>