Compression sans perte de courts messages en anglais
(textsynth.org)On entend souvent parler de Fabrice Bellard ces derniers temps, mais l’un de ses précédents projets était un algorithme de compression sans perte utilisant des réseaux de neurones (voir https://bellard.org/nncp/). Justement, comme GPT-2 (https://openai.com/blog/better-language-models/) vient d’être publié, l’idée de cette page est née de la question suivante : et si l’on remplaçait le réseau de neurones par ce modèle pour faire tourner l’algorithme de compression ? Le résultat compresse de courts textes en anglais d’environ 15 %, c’est-à-dire en n’utilisant que 1,2 bit par caractère. C’est un niveau proche de l’entropie d’information estimée pour une lettre anglaise (0,6 à 1,3 bit). Comme on peut le voir dans l’URL, l’intention semble être de les envoyer par SMS.
- Ce n’est pas la première fois qu’un algorithme de compression utilise des réseaux de neurones. Tous les meilleurs algorithmes de compression, à commencer par PAQ, utilisent des méthodes statistiques, et les réseaux de neurones y sont loin d’être rares. Le context mixing (https://en.wikipedia.org/wiki/Context_mixing), qui constitue leur fondation, est lui-même une application des réseaux de neurones, et il existe déjà des exemples d’utilisation de LSTM, comme celui employé par Bellard (https://github.com/byronknoll/lstm-compress). La contribution de Bellard relève davantage de l’optimisation des performances.
1 commentaires
Utiliser l’Unicode CJK et la plage hangul…
Ça me rappelle le cauchemar de l’époque des codages 2 octets en jamo/composé, quand les caractères ASCII étendus s’affichaient comme du hangul ou des sinogrammes… (oui, ça trahit mon âge)