Génération de données synthétiques : produire des commentaires de réseaux sociaux pour mieux préparer une campagne marketing grâce à l'ingénierie de prompt

|

|

Le besoin
La solution
Ils peuvent vous aider

Le besoin

Anticiper les retours des utilisateurs sur des publications sur les réseaux sociaux.

Je suis chef de projet marketing et je travaille sur une campagne de lancement d'un produit cosmétique. J'ai préparé des publications qui seront diffusées sur les différents comptes de réseaux sociaux de notre marque, mais je ne sais pas comment ces dernières seront reçues. Notre marque est nouvelle, et le produit en question n'est pas encore sorti ; nous avons donc très peu de données sur lesquelles nous baser pour orienter notre campagne. J'aimerais surtout pouvoir anticiper les réactions négatives à nos publications.

La solution

Générer des commentaires synthétiques

Les LLM pour la génération de données synthétiques

Les nouvelles avancées en Traitement Automatique des Langues (TAL), avec l'avènement des grands modèles de langue (LLM), permettent de rapidement créer des données textuelles synthétiques de qualité.

Les données synthétiques sont des productions qui ne sont pas issues du monde réel : elles sont artificiellement fabriquées.

Les LLM se prêtent bien à cette tâche, car ce sont des modèles dits génératifs, c'est-à-dire qu'ils ont été spécifiquement entraînés pour produire du texte. C'est le cas, par exemple, de GPT-4 (le "moteur" de ChatGPT d'OpenAI), ou bien de la suite de modèles Claude développée par Anthropic.
De plus, ces modèles ont bien souvent été entraînés avec des données issues des réseaux sociaux (par exemple,  le modèle Llama de Meta AI a été entraîné sur des données venant de Facebook et Instagram).

La tâche d'un modèle génératif consiste à trouver les séquences de caractères (ou tokens) qui sont les plus probables étant donné un texte en entrée (aussi appelé "contexte"). Pour les chatbots comme ChatGPT, le texte d'entrée est le prompt (le message) écrit par l'utilisateur.

Le fait d'utiliser des données synthétiques pour le marketing est une pratique émergente ; l'utilisation de l'IA générative dans ce domaine, même si encore au stade exploratoire, est aujourd'hui jugée comme prometteuse.

L'ingénierie de prompts

Il est donc possible de générer des commentaires dont la qualité dépendra grandement du prompt : plus le prompt sera précis et bien formulé, plus la réponse du modèle sera pertinente. Élaborer un prompt de qualité est devenu une pratique indispensable dans le domaine des LLM. C'est en général vers cette solution que l'on se tourne en premier lorsque l'on souhaite utiliser un LLM pour une tâche spécifique sans avoir le temps ni les ressources de le ré-entraîner.
Cette pratique s'appelle l'ingénierie de prompt.

Dans cette étude de cas de génération de commentaires synthétiques, il faudra tâcher de :

  •  réfléchir au contenu et à la structure du prompt, en gardant en tête la dimension marketing de la tâche,
  • tester les prompts et itérer pour arriver à des productions satisfaisantes,
  • générer les commentaires,
  • analyser les commentaires produits.

Concevoir un prompt

Cadrage préliminaire

Créer le bon contexte

Avant de commencer à rédiger le prompt, il faut se poser plusieurs questions :

  • Qui sont les auteurs fictifs des commentaires ?
  • Sur quels réseaux sociaux sont-ils publiés ?
  • Y a-t-il des points dans la publication que l'on aimerait voir évoqués ?
  • Quel ton est utilisé (positif, négatif, neutre, moqueur...) ?

Il est cependant à noter qu'il ne faut pas être trop spécifique pour le ton et les points de la publication, l'objectif étant de produire des textes les plus variés possibles afin d'anticiper les avis divers. Il faut donc avoir des données non-biaisées. Pour ce qui est des auteurs fictifs, cela revient à réfléchir au type de public visé par la campagne. Le concept de "persona" est souvent utilisé en marketing, et il est possible de mobiliser cette notion dans le prompt pour le rendre plus précis.

 

Créer des personas

Un persona est un personnage fictif qui représente la cible d'un produit et qui est décrit par une fiche d'informations. On peut y inclure :

  • le nom (ou pseudo utilisateur, car on cherche à générer des commentaires sur un réseau social)
  • l'âge,
  • la profession,
  • la position géographique,
  • les centres d'intérêts,
  • les traits de personnalité,
  • etc

Les personas permettront d'obtenir des textes plus réalistes et nuancés. En effet, les LLM actuels ont aussi été entraînés pour les jeux de rôle, adaptant leur style et leur ton en fonction des instructions données.

