mercredi 21 février 2024
·
8 minutes de lecture
·
Londres, UK 📍
L'univers de l'intelligence artificielle (IA) a été en très grande effervescence durant la dernière année - impossible à manquer! Que ce soit par l'apparition d'outils comme ChatGPT, Gemini, DALL·E ou Midjourney, il semble que tout aille bougé à vitesse grand V. Pour plusieurs, c'est devenu un incontournable de converser avec un IA pour résoudre des problèmes, automatiser des tâches et autres.
L'IA en ligne - c'est bien. Cependant, si vous voulez avoir ces échanges en toute confidentialité (pour des fins professionnelles par exemple) et gratuitement, c'est loupé, car la vaste majorité de l'offre existante conserve votre historique de conversations et les utilisent pour raffiner leurs modèles.
C'est ici que Ollama 🦙 rentre en jeu.
Avant Ollama, c'était plutôt ardu pour un particulier d'exécuter son IA en local (spécialement pour un non tech-savvy). Il fallait généralement se perdre dans différents répertoires Github, installer des modèles de HuggingFace, installer mille & une dépendances, avoir une machine assez performante supportée et finalement espérer que le tout colle.
Maintenant, l'équipe derrière Ollama a transformé la processus en partie de plaisir.
Ollama est un outil qui simplifie l'exécution de grand modèles de langage (LLM) libres en local. Parmi ces LLMs disponibles librement sur le Web, on peut compter sur Mistral, LLaMA-2 (de Meta), Falcon et une panoplie d'autres. Ils ont chacuns leur avantages et inconvénients, sont généralement moins puissant que ceux payants & disponibles en ligne considérant la recherche ainsi que les performances disponibles, mais sont très surprenant quand vient le temps de les mettres à l'épreuve.
La recette en question (je fais sous macOS, donc ajustez en conséquence):
/Applications
& s'exposer dans votre ligne de commande.ollama
:➜ ~ ollama
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
ollama run mistral
(4 Go):
Suite au téléchargement, le modèle sera lancé et vous serez présentez à une conversation à-la-ChatGPT (en mode ligne de commande 😬):
➜ ~ ollama run mistral
>>> Send a message (/? for help)
>>> What kind of question can I ask you?
You can ask me a wide range of questions on various topics such as math problems, definitions of words, explanations of concepts, trivia, or even hypothetical questions. Just keep in mind that I don't have the ability to perform physical actions or access personal data, so my responses will be limited to text-based information and general knowledge.
>>> Which languages do you support?
I can understand, generate text, and translate between several languages including English, Spanish, French, German, Italian, Dutch, Russian, Chinese (Simplified), Japanese, and Korean. However, my proficiency may vary between languages, and I might not be able to handle complex colloquialisms or idioms as effectively as in my primary language (English). Let me know if you have any specific question related to a particular language or translation request.
>>>
Le modèle supporte donc diverses langues, que ce soit l'anglais (langue principale), l'espagnol, français, allemand, italien et autres.
Pouvons-nous obtenir 5 pays européens?
>>> Donne-moi 5 pays en Europe continentale
Here are five countries located on the European continent:
1. Allemagne (Germany)
2. Espagne (Spain)
3. France
4. Italie (Italy)
5. Pologne (Poland)
In French: Voici cinq pays d'Europe continentale :
1. Allemagne (Allemagne)
2. Espagne (Espagne)
3. France
4. Italie (Italie)
5. Pologne (Pologne)
These countries represent a diverse range of cultures, histories, and geographies within Europe.
JSON
Est-ce possible de garder le contexte de la question précédente et de formatter en JSON
, en incluant l'anglais et le français?
>>> Formatte la suite de pays dans un Array JSON, en y incluant deux clés: en et fr
Here is the array of five European countries in JSON format with both English and French keys:
[
{
"en": "Germany",
"fr": "Allemagne"
},
{
"en": "Spain",
"fr": "Espagne"
},
{
"en": "France",
"fr": "France"
},
{
"en": "Italy",
"fr": "Italie"
},
{
"en": "Poland",
"fr": "Pologne"
}
]
This JSON format allows easy access to the country names in both English and French.
Allons-y avec un exemple un peu plus complexe:
URL
distante, en 5 points;➜ ~ ollama run mistral "$(curl https://mistral.ai/news/announcing-mistral-7b/)" summarise this article in 5 key takeaways, with a short tldr as an intro, styled using markdown and add emojis where it makes sense
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 17892 0 17892 0 0 167k 0 --:--:-- --:--:-- --:--:-- 174k
**🔑 TL;DR:** In this article, we explore how to use Mistral AI's text generation models for content creation and summarization. Here are the key takeaways:
1. **Mistral AI offers a variety of text generation models:** The platform provides different types of text generation models like AutoRewrite,
TextSummarizer, and TextExpander to cater to diverse content creation needs. 💻
2. **TextSummarizer is useful for generating summaries:** This model can create condensed versions of long texts while preserving their core information.
It's a valuable asset for producing succinct summaries quickly. 📝
3. **Customizing models enhances performance:** Fine-tuning models on specific domains or topics can significantly improve their accuracy and effectiveness
in generating text relevant to your use case. 🔧
4. **Text generation models have real-world applications:** From creating marketing copy, writing engaging social media posts, to generating code comments,
these models can save time and effort in various industries and scenarios. 🚀
5. **Ethical considerations must be addressed:** As with any AI technology, ensuring that text generation models are used responsibly and ethically is
crucial. This includes respecting copyright laws, maintaining the integrity of information, and avoiding potential biases. 💡
Évidemment, vous pourriez appeller l'exécutable via vos propres applications
Ollama expose également les modèles via une API qui, par défaut, est exposée localement sur le port :11434
.
➜ ~ curl -X POST http://localhost:11434/api/generate -d '{
"model": "mistral",
"prompt": "Write me a function that outputs the fibonacci sequence"
}'
{"model":"mistral","created_at":"2024-02-21T23:08:18.429416Z","response":" Here","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.458994Z","response":"'","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.489749Z","response":"s","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.51962Z","response":" a","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.549193Z","response":" simple","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.580269Z","response":" recurs","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.610059Z","response":"ive","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.639778Z","response":" function","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.669567Z","response":" in","done":false}
{"model":"mistral","created_at":"2024-02-21T23:08:18.699114Z","response":" Python","done":false}
...
Illisible? Vous allez probablement comprendre maintenant pourquoi les IA en ligne retournes un mot à la fois. L'API retourne automatiquement chaque mot / token dès qu'il est généré - il ne suffit qu'à mettre les différents mots ensembles pour avoir la phrase comme on l'aurait dans le mode conversation standard.
Impressionant? En résumé:
curl
de la page Web)Libre à vous maintenant de l'utiliser pour vos projets, applications, pour automatiser des tâches et plus.