MemVid : Remplacer les bases de données vectorielles par des fichiers MP4

Audrey Lopez

Audrey Lopez

6 June 2025

MemVid : Remplacer les bases de données vectorielles par des fichiers MP4

Memvid est une bibliothèque de mémoire IA révolutionnaire qui transforme la façon dont nous stockons et recherchons de grands volumes de texte. Au lieu de s'appuyer sur des bases de données traditionnelles, Memvid encode astucieusement des fragments de texte dans des fichiers vidéo MP4, permettant une recherche sémantique ultra-rapide sans nécessiter de configuration de base de données complexe. Cette approche innovante la rend incroyablement efficace, portable et facile à utiliser, en particulier pour les applications hors ligne.

💡
Vous voulez un excellent outil de test d'API qui génère une belle documentation d'API ?

Vous voulez une plateforme intégrée, tout-en-un, permettant à votre équipe de développeurs de travailler ensemble avec une productivité maximale ?

Apidog répond à toutes vos exigences et remplace Postman à un prix beaucoup plus abordable !
bouton

À la base, Memvid combine la puissance des sentence-transformers pour des embeddings de pointe, de FAISS pour une recherche de similarité efficace, et d'OpenCV pour le traitement vidéo. Cette combinaison unique vous permet de stocker des millions de fragments de texte dans un format vidéo compact, qui peut être facilement partagé et accessible. La bibliothèque est conçue pour être conviviale pour les développeurs, avec une API simple qui vous permet de construire, rechercher et discuter avec votre mémoire vidéo en quelques lignes de code seulement.

Pourquoi choisir Memvid plutôt que les solutions traditionnelles ?

Memvid offre plusieurs avantages convaincants par rapport aux bases de données vectorielles traditionnelles et aux bases de données conventionnelles :

Caractéristique Memvid BD vectorielles BD traditionnelles
Efficacité de stockage ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐⭐
Complexité de configuration Simple Complexe Complexe
Recherche sémantique
Utilisation hors ligne
Portabilité Basé sur fichiers Basé sur serveur Basé sur serveur
Évolutivité Millions Millions Milliards
Coût Gratuit $$$$ $$$

Comme vous pouvez le voir, Memvid excelle en matière d'efficacité de stockage, de facilité de configuration et d'utilisation hors ligne. Étant basé sur des fichiers, vous pouvez simplement copier vos fichiers mémoire sur une autre machine et commencer à les utiliser immédiatement, sans processus de migration compliqué. Cela en fait une solution idéale pour les bases de connaissances personnelles, les applications IA hors ligne et les projets où la portabilité des données est une priorité.

Comment démarrer avec Memvid

Démarrer avec Memvid est simple. Voici un guide étape par étape pour vous aider à configurer votre environnement et à créer votre première mémoire vidéo.

Étape 1 : Créer un répertoire de projet

Tout d'abord, créons un nouveau répertoire pour votre projet et naviguons-y.

mkdir my-memvid-project
cd my-memvid-project

Étape 2 : Configurer un environnement virtuel

Il est toujours recommandé d'utiliser un environnement virtuel pour gérer les dépendances de votre projet.

# Créer un environnement virtuel
python -m venv venv

# L'activer
# Sur macOS/Linux :
source venv/bin/activate
# Sur Windows :
venv\Scripts\activate

Étape 3 : Installer Memvid

Maintenant, vous pouvez installer Memvid en utilisant pip.

pip install memvid

Si vous prévoyez de travailler avec des fichiers PDF, vous devrez également installer PyPDF2.

pip install PyPDF2

Utilisation de base : Créer et discuter avec votre mémoire

Commençons par un exemple simple de création d'une mémoire vidéo à partir de quelques fragments de texte, puis d'interaction avec celle-ci.

Créer une mémoire vidéo

La classe MemvidEncoder est utilisée pour créer votre mémoire vidéo. Vous pouvez ajouter des fragments de texte, des fichiers, ou même des répertoires entiers.

from memvid import MemvidEncoder

# Créer une liste de fragments de texte
chunks = ["The first AI winter was a period of reduced funding and interest in artificial intelligence research.",
          "Geoffrey Hinton, Yoshua Bengio, and Yann LeCun are often referred to as the 'godfathers of AI.'",
          "Transformers are a type of neural network architecture that has revolutionized natural language processing."]

# Initialiser l'encodeur
encoder = MemvidEncoder()

# Ajouter les fragments à l'encodeur
encoder.add_chunks(chunks)

# Construire la mémoire vidéo et le fichier d'index
encoder.build_video("memory.mp4", "memory_index.json")

Ce code créera deux fichiers : memory.mp4, qui contient les fragments de texte encodés, et memory_index.json, qui stocke les métadonnées et l'index pour une recherche rapide.

Discuter avec votre mémoire

Une fois votre mémoire construite, vous pouvez utiliser la classe MemvidChat pour démarrer une conversation avec elle.

from memvid import MemvidChat

# Initialiser le chat avec vos fichiers mémoire
chat = MemvidChat("memory.mp4", "memory_index.json")

# Démarrer une session de chat interactive
chat.start_session()

# Poser une question
response = chat.chat("Who are the godfathers of AI?")
print(response)

La méthode chat recherchera les fragments les plus pertinents dans la mémoire vidéo et fournira une réponse cohérente basée sur les informations qu'elle trouve.

Construire une mémoire à partir de documents

Memvid facilite la construction d'une base de connaissances à partir de vos documents. Vous pouvez ajouter des fichiers texte, des PDF, et plus encore.

from memvid import MemvidEncoder
import os

# Créer un répertoire pour vos documents
if not os.path.exists("documents"):
    os.makedirs("documents")

# Créer quelques fichiers texte d'exemple
with open("documents/ai_history.txt", "w") as f:
    f.write("The Dartmouth Workshop in 1956 is widely considered the birth of AI as a field.")
with open("documents/neural_networks.txt", "w") as f:
    f.write("A neural network is a series of algorithms that endeavors to recognize underlying relationships in a set of data through a process that mimics the way the human brain operates.")

# Initialiser l'encodeur avec un découpage personnalisé
encoder = MemvidEncoder(chunk_size=512, overlap=50)

# Ajouter des fichiers texte du répertoire
for file in os.listdir("documents"):
    with open(f"documents/{file}", "r") as f:
        encoder.add_text(f.read(), metadata={"source": file})

# Construire la vidéo avec des paramètres optimisés
encoder.build_video(
    "knowledge_base.mp4",
    "knowledge_index.json",
    fps=30,  # Un FPS plus élevé permet plus de fragments par seconde
    frame_size=512  # Des images plus grandes peuvent stocker plus de données
)

Dans cet exemple, nous personnalisons la taille des fragments et le chevauchement pour mieux gérer les documents plus volumineux. Nous ajustons également les images par seconde (FPS) et la taille des images pour optimiser la vidéo en fonction de nos besoins.

Recherche et récupération avancées

Pour les cas d'utilisation plus avancés, la classe MemvidRetriever offre de puissantes capacités de recherche.

from memvid import MemvidRetriever

# Initialiser le récupérateur
retriever = MemvidRetriever("knowledge_base.mp4", "knowledge_index.json")

# Effectuer une recherche sémantique
results = retriever.search("the beginning of artificial intelligence", top_k=5)
for chunk, score in results:
    print(f"Score: {score:.3f} | {chunk[:100]}...")

# Obtenir une fenêtre de contexte pour une requête spécifique
context = retriever.get_context("tell me about neural networks", max_tokens=2000)
print(context)

La méthode search renvoie les fragments les plus pertinents ainsi que leurs scores de similarité, tandis que get_context récupère un bloc de texte plus grand autour de la meilleure correspondance pour fournir plus de contexte à votre modèle linguistique.

Interface de chat interactive

Memvid comprend également une interface de chat interactive conviviale construite avec Gradio.

from memvid import MemvidInteractive

# Lancer l'interface utilisateur de chat interactive
interactive = MemvidInteractive("knowledge_base.mp4", "knowledge_index.json")
interactive.run()  # Cela ouvrira une interface web à http://localhost:7860

C'est un excellent moyen d'explorer votre base de connaissances et de tester ses performances sans écrire de code supplémentaire.

Configuration avancée

Memvid est hautement personnalisable, vous permettant de l'adapter à vos besoins spécifiques.

Embeddings personnalisés

Vous pouvez utiliser n'importe quel modèle sentence-transformers pour générer des embeddings.

from sentence_transformers import SentenceTransformer

# Utiliser un modèle d'embedding personnalisé
custom_model = SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
encoder = MemvidEncoder(embedding_model=custom_model)

Optimisation vidéo

Pour une compression et une efficacité maximales, vous pouvez affiner les paramètres d'encodage vidéo.

encoder.build_video(
    "compressed.mp4",
    "index.json",
    fps=60,  # Plus d'images par seconde
    frame_size=256,  # Images plus petites
    video_codec='h265',  # H.265 offre une meilleure compression que H.264
    crf=28  # Facteur de débit constant (valeur inférieure signifie meilleure qualité)
)

Conclusion

Memvid est une bibliothèque puissante et innovante qui offre une nouvelle perspective sur la gestion de la mémoire IA. En tirant parti de l'omniprésence et de l'efficacité des formats vidéo, elle fournit une solution simple, économique et axée sur le hors ligne pour stocker et rechercher de grandes quantités de données textuelles. Que vous construisiez une base de connaissances personnelle, développiez une application basée sur l'IA, ou exploriez simplement de nouvelles façons de gérer l'information, Memvid est un outil qui vaut la peine d'être essayé.

Pour en savoir plus et explorer des exemples avancés, n'oubliez pas de consulter le dépôt GitHub officiel à l'adresse https://github.com/Olow304/memvid. Le dépôt comprend une documentation détaillée, des exemples et une communauté accueillante prête à vous aider à démarrer.

💡
Vous voulez un excellent outil de test d'API qui génère une belle documentation d'API ?

Vous voulez une plateforme intégrée, tout-en-un, permettant à votre équipe de développeurs de travailler ensemble avec une productivité maximale ?

Apidog répond à toutes vos exigences et remplace Postman à un prix beaucoup plus abordable !
bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API