


Future of LLM: 3 Inventions Façonner les modèles AI de nouvelle génération
Le mécanisme d'attention a jeté les bases des architectures des transformateurs dans le domaine du traitement du langage naturel (PNL). Depuis son introduction, nous avons assisté à une évolution rapide dans la PNL. En fait, cette percée a marqué le début d'une nouvelle ère pour l'IA et la PNL génératrices dans son ensemble. Aujourd'hui, les entreprises du monde entier publient des LLM de plus en plus avancées. Et chacune de ces prétendons pour définir une nouvelle référence en performance, façonnant finalement l'avenir des LLM et de l'IA en général.
Pour vraiment comprendre où cet avenir de LLMS est dirigé, il est important de comprendre certaines des dernières innovations influençant leur développement. Dans cet article, nous explorerons trois avancées clés qui ouvrent le chemin de la prochaine génération de LLMS. Ce sont:
- Fonction d'activation de swish
- Corde (position rotative)
- Attention à l'infini
Plongeons-nous dans chacun de ces sujets et explorons comment ils contribuent au paysage évolutif de modèles de grands langues.
Table des matières
- Fonctions d'activation de swish
- Recherche d'architecture neurale
- Implémentation de code de la fonction Swish
- Où SILU est-il principalement utilisé?
- Corde intégrée
- Incorporation de position absolue
- Incorporation de position relative
- Corde
- Matrice de corde
- Composants de corde
- Attention à l'infini
- Mémoire compressive
- Flux de travail complet
- Mécanisme de déclenchement
- Mise à jour de la mémoire
- Conclusion
Fonctions d'activation de swish
En tant que scientifiques des données, nous avons rencontré diverses fonctions d'activation. Celles-ci vont des fonctions de base comme les fonctions linéaires et étapes aux fonctions plus avancées introduites avec la montée des réseaux de neurones, tels que TANH et le RELU largement utilisé. Alors que RELU a apporté des améliorations significatives, ses limites ont conduit au développement d'alternatives améliorées comme le relue relue, ELU et autres.
Fait intéressant, la plupart de ces fonctions d'activation ont été conçues par les humains. Cependant, la fonction d'activation de swish se démarque, comme elle a été découverte par une machine. Fascinant, non? Ce qui est plus fascinant, c'est que l'activation Swish joue un rôle clé dans la formation de l'avenir des LLM. Si vous connaissez la vision par ordinateur, vous avez peut-être rencontré le modèle Yolo-nas. Voici ce que cela signifie.
Recherche d'architecture neurale
Le NAS à Yolo-Nas signifie Recherche d'architecture neuronale. Il s'agit d'une technique développée par Google pour automatiser la conception d'architectures de réseau neuronal. NAS vise à identifier la configuration du modèle la mieux performante pour une tâche donnée. Cela comprend des décisions telles que le nombre de couches et de neurones.
Dans NAS, nous définissons à la fois l'espace de recherche (architectures possibles) et la stratégie de recherche (comment nous explorons cet espace). Il se concentre souvent sur des mesures comme la précision ou la taille du modèle. Les contraintes sont définies en conséquence et de nombreuses expériences sont exécutées pour découvrir l'architecture optimale.
Notamment, EfficientNet est l'une des architectures réussies créées à l'aide de NAS, qui exploite l'apprentissage du renforcement pour guider son processus de recherche.
Cette recherche automatisée de réseaux de neurones efficaces a également été exploitée pour découvrir de nouvelles fonctions d'activation. En conséquence, plusieurs candidats à des fonctions d'activation prometteurs ont été identifiés. Certains d'entre eux incluent:
Ces fonctions d'activation ont été évaluées sur des ensembles de données de référence tels que CIFAR-10 et CIFAR-100. Leurs performances ont été comparées à des modèles standard comme Resnet, Wide Resnet et DenseNet. Il s'est particulièrement concentré sur les mesures de précision par rapport à RELU.
Les fonctions d'activation comme le relu, le relue relue, elu et tanh sont toutes monotones; Ils augmentent en permanence ou diminuent en permanence du négatif au côté positif de l'axe x. Tandis que l'activation de swish est non monotonique. L'activation de swish diminue légèrement initialement avant d'augmenter, créant une courbe qui comprend à la fois des pentes vers le bas et vers le haut.
Cette non-monotonie améliore la puissance expressive du réseau et améliore le flux de gradient pendant les passes vers l'avant et vers l'arrière. En conséquence, les modèles utilisant l'activation de swish montrent une robustesse aux variations des taux d'initialisation et d'apprentissage du poids, conduisant à une meilleure stabilité et performance globale de l'entraînement.
La fonction d'activation de swish ressemble à ce f (x) = x * sigmoïde (βx)
Où β ici est un paramètre constant ou entraînant.
Si β
Si β> 1, il agit davantage comme une fonction relu
Implémentation de code de la fonction Swish
Importer Numpy comme NP
def swish (x):
retour x * (1 / (1 np.exp (-x)))
Où Sili est-il principalement utilisé?
SILU est utilisé dans le bloc d'alimentation de chaque couche de transformateur, en particulier après la première transformation linéaire, avant de se projeter dans la dimension du modèle.
Cela s'améliore:
- Stabilité de formation
- Flux de gradient
- Performance du modèle final (en particulier dans les paramètres à grande échelle)
La fonction d'activation de Swish offre de nombreuses fonctionnalités souhaitables, façonnant finalement l'avenir des LLM. Ce sont:
- L'étalage aide à se débarrasser du problème du dégradé de fuite ici.
- La monotonie est très efficace car elle contient à la fois une pente diminuée et croissante.
- Il fournit une courbe lisse, donc un dégradé existe à chaque point.
Voyons comment SILU est implémenté dans un bloc de transformateur. Cet extrait de code donne un aperçu de la façon dont SILU est utilisé dans la propagation directe.
Class TransformorBlock (nn.module): def __init __ (self, d_model, d_ff): super () .__ init __ () self.attn = multi-aléds (...) self.ffn = nn.Sellential ( nn.linear (d_model, d_ff), nn.silu (), # sili a appliqué ici nn.Linear (d_ff, d_model) ) self.norm1 = nn.layernorm (d_model) self.norm2 = nn.layernorm (d_model) Def en avant (self, x): x = x self.attn (self.norm1 (x)) # attention résiduelle x = x self.ffn (self.norm2 (x)) # FeedForward résiduel retour x
Le réseau d'alimentation (FFN) est responsable de l'apprentissage des transformations non linéaires complexes des incorporations de jetons. La fonction d'activation dans ce FFN (historiquement Relu, puis Gelu, et maintenant SILU) joue un rôle crucial dans l'ajout de transitions de non-linéarité et de douceur, améliorant la capacité d'apprentissage.
Dans le lama de Meta (open-source), vous trouverez souvent ce modèle:
self.act_fn = nn.silu () self.ffn = nn.Sellential ( nn.linear (dim, Hidden_dim), self.act_fn, nn.linear (Hidden_dim, dim) )
Par exemple, les modèles LLAMA et LLAMA2 de la recherche Facebook de Meta utilisent Swish Activation / Swiglu pour leur fonction d'activation. Les détails exacts de l'architecture de GPT-4 sont confidentiels. Bien qu'il soit censé utiliser la fonction d'activation sigmoïde (c'est-à-dire SILU) dans sa fonction de perte. De plus, la fonction d'activation SILU est également utilisée dans les modèles Ultralytics Yolo (par exemple Yolov7) pour les tâches de détection d'objets.
Maintenant, nous avons compris ce qu'est la fonction d'activation de swish et où elle est effectivement utilisée dans les transformateurs, nous donnant des informations importantes sur l'avenir des LLM. Récemment, nous avons vu que le modèle Openai GPT-OSS utilise une variante de la fonction d'activation Swish par le nom Swiglu. Swiglu utilise la fonction d'activation de swish, qui est définie comme swish (x) = x⋅σ (x) où σ (x) est la fonction sigmoïde, aux côtés d'un mécanisme de déclenchement similaire à celui de Glu.
Corde intégrée
L'attention est tout ce dont vous avez besoin de papier, publié en 2017, a introduit l'architecture du transformateur, qui a révolutionné le domaine du traitement du langage naturel. Depuis lors, de nombreuses nouvelles architectures ont été proposées, bien que toutes ne se soient pas révélées tout aussi efficaces. Une caractéristique commune parmi ces premiers transformateurs est leur dépendance à l'égard des anciens de positionnels sinusoïdales pour coder la position des jetons dans une séquence.
En 2022, une approche plus efficace du codage positionnel a été introduite: les incorporations de positionnelles rotatives (corde). Cette technique a depuis été adoptée par plusieurs modèles de grandes langues, notamment Palm, Llama 1, Llama 2 et autres. Cela est dû à sa capacité à mieux gérer les longueurs de contexte plus longues et à préserver les informations de position relative.
Vous pouvez lire notre article approfondi sur l'évolution des intérêts ici.
Incorporation de position absolue
Les moyens précédents de générer des incorporations positionnelles dépendaient principalement des incorporations positionnelles absolues. Dans les incorporations de position absolues, nous représentons un mot avec ses informations de position. Fondamentalement, nous représentons chaque mot avec sa position spécifique dans la séquence. Et ici, les jetons finaux sont fabriqués en additionnant le mot incorporation avec l'incorporation de position.
Il y avait principalement 2 façons de générer des incorporations positionnelles:
- Appris des données: les vecteurs d'intégration sont initialisés au hasard puis formés pendant le processus de formation. Cette méthode est utilisée dans les transformateurs d'origine et dans des modèles populaires comme Bert, GPT et Roberta.
Mais disons qu'il existe un vecteur positionnel allant de 1 à 512. Cela posait un énorme problème car la longueur maximale a été bornée, ce qui rend difficile d'utiliser cette logique pour de longs contextes car il n'a pas pu bien le généraliser. - Fonction sinusoïdale: il a fourni une incorporation de position unique pour chaque position possible dans la séquence. Cela offre une grande flexibilité dans la manipulation de différentes tailles d'entrée.
Il est également difficile de comprendre le motif de la façon dont il se déplace, car l'ampleur et l'angle changent considérablement.
D'après différentes expériences, les incorporations positionnelles apprises et sinusoïdales fonctionnent de manière similaire. Mais un problème est que chaque position est traitée séparément. Par exemple, le modèle voit la différence entre la position 1 et 2 comme entre la position 2 et 500, même si les positions voisines sont généralement plus liées au sens.
Une autre chose à noter est que chaque jeton ici obtient une intégration de position unique. Donc, si un mot est déplacé vers une position différente dans la phrase, même si sa signification ne change pas beaucoup, elle obtient toujours une valeur de position complètement nouvelle. Cela peut rendre plus difficile pour le modèle de comprendre et de généraliser.
Incorporation de position relative
Dans les incorporations positionnelles relatives, nous ne représentons pas la position absolue de chaque jeton. Au lieu de cela, nous apprenons à quelle distance chaque paire de jetons est dans une phrase. Étant donné que la position dépend de la paire, nous ne pouvons pas simplement ajouter l'incorporation de position dans l'incorporation de jeton comme nous le faisons dans les intérêts absolus. Au lieu de cela, nous devons modifier le mécanisme d'attention lui-même pour inclure ces informations de position relative.
Dans cette image, nous pouvons voir la matrice de biais, qui désigne la relation entre les mots avec une certaine distance. Ensuite, nous additionnons la matrice B créée avec la matrice de score d'attention ici.
Les incorporations positionnelles relatives garantissent que les jetons qui sont, disons, à 3 mots séparés sont toujours traités de la même manière, peu importe où ils apparaissent dans la phrase. Cela les rend utiles pour gérer de longues séquences. Cependant, ils sont plus lents car ils ont besoin d'une étape supplémentaire pour ajouter une matrice de biais aux scores d'attention.
De plus, comme les intérêts dépendent de la position entre chaque paire de jetons, nous ne pouvons pas facilement réutiliser les paires de valeurs clés précédentes, ce qui rend difficile d'utiliser efficacement la mise en cache de valeur clé. C'est pourquoi la plupart des gens ne l'utilisent pas largement dans la pratique.
Comme nous le voyons ici, les incorporations de position relatives nous aident à comprendre l'ordre de séquence sans nous soucier des positions exactes et avoir un rôle clé à jouer dans l'avenir des LLM.
Corde
Les incorporations de position rotatives combinent les meilleures parties des incorporations positionnelles absolues et relatives. Ici en corde, au lieu d'ajouter un vecteur positionnel pour coder la position d'un mot dans une séquence, ils proposent d'appliquer une rotation au vecteur.
Le montant que nous tournons n'est qu'un multiple entier de la position du mot dans la phrase, afin de représenter la position m dans la phrase. Nous tournons le vecteur de mot d'origine par l'angle de m fois θ (thêta). Cela présente plusieurs avantages d'incorporation de position absolue, comme si nous ajoutons plus de jetons à la fin d'une phrase restent les mêmes, ce qui les rend plus faciles à attraper.
La quantité de rotation ne dépend que de la position du jeton dans la phrase, donc un nombre de jetons après un certain mot n'affecte pas l'incorporation comme dans les incorporations de position absolues.
Pour EG:
Le chat a chassé le chien
Il y a quelques jours, le chat a chassé le chien loin d'ici.
Matrice de corde
La corde tourne les vecteurs de «chien» et «le chien» de la même quantité, en préservant l'angle entre eux afin qu'il reste le même partout. Cela signifie que le produit DOT entre 2 vecteurs resterait le même même lorsque nous ajoutons des mots au début ou à la fin de ces vecteurs, en supposant que la distance entre les vecteurs reste la même.
L'idée principale de Rope est de faire pivoter la requête et les vecteurs clés en fonction de leurs positions dans la séquence.
- La matrice de rotation, qui aide à faire pivoter le vecteur par un angle de «mx θ».
- Nous appliquons d'abord des transformations linéaires pour obtenir la requête et le vecteur clé, puis appliquons une matrice de rotation pour préserver la propriété d'invariance de rotation.
L'invariance de rotation fait référence à la propriété d'un système ou d'une fonction qui reste inchangée sous les rotations.
Remarque: nous appliquons uniquement la rotation aux requêtes et aux vecteurs clés, pas aux vecteurs de valeur - C'est le vecteur que nous tournons.
Mais en réalité, la matrice n'est certainement pas en 2D et peut s'étendre jusqu'à N dimensions comme ceci:
Ici, le vecteur est divisé en morceaux de 2 et tourné par une certaine fois m θ.
Mais ce type de logique est vraiment mauvais en raison de la mémoire et de la complexité de calcul inutiles. Ainsi, au lieu de cela, nous implémenterons en utilisant des opérations par élément comme celle-ci:
Normalement, il est supposé que la dimension du vecteur est uniforme, ce qui est normalement le cas, d'où l'hypothèse de faire des morceaux de 2 ici.
Ces intérêts ont été utilisés pour s'entraîner sur plusieurs modèles de langue comme Bert, Roformer, etc., qui ont montré que ces modèles se sont entraînés plus rapidement avec des incorporations de cordes sur des incorporations sinusoïdales.
Composants de corde
La corde a 2 types de composants - les composantes à haute fréquence et à basse fréquence. Les composants à haute fréquence sont très sensibles aux changements de position. Les composants à basse fréquence, en revanche, sont moins sensibles aux positions relatives, ce qui permet aux transformateurs de maintenir l'attention sémantique sur des distances plus longues.
Par conséquent, la base N est passée de 10000 à 500000, ce qui ralentit encore les composants à basse fréquence, permettant aux transformateurs de s'occuper de jetons relatifs avec une grande distance relative pour capturer des dépendances à longue portée.
Mais nous devons comprendre comment nous pouvons nous assurer que la corde peut être utilisée pour des séquences de longueur de contexte plus longues. La formation d'un modèle directement sur le contexte de connexion est très difficile en raison de la vitesse de formation, de l'empreinte de la mémoire et du manque de données à grande échelle. Ces types de ressources sont très limités car seules les meilleures entreprises ont cette capacité. Nous discuterons également des durées de contexte plus longues dans la section suivante, appelée l'attention Infini, et leur impact sur l'avenir des LLM.
En bref: une méthode efficace consiste à réévaluer la position dans la durée du contexte de formation; C'est ce qu'on appelle l'interpolation de position. Cela fait normalement évoluer encore plus la position, ralentissant les composants à basse fréquence, permettant ainsi que les informations de séquence de longueur de contexte plus longues soient stockées.
Attention à l'infini
Les modèles de transformateur ont généralement des fenêtres de contexte de taille limitée. L'attention Infini intègre la mémoire de la compression dans un mécanisme d'attention de vanille et se construit à la fois dans les attentions locales masquées et les longs mécanismes d'attention linéaire dans un seul bloc de transformateur. Le mécanisme d'attention s'accompagne également de plus d'inconvénients, comme:
- Il a une complexité quadratique dans la mémoire et le temps de calcul.
- Les limites de mise à l'échelle du transformateur en séquences plus longues (en gros, l'apprentissage d'une bonne représentation à partir de séquences plus longues devient coûteux).
Il y a eu plusieurs expériences avant la libération du «sans laisser de contexte: efficace infinie avec l'attention infini». Certaines techniques étaient comme faire la ligne de calcul par ligne, par laquelle nous échangeons le calcul contre la mémoire, mais nous avons toujours une complexité quadratique dans le calcul, peu importe comment nous la distribuons. Il y a également eu des tentatives de calculs d'attention linéaire, qui étaient également appelés attention linéaire ou poids rapides. Plusieurs approches ont été réalisées pour surmonter ce goulot d'étranglement de la complexité quadratique, mais l'attention d'Infini est venue de l'avant.
Mémoire compressive
L'attention Infini a une unité de mémoire de compression en plus du mécanisme d'attention de la vanille.
Les systèmes de mémoire de compression dans l'attention Infini sont conçus pour gérer efficacement les séquences longues en résumant les informations passées sous une forme compacte. Au lieu de stocker toutes les données passées, ils maintiennent un ensemble fixe de paramètres qui agissent comme un résumé de l'historique de séquence. Ce résumé peut être mis à jour au fil du temps et conserver toujours des informations utiles. L'idée clé est que chaque fois que de nouvelles informations arrivent, la mémoire est mise à jour et que ses paramètres sont modifiés de telle manière que les aspects les plus pertinents de ces nouvelles informations sont capturés. Cela permet au modèle de rappeler des détails importants plus tard, sans avoir besoin de stocker ou de traiter explicitement la séquence entière.
En conséquence, les exigences de stockage et de calcul restent dans une certaine limite, ce qui le rend beaucoup plus évolutif pour le traitement des entrées longues, et donc un acteur clé dans la façonnage de l'avenir des LLM.
De très longues séquences sont divisées en segments «S». Chacun de ces segments est traité par un mécanisme d'attention causal, et une représentation locale est extraite de ce segment actuel. Au-dessus de cela, une autre représentation qui a des informations sur l'historique de séquence est récupérée à partir de la mémoire compressée. Ensuite, la représentation actuelle du segment est ajoutée ou mise à jour dans la mémoire compressée. Enfin, à la fin, la représentation locale du segment actuel et la représentation des informations récupérées sont combinées pour former une représentation globale à longue portée.
Fondamentalement, il existe 4 étapes principales - représentation locale, récupération, mise à jour de la mémoire compressive et agrégation de représentation.
Flux de travail complet
Dans le contexte plus large de la compréhension de l'avenir des LLM, passons d'abord en revue le flux de travail complet dès le début, n'est-ce pas?
Dans l'attention d'Infini, nous divisons la séquence d'entrée en plusieurs morceaux ou segments. Par exemple, si la taille du segment est de 100 jetons, nous traitons ces 100 premiers jetons comme un segment en utilisant des mécanismes d'attention standard. Après avoir calculé les paires de valeurs clés (sorties d'attention) pour ce segment, nous stockons ces représentations dans ce qu'on appelle une mémoire de compression.
Cette mémoire agit comme un pont entre les segments. Pour chaque couche et chaque tête d'attention, le modèle prend ce qu'il a appris du segment actuel et l'ajoute à cette mémoire. Ensuite, lorsque le prochain segment est traité, il peut accéder à cette mémoire, en les aidant à conserver des informations des segments précédents.
En bref, les représentations locales sont toujours calculées en utilisant l'attention standard, mais l'attention infini améliore cela en faisant passer les informations apprises par une structure de mémoire partagée.
Cette façon de stocker des calculs de valeur de clé comme les requêtes dans des calculs de transposition de clé dans la mémoire pour les pas de temps passé, et en quelque sorte en mesure de l'utiliser pour les étapes futures.
Maintenant, nous verrons comment cette mémoire compressée est réutilisée par les blocs transformateurs des segments à venir. Ici, nous utiliserons ici le mécanisme de déclenchement, qui ressemble beaucoup à la logique utilisée dans le mécanisme de déclenchement de LSTM.
Mécanisme de déclenchement
Ici, nous ne prenons tout simplement pas le Q, K, V pour le segment actuel et ajoutez essentiellement des incorporations de position (corde), puis calculons l'attention auto-all-peu effectuée ci-dessus, mais utilisons également les informations que nous avons à partir de segments précédents sous la forme de mémoire compressée en récupérant les informations en utilisant le Q (requête) actuel utilisé pour récupère la valeur d'attention globale.
β ici est appelé le scalaire de déclenchement. Il aide à la fusion fermée de l'attention des segments actuels et précédents. C'est un paramètre appris.
Maintenant, nous comprendrons comment cette mémoire est obtenue.
Les informations que nous avons calculées sont stockées dans cette matrice M, où dans le numérateur, nous utilisons la matrice de mémoire du segment précédent. Nous prenons le segment actuel et appliquons une fonction d'activation, qui utilise ici ELU.
Z Voici la somme sur toutes les clés. Cela n'a pas beaucoup d'importance; Il est principalement utilisé dans cette formule à des fins de normalisation.
Maintenant, comprenons comment la mémoire est mise à jour dans la mémoire compressée
Mise à jour de la mémoire
Pour la mise à jour de la mémoire, il existe 2 méthodes:
- La mise à jour linéaire est simple, ce qui résume la mémoire du segment précédent avec le calcul du segment actuel.
- Dans la mise à jour de Delta linéaire, le calcul de Z est similaire à celui de la méthode ci-dessus, mais ici la mise à jour de la mémoire est légèrement différente. Ici, nous soustrayons les contributions d'une partie de la mémoire. Fondamentalement, certains calculs d'attention ont été effectués à partir de segments précédents, nous ne mettons donc à jour que les nouvelles connaissances, et les informations précédentes sont telles qu'elles sont. Cela aide à retirer les doublons et rend la mémoire moins encombrée.
Quant à la partie de récupération, nous utiliserons les segments actuels Q (requête) pour récupérer les fragments de mémoire nécessaires de la mémoire comprimée et qui est transmis dans le mécanisme de déclenchement comme expliqué ci-dessus.
C'est ainsi que le flux global de l'attention d'Infini fonctionne en interne.
Examinons simplement certaines mesures sur l'efficacité de l'attention d'Infini par rapport à d'autres études telles que Transformer XL, Transformers basés sur les réformateurs, etc.…
Ici, plus le score est bas, plus les performances sont les performances.
Un autre test efficace a été effectué sur la tâche de récupération en expérimentant une tâche de récupération de la clé passante basée sur un tir zéro où un touché à base numérique est caché avec un énorme contexte d'informations textuelles, et les modèles de transformateur ont été chargés d'extraire et de récupérer ces clés de pass
Ici, nous pouvons voir que le transformateur Infini, qui est entièrement élaboré jusqu'à 400 étapes, est très efficace dans de telles tâches de récupération, en particulier lorsque nous utilisons la logique de mise à jour de la mémoire delta linéaire comme expliqué ci-dessus.
Les transformateurs Infini fonctionnent mieux que plusieurs modèles comme BART et Primera en matière de résumé, comme indiqué avec les valeurs rouges fournies dans le tableau ci-dessus. Cela nous donne un aperçu clé de l'avenir des LLM.
Conclusion
Dans cet article, nous avons exploré trois innovations clés - les fonctions d'activation de swish, les incorporations de cordes et l'attention infini qui façonnent activement la prochaine génération de modèles de gros langues ou l'avenir des LLM en général. Chacune de ces progrès aborde les limitations critiques dans les architectures précédentes, qu'il s'agisse d'améliorer efficacement le flux de gradient, d'améliorer la compréhension de la position ou d'étendre la longueur du contexte.
Alors que la recherche dans ce domaine continue de s'accélérer, les contributions du monde entier, alimentées par une communauté open source florissante, nous permettent de mieux comprendre le fonctionnement interne des LLM de pointe, les évoluant vers de nouveaux sommets à l'avenir. Ces percées améliorent non seulement les performances du modèle, mais redéfinissent également ce qui est possible dans la compréhension et la génération du langage naturel.
L'avenir de LLMS est en cours de construction sur de telles innovations fondamentales, et rester à jour est la clé pour comprendre où l'IA se dirige ensuite. Vous pouvez lire comment les LLM modernes comprennent ici les images visuelles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Openai déploie les commandes parentales pour les parents de chatppt peut désormais se connecter avec les comptes de leur adolescent, limiter les fonctionnalités et obtenir des alertes si une détresse émotionnelle est détectée que des conversations à risque seront gérées par des modèles spécialement réglés formés pour soutenir l'utilisation

Notebooklm de Google propose désormais de nouveaux formats de vue d'ensemble audio: les ajouts brèves, critiques et debatethais rapportent des interactions plus vivantes et des discussions structurées au contenu téléchargé.

Microsoft a émis un avertissement concernant une latence de réseau accrue affectant les services Azure en raison des perturbations des câbles sous-marins situés dans la mer Rouge, obligeant l'entreprise à rediriger le trafic à travers des itinéraires alternatifs. "Bien que la connectivité du réseau

L'IA réduit le temps nécessaire pour détecter et réagir aux données de données Bre dans les rapports sur les adoptants de l'IA, une économie d'économie jusqu'à 600 000 £ par violation, contre 33% des organisations britanniques non des utilisateurs ont mis en œuvre l'IA dans leurs stratégies de sécurité.

La dernière sortie de GPT-5 a pris d'assaut le monde. Le nouveau modèle phare d'OpenAI a reçu des critiques mitigées - alors que certains louent ses capacités, d'autres mettent en évidence ses lacunes. Cela m'a fait me demander: c'est gpt-

Le FBI a publié une alerte de sécurité critique, avertissant que le tristement célèbre collectif de piratage connu sous le nom de Salt Typhoon intensifie ses cyber-opérations dans le monde entier.

Si vous aviez dit à une salle pleine de dirigeants d'assurance contre les risques il y a cinq ans que près de la moitié des consommateurs britanniques accueilleraient bientôt des conseils de santé de l'IA, vous auriez rencontré un scepticisme grave, sinon des rires.

En 2025, un certain nombre d'assistants de programmation IA qui peuvent être accessibles directement à partir du terminal seront publiés l'un après l'autre. Codex CLI, Gemini CLI et Claude Code sont quelques-uns de ces outils populaires qui intégrent de grands modèles de langage dans les flux de travail de ligne de commande. Ces outils de programmation sont capables de générer et de réparer du code par le biais d'instructions en langage naturel et sont très puissants. Nous avons examiné les performances de ces trois outils dans différentes tâches pour déterminer laquelle est la plus pratique. Chaque assistant est basé sur des modèles AI avancés tels que O4-Mini, Gemini 2.5 Pro ou Claude Sonnet 4, conçu pour améliorer l'efficacité du développement. Nous mettons les trois dans le même environnement et utilisons des mesures spécifiques
