C'est un projet sur lequel je travaille en ce moment, j'essaie de compiler une liste de questions et réponses pour les entretiens d'IA générative.
J'utilise cette référence comme base, merci à eux pour l'avoir compilée, cependant, je prends beaucoup de libertés dans l'édition des questions, ainsi que des réponses, elles sont entièrement les miennes.
Remarque : j'essaie de réduire au minimum les réponses que j'écris moi-même, car je ne suis en aucun cas une source faisant autorité sur ce sujet. Je fournirai des références au mieux de mes capacités. Je me suis abstenu d'ajouter toute sorte d'aide visuelle pour plus de lisibilité et pour minimiser la complexité de la maintenance. Les ressources et références que je cite contiennent une richesse d’informations, principalement accompagnées de visuels.
Je prévois d'étendre cela à l'IA générative en général, pas seulement au langage, couvrant tout, des modèles de diffusion jusqu'aux modèles de langage de vision. Une fois que j'aurai établi la structure de base et que je serai satisfait des résultats préliminaires, je travaillerai sur l'établissement d'une méthodologie efficace pour contribuer à ce référentiel, puis je l'ouvrirai aux contributions, mais pour l'instant, je veux le garder. simple et ciblé.
Important:
Je pense qu'il pourrait être nécessaire de préciser que les réponses que je fournis, qu'il s'agisse de mon propre article ou que je cite une source, ne sont en aucun cas définitives, ce que j'essaie de faire est de vous aider à démarrer. sur la bonne voie et vous donner une idée générale de ce à quoi vous attendre, vous devez absolument lire toutes les ressources que je propose, et plus encore. Si vous voulez que ce soit votre dernier arrêt, ce n'est pas le bon endroit pour vous. C'est là que ça commence.
De plus, si vous débutez, mon seul et unique conseil est le suivant :
Soyez à l'aise pour lire des articles, car ils ne finissent jamais .
Article sur la façon de lire un article : Comment lire un article
1. LLM et bases de l'invite
2. Génération augmentée de récupération (RAG)
3. Stratégies de regroupement
4. Intégration de modèles pour la récupération
5. Récupération de vecteurs, bases de données et index
6. Algorithmes de recherche avancés
7. Fonctionnement interne du modèle linguistique
Considérons un ensemble de données, où chaque point de données représente un chat. Passons cela à chaque type de modèle et voyons en quoi ils diffèrent :
Construisons la définition d'un Large Language Model (LLM) à partir de zéro :
Lectures complémentaires : Common Crawl
Les grands modèles linguistiques sont souvent formés en plusieurs étapes, ces étapes sont souvent appelées pré-formation, réglage fin et alignement.
Le but de cette étape est d'exposer le modèle à l'ensemble du langage , de manière non supervisée, c'est souvent la partie la plus coûteuse de la formation, et nécessite beaucoup de calcul. Le pré-entraînement est souvent effectué sur quelque chose comme l'ensemble de données Common Crawl, les versions traitées de l'ensemble de données telles que FineWeb et RedPajama sont souvent utilisées pour le pré-entraînement. Pour faciliter ce vaste type d'apprentissage, il existe plusieurs tâches de formation que nous pouvons utiliser, telles que la modélisation du langage masqué (MLM), la prédiction de la phrase suivante (NSP), etc.
La modélisation du langage de masque est basée sur le test de Cloze, dans lequel nous masquons un mot dans une phrase et demandons au modèle de le prédire. Semblable à un test à blanc. Cela diffère de demander au modèle de prédire le mot suivant dans une phrase, car cela nécessite que le modèle comprenne le contexte de la phrase, et pas seulement la séquence de mots.
La prédiction de la phrase suivante est une tâche dans laquelle le modèle reçoit deux phrases et doit prédire si la deuxième phrase suit la première. Aussi simple que cela puisse paraître, le modèle doit comprendre le contexte de la première phrase et la relation entre les deux phrases.
Le document BERT est une excellente ressource pour en savoir plus sur ces tâches.
Cette étape est beaucoup plus simple que la pré-formation, car le modèle a déjà beaucoup appris sur le langage, et il ne nous reste plus qu'à lui apprendre une tâche spécifique. Tout ce dont nous avons besoin pour cette étape, ce sont les données d'entrée (invites) et les étiquettes (réponses).
Cette étape est souvent la plus cruciale et la plus complexe, elle nécessite l'utilisation de modèles de récompense distincts, l'utilisation de différents paradigmes d'apprentissage tels que l'apprentissage par renforcement, etc.
Cette étape vise principalement à aligner les prédictions du modèle avec les préférences de l'humain. Cette étape s’entremêle souvent avec l’étape de mise au point. La lecture essentielle pour cette étape est l'article InstructGPT, cet article a introduit le concept d'apprentissage par renforcement à partir de la rétroaction humaine (RLHF) qui utilise l'optimisation des politiques proximales.
D'autres méthodes permettant d'aligner les prédictions du modèle sur les préférences humaines incluent :
Les jetons sont la plus petite unité de texte que le modèle peut comprendre. Il peut s'agir de mots, de sous-mots ou de caractères.
Les tokeniseurs sont responsables de la conversion du texte en jetons, ils peuvent être aussi simples que diviser le texte par des espaces, ou aussi complexes que l'utilisation de la tokenisation de sous-mots. Le choix du tokenizer peut avoir un impact significatif sur les performances du modèle, car il peut affecter la capacité du modèle à comprendre le contexte du texte.
Certains tokeniseurs courants incluent :
Lecture (et visionnage) recommandée :
C'est une question très complexe, mais voici quelques ressources pour approfondir ce sujet :
Les paramètres incluent :
Chacun de ces paramètres peut être ajusté pour améliorer les performances du modèle et la qualité du texte généré.
Lecture recommandée :
Les stratégies de décodage sont utilisées pour sélectionner le jeton suivant dans la séquence. Elles peuvent aller du simple décodage glouton à des stratégies d'échantillonnage plus complexes.
Certaines stratégies de décodage courantes incluent :
Les stratégies de décodage les plus récentes incluent le décodage spéculatif (décodage assisté), qui est un concept sauvage, il implique l'utilisation de jetons candidats d'un modèle plus petit (donc plus rapide) pour générer très rapidement une réponse à partir d'un modèle plus grand.
Lecture recommandée :
Dans le processus de décodage, les LLM génèrent de manière autorégressive du texte, un jeton à la fois. Il existe plusieurs critères d'arrêt qui peuvent être utilisés pour déterminer quand arrêter la génération de texte. Certains critères d'arrêt courants incluent :
A prompt contains any of the following elements:
Instruction - a specific task or instruction you want the model to perform
Context - external information or additional context that can steer the model to better responses
Input Data - the input or question that we are interested to find a response for
Output Indicator - the type or format of the output.
Référence : Guide d'ingénierie rapide
Lecture recommandée :
Référence : Guide d'ingénierie rapide
Lecture recommandée :
L'apprentissage en contexte est un paradigme d'apprentissage très intuitif et facile à comprendre dans le traitement du langage naturel. Il englobe des concepts tels que l’apprentissage en quelques étapes. Cela peut être aussi simple que de fournir quelques exemples de la tâche que vous souhaitez que le modèle effectue, et le modèle apprendra de ces exemples et générera des réponses en conséquence.
Lecture recommandée :
Il a été démontré que l'apprentissage en contexte ne peut émerger que lorsque les modèles sont adaptés à une certaine taille et lorsque les modèles sont formés sur un ensemble diversifié de tâches. L’apprentissage en contexte peut échouer lorsque le modèle n’est pas capable d’effectuer des tâches de raisonnement complexes.
Lecture recommandée :
Il s'agit d'une question très vaste, mais ce qui suit vous aidera à acquérir une compréhension de base sur la façon de concevoir des invites pour une tâche spécifique :
Alternativement, des directions de recherche plus récentes étudient l'utilisation d'une manière algorithmique pour optimiser les invites, cela a été largement exploré dans le package DSPy, qui fournit les moyens de le faire, leurs travaux sont également publiés dans cet article.
Il n'y a pas de réponse à cette question, je la mets comme excuse pour lier cette référence :
Il existe plusieurs méthodes pour que les LLM génèrent des sorties structurées analysables à chaque fois, les méthodes courantes dépendent du concept d'appel de fonction dans les LLM.
Lecture et visionnage recommandés :
The term describes when LLMs produce text that is incorrect, makes no sense, or is unrelated to reality
Référence : Hallucination LLM – Types, causes et solutions par Nexla
Lecture recommandée :
Le concept d’invite de chaîne de pensée est connu pour améliorer les capacités de raisonnement dans les LLM. Cette technique consiste à décomposer une tâche complexe en une série de tâches plus simples et à fournir au modèle les résultats intermédiaires de chaque tâche pour le guider vers le résultat final.
Lecture recommandée :
La génération augmentée de récupération (RAG) est un modèle de conception courant pour ancrer les réponses LLM dans des faits. Cette technique consiste à récupérer des informations pertinentes à partir d'une base de connaissances et à les utiliser pour guider la génération de texte par le LLM.
Lecture recommandée :
La génération augmentée de récupération (RAG) est composée de deux composants principaux :
L’intuition derrière RAG est qu’en combinant les atouts des modèles basés sur la récupération et sur la génération, nous pouvons créer un système capable de générer un texte fondé sur des faits, limitant ainsi les hallucinations.
RAG est souvent la technique de prédilection pour répondre à des questions complexes basées sur une base de connaissances, car elle permet au modèle d'exploiter des informations externes pour fournir des réponses plus précises et informatives. Il n'est pas toujours possible d'affiner un modèle sur des données propriétaires, et RAG offre un moyen d'incorporer des connaissances externes sans avoir besoin d'ajustements précis.
Une solution complète utilisant RAG pour répondre à une question complexe basée sur une base de connaissances impliquerait les étapes suivantes :
C'est une question très complexe, mais voici quelques ressources pour approfondir ce sujet :
La fragmentation de texte consiste à diviser un gros morceau de texte en morceaux plus petits et plus faciles à gérer. Dans le contexte des systèmes RAG, le chunking est important car il permet au composant récupérateur de récupérer efficacement les informations pertinentes de la base de connaissances. En décomposant la requête en morceaux plus petits, le récupérateur peut se concentrer sur la récupération des informations pertinentes pour chaque morceau, ce qui peut améliorer la précision et l'efficacité du processus de récupération.
Lors de la formation des modèles d'intégration, qui sont souvent utilisés comme récupérateurs, des paires de texte positives et négatives sont utilisées pour indiquer quels morceaux de texte correspondent les uns aux autres. Les exemples incluent les titres, les en-têtes et les sous-en-têtes d'une page Wikipédia, ainsi que leurs paragraphes correspondants. , les publications Reddit et leurs commentaires les plus votés, etc.
Une requête utilisateur est souvent intégrée et un index est interrogé. Si l'index contenait des documents entiers à interroger pour les k résultats, un récupérateur ne serait pas en mesure de renvoyer les informations les plus pertinentes, car les documents à interroger serait trop grand pour être compris.
Pour résumer, nous fragmentons le texte parce que :
Supposons que nous ayons un livre contenant 24 chapitres, soit un total de 240 pages. Cela signifierait que chaque chapitre contient 10 pages et chaque page contient 3 paragraphes. Supposons que chaque paragraphe contienne 5 phrases et que chaque phrase contienne 10 mots. Au total, nous avons : 10 * 5 * 3 * 10 = 1500 mots par chapitre. Nous avons également 1 500 * 24 = 36 000 mots dans l'ensemble du livre. Pour plus de simplicité, notre tokenizer est un tokenizer d'espaces blancs, et chaque mot est un token.
Nous savons qu'au maximum, nous disposons d'un modèle d'intégration capable d'embarquer 8192 jetons :
Tout cela vise à illustrer qu'il n'existe pas de moyen fixe de fragmenter du texte et que la meilleure façon de fragmenter du texte est d'expérimenter et de voir ce qui fonctionne le mieux pour votre cas d'utilisation.
Une source faisant autorité sur ce sujet est l'excellent cahier et la vidéo d'accompagnement de Greg Kamradt, dans lesquels ils expliquent les différents niveaux de fractionnement du texte.
Le cahier explique également les moyens d'évaluer et de visualiser les différents niveaux de fractionnement du texte, ainsi que la manière de les utiliser dans un système de récupération.
Visionnage recommandé :
Les intégrations vectorielles sont le mappage de la sémantique textuelle dans un espace à N dimensions où les vecteurs représentent le texte, dans l'espace vectoriel, un texte similaire est représenté par des vecteurs similaires.
Lecture recommandée :
Les modèles d'intégration sont des modèles de langage formés dans le but de vectoriser du texte, ils sont souvent des dérivés de BERT et sont formés sur un vaste corpus de texte pour apprendre la sémantique du texte. Les tendances récentes montrent cependant également qu'il est possible d'utiliser des modèles de langage beaucoup plus grands. à cet effet comme Mistral ou Llama.
Lecture et visionnage recommandés :
Les modèles d'intégration sont souvent utilisés comme récupérateurs, pour utiliser leurs capacités de récupération, la similarité textuelle sémantique est utilisée lorsque les vecteurs produits par les modèles sont mesurés en similarité à l'aide de métriques telles que le produit scalaire, la similarité cosinus, etc.
Lecture recommandée :
Les modèles d'intégration sont formés avec une perte contrastive, allant de la simple perte contrastive jusqu'à des fonctions de perte plus complexes telles que InfoNCE et Multiple Negative Ranking Loss. Un processus connu sous le nom d’exploitation minière dure et négative est également utilisé pendant la formation.
Lecture recommandée :
L'apprentissage contrastif est une technique utilisée pour entraîner des modèles d'intégration, elle implique d'apprendre à différencier les paires de texte positives et négatives. Le modèle est entraîné pour maximiser la similarité entre les paires positives et minimiser la similarité entre les paires négatives.
Lecture recommandée :
Les encodeurs croisés et les bi-encodeurs sont deux types de modèles utilisés pour les tâches de récupération de texte. La principale différence entre les deux réside dans la manière dont ils encodent la requête et le document.
Les rerankers sont généralement des encodeurs croisés, ils encodent la requête et le document ensemble et calculent la similarité entre les deux. Cela leur permet de capturer l’interaction entre la requête et le document et de produire de meilleurs résultats que les bi-encodeurs au prix d’une complexité informatique beaucoup plus élevée.
Les modèles d'intégration de texte sont généralement des bi-encodeurs, ils encodent la requête et le document séparément et calculent la similarité entre les deux intégrations. Cela leur permet d'être plus efficaces sur le plan informatique que les codeurs croisés, mais ils ne sont pas capables de capturer l'interaction explicite entre la requête et le document.
Les représentations denses à vecteur unique sont souvent la norme dans les modèles d'incorporation de texte, elles sont généralement produites en regroupant les intégrations contextualisées après une transmission directe du modèle, les techniques de regroupement incluent le regroupement moyen, le regroupement maximum et le regroupement de jetons CLS. L’intuition derrière les représentations denses à vecteur unique est qu’elles sont simples à mettre en œuvre et peuvent être utilisées pour un large éventail de tâches, ainsi qu’une facilité d’indexation et de récupération. Les représentations denses sont également capables de capturer la sémantique du texte et sont souvent utilisées dans le classement de deuxième étape.
Il a été démontré que les représentations denses multi-vecteurs produisent des résultats supérieurs aux représentations denses à vecteur unique. Elles sont produites en sautant l'étape de regroupement et en utilisant les intégrations contextualisées sous la forme d'une matrice. Les intégrations de requêtes et de documents sont ensuite utilisées pour calculer la similarité entre les représentations denses multi-vecteurs. Deuxièmement, il a été démontré que des modèles tels que ColBERT produisent des résultats supérieurs aux représentations denses à vecteur unique. Un opérateur tel que MaxSim est utilisé pour calculer la similarité entre les intégrations de requête et de document. L'intuition derrière les représentations denses multi-vecteurs est qu'elles sont capables de capturer plus d'informations sur le texte et de produire de meilleurs résultats que les représentations denses à vecteur unique. Des modèles tels que ColBERT offrent également la possibilité de précalculer les intégrations de documents, permettant une récupération très efficace. Les représentations denses sont également capables de capturer la sémantique du texte et sont souvent utilisées dans le classement de deuxième étape.
Lecture recommandée :
Les représentations de texte clairsemées sont la forme la plus ancienne de modèles spatiaux vectoriels dans la recherche d'informations, elles sont généralement basées sur des dérivés et des algorithmes TF-IDF tels que BM25, et restent une référence pour les systèmes de récupération de texte. Leur rareté vient du fait que la dimension des plongements correspond souvent à la taille du vocabulaire. L’intuition derrière les représentations clairsemées est qu’elles sont explicables, efficaces sur le plan informatique, faciles à mettre en œuvre et extrêmement efficaces pour l’indexation et la récupération. Les représentations clairsemées se concentrent également sur la similarité lexicale et sont souvent utilisées dans le classement de première étape.
Lecture recommandée :
Les intégrations de texte clairsemées permettent l'utilisation d'index inversés lors de la récupération.
Lecture recommandée :
Les mesures permettant d'évaluer les performances d'un modèle d'intégration incluent :
Lecture et visionnage recommandés :
Le choix d'un modèle d'intégration peut être un facteur crucial dans les performances de votre système de récupération, et une attention particulière doit être prise lors du choix d'un modèle. Il s'agit d'un vaste processus qui implique l'expérimentation, et les ressources suivantes vous aideront à prendre une décision éclairée :
Visionnage recommandé :
Une base de données vectorielles est une base de données optimisée pour le stockage et l'interrogation de données vectorielles. Il permet un stockage et une récupération efficaces des intégrations vectorielles et est souvent utilisé dans des applications nécessitant une recherche de similarité sémantique. Les bases de données vectorielles constituent un nouveau paradigme qui a émergé dans le cadre de la pile technologique nécessaire pour répondre aux demandes des applications GenAI.
Visionnage recommandé :
Les bases de données traditionnelles sont optimisées pour stocker et interroger des données structurées, telles que du texte, des chiffres et des dates. Ils ne sont pas conçus pour gérer efficacement les données vectorielles. Les bases de données vectorielles, quant à elles, sont spécifiquement conçues pour stocker et interroger des données vectorielles. Ils utilisent des techniques et des algorithmes d'indexation spécialisés pour permettre une recherche de similarité rapide et précise, telle que la quantification et le regroupement de vecteurs.
Une base de données vectorielles contient généralement des index de vecteurs, ces index contiennent des matrices d'incorporations de vecteurs, souvent une structure de données graphique est également utilisée, ordonnée de manière à pouvoir être interrogée efficacement. Lorsqu'une requête est effectuée, du texte ou une incorporation de vecteurs est fourni en entrée. Dans le cas du texte, il est intégré et la base de données de vecteurs interrogera l'index approprié pour récupérer les vecteurs les plus similaires en fonction des métriques de distance. Habituellement, les vecteurs sont comparés à l’aide de mesures telles que la similarité cosinusoïdale, le produit scalaire ou la distance euclidienne. Les vecteurs concernent également un dictionnaire de métadonnées pouvant contenir des informations telles que l'ID du document, le titre du document, le texte correspondant, etc.
Les stratégies de recherche dans les bases de données vectorielles incluent :
Lecture recommandée :
Une fois les vecteurs indexés, ils sont souvent regroupés pour réduire l'espace de recherche, ceci afin de réduire le nombre de vecteurs qui doivent être comparés pendant le processus de recherche. Le clustering se fait en regroupant des vecteurs similaires, puis en indexant les clusters. Lorsqu'une requête est effectuée, la recherche est d'abord effectuée au niveau du cluster, puis au niveau du vecteur au sein du cluster. Des algorithmes tels que K-means sont souvent utilisés pour le clustering.
Lecture recommandée :
Il s’agit évidemment d’une question très chargée, mais voici quelques ressources pour approfondir ce sujet :
Vector quantization, also called "block quantization" or "pattern matching quantization" is often used in lossy data compression. It works by encoding values from a multidimensional vector space into a finite set of values from a discrete subspace of lower dimension.
Référence: quantification vectorielle
One general approach to LSH is to “hash” items several times, in such a way that similar items are more likely to be hashed to the same bucket than dissimilar items are.
Référence: Exploitation des ensembles de données massifs, 3e édition, chapitre 3, section 3.4.1
Lecture recommandée:
In short, PQ is the process of:
- Taking a big, high-dimensional vector,
- Splitting it into equally sized chunks — our subvectors,
- Assigning each of these subvectors to its nearest centroid (also called reproduction/reconstruction values),
- Replacing these centroid values with unique IDs — each ID represents a centroid
Référence: quantification du produit
Lecture recommandée:
The Inverted File Index (IVF) index consists of search scope reduction through clustering.
Référence: Index de fichiers inversé
Lecture recommandée:
Hiérarchical Navigable Small Worlds (HNSW) est souvent considéré comme l'état de l'art dans la récupération des vecteurs, c'est un algorithme basé sur un graphique qui construit un graphique des vecteurs et l'utilise pour effectuer une recherche approximative la plus proche du voisin.
Lecture recommandée:
Les mesures de distance et de similitude utilisées dans la récupération vectorielle comprennent:
Affichage recommandé:
Il s'agit d'un sujet de recherche très actif, et aucune source faisant autorité n'existe, mais voici quelques ressources pour explorer ce sujet:
Il convient également de noter que les systèmes de recherche, de récupération et de remaniement sont construits sur des modèles et des architectures établis dans les domaines de la récupération de l'information, des systèmes de recommandation et des moteurs de recherche.
Certaines architectures système que vous voudrez peut-être explorer comprennent:
La réalisation de bonnes recherches dans les systèmes à grande échelle implique une combinaison de techniques efficaces d'indexation, de récupération et de classement. Certaines stratégies pour réaliser une bonne recherche dans les systèmes à grande échelle comprennent:
Vous remarquerez peut-être que l'ensemble du processus se fait en phases de complexité croissante, ceci est connu sous le nom de classement progressif ou de récupération à plusieurs étapes.
Lecture recommandée:
Mais l'aspect le plus important de la réalisation de bonnes recherches dans les systèmes à grande échelle est d'expérimenter et d'itérer sur vos stratégies de récupération et de classement, et de surveiller et d'évaluer en continu les performances de votre système.
Lecture recommandée:
Les discussions recommandées sur l'amélioration des systèmes de recherche, de récupération et de chiffon:
La recherche rapide consiste à optimiser le processus d'indexation et de récupération, ce qui prend des efforts d'ingénierie non triviaux, ce qui suit est quelques exemples du paysage actuel dans le domaine de la recherche et de l'optimisation de récupération:
L'état actuel de l'art dans la récupération vectorielle indique des incorporations multi-vecteurs (interaction tardive) fonctionnant mieux que les intérêts vectoriels uniques, cependant, l'optimisation de leur récupération pose un défi d'ingénierie important, ce qui suit aborde les intégres multi-vecteurs et leur récupération en profondeur:
BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document, regardless of their proximity within the document.
Référence: BM25
Les modèles de rediffusion sont des modèles de classification de séquence formés pour prendre une paire de requêtes et de documents et de sortir des scores de simililées brutes.
Lecture, visualisation et observation recommandées:
L'évaluation des systèmes de chiffon nécessite l'expérimentation et l'évaluation des composants individuels du système, tels que le retriever, le générateur et le remananker.
Lecture recommandée:
Remarque: À partir de maintenant, je m'abstiendrai de répondre autant que possible, et lier simplement les articles et les références, cette partie est sans doute l'une des parties les plus complexes, donc elle nécessite beaucoup de lecture et de compréhension.
Pour comprendre l'attention, vous devrez vous familiariser avec l'architecture du transformateur et leurs architectures prédécesseurs. Voici quelques ressources pour vous aider à démarrer:
Le principal goulot d'étranglement de l'auto-attention est sa complexité quadratique par rapport à la longueur de séquence. Pour comprendre les inconvénients de l'attention de soi, vous aurez besoin de vous familiariser avec les alternatives d'attention, ce qui suit vous aidera à démarrer:
Il existe plusieurs façons de coder des informations de position dans les LLM, la manière la plus courante est d'utiliser des codages positionnels sinusoïdaux, appelés codages positionnels absolus. D'autres méthodes incluent des encodages positionnels relatifs et des méthodes plus récentes telles que les incorporations de positionnelles rotatives. Voici quelques ressources pour vous aider à démarrer:
Pour comprendre KV Cache, vous devrez vous familiariser avec l'architecture du transformateur et ses limites.
Lecture recommandée:
Le mélange d'experts est un type d'architecture dans les LLM, pour comprendre comment cela fonctionne, vous devez passer par les ressources suivantes, qui couvrent les modèles MOE les plus importants: