De la recherche vectorielle aux puissantes API REST, Elasticsearch offre aux développeurs la boîte à outils de recherche la plus complète. Explorez nos notebooks d’exemples sur GitHub pour tester de nouveaux cas d’usage. Vous pouvez également démarrer votre essai gratuit ou exécuter Elasticsearch en local dès aujourd’hui.
Le plagiat peut être direct, c'est-à-dire qu'il consiste à copier des parties ou la totalité du contenu, ou paraphrasé, c'est-à-dire qu'il consiste à reformuler le travail de l'auteur en changeant certains mots ou certaines phrases.

Il existe une distinction entre l'inspiration et la paraphrase. Il est possible de lire un contenu, de s'en inspirer, puis d'explorer l'idée avec ses propres mots, même si l'on arrive à une conclusion similaire.
Si le plagiat est un sujet de discussion depuis longtemps, l'accélération de la production et de la publication de contenus lui a donné toute sa pertinence et constitue un défi permanent.

Ce défi ne se limite pas aux livres, à la recherche universitaire ou aux documents judiciaires, pour lesquels des contrôles de plagiat sont fréquemment effectués. Elle peut également s'étendre aux journaux et même aux médias sociaux.
Avec l'abondance d'informations et l'accès facile à la publication, comment le plagiat peut-il être contrôlé de manière efficace et à grande échelle ?
Les universités, les organismes publics et les entreprises utilisent divers outils, mais si une simple recherche lexicale permet de détecter efficacement le plagiat direct, la principale difficulté réside dans l'identification du contenu paraphrasé.
Détection du plagiat avec l'IA générative
L'IA générative pose un nouveau défi. Le contenu généré par l'IA est-il considéré comme du plagiat lorsqu'il est copié ?

Les conditions d'utilisation de l'OpenAI, par exemple, précisent que l'OpenAI ne revendiquera pas de droits d'auteur sur le contenu généré par l'API pour les utilisateurs. Dans ce cas, les personnes utilisant leur IA générative peuvent utiliser le contenu généré comme elles le souhaitent, sans le citer.

Toutefois, l'acceptation de l'utilisation de l'IA générative pour améliorer l'efficacité reste un sujet de discussion.
Afin de contribuer à la détection du plagiat, OpenAI a développé un modèle de détection, mais a reconnu par la suite que sa précision n'était pas suffisamment élevée.
"Nous pensons que cette précision n'est pas suffisante pour une détection autonome et qu'elle doit être associée à des approches basées sur les métadonnées, au jugement humain et à l'éducation du public pour être plus efficace."
Le défi persiste ; cependant, grâce à la disponibilité d'outils supplémentaires, il existe désormais davantage d'options pour détecter le plagiat, même dans les cas de paraphrases et de contenu d'IA.
Détecter le plagiat avec Elasticsearch
C'est pourquoi, dans ce blog, nous explorons un autre cas d'utilisation des modèles de traitement du langage naturel (NLP) et de la recherche vectorielle, la détection du plagiat, au-delà de la recherche de métadonnées.
Nous le démontrons à l'aide d'exemples en Python, où nous utilisons un ensemble de données de SentenceTransformers contenant des articles liés au TAL. Nous vérifions que les résumés ne sont pas plagiés en effectuant une "similarité textuelle sémantique" en tenant compte de l'intégration des "résumés" générée à l'aide d'un modèle d'intégration de texte importé au préalable dans Elasticsearch. En outre, pour identifier le contenu généré par l'IA - le plagiat par l'IA, un modèle NLP développé par OpenAI a également été importé dans Elasticsearch.
L'image suivante illustre le flux de données :

