{"id":11387,"date":"2023-03-31T19:28:44","date_gmt":"2023-03-31T17:28:44","guid":{"rendered":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/?p=11387"},"modified":"2023-03-31T19:41:04","modified_gmt":"2023-03-31T17:41:04","slug":"installer-llama-sous-windows","status":"publish","type":"post","link":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/2023\/03\/31\/installer-llama-sous-windows\/","title":{"rendered":"Installer LLaMA sous Windows"},"content":{"rendered":"\n<p>Je voulais jouer avec quelque chose de semblable \u00e0 ChatGPT dont on parle tant. J&rsquo;ai un PC sous Windows 10 reposant sur un Intel i9-13900K (\u00e0 peu pr\u00e8s le top de la performance aussi bien en <em>single core <\/em>qu&rsquo;en <em>multicore<\/em>) et 64 Go de DRAM (davantage que la plupart des utilisateurs, mais j&rsquo;ai bien compris que ces LLM ont aussi besoin d&rsquo;une m\u00e9moire colossale pour le stockage de leurs param\u00e8tres et pour leur ex\u00e9cution).<\/p>\n\n\n\n<p>Voil\u00e0 comment faire (gr\u00e2ce \u00e0 l&rsquo;aide pr\u00e9cieuse de <a href=\"https:\/\/mirror.xyz\/xanny.eth\/TBgwcBOoP9LZC6Mf570fG8VvZWhEn_uWZPHy3axIpsI\">Xanny.eth<\/a>).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">WSL et environnement Linux<\/h2>\n\n\n\n<p>Installer et configurer WSL, en ouvrant une fen\u00eatre PowerShell o\u00f9 saisir :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wsl --install<\/code><\/pre>\n\n\n\n<p>Cela prend quelques minutes \u00e0 s&rsquo;installer. Mais il n&rsquo;y a rien \u00e0 faire qu&rsquo;\u00e0 attendre que \u00e7a se passe. ne pas oublier de rebooter \u00e0 la fin.<\/p>\n\n\n\n<p>Installer Ubuntu 22 LTS sur le PC Windows. C&rsquo;est une application gratuite du Microsoft Store qui devrait s&rsquo;installer en un clic.<\/p>\n\n\n\n<p>Une fois fait, lancer Ubuntu depuis le menu D\u00e9marrer. Cela va ouvrir une fen\u00eatre terminal et demander login et un mot de passe. Ob\u00e9issez docilement (et ne les oubliez pas).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installation des d\u00e9pendances Linux de LLaMA<\/h2>\n\n\n\n<p>S&rsquo;il n&rsquo;y en a pas, ouvrez une fen\u00eatre terminal Ubuntu.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update\nsudo apt install make cmake build-essential python3 python3-pip git unzip<\/code><\/pre>\n\n\n\n<p>Puis<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python3 -m pip install torch numpy sentencepiece<\/code><\/pre>\n\n\n\n<p>Vous avez maintenant l&rsquo;ensemble des d\u00e9pendances n\u00e9cessaires en arri\u00e8re-plan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Construction de LLaMA lui-m\u00eame<\/h2>\n\n\n\n<p>C&rsquo;est assez simple puisqu&rsquo;il suffit de taper les commandes suivantes :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/ggerganov\/llama.cpp\ncd llama.cpp\nmake<\/code><\/pre>\n\n\n\n<p>\u00c7a devrait le faire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les param\u00e8tres de training<\/h2>\n\n\n\n<p>Le vrai probl\u00e8me se trouve ici et se pr\u00e9sente sous deux formes :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Plus les param\u00e8tres sont nombreux, plus il vous faudra de m\u00e9moire DRAM au moment de l&rsquo;ex\u00e9cution de LLaMA. les <a href=\"https:\/\/huggingface.co\/chavinlo\/alpaca-native\">alpaca-native-weights<\/a> (apparemment les plus puissants facilement accessibles &#8211; semble-t-il au niveau de ChatGPT 3) demandent plus de 16 Go de DRAM (j&rsquo;ai observ\u00e9 une consommation de 32&nbsp;Go de DRAM alors que j&rsquo;utilisais LLaMA avec un paquet d&rsquo;autre petites choses comme deux navigateurs web, un logiciel de mail, etc.)<\/li>\n\n\n\n<li>Les <a href=\"https:\/\/huggingface.co\/chavinlo\/alpaca-native\">alpaca-native-weights<\/a> contiennent environ 7 milliards de param\u00e8tres (un fichier de plus de 4 Go \u00e0 t\u00e9l\u00e9charger). Mais ils ne sont jamais au m\u00eame endroit parce qu&rsquo;il semble que la licence soit un peu&#8230; compliqu\u00e9e ; sans doute open source, mais c&rsquo;est contest\u00e9 par Meta et d&rsquo;autres). Ainsi, le mieux \u00e0 faire est d&rsquo;aller sur <a href=\"https:\/\/pastebin.com\/z5A33Umd\">Pastebin<\/a> pour r\u00e9cup\u00e9rer le magnet BitTorrent pour t\u00e9l\u00e9charger le fichier.<\/li>\n<\/ol>\n\n\n\n<p>Ensuite, le fichier ggml-alpaca-7b-q4.bin doit \u00eatre d\u00e9pos\u00e9 dans le r\u00e9pertoire de llama.cpp.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lancer LLaMA<\/h2>\n\n\n\n<p>Le grand moment est venu : lancer l&rsquo;application. C&rsquo;est simplement une affaire de ligne de commande dans Ubuntu :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/main --color -i -ins -n 512 -p \"You are a helpful AI who will assist, provide information, answer questions, and have conversations.\" -m ggml-alpaca-7b-native-q4.bin<\/code><\/pre>\n\n\n\n<p>Apr\u00e8s quelques secondes d&rsquo;attente, un &gt; (vert) accueille votre premier prompt. A vous de parler \u00e0 John Smith, votre assistant (semi) intelligent.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quelques autres id\u00e9es<\/h2>\n\n\n\n<p>J&rsquo;ai remarqu\u00e9 une petite poign\u00e9e d&rsquo;id\u00e9es \u00e0 appliquer apr\u00e8s vos premiers essais.<\/p>\n\n\n\n<p>Le param\u00e8tre -p (suivi d&rsquo;une chaine de texte) est important parce qu&rsquo;il donne un environnement de d\u00e9part. C&rsquo;est un prompt d&rsquo;initialisation qui n&rsquo;appara\u00eet pas \u00e0 l&rsquo;utilisateur, mais qui influence s\u00e9rieusement la suite. Par exemple, c&rsquo;est similaire \u00e0 <a href=\"https:\/\/arstechnica.com\/information-technology\/2023\/02\/ai-powered-bing-chat-spills-its-secrets-via-prompt-injection-attack\/\">ce que Microsoft ou OpenAI appliquent en amont<\/a> de ChatGPT ou Bing pour \u00ab\u00a0lui donner une personnalit\u00e9\u00a0\u00bb ou \u00ab\u00a0le censurer\u00a0\u00bb. Vous pouvez librement jouer l\u00e0-dessus pour votre propre IA. Soit pour censurer son comportement, soit pour le lib\u00e9rer. C&rsquo;est votre choix.<\/p>\n\n\n\n<p>le param\u00e8tre -n 512 donne de la profondeur \u00e0 la pr\u00e9diction des tokens. En allongeant ou r\u00e9duisant celui-ci, vous allez influencer la capacit\u00e9 de votre IA. Au risque de jouer sur le temps de calcul&#8230;<\/p>\n\n\n\n<p>Le param\u00e8tre -t 32 (la valeur par d\u00e9faut) permet de d\u00e9finir le nombre de threads g\u00e9n\u00e9r\u00e9s par LLaMA pour ses calculs. Je recommande de l&rsquo;aligner sur le nombre de threads\/cores de votre processeur pour plus d&rsquo;efficacit\u00e9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je voulais jouer avec quelque chose de semblable \u00e0 ChatGPT dont on parle tant. J&rsquo;ai un PC sous Windows 10 reposant sur un Intel i9-13900K (\u00e0 peu pr\u00e8s le top de la performance aussi bien en single core qu&rsquo;en multicore) et 64 Go de DRAM (davantage que la plupart des utilisateurs, mais j&rsquo;ai bien compris [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11398,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2002,1774],"tags":[1991,1986,2000,2001],"class_list":["post-11387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intelligence-artificielle","category-windows-10","tag-chatgpt","tag-ia","tag-llama","tag-llm"],"_links":{"self":[{"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/posts\/11387","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/comments?post=11387"}],"version-history":[{"count":14,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/posts\/11387\/revisions"}],"predecessor-version":[{"id":11410,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/posts\/11387\/revisions\/11410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/media\/11398"}],"wp:attachment":[{"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/media?parent=11387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/categories?post=11387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.roumazeilles.net\/news\/fr\/wordpress\/wp-json\/wp\/v2\/tags?post=11387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}