LLaMA, Vicuna, Alpaca : comment faire tourner un modèle de langage sur son Mac ?

Félix Cattafesta |

Auparavant cantonnés aux énormes serveurs d'OpenAI, les modèles de génération de langage sont de plus en plus accessibles depuis le début de l'année. Certains peuvent désormais tourner sans trop de soucis en local sur un Mac récent, pour peu que l'on soit prêt à mettre les mains dans le cambouis.

Logos de Alpaca, Vicuna et LlamaChat.

Commençons par un petit rappel : la scène des modèles de langages bouge très vite. Si tenir un historique des évolutions chez les grands noms du domaine (OpenAI, Google) est assez simple, ce n'est pas le cas de la communauté open source comptant une foule de bidouilleurs présentant de nouvelles trouvailles quotidiennement. L'expérience est évidemment beaucoup moins peaufinée que les services des géants de la tech, mais a le mérite d'être fonctionnelle pour peu que l'on ferme les yeux sur les bugs et autres instabilités. Les modèles que nous vous proposons d'installer tournent plutôt bien, même si l'usage reste perfectible sur certains points.

LLaMA, Alpaca, Vicuna et autres camélidés

La scène des modèles de langage en local a fait un grand bond en avant depuis l'arrivée de LLaMA, un projet de Meta présenté au mois de février. Initialement destiné à une poignée de chercheurs répondant à certaines conditions, le modèle a rapidement été détourné et rendu accessible à tous sur GitHub ou via des torrents. De nombreuses personnes se sont alors mis en tête de le faire tourner sur leurs machines.

Partagé au début du mois de mars, LLaMA est un modèle de langage brut disponible en quatre formats qui n'a pas été optimisé pour les conversations et demandant pas mal de puissance. À peine une semaine après sa diffusion, des petits malins avaient trouvé moyen de le faire tourner sur un MacBook, un Pixel 6 ou un Raspberry Pi. Les bidouilleurs en tout genre ont continué de l'affiner en proposant leurs forks, des versions modifiées pour être utilisables au quotidien.

