vendredi 15 août 2025

REX sur OLLAMA et la Cybersécurité.

 

REX sur OLLAMA et la Cybersécurité.


Mon retour sur l'installation d'OLLAMA sur un PC ASUS Vivobook S15/16 OLED avec NPU.

🗺️ Plan d'implémentation

Attention aux comportements avec les navigateurs EDGE et CHROME.

Phase 1 : Analyses initiales :

1ère analyse - RAG local :
• Déploiement OLLAMA + MISTRAL sur PC-NPU
                    Ollama  https://ollama.com/ 
                    https://youtu.be/OOa_uaKfMeM?si=-yYobiyFYsVtEAbS

Ollama : Installation, Configuration et Entraînement LLM | StudyRaid (un cours complet en français)

            Ollama : Installation, Configuration et Entraînement LLM

https://app.studyraid.com/fr/courses/18986/ollama-installation-configuration-et-entrainement-llm

○ Activation NPU
                    voir plus avant dans cet article.
• Configuration RAG avec les 2 matrices
○ Sous RAG sur le PC
                    voir plus avant dans cet article.
• Prompts d'analyse des documents existants
• Première évaluation de maturité
• Raccourcis:  
○ CTL+MAJ+Y fenêtre recherche dans un site 
○ Using Keyboard Shortcuts in the Ollama CLI


Phase d'activation de NPU :

Activez l'accélération matérielle si disponible OLLAMA_INTEL_NPU=1

Variables d'environnement
OLLAMA_HOST=localhost:11434
INTEL_NPU_ENABLE=1
OPENVINO_ENABLE_NPU_DEVICE=1


Pour activer l'accélération matérielle avec OLLAMA_INTEL_NPU=1, voici les étapes générales à suivre, en supposant que vous utilisez Ollama localement sur une machine compatible avec les NPU Intel :

🛠️ Étapes pour activer l'accélération matérielle
1. Vérifiez la compatibilité du matériel
○ Assurez-vous que votre machine dispose d’un NPU Intel compatible (comme les Intel Core Ultra avec VPU/NPU).
○ Vérifiez que les pilotes Intel nécessaires sont installés (OpenVINO, oneAPI, etc.).
2. Configurez la variable d’environnement
○ Sous Linux/macOS : 
export OLLAMA_INTEL_NPU=1
○ Sous Windows (PowerShell) : 
$env:OLLAMA_INTEL_NPU=1
○ Vous pouvez aussi l’ajouter de façon permanente dans votre fichier .bashrc, .zshrc ou via les paramètres système sur Windows.
3. Lancez Ollama avec cette configuration
○ Démarrez Ollama après avoir défini la variable. Il devrait détecter le NPU et tenter de l’utiliser pour l’inférence.
4. Vérifiez l’utilisation du NPU
○ Ollama peut afficher dans les logs ou la console s’il utilise le NPU. Sinon, vous pouvez surveiller l’activité du NPU via les outils Intel (comme Intel VTune ou les moniteurs système).

🔍 Conseils supplémentaires

• Si vous utilisez une interface comme Page Assist, assurez-vous qu’elle est bien configurée pour exploiter les accélérations matérielles.
• Certaines vidéos comme celle-ci sur YouTube peuvent montrer des démonstrations pratiques de l’intégration Ollama + NPU.
• Pour les extensions comme Page Assist, vérifiez dans les options si une case permet d’activer l’accélération matérielle ou de passer des variables d’environnement.
Souhaitez-tu que je t’aide à tester si ton système est bien configuré pour cela ?


Voici un guide rapide pour tester si ton système est bien configuré pour utiliser OLLAMA_INTEL_NPU=1 avec accélération matérielle :

✅ Vérification de la configuration NPU avec Ollama

1. 🔎 Vérifie ton matériel
Tu peux exécuter cette commande pour identifier ton CPU :
lscpu | grep "Model name"
Cherche une mention comme Intel Core Ultra ou Intel NPU/VPU. Si tu es sur Windows, utilise :
Get-CimInstance Win32_Processor | Select-Object Name

2. 🧠 Vérifie les pilotes et runtime Intel

