[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"blog-embarquer-des-modeles-predictifs-en-local-sans-saturer-la-memoire-de-vos-applications":3},{"id":4,"title":5,"accroche":6,"auteur":7,"body":8,"conclusion":189,"date":190,"datemodified":190,"description":181,"extension":191,"head":192,"identifier":205,"imageNumber":206,"imagenalt":207,"imagenurl":208,"meta":209,"navigation":197,"path":210,"rawbody":211,"schemaOrg":212,"seo":215,"seoDescription":6,"seoTitre":200,"stem":216,"tag":217,"titre":200,"__hash__":218},"blog\u002Fblog\u002Fembarquer-des-modeles-predictifs-en-local-sans-saturer-la-memoire-de-vos-applications.md","Embarquer Des Modeles Predictifs En Local Sans Saturer La Memoire De Vos Applications","Vous voulez intégrer des réseaux de neurones directement sur le terminal de vos utilisateurs. L'idée est techniquement séduisante pour réduire la latence. Mais attention. Placer un tenseur de plusieurs gigaoctets dans un smartphone va instantanément tuer votre processus. Voyons comment compresser ces matrices sans détruire la précision mathématique.","Yanis",{"type":9,"value":10,"toc":180},"minimark",[11,16,20,23,26,29,32,36,39,42,45,48,58,61,65,68,71,74,77,80,83,94,98,106,117,120,129,132,152,155,159,162,165,168,177],[12,13,15],"h2",{"id":14},"la-tyrannie-de-la-mémoire-vive-face-aux-matrices-gigantesques","La tyrannie de la mémoire vive face aux matrices gigantesques",[17,18,19],"p",{},"Le machine learning sur serveur vous a mal habitué. Sur le cloud, vous instanciez des machines virtuelles avec des dizaines de gigaoctets de mémoire unifiée. Le code tourne, les tenseurs se chargent en mémoire vive, le modèle s'exécute paisiblement. Sur mobile, la réalité physique vous rattrape très vite. Un smartphone n'est pas un data center miniature. C'est un environnement hautement contraint où le système d'exploitation agit comme un dictateur paranoïaque.",[17,21,22],{},"Sur iOS, le démon Jetsam surveille la consommation de votre processus avec une sévérité absolue. Si votre application demande soudainement 500 mégaoctets pour charger un réseau de neurones convolutif, le système la tue sans sommation. Sous Android, le Low Memory Killer Daemon (LMKD) adopte exactement le même comportement.",[17,24,25],{},"Je me demande souvent si les ingénieurs backend mesurent l'enfer du mobile. Ils vous livrent un modèle PyTorch magnifique pesant 1.2 Go. Vous essayez de le charger dans votre application iOS. Crash. Out of Memory. Exception fatale.",[17,27,28],{},"C'est logique. Un paramètre de modèle en virgule flottante simple précision (FP32) pèse 4 octets. Un réseau modeste de 100 millions de paramètres pèse donc 400 mégaoctets sur le disque. Une fois désérialisé en mémoire vive, avec les buffers intermédiaires nécessaires à l'inférence, l'empreinte monte facilement à 800 mégaoctets. Aucun système d'exploitation mobile sain d'esprit ne vous laissera monopoliser une telle quantité de RAM! Votre processus sera sacrifié pour préserver l'autonomie de la batterie ou garder l'interface utilisateur fluide.",[17,30,31],{},"Bref. Le dévelopement d'applications IA sur terminal exige une approche totalement différente. Il faut arrêter de penser comme un data scientist. Vous devez penser comme un programmeur embarqué.",[12,33,35],{"id":34},"lélagage-synaptique-et-la-quantification-des-tenseurs","L'élagage synaptique et la quantification des tenseurs",[17,37,38],{},"Pour survivre, vous devez mutiler votre modèle. C'est le seul moyen. La technique la plus courante s'appelle la quantification. L'idée consiste à réduire la précision mathématique des poids synaptiques. Au lieu d'utiliser des nombres flottants sur 32 bits (FP32), vous mappez ces valeurs sur des entiers à 8 bits (INT8). Mathématiquement, vous perdez en granularité. Pratiquement, le poids de votre fichier est divisé par quatre.",[17,40,41],{},"Une fois que les matrices ont été compressé de cette manière, l'empreinte mémoire devient soudainement gérable. Mais la quantification n'est pas magique. Elle introduit du bruit de quantification. Votre modèle va perdre quelques pourcents de précision (accuracy).",[17,43,44],{},"Parfois, on observe un phénomène fascinant. La quantification INT8 agit comme une forme de régularisation. Le modèle devient moins sensible au surapprentissage. Donc, réduire la précision détruit toujours la qualité des prédictions. Quoique, en réalité, j'ai déjà vu des modèles de vision par ordinateur devenir plus robustes face au bruit visuel grâce à cette perte de précision. C'est contre-intuitif.",[17,46,47],{},"Vous avez accès à très peu d'options viables pour réaliser cette opération :",[49,50,51,55],"ul",{},[52,53,54],"li",{},"La quantification post-entraînement (Post-Training Quantization).",[52,56,57],{},"L'entraînement sensible à la quantification (Quantization-Aware Training).",[17,59,60],{},"L'élagage (pruning) est une autre méthode redoutable. Vous forcez les poids synaptiques proches de zéro à devenir exactement zéro. Votre matrice devient creuse (sparse). Les algorithmes de compression classiques comme ZIP ou LZ4 vont alors compresser le fichier du modèle de manière spectaculaire. Attention cependant. Une matrice creuse prend toujours autant de place en mémoire vive si votre moteur d'inférence ne supporte pas nativement les opérations sur tenseurs creux (sparse tensors). Vous gagnez de la place sur le disque dur du téléphone, pas dans la RAM.",[12,62,64],{"id":63},"déléguer-la-charge-aux-puces-neuronales-matérielles","Déléguer la charge aux puces neuronales matérielles",[17,66,67],{},"Le processeur central (CPU) d'un smartphone déteste les multiplications matricielles. Il n'est pas conçu pour ça. Le faire travailler sur une inférence de réseau de neurones va vider la batterie en quelques minutes. Vous devez absolument transférer cette charge de calcul vers des coprocesseurs spécialisés.",[17,69,70],{},"Apple possède le Neural Engine (ANE). Qualcomm intègre ses Hexagon DSP. Google a ses propres Tensor Processing Units (TPU) sur les puces Tensor. Ces composants matériels sont capables d'exécuter des milliers d'opérations MAC (Multiply-Accumulate) par cycle d'horloge avec une consommation électrique dérisoire.",[17,72,73],{},"Vous devez absolument utiliser TensorFlow Lite sur Android pour garantir la compatibilité maximale avec l'écosystème matériel. Même si, honnêtement, PyTorch Mobile offre un pontage bien plus stable avec les architectures modernes via Vulkan, donc fuyez TFLite dès que vous visez des puces récentes. L'écosystème est un véritable champ de mines.",[17,75,76],{},"Ils faut que vous surveilliez le comportement du compilateur lors de la délégation. C'est là que les vrais problèmes commencent. Les API fournies par les constructeurs, comme CoreML chez Apple ou NNAPI chez Android, sont des boîtes noires terrifiantes. Vous leur donnez votre modèle quantifié. Vous priez pour que le coprocesseur accepte toutes les couches (layers) de votre réseau.",[17,78,79],{},"Parce que si le NPU décide que votre couche de convolution personnalisée n'est pas supportée et qu'il la renvoie au CPU sans prévenir...",[17,81,82],{},"Le CPU, lui, il chauffe. L'inférence devient hybride. Les données font des allers-retours désastreux entre le processeur neuronal et le processeur central. La latence explose. L'application saccade. La promesse du machine learning on-device s'effondre.",[17,84,85,86,93],{},"Je vous invite à consulter la page principale de notre ",[87,88,92],"a",{"href":89,"rel":90},"https:\u002F\u002Fwww.kosmos-digital.com\u002F",[91],"nofollow","site"," pour voir comment nous abordons généralement l'ingénierie logicielle avancée. L'opacité des API matérielles est un sujet qui nous passionne.",[12,95,97],{"id":96},"memory-mapping-et-gestion-thermique-du-silicium-le-cœur-du-problème","Memory mapping et gestion thermique du silicium: le cœur du problème",[17,99,100,101,105],{},"Même avec un modèle quantifié à 50 mégaoctets tournant sur un NPU, comment le charger sans alerter le système d'exploitation ? La réponse tient en un appel système UNIX vieux de plusieurs décennies : ",[102,103,104],"code",{},"mmap()",".",[17,107,108,109,112,113,116],{},"Le memory mapping permet de mapper le fichier de votre modèle directement dans l'espace d'adressage virtuel de votre application. Vous ne lisez pas le fichier avec un ",[102,110,111],{},"fread()"," pour le copier dans des variables allouées par ",[102,114,115],{},"malloc()",". Vous demandez au noyau de faire correspondre une plage d'adresses mémoire au fichier sur le stockage flash.",[17,118,119],{},"Le système d'exploitation charge uniquement les pages mémoire nécessaires au moment exact où le processeur neuronal en a besoin. C'est ce qu'on appelle le lazy loading via page faults. Votre empreinte mémoire résidente (Resident Set Size) reste extrêmement basse. L'OS est content. Votre processus survit.",[17,121,122,123,128],{},"C'est d'ailleurs le socle de notre ",[87,124,127],{"href":125,"rel":126},"https:\u002F\u002Fwww.kosmos-digital.com\u002Fmethodologie",[91],"méthodologie"," lors de la conception de moteurs d'inférence propriétaires. Ne copiez jamais un modèle en RAM. Mappez-le.",[17,130,131],{},"Cependant, vous allez rapidement faire face à un mur physique.",[49,133,134,137,140,143,146,149],{},[52,135,136],{},"La résistance thermique du châssis en aluminium ou en verre.",[52,138,139],{},"Le throttling agressif imposé par le kernel pour éviter la surchauffe.",[52,141,142],{},"La fragmentation inévitable de la mémoire virtuelle au fil des inférences.",[52,144,145],{},"L'absence de support matériel pour les fonctions d'activation exotiques.",[52,147,148],{},"Les quotas stricts d'allocation imposés par le démon de gestion de mémoire.",[52,150,151],{},"La latence catastrophique du bus de données entre le stockage flash et la puce.",[17,153,154],{},"Faire tourner un modèle à 30 images par seconde pour de la réalité augmentée génère une chaleur intense. Le processeur atteint 80 degrés Celsius. Le système d'exploitation intervient. Il abaisse drastiquement la fréquence d'horloge. C'est le thermal throttling. Votre inférence qui prenait 15 millisecondes en prend soudainement 120. L'expérience utilisateur devient saccadée. Vous ne pouvez pas lutter contre la thermodynamique.",[12,156,158],{"id":157},"des-architectures-adaptées-pour-linférence-locale","Des architectures adaptées pour l'inférence locale",[17,160,161],{},"Vous ne pouvez pas prendre un modèle conçu pour le cloud et le forcer à rentrer dans un téléphone. Vous devez concevoir ou choisir des architectures nativement pensées pour le mobile. Les convolutions standards sont trop coûteuses. Utilisez des convolutions séparables en profondeur (depthwise separable convolutions). Elles réduisent drastiquement le nombre de calculs tout en maintenant une expressivité mathématique correcte.",[17,163,164],{},"Regardez l'architecture de MobileNet ou de YOLOv8 nano. Ces réseaux sont taillés pour l'environnement on-device. Leurs concepteurs ont calculé l'empreinte mémoire de chaque carte de caractéristiques (feature map) générée pendant le passage avant (forward pass).",[17,166,167],{},"Dans le domaine du traitement du langage naturel (NLP), c'est encore plus complexe. Les transformeurs (Transformers) consomment une mémoire colossale à cause du mécanisme d'attention (Self-Attention) dont la complexité spatiale est quadratique par rapport à la longueur de la séquence. Utiliser MobileBERT est un strict minimum. Vous devez réduire la taille du vocabulaire. Vous devez limiter la taille du contexte.",[17,169,170,171,176],{},"Certains de nos clients ont essayé de contourner ces limitations en chargeant des morceaux de modèles séquentiellement. Jetez un œil à nos ",[87,172,175],{"href":173,"rel":174},"https:\u002F\u002Fwww.kosmos-digital.com\u002Freferences",[91],"références"," pour comprendre l'ampleur des projets que nous auditons. Charger des poids à la volée depuis le disque flash pendant l'exécution crée des goulots d'étranglement I\u002FO épouvantables. Le bus de stockage des smartphones n'est pas conçu pour ce type d'accès aléatoire intensif.",[17,178,179],{},"Soyez pragmatiques. Si votre modèle prédictif nécessite 2 gigaoctets de mémoire pour fonctionner correctement, il n'a rien à faire sur un terminal mobile. Revoyez votre architecture. Fusionnez vos couches. Quantifiez vos poids en INT8. Mappez vos fichiers en mémoire. Exploitez le NPU. C'est à ce prix que votre application survivra dans la poche de vos utilisateurs.",{"title":181,"searchDepth":182,"depth":182,"links":183},"",2,[184,185,186,187,188],{"id":14,"depth":182,"text":15},{"id":34,"depth":182,"text":35},{"id":63,"depth":182,"text":64},{"id":96,"depth":182,"text":97},{"id":157,"depth":182,"text":158},"Faire tourner des algorithmes complexes sur un smartphone relève de l'orfèvrerie. Vous devez jongler entre la précision prédictive et les limites physiques du matériel. Optimisez vos tenseurs. Déléguez aux puces dédiées. L'intelligence artificielle mobile exige une rigueur architecturale implacable pour ne pas fondre littéralement dans les mains de vos utilisateurs.","2026-10-19","md",{"script":193},[194],{"type":195,"key":196,"data-nuxt-schema-org":197,"nodes":198},"application\u002Fld+json","schema-org-graph",true,[199],{"headline":200,"author":201,"datePublished":190,"dateModified":190,"@type":204},"Embarquer des modèles prédictifs en local sans saturer la mémoire de vos applications",{"name":202,"@type":203},"Kosmos","Organization","BlogPosting","179239311518154","3","Machine Learning on-device : embarquer des modèles prédictifs sans asphyxier la mémoire de votre application","https:\u002F\u002Fmedia.kosmos-digital.com\u002Fblog\u002F1792393031975-machine-learning-on-device-embarquer-des-modeles-predictifs-sans-asphyxier-la-memoire-de-votre-application.webp",{},"\u002Fblog\u002Fembarquer-des-modeles-predictifs-en-local-sans-saturer-la-memoire-de-vos-applications","---\nschemaOrg:\n  - type: BlogPosting\n    headline: Embarquer des modèles prédictifs en local sans saturer la mémoire de vos applications\n    author:\n      type: Organization\n      name: Kosmos\n    datePublished: '2026-10-19'\n    dateModified: '2026-10-19'\ndate: '2026-10-19'\nseoTitre: Embarquer des modèles prédictifs en local sans saturer la mémoire de vos applications\nseoDescription: Vous voulez intégrer des réseaux de neurones directement sur le terminal de vos utilisateurs. L'idée est techniquement séduisante pour réduire la latence. Mais attention. Placer un tenseur de plusieurs gigaoctets dans un smartphone va instantanément tuer votre processus. Voyons comment compresser ces matrices sans détruire la précision mathématique.\ntitre: Embarquer des modèles prédictifs en local sans saturer la mémoire de vos applications\ntag: IA\naccroche: Vous voulez intégrer des réseaux de neurones directement sur le terminal de vos utilisateurs. L'idée est techniquement séduisante pour réduire la latence. Mais attention. Placer un tenseur de plusieurs gigaoctets dans un smartphone va instantanément tuer votre processus. Voyons comment compresser ces matrices sans détruire la précision mathématique.\nconclusion: Faire tourner des algorithmes complexes sur un smartphone relève de l'orfèvrerie. Vous devez jongler entre la précision prédictive et les limites physiques du matériel. Optimisez vos tenseurs. Déléguez aux puces dédiées. L'intelligence artificielle mobile exige une rigueur architecturale implacable pour ne pas fondre littéralement dans les mains de vos utilisateurs.\nimageNumber: '3'\nauteur: Yanis\ndatemodified: '2026-10-19'\nidentifier: '179239311518154'\nimagenurl: https:\u002F\u002Fmedia.kosmos-digital.com\u002Fblog\u002F1792393031975-machine-learning-on-device-embarquer-des-modeles-predictifs-sans-asphyxier-la-memoire-de-votre-application.webp\nimagenalt: 'Machine Learning on-device : embarquer des modèles prédictifs sans asphyxier la mémoire de votre application'\n---\n## La tyrannie de la mémoire vive face aux matrices gigantesques\n\nLe machine learning sur serveur vous a mal habitué. Sur le cloud, vous instanciez des machines virtuelles avec des dizaines de gigaoctets de mémoire unifiée. Le code tourne, les tenseurs se chargent en mémoire vive, le modèle s'exécute paisiblement. Sur mobile, la réalité physique vous rattrape très vite. Un smartphone n'est pas un data center miniature. C'est un environnement hautement contraint où le système d'exploitation agit comme un dictateur paranoïaque.\n\nSur iOS, le démon Jetsam surveille la consommation de votre processus avec une sévérité absolue. Si votre application demande soudainement 500 mégaoctets pour charger un réseau de neurones convolutif, le système la tue sans sommation. Sous Android, le Low Memory Killer Daemon (LMKD) adopte exactement le même comportement. \n\nJe me demande souvent si les ingénieurs backend mesurent l'enfer du mobile. Ils vous livrent un modèle PyTorch magnifique pesant 1.2 Go. Vous essayez de le charger dans votre application iOS. Crash. Out of Memory. Exception fatale.\n\nC'est logique. Un paramètre de modèle en virgule flottante simple précision (FP32) pèse 4 octets. Un réseau modeste de 100 millions de paramètres pèse donc 400 mégaoctets sur le disque. Une fois désérialisé en mémoire vive, avec les buffers intermédiaires nécessaires à l'inférence, l'empreinte monte facilement à 800 mégaoctets. Aucun système d'exploitation mobile sain d'esprit ne vous laissera monopoliser une telle quantité de RAM! Votre processus sera sacrifié pour préserver l'autonomie de la batterie ou garder l'interface utilisateur fluide. \n\nBref. Le dévelopement d'applications IA sur terminal exige une approche totalement différente. Il faut arrêter de penser comme un data scientist. Vous devez penser comme un programmeur embarqué.\n\n## L'élagage synaptique et la quantification des tenseurs\n\nPour survivre, vous devez mutiler votre modèle. C'est le seul moyen. La technique la plus courante s'appelle la quantification. L'idée consiste à réduire la précision mathématique des poids synaptiques. Au lieu d'utiliser des nombres flottants sur 32 bits (FP32), vous mappez ces valeurs sur des entiers à 8 bits (INT8). Mathématiquement, vous perdez en granularité. Pratiquement, le poids de votre fichier est divisé par quatre.\n\nUne fois que les matrices ont été compressé de cette manière, l'empreinte mémoire devient soudainement gérable. Mais la quantification n'est pas magique. Elle introduit du bruit de quantification. Votre modèle va perdre quelques pourcents de précision (accuracy). \n\nParfois, on observe un phénomène fascinant. La quantification INT8 agit comme une forme de régularisation. Le modèle devient moins sensible au surapprentissage. Donc, réduire la précision détruit toujours la qualité des prédictions. Quoique, en réalité, j'ai déjà vu des modèles de vision par ordinateur devenir plus robustes face au bruit visuel grâce à cette perte de précision. C'est contre-intuitif.\n\nVous avez accès à très peu d'options viables pour réaliser cette opération :\n\n- La quantification post-entraînement (Post-Training Quantization).\n- L'entraînement sensible à la quantification (Quantization-Aware Training).\n\nL'élagage (pruning) est une autre méthode redoutable. Vous forcez les poids synaptiques proches de zéro à devenir exactement zéro. Votre matrice devient creuse (sparse). Les algorithmes de compression classiques comme ZIP ou LZ4 vont alors compresser le fichier du modèle de manière spectaculaire. Attention cependant. Une matrice creuse prend toujours autant de place en mémoire vive si votre moteur d'inférence ne supporte pas nativement les opérations sur tenseurs creux (sparse tensors). Vous gagnez de la place sur le disque dur du téléphone, pas dans la RAM.\n\n## Déléguer la charge aux puces neuronales matérielles\n\nLe processeur central (CPU) d'un smartphone déteste les multiplications matricielles. Il n'est pas conçu pour ça. Le faire travailler sur une inférence de réseau de neurones va vider la batterie en quelques minutes. Vous devez absolument transférer cette charge de calcul vers des coprocesseurs spécialisés.\n\nApple possède le Neural Engine (ANE). Qualcomm intègre ses Hexagon DSP. Google a ses propres Tensor Processing Units (TPU) sur les puces Tensor. Ces composants matériels sont capables d'exécuter des milliers d'opérations MAC (Multiply-Accumulate) par cycle d'horloge avec une consommation électrique dérisoire. \n\nVous devez absolument utiliser TensorFlow Lite sur Android pour garantir la compatibilité maximale avec l'écosystème matériel. Même si, honnêtement, PyTorch Mobile offre un pontage bien plus stable avec les architectures modernes via Vulkan, donc fuyez TFLite dès que vous visez des puces récentes. L'écosystème est un véritable champ de mines.\n\nIls faut que vous surveilliez le comportement du compilateur lors de la délégation. C'est là que les vrais problèmes commencent. Les API fournies par les constructeurs, comme CoreML chez Apple ou NNAPI chez Android, sont des boîtes noires terrifiantes. Vous leur donnez votre modèle quantifié. Vous priez pour que le coprocesseur accepte toutes les couches (layers) de votre réseau. \n\nParce que si le NPU décide que votre couche de convolution personnalisée n'est pas supportée et qu'il la renvoie au CPU sans prévenir...\n\nLe CPU, lui, il chauffe. L'inférence devient hybride. Les données font des allers-retours désastreux entre le processeur neuronal et le processeur central. La latence explose. L'application saccade. La promesse du machine learning on-device s'effondre. \n\nJe vous invite à consulter la page principale de notre [site](https:\u002F\u002Fwww.kosmos-digital.com\u002F) pour voir comment nous abordons généralement l'ingénierie logicielle avancée. L'opacité des API matérielles est un sujet qui nous passionne.\n\n## Memory mapping et gestion thermique du silicium: le cœur du problème\n\nMême avec un modèle quantifié à 50 mégaoctets tournant sur un NPU, comment le charger sans alerter le système d'exploitation ? La réponse tient en un appel système UNIX vieux de plusieurs décennies : `mmap()`.\n\nLe memory mapping permet de mapper le fichier de votre modèle directement dans l'espace d'adressage virtuel de votre application. Vous ne lisez pas le fichier avec un `fread()` pour le copier dans des variables allouées par `malloc()`. Vous demandez au noyau de faire correspondre une plage d'adresses mémoire au fichier sur le stockage flash. \n\nLe système d'exploitation charge uniquement les pages mémoire nécessaires au moment exact où le processeur neuronal en a besoin. C'est ce qu'on appelle le lazy loading via page faults. Votre empreinte mémoire résidente (Resident Set Size) reste extrêmement basse. L'OS est content. Votre processus survit.\n\nC'est d'ailleurs le socle de notre [méthodologie](https:\u002F\u002Fwww.kosmos-digital.com\u002Fmethodologie) lors de la conception de moteurs d'inférence propriétaires. Ne copiez jamais un modèle en RAM. Mappez-le.\n\nCependant, vous allez rapidement faire face à un mur physique.\n\n- La résistance thermique du châssis en aluminium ou en verre.\n- Le throttling agressif imposé par le kernel pour éviter la surchauffe.\n- La fragmentation inévitable de la mémoire virtuelle au fil des inférences.\n- L'absence de support matériel pour les fonctions d'activation exotiques.\n- Les quotas stricts d'allocation imposés par le démon de gestion de mémoire.\n- La latence catastrophique du bus de données entre le stockage flash et la puce.\n\nFaire tourner un modèle à 30 images par seconde pour de la réalité augmentée génère une chaleur intense. Le processeur atteint 80 degrés Celsius. Le système d'exploitation intervient. Il abaisse drastiquement la fréquence d'horloge. C'est le thermal throttling. Votre inférence qui prenait 15 millisecondes en prend soudainement 120. L'expérience utilisateur devient saccadée. Vous ne pouvez pas lutter contre la thermodynamique.\n\n## Des architectures adaptées pour l'inférence locale\n\nVous ne pouvez pas prendre un modèle conçu pour le cloud et le forcer à rentrer dans un téléphone. Vous devez concevoir ou choisir des architectures nativement pensées pour le mobile. Les convolutions standards sont trop coûteuses. Utilisez des convolutions séparables en profondeur (depthwise separable convolutions). Elles réduisent drastiquement le nombre de calculs tout en maintenant une expressivité mathématique correcte.\n\nRegardez l'architecture de MobileNet ou de YOLOv8 nano. Ces réseaux sont taillés pour l'environnement on-device. Leurs concepteurs ont calculé l'empreinte mémoire de chaque carte de caractéristiques (feature map) générée pendant le passage avant (forward pass). \n\nDans le domaine du traitement du langage naturel (NLP), c'est encore plus complexe. Les transformeurs (Transformers) consomment une mémoire colossale à cause du mécanisme d'attention (Self-Attention) dont la complexité spatiale est quadratique par rapport à la longueur de la séquence. Utiliser MobileBERT est un strict minimum. Vous devez réduire la taille du vocabulaire. Vous devez limiter la taille du contexte. \n\nCertains de nos clients ont essayé de contourner ces limitations en chargeant des morceaux de modèles séquentiellement. Jetez un œil à nos [références](https:\u002F\u002Fwww.kosmos-digital.com\u002Freferences) pour comprendre l'ampleur des projets que nous auditons. Charger des poids à la volée depuis le disque flash pendant l'exécution crée des goulots d'étranglement I\u002FO épouvantables. Le bus de stockage des smartphones n'est pas conçu pour ce type d'accès aléatoire intensif. \n\nSoyez pragmatiques. Si votre modèle prédictif nécessite 2 gigaoctets de mémoire pour fonctionner correctement, il n'a rien à faire sur un terminal mobile. Revoyez votre architecture. Fusionnez vos couches. Quantifiez vos poids en INT8. Mappez vos fichiers en mémoire. Exploitez le NPU. C'est à ce prix que votre application survivra dans la poche de vos utilisateurs.",[213],{"headline":200,"author":214,"datePublished":190,"dateModified":190,"@type":204},{"name":202,"@type":203},{"description":181},"blog\u002Fembarquer-des-modeles-predictifs-en-local-sans-saturer-la-memoire-de-vos-applications","IA","IEWCviWrN3gauFWDgI5ykhDEigw7RaR8_SgKXTwcP1Y",1793637910796]