LM Studio - Pour faire tourner des LLMs en local et les utiliser directement dans votre code

par Korben -

Avec tout ce qui se passe côté OpenAI en ce moment, je suis en train de chercher des alternatives libres pour re-brancher sur mes scripts existants qui ne demandent pas trop de réécriture. C’est simplement un principe de précaution pour ne pas être pris au dépourvu si la qualité de service baisse côté ChatGPT.

Et pour ça, j’ai besoin d’un modèle de langage et d’un outil qui permette de transformer ce modèle en API que je peux appeler dans mon code.

Pour l’instant, tout ceci est en phase de R&D mais je me suis dit qu’un petit retour, ça vous ferait plaisir. Je suis donc parti sur un modèle OpenChat censé être aussi performant qu’un ChatGPT 3.5. Jusque là rien de compliqué.

J’ai donc fait tourner ce modèle dans llamacpp sans souci en mode discussion. Puis je suis parti en quête d’un bridge pour avoir des API. Je suis donc tombé sur Llama-cpp-python avec son option Server qui malheureusement n’a jamais voulu correctement fonctionner chez moi pour de sombres incompatibilités x64 / ARM64 même dans pyenv. Bref…

N’ayant pas le temps d’y passer des semaines, on m’a ensuite gentiment rappelé durant mon live Twitch, que je pouvais faire ça avec Ollama, ce que j’avais complètement zappé alors que j’ai fait une vidéo pour les Patreons à ce sujet (arf).

Puis Thoxy et LePopeye, lecteurs de Korben.info, m’ont recommandé un outil baptisé LM Studio dont je vais vous parler dans cet article.

LM Studio est un outil fonctionnant sous macOS, Windows et Linux qui permet très simplement de télécharger des LLMs (Large Language Models) et de les faire tourner en local. Ainsi vous pouvez discuter avec ces modèles via un chat comme vous le feriez avec ChatGPT.

Mais ce n’est pas tout puisque l’outil offre des tas de possibilités de réglages (y compris du support pour les Mac Silicon) pour optimiser le modèle. Et bien sûr, la fonctionnalité qui m’a le plus intéressé, c’est la possibilité de faire tourner un serveur local qui sert une API identique à celle de ChatGPT.

Cela permet, sans énormément de modifs dans votre code, de basculer des services d’OpenAI à une IA locale de manière transparente ou presque pour peut que vous utilisiez la lib OpenAI 0.28.1

pip install openai==0.28.1

Voici un code d’exemple qui montre comment l’appeler en Python :

import os import openai openai.api_base = "http://localhost:1234/v1" openai.api_key = "" completion = openai.ChatCompletion.create( model="local-model", messages=[ {"role": "system", "content": "Always answer in rhymes."}, {"role": "user", "content": "Introduce yourself."} ] ) print(completion.choices[0].message)

Pas besoin de clé API donc. Et pas besoin de casser tout votre code. Suffit de migrer vers LM Studio. Puis c’est gratuit :)

Bref, j’ai fait mes tests comme ça et malheureusement pour le moment, c’est pas super concluant. L’outil répond correctement en version “chat” mais son paramétrage un peu différent en version serveur. Donc faut encore que je gratte un peu pour trouver le dressage optimale de mon IA. Mais j’y suis presque.

Si ça vous branche de tester LM Studio, c’est par ici que ça se passe.