Assure-toi que OpenVINO est installé. Tu peux tester avec :
source /opt/intel/openvino/setupvars.sh
Si cette commande fonctionne sans erreur, OpenVINO est prêt. Sinon, tu peux l’installer via :
pip install openvino-dev

3. ⚙️ Teste la variable d’environnement

Avant de lancer Ollama, exécute :
export OLLAMA_INTEL_NPU=1
ollama run llama2
Sur Windows PowerShell :
$env:OLLAMA_INTEL_NPU=1
ollama run llama2
Observe les logs : s’il y a une mention du NPU ou d’un backend Intel, c’est bon signe.

4. 📊 Surveille l’activité du NPU

Si tu veux aller plus loin, installe Intel VTune Profiler ou utilise le Task Manager (Windows) → onglet "Performance" → "NPU" (si disponible).

5. 🧪 Test de performance comparative

Tu peux comparer les temps d’inférence avec et sans la variable :
time ollama run llama2
Puis :
unset OLLAMA_INTEL_NPU
time ollama run llama2
Si le NPU est actif, tu devrais voir une amélioration notable.

Souhaites-tu que je t’aide à créer un script de test automatisé pour valider tout ça ? Ou préfères-tu un tableau comparatif des performances CPU vs NPU ?








zhaohb/ollama_ov: Add genai backend for ollama to run generative AI models using OpenVINO Runtime.

How to Build OpenVINO™ GenAI APP in C++ | by OpenVINO™ toolkit | OpenVINO-toolkit | Medium

OpenVINO (OpenVINO Toolkit)

Cybersécurité : Google victime d'un piratage par des hackers se revendiquant du célèbre groupe cybercriminel ShinyHunters https://share.google/TgZlqqKjRGiV1PzUW



Comment installer un RAG pour Ollama 3.2 afin de permettre la lecture des documents qui sont dans ce RAG et quel code faut¡-il faire ?


Il n'est pas possible d'installer un RAG directement dans Ollama. Ollama est un moteur qui exécute les modèles de langage (LLM). Le système RAG est une architecture qui se construit autour d'Ollama.

Pour créer un RAG avec Ollama, vous devez développer un script ou une application qui coordonne plusieurs composants :

1. Une base de données vectorielle (Vector Database) pour stocker les documents.
2. Un moteur d'embeddings pour convertir le texte en vecteurs numériques.
3. Ollama pour exécuter le LLM qui générera la réponse finale.

Installation et configuration
Voici les étapes et les outils pour mettre en place ce système :
1. Installer les dépendances
Vous aurez besoin de Python et des bibliothèques suivantes :
Bash

pip install ollama chromadb langchain langchain-community
• Ollama : Le client Python pour interagir avec le moteur Ollama.
• ChromaDB : Une base de données vectorielle légère et facile à utiliser.
• LangChain : Un framework très utile pour orchestrer les différents composants d'une application RAG.
2. Démarrer Ollama et télécharger un modèle
Assurez-vous que le serveur Ollama est en cours d'exécution. Si ce n'est pas déjà fait, téléchargez un modèle compatible. llama3 est un bon choix.
Bash

ollama pull llama3

Code d'exemple
Ce script Python illustre comment les composants interagissent pour créer un flux RAG simple.
Python

import ollama
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OllamaEmbeddings
from langchain.chains import RetrievalQA
from langchain_community.llms import Ollama
# 1. Charger et diviser un document
loader = TextLoader("exemple.txt")  # Créez un fichier "exemple.txt" avec du texte dedans
documents = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = text_splitter.split_documents(documents)
# 2. Créer les embeddings et la base de données vectorielle
# Le modèle d'embeddings est aussi exécuté par Ollama
embeddings = OllamaEmbeddings(model="llama3")
vectordb = Chroma.from_documents(documents=docs, embedding=embeddings, persist_directory="./chroma_db")
vectordb.persist()
# 3. Créer la chaîne de récupération et de génération (RAG)
# Cette chaîne va chercher les documents et les passer au LLM
llm = Ollama(model="llama3")
qa_chain = RetrievalQA.from_chain_type(llm=llm,
                                       chain_type="stuff",  # "stuff" met tous les documents dans le prompt
                                       retriever=vectordb.as_retriever())