Pour créer les personas, on peut procéder :

  • manuellement, en s'inspirant par exemple de ses connaissances en marketing,
  • automatiquement, en ayant recours à des outils de génération d'utilisateurs synthétiques.

Le choix de la méthode dépendra des ressources disponibles et du type d'informations que l'on aimerait mettre en avant. Si la méthode automatique est choisie,  il faudra cependant veiller à vérifier la qualité des données et à les corriger au besoin.

Rédiger un prompt

Identifier les éléments du prompt

Grâce à l'étape de cadrage, le type de données attendu est bien défini. On peut donc commencer à rédiger des instructions, en prenant en compte chaque élément évoqué plus haut. Ainsi, on sait que le prompt devra contenir :

  • le persona,
  • la description du produit,
  • la publication de la campagne marketing,
  • le nom du réseau social,
  • le ton attendu (optionnel),
  • les points de la publication à évoquer (optionnel).

On peut rédiger une ou quelques instructions par élément. Il s'agit alors de trouver la meilleure manière de formuler et d'organiser ces instructions.

Utiliser des formulations standard

Certains types de prompt ont des formulations conventionnelles, dans le sens où elles apparaissent souvent dans les données d'entraînement des LLM. Dès lors, si ces formulations sont employées, les générations du LLM seront plus susceptibles d'être pertinentes.

Par exemple, pour déclencher un jeu de rôle, l'instruction peut contenir des phrases déclaratives et s'adresser directement au modèle. De ce fait :

  • Pour le persona:
    • "Anne, 34 ans, Belgique, infirmière, passionnée de photographie",
  • l'instruction associée sera :
    • "Tu es Anne, 34 ans. Tu habites en Belgique, tu exerces la profession d'infirmière, et tu es passionnée de photographie."

D'autres conventions sont le fait d'inclure :

  • des séparateurs (comme des hashtags ou tirets),
  • des titres de section ("Instructions", "Format"...),
  • des mots en gras ou en italique pour insister sur certains mots-clés.

S'aider d'un guide de rédaction de prompts est également recommandé.

Considérer le system prompt et le user prompt

Afin de mieux structurer les instructions, il est possible de les répartir entre 2 prompts :

  • le prompt système (system prompt),
  • le prompt utilisateur (user prompt).

Le system prompt sert à donner des directives globales au modèle ; il encadre toutes ses générations à suivre. Le user prompt, quant à lui, donne des instructions locales et ponctuelles. Ainsi, il serait tout à fait possible d'utiliser le system prompt pour y stocker les instructions qui resteront inchangées, comme le format attendu ou le nom du réseau social.

Considérer le zero-shot prompting et le few-shot prompting

Inclure des exemples de productions attendues dans le prompt pour guider le modèle est également une option à considérer.

Dans le cas où aucun exemple n'est donné, on parle de "zero-shot prompting". Dans le cas contraire, c'est le "few-shot prompting".

Considérer les hyper-paramètres du modèle

Les hyper-paramètres du modèle sont un ensemble de valeurs qu'il est possible d'ajuster afin de manipuler les sorties (ou mots) du modèle. Parmi ces valeurs ajustables, on compte:

  • la température, qui agit sur l'aspect aléatoire des sorties. Une température plus haute augmente la "créativité" du modèle.
  • le top-p, qui limite le nombre d'options possibles pour le modèle,
  • le nombre maximal de mots,
  • les pénalités de présence ou de fréquence, qui forcent le modèle à utiliser un vocabulaire plus varié.

Expérimenter avec ces paramètres permet de mieux saisir les points forts et faibles d'un LLM.

Tester et affiner le prompt

Afin d'obtenir le meilleur prompt possible, il faut d'abord en rédiger plusieurs versions, chacune contenant au moins un des paramètres précédemment évoqués. Il s'agit ensuite de stocker ces versions en leur donnant un nom, de les tester chacune en les donnant au modèle, et d'analyser la génération (qui sera également conservée).

Ainsi, un comparatif entre versions de prompts est établi. Il est également possible de procéder en cascade, en commençant par comparer deux variables, de garder celle qui fonctionne le mieux, puis d'y incorporer une nouvelle variable.

Par exemple, dans un premier test, deux versions initiales peuvent être créées :

1) user prompt seul

2) system prompt et user prompt.

Puis, constatant que la meilleure génération est la première, c'est elle qui est choisie pour poursuivre les tests. Ainsi, dans le test suivant, on confrontera ces deux versions :

1) user prompt et zero-shot learning

2) user prompt et few-shot learning

 Créer le patron de prompt définitif

