1. Optimiser les prompts d'une IA LLM
  2. Gérer les partitions d'un disque


1 – Optimiser les prompts d’une IA LLM

 

NotesRéunion 4oct2024 02

 

Comment écrire des prompts pour optimiser l’utilisation des modèles de langage (LLM) qui alimentent des IA comme ChatGPT et obtenir les meilleures réponses possibles.

 

1.1   – Rédaction des prompts

La rédaction de prompts efficaces, appelée aussi ingénierie du prompt, est devenue une   discipline à part entière et indispensable.

Parler à l'IA comme avec une personne : Lui parler comme à un collègue ou à un membre de l'équipe.

Reformuler les questions complexes (incitation interactive) : L’IA ne comprend pas forcément la question, surtout quand elle est un peu complexe. Il faut parfois apporter des explications complémentaires pour éviter que l’IA s'éloigne du sujet. Il est primordial de reformuler ou compléter des questions complexes en les adaptant au fur et à mesure des réponses apportées. Ne pas hésiter à poser ou préciser d’autres questions en fonction des réponses reçues.

Donner un contexte : Écrire un prompt pour ne doit pas se limiter à une seule phrase. Il faut fournir un contexte à la question posée pour guider la réponse de l’IA. Par exemple si on souhaite acheter un ordinateur il sera utile de préciser en plus du budget si on est un utilisateur avancé ou débutant, quels types d’utilisation on veut faire, si on se déplace avec cette machine, quels appareils particuliers éventuels on doit pouvoir connecter, …

Préciser la tâche attendue : Bien clarifier ce qu’on attend de l’IA : fournir des informations, prodiguer des conseils, donner des idées. Par exemple au lieu d’écrire : « Aide-moi pour rédiger un article sur la culture de la pomme de terre. » Essayer cette question : « Donne-moi trois actions pour optimiser le rendement d’une culture de pommes de terre et trois actions à ne pas faire qui risquent de réduire le rendement. »

Tester plusieurs prompts avec la même idée : Ceci permet de voir comment l’IA réagit à certaines formulations cas des changements mêmes mineurs dans la question peuvent modifier sensiblement le contenu de la réponse.

Changer de sujet et de contexte : Souvent, l’IA garde en mémoire les conversations précédentes et les place dans un certain contexte. Pour que l’IA ne perde pas son contexte il faut rester dans la page en cours. Si on pose une ou d’autres questions dans un contexte différent, alors il est souhaitable de quitter la page ou de relancer une autre connexion qui permettra à l’IA d’oublier le fil de la conversation précédente et de ne pas se confondre dans des contextes de réponses.

Autres conseils :

  • Quand l'IA interprète mal une question, lui dire ce qu'elle n'a pas compris et poursuivre en reprécisant la question ou en lui demandant éventuellement d’expliquer ce qu’elle a compris ou pas.
  • Pour obtenir les sources des réponses, le demander clairement à l’IA ou lui demander de justifier ses réponses.
  • Si l’IA échoue, continuer l’essai ou essayer avec une autre IA.
  • Pour ajuster la complexité des réponses inclure dans le prompt le niveau de la réponse attendue (par exemple pour un débutant, un ingénieur, un expert, un enfant de 10 ans, un étudiant, …) et fournir le plus d’informations possibles pour des réponses détaillées ou nuancées. Cependant il faut éviter de fournir trop d’informations en une seule fois pour ne pas submerger l’IA et les présenter de façon progressive et organisée.
  • Si l’IA refuse de répondre, ne pas poursuivre elle est programmée pour ne pas répondre à certains contextes (politique, sexualité, …).
  • Tenter de faire halluciner une IA (tenter de faire dérailler l’IA en posant des questions dans le but de briser sa chaine de raisonnement) amènera des avertissements ou la fermeture du compte.

 

1.2 - Démarche d'analyse et de formulation des réponses

1 - Analyser la question :

- examen attentif du contenu et du contexte de la question posée.

- Identification des mots-clés et des concepts importants.

- Détermination de l'intention derrière la question (demande d'information, opinion, conseil, etc.).

  • Évaluation du niveau de détail requis dans la réponse.

2 - Rechercher les informations pertinentes :

- Accéder à la base de connaissances interne pour trouver et récupérer les informations liées au sujet.