# 4. Poser une question et obtenir une réponse
query = "Quelle est l'information principale de ce document ?"
response = qa_chain.invoke(query)
print(response)
# Exemple d'exécution
# > {"query": "Quelle est l'information principale de ce document ?", "result": "Selon le document, l'information principale est que l'entreprise XYZ a lancé un nouveau produit révolutionnaire..."}
Explications du code
• TextLoader : Charge votre document (ici, exemple.txt). Pour des documents plus complexes (PDF, etc.), vous utiliseriez un autre loader de langchain_community.document_loaders.
• RecursiveCharacterTextSplitter : Divise le document en petits morceaux (chunks). C'est essentiel, car les LLM ont une limite de tokens.
• OllamaEmbeddings : Utilise un modèle d'embedding (comme llama3 ou un autre modèle plus petit) pour convertir chaque morceau de texte en un vecteur.
• Chroma : Stocke ces vecteurs et les associe à leur texte d'origine. C'est votre base de données RAG.
• Ollama(model="llama3") : Crée une instance du LLM que vous avez téléchargé.
• RetrievalQA.from_chain_type : C'est le cœur du RAG. Quand vous posez une question :
1. Il transforme la question en vecteur.
2. Il recherche les vecteurs les plus proches dans la base de données Chroma.
3. Il insère les morceaux de texte correspondants dans le prompt du LLM.
4. Il envoie le tout à Ollama et renvoie la réponse générée.


À partir de l’adresse https://g.co/gemini/share/f898c925d340


Parametrage-OLLAMA-1-RAG :




Prompt système et Prompt de question

You are a helpful AI assistant Answer in the language of the question. Use the following pieces of context to answer the question at the end. If you don't know the answer, just say you don't know. DO NOT try to make up an answer. If the question is not related to the context, politely respond that you are tuned to only answer questions that are related to the context.  {context}  Question: {question} Helpful answer:

Ne supprimez pas `{chat_history}` et `{question}` du prompt.

Prompt de recherche Web et Prompt de suivi de recherche Web


Dans cette vidéo nous découvrons comment faire du Retrival Augmented Generation (RAG) avec Page Assist.

RESSOURCES ollama introduction    • Introduction à Ollama: téléchargement   ollama https://ollama.com/ ollama modèles https://ollama.com/search ollama GitHub https://github.com/ollama/ollama NOS VIDÉOS Ollama Introduction    • Introduction à Ollama: téléchargement   Ollama API    • Ollama API: Python, JavaScript, R, Nim et ...   PLAN 00:00:00 Introduction et plan 00:01:00 Présentation du RAG 00:01:54 Embedding 00:03:49 Paramètre de Page Assist 00:10:26 Documents locaux 00:12:10 Recherche internet avec un lien et en conversation 00:14:01 Recherche internet avec la navigation 00:15:37 Mot de la fin


Sauvegarde du modèle entraîné - Ollama : Installation, Configuration et Entraînement LLM | StudyRaid


Sauvegarder un modèle entraîné
 est une étape cruciale pour ne pas perdre tout le travail effectué lors de l’entraînement. Cela vous permet de réutiliser le modèle sans devoir le 
réentraîner, ce qui économise un temps précieux et des ressources informatiques. De plus, la sauvegarde garantit que vous pouvez partager ou déployer votre modèle dans différents environnements.

La sauvegarde consiste à enregistrer les poids, la structure et les 
paramètres du modèle dans un fichier ou un ensemble de fichiers. Ces fichiers peuvent ensuite être chargés pour effectuer des inférences
 ou poursuivre l’entraînement.


Comprendre les paramètres de génération pour un contrôle précis :

Modifier les paramètres de génération dans Ollama vous permet d’ajuster finement la manière dont le modèle produit ses réponses. Ces réglages influencent la créativité, la cohérence et la longueur des textes générés. Par exemple, en jouant sur la température, vous pouvez rendre les réponses plus audacieuses ou plus conservatrices. C’est un levier puissant pour personnaliser vos interactions selon vos besoins spécifiques.

Voici les principaux paramètres que vous pouvez modifier :

Température : contrôle la diversité des réponses. Une température basse (0.1-0.3) produit des résultats plus prévisibles, tandis qu’une température élevée (0.7-1.0) génère des réponses plus variées et créatives.