Le prompt optimal trouvé, il peut maintenant être transformé en "patron" (ou "prompt template").  Voici à quoi il pourrait ressembler:

PERSONA

Tu es <nom>. Ton pseudo utilisateur sur <réseau social> est <pseudo utilisateur>. Tu as <age> ans. Tu exerces la profession de <métier>. Tes passions sont <centres d'intérêt>. Tu es <adjectif de personnalité 1> et <adjectif de personnalité 2>.

CONTEXTE
Sur <réseau social>, la marque de cosmétiques <marque> a écrit une publication pour présenter son nouveau produit <nom du produit>. Ce produit est <description du produit>. Voici la publication : <publication>.

INSTRUCTIONS

Rédige un commentaire <ton> répondant à cette publication. Le style de ton commentaire doit être cohérent avec ton persona.

Parmi les sujets évoqués dans ton commentaire, explique ce que tu penses de <point spécifique de la publication>.

FORMAT

Réponds au format CSV : "pseudo,commentaire"

EXEMPLE DE REPONSE

<exemple de réponse rédigé au préalable>

Il s'agira par la suite de remplir ce patron avec les différents personas (et/ou tons exigés).

Analyser les commentaires générés

Post-processing

Il est possible que les commentaires présentent des hallucinations ou des erreurs de format. Une étape de post-processing est donc nécessaire, afin de filtrer les données et ne conserver que celles qui sont valides.

Exploration des données

Ici, une analyse qualitative couplée à une analyse quantitative est nécessaire. Si le volume de données généré est conséquent, ces dernières peuvent faire l'objet d'extraction de mots-clés ou de topic modeling, afin de capturer les traits les plus saillants du jeu de données.

Points d'attention

Quelques points d'attention sont à considérer, notamment concernant les nombreux biais inhérents aux LLM.

Données synthétiques vs données réelles

L'utilisation des données synthétiques pour le marketing prédictif est encore au stade expérimental. De ce fait, la question de la pertinence des données synthétiques, c'est à dire leur capacité à s'approcher au mieux des données réelles, est une question centrale, devant rester au cœur des préoccupations tout au long de leur fabrication et de leur analyse.

Plusieurs approches sont possibles,   notamment definir des critères de qualité, compléter les productions synthétiques avec de vrais contenus et utiliser un modèle dont le corpus d'apprentissage se rapproche des productions attendues.

 

Définir des critères d'évaluation qualitative

Il faut se questionner sur ce qui différencie une bonne donnée synthétique d'une mauvaise. Établir une liste de critères est donc essentiel, car les données doivent impérativement passer par une validation humaine. Ces critères dépendent des attentes du projet marketing, mais on peut également citer:

  • la qualité de la langue employée (ex : présence d'expressions couramment utilisées sur Internet),
  • la cohérence des propos (ex : les avis sont raisonnables et logiques),
  • l'absence de contenu dangereux ou choquant,
  • l'absence de biais ou de préjugés.

Compléter les productions synthétiques avec de vrais contenus

Au moment de l'analyse, notamment quantitative, des grands volumes de commentaires synthétiques générés, il est nécessaire de prendre en compte des données réelles, soit en complétant les commentaires synthétiques de commentaires produits par des humains, soit en comparant les phénomènes observés à partir de ces commentaires avec ceux induits à partir de commentaires réels.

Utiliser un modèle dont le corpus d'apprentissage se rapproche des productions attendues

On l'a vu, certains modèles ont été entraînés sur des textes plus ou moins proches des styles et des domaines de que ceux que l'on souhaite synthétiser. Afin d'obtenir des commentaires synthétiques le plus proche possible des commentaires qui seront produits par les utilisateurs, il est nécessaire d'utiliser un modèle dont le corpus d'apprentissage se rapproche des productions attendues. Le choix du LLM est donc primordial. Plusieurs techniques existent également pour adapter un LLM  existant  à un domaine ou pour produire des données de qualités à partir d'un petit jeu de données.

Le phénomène de sycophanterie

Plusieurs études ont démontré que les LLM tendent à être trop positifs, c'est le phénomène de sycophanterie. Pour pallier ce problème, il faut choisir un modèle adapté et lui montrer suffisamment d'exemples négatifs à l'aide du few-shot prompting.

Biais liés aux profils sociaux

Des biais liés aux profils sociaux ont également été observés : les modèles tendent à reproduire voire amplifier les préjugés. Il faut donc être vigilant en amont (lors de la création des personas) et en aval (lors du post-processing).

 

Par Menel Mahamdi
Ingénieure linguiste