Trier et hiérarchiser ces informations en fonction de leur pertinence et de leur fiabilité.

3 - Structurer la réponse :

- Organiser les informations de manière logique et cohérente.

- Déterminer l'ordre de présentation des idées pour une compréhension optimale.

4. Formuler la réponse :

- Choisir un langage adapté au contexte et au niveau de compréhension supposé de l'interlocuteur.

- Construire des phrases claires et concises.

- Utiliser des exemples ou des analogies si nécessaire pour illustrer les concepts.

5. Vérifier et ajuster :

- S’assurer que la réponse est complète et répond à tous les aspects de la question.

- Vérifier la cohérence et la précision des informations fournies.

- Ajuster le ton et le style pour qu'ils soient appropriés à la situation.

6. Finaliser :

- Relire une dernière fois la réponse pour s’assurer de sa qualité et de sa pertinence.

- La présenter de manière structurée, avec des paragraphes si nécessaire pour faciliter la lecture.

Ce processus se déroule très rapidement grâce aux capacités de traitement. Les réponses sont générées à partir du modèle de langage entraîné, qui contient des connaissances variées mais statiques si pas d’accès Internet.

 

1.3 Exemple de détail de raisonnement

 Pour répondre à la question « Écrire en langage Python et en C un programme informatique affichant "Hello World" en rouge sur fond bleu, détailler ton raisonnement »

1. Analyse de la demande :

   - Langages requis : Python et C

   - Tâche : Afficher "Hello World"

   - Spécifications visuelles : texte en rouge sur fond bleu

2. Considérations pour chaque langage :

  Pour Python :

   - Python a des bibliothèques pour la manipulation de couleurs dans le terminal

   - La bibliothèque 'colorama' est souvent utilisée pour cette tâche

  Pour C :

   - C n'a pas de bibliothèque standard pour la manipulation de couleurs dans le terminal

   - Nous devrons utiliser des séquences d'échappement ANSI pour les couleurs

3. Implémentation en Python :

from colorama import init, Fore, Back

import sys

def main():

    # Initialiser colorama pour Windows

    init()

    # Définir les couleurs

    sys.stdout.write(Fore.RED + Back.BLUE)

    # Afficher le message

    print("Hello World")

    # Réinitialiser les couleurs

    sys.stdout.write(Fore.RESET + Back.RESET)

if __name__ == "__main__":

    main()

Explication du code Python :

- Nous importons la bibliothèque 'colorama' pour gérer les couleurs.

- Nous initialisons colorama pour assurer la compatibilité avec Windows.

- Nous utilisons `Fore.RED` pour le texte rouge et `Back.BLUE` pour le fond bleu.

- Après l'affichage, nous réinitialisons les couleurs pour ne pas affecter le reste du terminal.

4. Implémentation en C :

#include <stdio.h>

int main() {

    // Séquences d'échappement ANSI pour les couleurs

    // \033[31m : texte rouge

    // \033[44m : fond bleu

    // \033[0m : réinitialisation des couleurs

    printf("\033[31m\033[44mHello World\033[0m\n");

    return 0;

}

Explication du code C :

- Nous utilisons des séquences d'échappement ANSI directement dans la chaîne de caractères.

- `\033[31m` définit la couleur du texte en rouge.

- `\033[44m` définit la couleur de fond en bleu.

- `\033[0m` réinitialise toutes les couleurs après l'affichage.

5. Considérations finales :

   - Le code Python est plus verbeux mais plus lisible et facilement extensible.

   - Le code C est plus compact mais moins intuitif et potentiellement moins portable.

   - Dans les deux cas, la compatibilité avec différents systèmes d'exploitation peut varier.

En complément voir ces vidéos sur le sujet :

 

Vidéos