Top-p (nucleus sampling) : limite la sélection des mots aux plus probables cumulant une probabilité p. Cela permet de garder un bon équilibre entre cohérence et diversité.

Max tokens : définit la longueur maximale de la réponse générée, vous permettant de limiter ou d’étendre la taille du texte.

Frequency penalty : pénalise la répétition excessive de mots, ce qui améliore la fluidité et évite les redondances.

Presence penalty : encourage l’introduction de nouveaux concepts en pénalisant la répétition des mêmes idées.

Ces paramètres sont essentiels pour adapter la génération à votre contexte, que ce soit pour un texte formel, une conversation créative ou une réponse concise.

Exemple pratique : ajuster la température et la longueur de la réponse

Le code suivant montre comment modifier la température et la longueur maximale d’une réponse dans une session Ollama. Vous définissez ces paramètres dans la 
requête pour influencer directement la génération.

Ce code initialise une session de chat avec un modèle, puis envoie une commande en spécifiant la température à 0.5 (équilibre entre créativité et cohérence) et la limite de 
tokens à 150 pour une réponse concise.

python

# Ce script configure une session Ollama et envoie une requête avec des paramètres personnalisés.
# La température est fixée à 0.5 pour un bon équilibre, et la réponse est limitée à 150 tokens.
import ollama

session = ollama.ChatSession(model="nom_du_modele")
response = session.send(
    "Expliquez les avantages de l'énergie solaire.",
    temperature=0.5,
    max_tokens=150
)
print(response)

Modifier ces paramètres vous donne un contrôle direct sur la tonalité et la longueur des réponses, ce qui est idéal pour adapter le modèle à différents usages.

Ajuster les pénalités pour améliorer la qualité des réponses 
Les pénalités de fréquence et de présence sont des outils puissants pour éviter que le modèle ne se répète ou ne reste bloqué sur les mêmes idées. En augmentant ces valeurs, vous encouragez le modèle à diversifier son vocabulaire et ses concepts.

Par exemple, si vous trouvez que les réponses sont trop redondantes, vous pouvez appliquer une fréquence penalty de 0.8 et une presence penalty de 0.6. Cela pousse le modèle à varier ses formulations et à introduire de nouvelles idées, rendant les échanges plus dynamiques et intéressants.

Voici comment intégrer ces pénalités dans une requête Ollama :

python

# Ce code montre comment appliquer des pénalités pour réduire les répétitions dans les réponses.
# Frequency penalty à 0.8 et presence penalty à 0.6 pour plus de diversité.
response = session.send(
    "Donnez-moi des conseils pour améliorer la productivité.",
    frequency_penalty=0.8,
    presence_penalty=0.6
)
print(response)

Ces réglages sont particulièrement utiles pour des tâches créatives ou des dialogues longs où la variété est essentielle.

Personnaliser la génération pour chaque contexte d’utilisation 

Chaque projet ou interaction peut nécessiter des paramètres différents. 

Par exemple :
Pour un chatbot professionnel, privilégiez une température basse (0.2-0.4) et une max_tokens modérée pour des réponses claires et précises.

Pour un assistant créatif, augmentez la température (0.7-1.0) et la max_tokens pour favoriser l’originalité et la richesse des idées.

Pour des résumés ou synthèses, limitez la longueur avec max_tokens et utilisez une température basse pour la cohérence.

N’hésitez pas à expérimenter ces paramètres pour trouver la combinaison parfaite qui correspond à votre style et à vos objectifs. Ollama vous offre cette flexibilité incroyable pour rendre chaque interaction unique et adaptée à vos besoins. 

Avec ces outils, vous êtes prêt à maîtriser la génération de texte comme un pro, en ajustant précisément chaque aspect pour obtenir des résultats toujours plus pertinents et engageants !

ollama --help

Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model
  show        Show information for a model
  run         Run a model
  stop        Stop a running model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  ps          List running 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.


LLM local ultra simple avec Ollama + Mistral (moins de 10 min !)


À partir de l’adresse <https://www.youtube.com/watch?v=7x7GQPnUe0s

Mets en place ton LLM local super facilement avec Ollama et Mistral, et profite de ta propre IA comme ChatGPT, même sans connexion internet ! Tutoriel accessible à tous. 👉 Décrochez votre job de rêve - formation exclusive (offre limitée !) :🚀 https://devart.podia.com/ 👉 Un like 👍, un partage 🔄 ou un commentaire 💬 m’aide énormément à faire grandir la chaîne. 