La plus importante est Alpaca, un projet d'universitaires de Stanford ayant des résultats similaires au modèle text-davinci-003 d'OpenAI. Alpaca est une version dérivée de la plus petite déclinaison du LLaMA de Meta comportant 7 milliards de « paramètres » (une unité de mesure traduisant la puissance d'un modèle). Le but d'Alpaca est d'être une alternative légère tournant sur du matériel accessible tout en apportant tout de même des réponses au niveau de text-davinci-003.

avatar PiRMeZuR | 

Très bon article !

avatar pat3 | 

Merci pour cet article complet
Il ne me semble pas que Homebrew soit installé par défaut sur macOS:
"Pour ce faire, entrez brew update puis brew install git-lfs dans votre terminal."
demande donc préalablement d’installer Homebrew.

avatar Félix Cattafesta | 
Bien vu, j'ai ajouté un lien 🙂
avatar jopaone | 

Merci à la rédac de Macg pour tous vos articles de qualité sur l’IA , ça permet de suivre les nouveautés/actus dans le domaine, car il y en a beaucoup et c’est difficile de suivre la cadence même quand on s’y intéresse de près 😅 (Je ne connaissais même pas Vicuna)

avatar huexley | 

Ya encore du boulot coté puissance sur les IA sur Mac, les perds sont catastrophiques face aux tour PC, ma 3060rtx/12 est environ 800% plus performante que mon M1 Max et la gestion de la vram est inexistante malheureusement, les gros modèle crachent sans cesse :-(

avatar raoolito | 

@huexley

en jouant avec diffusionBee, je me suis rendu compte de l’utilisation intensive du gpu. avec votre carte graphique là évidemment ca a dû faire une belle envolée

avatar Marius_K | 

Merci pour cet article assez bien détaillé.
Je suis en train d'essayer avec GPT4 X Alpaca. ça fonctionne, mais c'est pour le moment extrêmement long. Il lui a fallu plus d'une minute pour lui faire répondre à un simple "Bonjour". Pourtant d'après iStat Menu le processeur n'a pas dépassé les 35% de charge.
Je suis avec un MacBook Air M1.

avatar PiRMeZuR | 

@Marius_K

Il faut s’assurer que le modèle est bien chargé dans la mémoire vive partagée et non en “swap”. Pour cela, il vaut mieux fermer toutes les autres apps ou même redémarrer l’appareil avant de commencer une session.

avatar jopaone | 

Vicuna 13B n’est visiblement plus dispo sur Hugging Face (ou alors le lien est mort )

avatar Félix Cattafesta | 
C'est corrigé, merci !
avatar Pat4e5 | 

Merci MacG pour tous ces articles qui permettent de suivre l’actualité sur les IA génératives sans avoir à nous plonger dans les forums, etc.

avatar Bigdidou | 

Merci beaucoup.
Je reviens ici pour ce genre de news.

avatar Jacou | 

Super article ! Merci 🙏

avatar Phiphi | 

Ouh oui c’est sans doute rigolo mais la lettre de motivation est quand même un gros poil bancale 😂

avatar raoolito | 

je sais que je vais a rebours de l’idée de l’article, mais il me semble que pour le béotien qui veut d’abord et avant tout apprendre à integrer un bot conversationnel dans sa vie de tous les jours, la solution la plus simple et la plus intuitive est simplement d’installer Edge et de lancer Bing (chapgpt4)
par contre on s’eloigne du postulat «  faire tourner son chatbot en local » c’est sur.

un article sur les générateurs d’image a deja et fait par Felix il me semble, il est très intéressant aussi !

avatar Pyby | 

Merci Félix pour cette vulgarisation avec le test en local.

Peut-être pour un prochain article:
Comment entraîner ces modèles locaux pour apprendre par exemple la base de données d’une FAQ (question réponse), ou digérer des échanges de support pour apprendre sur un produit.

L’idée serait peut-être d’améliorer la conversation avec les bots sur les sites (si quelqu’un les utilisent encore 🙃🙂)

Est-ce que lui donner une fois les informations dans une discussion, le modèle apprend bien et est prêt à le retourner ensuite si discussion similaire ?

Merci pour l’article. 👍

avatar jopaone | 

@Pyby

Ces nouveaux modèles de langage ne nécessitent pas d’être entraînés sur des cas d’usage en particulier. L’approche est différente des modèles non génératifs qui eux ont effectivement besoin d’être entraînés ou « fine tunés ». Les LLM prennent en input ce qui leur est injecté dans leur prompt. Autour le travail c’est en réalité du dev et du data engineering.

avatar vicento | 

@jopaone
Et si on a besoin de compléter l’entraînement sur des données spécifiques, on peut utiliser le système des Lora comme pour stable diffusion ¿ ou c’est différent

avatar jopaone | 

@vicento

Question très intéressante concernant les LoRA , en effet c’est aussi aussi utilisable avec des modèles de génération de texte. Sur Github il y en a notamment un dispo pour reproduire le modèle Alpaca (je n’ai pas encore testé )https://github.com/tloen/alpaca-lora

avatar Gravoche67 | 

text-davinci-003 = chatgpt 3.0 ou 3.5 ?

avatar jopaone | 

@Gravoche67

text-davinci-003 = GPT 3.5 . A ne pas confondre avec ChatGPT qui est une application qui fait tourner les modèles GPT (et non un modèle à part entière ) 😉

avatar ArchiArchibald | 

Je suis bloqué à "Lancez le script « start_macos » via le terminal (en n'oubliant pas d'ajouter SH) : la fenêtre devrait vous demander quel modèle vous désirez démarrer." quand je tape ça dans le terminal, rien ne se passe

CONNEXION UTILISATEUR