Récemment, je me suis amusé avec LocalAI sur mon instance Nextcloud perso. Voici les résultats de mon petit test.
Choix d'architectureJe suis sur un test très provisoire. Étant donné que je n'ai aucune idée de la puissance de calcul nécessaire, et que mon serveur est un SBC ODroid HC2, j'ai décidé d'installer LocalAI sur mon PC.
Ensuite, je fais une redirection de port avec l'option -R de ssh, du port 8080 de mon PC vers le HC4 pour que nextcloud le voie en local.
Ce n'est évidemment pas viable en production.
Compilationhttps://localai.io/basics/build/J'ai tenté de compiler avec l'option permettant d'utiliser le modèle stablediffusion, mais sans succès. Après avoir buté sur une erreur lors de l'utilisation de la bibliothèque protobuf, que j'ai pu corriger, j'ai buté sur la bibliothèque opencv2 que je n'ai pas encore pu corriger. Sur debian, le paquet opencv2 n'est disponible que dans SID si j'ai correctement compris.
La correction du bug se fait en supprimant 'CONFIG REQUIRED' dans la commande find_package(Protobuf CONFIG REQUIRED) du fichier CMakeLists.txt lorsque c'était en erreur.
J'ai donc compilé sans cette fonctionnalité, et le modèle stable diffusion ne fonctionne pas sur mon test.
Une fois compilé, je lance à la main dans un terminal. Le service tourne sur le port 8080.
ConfigurationTout passe par des API et il faut utiliser curl :
https://localai.io/models/J'ai récupéré en local le dépôt de modèles, et j'intègre des modèles dans mon instance.
Les modèles fonctionnels sont : gpt4all-j, lunademo (le meilleur à mon goût), mpt-7b-chat
Whisper pour la transcription audio.
la commande pour les installer :
curl http://localhost:8080/models/apply -H "Content-Type: application/json" -d '{
"url": "<MODEL_CONFIG_FILE>"
}'
<MODEL_CONFIG_FILE> : c'est le chemin relatif vers le fichier yaml de description du modèle, précédé de
file://
NextcloudDans Nextcloud, il faut activer l'application "OpenAI and LocalAI integration"
Ajouter une ligne au config.php : 'allow_local_remote_servers' ⇒ true,
Ensuite aller configurer dans "Comptes connectés" l'url de LocalAI :
http://localhost:8080 et choisir un modèle par défaut.
Que ce soit d'un fichier Markdown ou d'une fenêtre de chat, taper / fait apparaître un menu avec des options pour ChatGPT qui vont interroger LocalAI.
Pour faire fonctionner le modèle whisper pour la reconnaissance vocale, j'ai dû le renommer en whisper-1 au lieu de whisper-base. J'ai fait ça dans son fichier yaml et j'ai ensuite relancé localai.
Je n'ai pour l'instant pas su faire fonctionner la génération d'images.
Quelques réponsesPour le Fun
I'm doing well, thanks for asking. What about you?(GPT4all)
Quantum Theory is a branch of physics that studies the behavior and interactions between subatomic particles. It is based on the principles of quantum mechanics, which describe how particles can exist in multiple states simultaneously and interact with each other. The theory explains phenomena such as superposition, entanglement and wave-particle duality. It has been used to develop technologies such as transistors, lasers and computers. (GPT4all)
Quantum theory is a branch of physics that studies the behavior of matter and energy at the atomic and subatomic level. It is based on the principles of superposition and entanglement, which describe how particles can exist in multiple states simultaneously and how their properties can be correlated with each other even at great distances. Quantum theory has led to many important discoveries, including the development of new technologies such as transistors and lasers, as well as a deeper understanding of the fundamental nature of the universe. (lunademo)
La relativité restreinte est une théorie physique développée par Albert Einstein en 1905. Elle décrit la relation entre la vitesse de la lumière et la structure des systèmes de coordonnées dans l'espace et le temps. Dans cette théorie, Einstein montre que la vitesse de la lumière est constante pour tous les observateurs, quel que soit leur mouvement relatif par rapport à la source de la lumière. Cette théorie a eu un impact important dans la physique moderne, car elle a permis de résoudre un problème qui était resté ouvert depuis la théorie newtonienne de la gravitation (lunademo)
Invite de commande
écris moi en une phrase une idée pour une histoire
Résultat
"Un jour, une jeune femme apprend qu'elle a hérité d'une grande propriété dans les bois. Elle part immédiatement pour la visiter, mais elle se retrouve confrontée à une mystérieuse forêt qui semble avoir sa propre volonté. Elle découvre que les arbres ont des âmes et qu'ils sont capables de parler. Elle apprend également que la forêt est hantée par un esprit malin qui veut la faire disparaître. Pour survivre, elle doit apprendre à communiquer avec les arbres et à résister à l'esprit malin."(lunademo)
Temps de calculUne réponse à Quantum theory avec Gpt4All prend 4 processeurs pendant 40 secondes. Avec Lunademo : 30 secondes et 10 processeurs.
La réponse en français sur la relaticité restreinte avec lunademo prend 40 secondes et utilise 10 processeurs (threads).