À partir de l’adresse <https://www.youtube.com/watch?v=7x7GQPnUe0s




🛡️ Objectif de LawZero

  • Organisation à but non lucratif dédiée à la sécurité de l’IA, fondée par Yoshua Bengio.
  • Vise à prioriser la sécurité sur les intérêts commerciaux dans le développement de l’IA.
  • Répond aux risques croissants posés par les modèles d’IA avancés : tromperie, piratage, auto-préservation, désalignement des objectifs.

LoiZéro est une organisation à but non lucratif dédiée à faire progresser la recherche et à développer des solutions techniques permettant de concevoir des systèmes d'IA sécuritaires.


Présentation de LawZero - Yoshua Bengio.


Conséquences de l'intelligence artificielle générale sur la sécurité nationale et internationale - Yoshua Bengio.



Mon Carnet du 1er aout 2025 by Mon Carnet, le podcast :


Mon Carnet, le podcast de Bruno Guglielminetti

Le grand magazine francophone de l'actualité numérique

Vendredi 1er août 2025

Débrief transatlantique avec Jérôme Colombain (3:32)

Entrevues :
Pour une IA plus sûre : Philippe Beaudoin de LoiZero (27:46)
Marché des agents IA d'AWS : Retour d'experience de Coveo (45:52)
IA souveraine : Bell s’allie à Cohere (1:00:36)

Jeu vidéo avec Carl-Edwin Michel :
Martin Brouard (Studio Imugi) présente Bonaparte (1:12:02)

Billets :
Weber : La déception de Proton (1:19:55)
Ricoul : Technologies portables (1:25:27)

Entrevue :
Poulin : Une nouvelle formation UX à l’ÉTS (1:34:27)

Musique : Bruno Guglielminetti

Collaborateurs :
Jérôme Colombain, Carl-Edwin Michel, Thierry Weber, Stéphane Ricoul, Jean-François Poulin
www.MonCarnet.com
Une production de Guglielminetti.com
Août 2025

Les agents superintelligents présentent des risques catastrophiques : l’IA scientifique peut-elle offrir une voie plus sûre ?


Ce texte est un extrait du papier de recherche publié sur arXiv par Yoshua Bengio et ses collègues, intitulé « Les agents superintelligents présentent des risques catastrophiques : l’IA scientifique peut-elle offrir une voie plus sûre ? ». Voici une synthèse des points clés :


🧠 Problème identifié : les risques des agents d’IA généralistes

  • Les grandes entreprises d’IA développent des agents capables d’agir de manière autonome dans une large gamme de tâches humaines.
  • Ces systèmes, bien que puissants, peuvent poser des risques graves :
    • Tromperie intentionnelle
    • Objectifs non spécifiés par les humains
    • Auto-préservation conflictuelle avec les intérêts humains
    • Perte de contrôle humain irréversible

🛡️ Proposition : une IA non agentique appelée Scientist AI

  • Objectif principal : expliquer le monde à partir d’observations, sans chercher à agir ou imiter les humains.
  • Architecture :
    • Un modèle du monde générant des théories explicatives
    • Une machine d’inférence question-réponse
  • Caractéristique centrale : gestion explicite de l’incertitude pour éviter les prédictions trop confiantes.

🎯 Avantages et applications

  • Accélération des progrès scientifiques en collaboration avec les chercheurs humains.
  • Renforcement de la sécurité de l’IA en servant de garde-fou contre les agents autonomes.
  • Maintien de l’innovation tout en réduisant les risques liés à l’autonomie des systèmes.

🧭 Vision stratégique

Les auteurs appellent à une réorientation des efforts de recherche et de développement vers des systèmes d’IA explicatifs, transparents et sûrs par conception. Ils espèrent que cette approche motivera les chercheurs, développeurs et décideurs à adopter une trajectoire plus prudente et responsable.





Aucun commentaire:

Enregistrer un commentaire

Claude Code est un outil de programmation intelligent

 Claude Code. Claude Code est un outil de programmation intelligent qui s'intègre à votre terminal, comprend votre base de code et vous ...