Au cours du processus d 'ingestion avec un processeur d'inférence, le paragraphe "abstrait" est mis en correspondance avec un vecteur à 768 dimensions, le "vecteur_abstrait.valeur_prédite".
Cartographie :
La similarité entre les représentations vectorielles est mesurée à l'aide d'une métrique de similarité vectorielle, définie à l'aide du paramètre"similarité".
Cosinus est la métrique de similarité par défaut, calculée comme '(1 + cosinus(query, vector)) / 2'. À moins que vous ne deviez préserver les vecteurs originaux et que vous ne puissiez pas les normaliser à l'avance, la façon la plus efficace d'effectuer une similarité en cosinus est de normaliser tous les vecteurs à une longueur unitaire. Cela permet d'éviter d'effectuer des calculs supplémentaires sur la longueur du vecteur pendant la recherche, et d'utiliser plutôt 'dot_product'.
Dans ce même pipeline, un autre processeur d'inférence contenant le modèle de classification de texte détecte si le contenu est "vrai", probablement écrit par des humains, ou "faux", probablement écrit par une IA, en ajoutant la valeur "openai-detector.predicted_value" à chaque document.
Pipeline d'ingestion :
Au moment de la requête, le même modèle d'intégration de texte est également utilisé pour générer la représentation vectorielle de la requête "texte_modèle" dans un objet "query_vector_builder".
Une recherche par k-voisins les plus proches (kNN) permet de trouver les k vecteurs les plus proches du vecteur de la requête, mesurés par la métrique de similarité.
Le _score de chaque document est dérivé de la similarité, ce qui garantit qu'un score plus élevé correspond à un meilleur classement. Cela signifie que le document est plus similaire d'un point de vue sémantique. Par conséquent, nous imprimons trois possibilités : si le score > est de 0,9, nous considérons qu'il s'agit d'une "forte similarité" ; si < est de 0,7, il s'agit d'une "faible similarité" ; sinon, il s'agit d'une "similarité modérée". Vous avez la possibilité de définir différentes valeurs seuils pour déterminer quel niveau de _score est considéré comme du plagiat ou non, en fonction de votre cas d'utilisation.
En outre, une classification du texte est effectuée afin de vérifier si la requête contient des éléments générés par l'IA.
Requête :
Sortie :
Dans cet exemple, après avoir utilisé l'une des valeurs "abstract" de notre ensemble de données comme requête textuelle "model_text", le plagiat a été identifié. Le score de similarité est de 1,0, ce qui indique un niveau élevé de similarité - un plagiat direct. La requête et le document vectorisés n'ont pas été reconnus comme des contenus générés par l'IA, ce qui était attendu.
Requête :
Sortie :
En mettant à jour la requête "texte_modèle" avec un texte généré par l'IA qui transmet le même message tout en minimisant la répétition de mots similaires, la similarité détectée était toujours élevée, mais le score était de 0,9302529 au lieu de 1,0 - plagiat de paraphrase. On s'attendait également à ce que cette requête, générée par l'IA, soit détectée.
Enfin, si l'on considère la requête textuelle "model_text" comme un texte sur Elasticsearch, qui n'est pas un résumé de l'un de ces documents, la similarité détectée était de 0,68991005, ce qui indique une faible similarité selon les valeurs seuils considérées.
Requête :
Sortie :
Bien que le plagiat ait été correctement identifié dans la requête de texte générée par l'IA, ainsi que dans les cas de paraphrase et de contenu directement copié, la navigation dans le paysage de la détection du plagiat implique la reconnaissance de divers aspects.
Dans le contexte de la détection de contenu généré par l'IA, nous avons exploré un modèle qui apporte une contribution précieuse. Toutefois, il est essentiel de reconnaître les limites inhérentes à la détection autonome, ce qui nécessite l'incorporation d'autres méthodes pour améliorer la précision.
La variabilité introduite par le choix des modèles d'intégration de texte est un autre élément à prendre en considération. Différents modèles, formés avec des ensembles de données distincts, aboutissent à des niveaux de similarité variables, ce qui souligne l'importance des enchâssements de texte générés.
Enfin, dans ces exemples, nous avons utilisé le résumé du document. Cependant, la détection du plagiat porte souvent sur des documents volumineux, ce qui rend essentielle la prise en compte de la longueur du texte. Il est fréquent que le texte dépasse la limite de jetons d'un modèle, ce qui nécessite une segmentation en morceaux avant de construire des embeddings. Une approche pratique consiste à utiliser des structures imbriquées avec dense_vector.
Conclusion
Dans ce blog, nous avons abordé les défis liés à la détection du plagiat, en particulier dans les contenus paraphrasés et générés par l'IA, et comment la similarité textuelle sémantique et la classification des textes peuvent être utilisées à cette fin.
En combinant ces méthodes, nous avons fourni un exemple de détection du plagiat dans lequel nous avons réussi à identifier le contenu généré par l'IA, le plagiat direct et le plagiat paraphrastique.
L'objectif premier était d'établir un système de filtrage qui simplifie la détection, mais l'évaluation humaine reste essentielle pour la validation.
Si vous souhaitez en savoir plus sur la similarité textuelle sémantique et le NLP, nous vous encourageons à consulter les liens suivants :