Voir IA sur DucDuckGo ou perplexity.ai ou Perplexica - Le clone auto hébergeable de Perplexity.ai (https://www.youtube.com/watch?v=3LpX8zdhJTI)

 

 

2 – Gérer les partitions d’un disque

 

NotesRéunion 4oct2024 01

Il existe de nombreuses possibilités pour modifier et gérer les partitions d’un disque (disque dur, SSD, clé USB, …

Avant toute modification de partition, il est primordial d’effectuer une sauvegarde des données. Les manipulations de partitions sont relativement faciles mais restent des opérations délicates car une erreur ou une panne de courant pendant une modification peuvent rendre un disque illisible.

Les utilitaires graphiques comme celui intégré dans Windows ou externes comme Mini Tool partition Wizard facilitent les manipulations grâce à leur représentation visuelle.

Voir cet article : "Comptes utilisateurs et Partitions Windows".

Un autre utilitaire très puissant, intégré nativement dans Windows s’appelle Diskpart.

  • Diskpart est un utilitaire en ligne de commande qui permet de gérer des disques et partitions (créer, supprimer, étendre, réduire des partitions) que ce soient des disques internes, externes ou des clé USB.
  • Diskpart est plus puissant que l’application graphique « Gestion de disque de Windows » 
  • Avant d’utiliser DiskPart, s’assurer d’avoir une sauvegarde du contenu des disques qu’on s’apprête à manipuler.
  • Diskpart peut être utilisé sous Windows, WinPE (pré-installation) et WinRE (récupération) quand l’ordinateur ne peut pas démarrer normalement.

 

2.1 - Utilisation de diskpart

Lancer DiskPart en tapant diskpart dans une invite de commande en mode administrateur.

Dans diskpart il faut d’abord sélectionner un élément pour lui donner le focus. Toutes les commandes DiskPart agissent alors sur l’élément qui a le focus.

  • list disk affiche tous les disques de l’ordinateur. Chaque disque a un numéro (0 à n). Un astérisque (*) sous la ligne GPT signifie que le disque a une partition GPT, sinon c’est une partition MBR. S’il y a plus qu’un disque, pour sélectionner sur disque sur lequel travailler il faudra entrer la commande "select disk n" pour lui donner le focus, (avec n le n° du disque concerné).
  • list volume affiche tous les volumes sur tous les disques. Chaque volume aura un n° (à partir de 0). Pour sélectionner le volume à manipuler il faudra saisir select volume n pour donner le focus.
  • helpaffiche la liste des commandes de diskpart. Pour voir une liste de commandes.

 

2.2 Commandes les plus courantes de Diskpart

Supprimer un volume

- Taper list volume.

- Taper select volume 3 (si par exemple on veut sélectionner le volume 3 dans la liste).

 - Taper delete volume.

Créer une partition primaire de 100 Go (102400 Mo)

  • Taper create partition primary size=102400

Formater une partition

  • Taper list volume (une nouvelle partition sera RAW. Il faut la formater pour qu’elle soit fonctionnelle)
  • Taper format fs=ntfs quick (formatage rapide en NTFS. Remplacer ntfs par fat ou fat32 le cas échéant). 
  • Note : DiskPart, ne sait pas formater une partition Fat32 supérieure à 32Go. Choisir si besoin un autre utilitaire pour cette tâche.

Attribuer une lettre de lecteur

  • Une partition qui n’a pas de lettre de lecteur n’apparait pas dans l’explorateur de fichiers. Pour attribuer ou changer la lettre de lecteur d’une partition existante et lui donner la valeur D par exemple saisir : assign letter D (la lettre ne doit pas être déjà utilisée par une autre partition).

Étendre un volume

  • Pour étendre la partition sélectionnée de 10 Go (10240 Mo) supplémentaires saisir : extend size=10240 (la partition doit avoir suffisamment d’espace non alloué sur son côté droit. Si la taille n’est pas précisée tout l'espace non alloué contigu de son côté droit sera adjoint).

Réduire la partition

  • Saisir : shrink desired=10240 (réduit la taille de 10 Go. La partition doit être au format NTFS).

Marquer une partition comme active

  • Pour marquer une partition comme active, saisir la commande active

   

Afficher les propriétés d’un disque

  • La commande detail affiche les propriétés d’un disque, d’une partition, d’un volume ou d’un disque dur virtuel (VHD).
  • Saisir les commandes : select disk n puis detail disk (remplacer disk par volume ou partition pour afficher les propriétés d’un volume ou d’une partition).

Effacer un disque et le convertir en GPT ou MBR

  • Pour effacer un disque saisir les commandes : list disk puis select disk n (n étant le n° du disque). Enfin saisir clean pour effacer le disque.
  • Pour convertir un disque en GPT ou MBR saisir clean puis convert gpt ou convert mbr selon le cas.

 

2.3 - Tableau des commandes Diskpart dans Windows

(Tableau origine Microsoft)

 

active

Marque la partition du disque avec le focus comme active.

add

Met en miroir le volume simple avec le focus sur le disque spécifié.

assign

Attribue une lettre de lecteur ou un point de montage au volume avec le focus.

attach vdisk

Attache (parfois appelé supports ou surfaces) un disque dur virtuel (VHD) afin qu’il apparaisse sur l’ordinateur hôte en tant que disque dur local.

attributes

Affiche ou définit ou efface les attributs d’un disque ou d’un volume.

automount

Active ou désactive la fonction de montage automatique.

break

Divise le volume en miroir avec le focus en deux volumes simples.

clean

Supprime tout formatage de partition ou de volume du disque avec le focus.

compact vdisk

Réduit la taille physique d’un fichier de disque dur virtuel (VHD) à expansion dynamique.

convert

Convertit la table d’allocation de fichiers (FAT) et les volumes FAT32 vers le système de fichiers NTFS, en laissant intacts les fichiers et répertoires existants.

create

Crée une partition sur un disque, un volume sur un ou plusieurs disques ou un disque dur virtuel (VHD).

delete

Supprime une partition ou un volume.

detach vdisk

Empêche le disque dur virtuel (VHD) sélectionné d’apparaître en tant que disque dur local sur l’ordinateur hôte.

detail

Affiche des informations sur le disque, la partition, le volume ou le disque dur virtuel (VHD) sélectionné.

exit

Quitte l’interpréteur de commandes diskpart.

expand vdisk

Développe un disque dur virtuel (VHD) à la taille que vous spécifiez.

expand

Étend le volume ou la partition avec le focus, ainsi que son système de fichiers, dans l’espace libre (non alloué) sur un disque.

filesystems

Affiche des informations sur le système de fichiers actuel du volume sélectionné et répertorie les systèmes de fichiers pris en charge pour le formatage du volume.

format

Formate un disque pour accepter les fichiers Windows.

gpt

Attribue le ou les attributs gpt à la partition en mettant l’accent sur les disques de table de partition GUID de base (gpt).

help

Affiche une liste des commandes disponibles ou des informations d’aide détaillées sur une commande spécifiée.

import

Importe un groupe de disques étrangers dans le groupe de disques de l’ordinateur local.

inactive

Marque la partition système ou la partition de démarrage avec le focus comme inactive sur les disques d’enregistrement de démarrage principal (MBR) de base.

list

Affiche une liste de disques, de partitions sur un disque, de volumes sur un disque ou de disques durs virtuels (VHD).

merge vdisk

Fusionne un disque dur virtuel (VHD) de différenciation avec son VHD parent correspondant.

offline

Passe un disque ou un volume en ligne à l’état hors ligne.

online

Passe un disque ou un volume hors ligne à l’état en ligne.

recover

Actualise l’état de tous les disques d’un groupe de disques, tente de récupérer les disques d’un groupe de disques non valide et resynchronise les volumes en miroir et les volumes RAID-5 contenant des données obsolètes.

rem

Fournit un moyen d’ajouter des commentaires à un script.

remove

Supprime une lettre de lecteur ou un point de montage d’un volume.

repair

Répare le volume RAID-5 avec le focus en remplaçant la région de disque défaillante par le disque dynamique spécifié.

rescan

Localise les nouveaux disques qui peuvent avoir été ajoutés à l’ordinateur.

retain

Prépare un volume simple dynamique existant à utiliser comme volume de démarrage ou système.

san

Affiche ou définit la stratégie de réseau de stockage (san) pour le système d’exploitation.

select

Déplace le focus sur un disque, une partition, un volume ou un disque dur virtuel (VHD).

set id

Modifie le champ de type de partition pour la partition avec le focus.

shrink

Réduit la taille du volume sélectionné de la quantité que vous spécifiez.

uniq id

Affiche ou définit l’identifiant de la table de partition GUID (GPT) ou la signature de l’enregistrement de démarrage principal (MBR) pour le disque avec le focus.

Aucun commentaire