Recherche et langues
Choix du modèle d’embedding, contenu non anglophone et modification ultérieure.
Hive vectorise chaque neurone avec un modèle d’embedding local, de sorte que la recherche sémantique fonctionne sans envoyer votre contenu à une API tierce. Le modèle utilisé détermine la qualité de la recherche dans votre langue.
Deux modèles sont fournis dans l'image. Aucun n'est téléchargé à l'exécution — y compris lorsque vous passez de l'un à l'autre, ce qui fonctionne donc sur une installation isolée.
| Anglais par défaut | International | |
|---|---|---|
| Paramètre | EMBEDDING_MODEL=english |
EMBEDDING_MODEL=international |
| Modèle | nomic-embed-text-v1.5 |
snowflake-arctic-embed-m-v2.0 |
| Langues | Anglais | 70+, dont l’allemand, le français, l’espagnol, le portugais, le japonais |
| Mémoire du conteneur | 2 Go minimum | 4 Go minimum |
Comment le modèle anglais échoue sur les autres langues
Il ne génère pas d’erreur, ce qui justifie qu’on l’explique. Le contenu en allemand, en français ou en japonais est accepté, vectorisé et renvoyé par la recherche — mais avec moins de précision, de deux manières précises.
- Les accents sont supprimés. Le tokenizer du modèle anglais réduit
schönàschon— un autre mot allemand. Les trémas et le ß sont perdus avant même la vectorisation du texte. - Les mots se fragmentent. L’allemand coûte environ deux fois plus de tokens par caractère avec le tokenizer anglais qu’avec l’international ; les longs neurones non anglophones épuisent donc plus vite la fenêtre de contexte du modèle.
La règle pratique : si une part significative de vos neurones n'est pas en anglais, choisissez International. Un Brain surtout en anglais, avec de rares noms ou citations étrangers, convient très bien au modèle par défaut.
Choix à l’installation
Définissez la variable d'environnement au premier démarrage du conteneur :
docker run -d \
-e DATABASE_URL=... \
-e ADMIN_PASSWORD=... \
-e EMBEDDING_MODEL=international \
--memory 4g \
aiqbee/hive-server:latest
--memory, Kubernetes resources.limits.memory, Compose mem_limit.Le modifier plus tard
EMBEDDING_MODEL n’est lu qu’à la première configuration d’un Hive. Une fois les neurones vectorisés, il est ignoré, et le modifier dans la configuration de votre déploiement n’a d’autre effet que d’afficher un avis sur la page Configuration.
C'est délibéré : changer de modèle signifie retraiter chaque neurone de chaque Brain, et un redéploiement ne doit jamais s'en charger silencieusement. Changez-le plutôt depuis Configuration → Modèle d'embedding dans l'interface d'administration. Vous verrez combien de neurones sont concernés et une durée estimée avant de confirmer.
Ce qui se passe pendant le changement
- Les neurones sont retraités en arrière-plan. La recherche reste correcte pendant toute l'opération — les neurones pas encore retraités ne sont trouvés que par recherche par mots-clés, de sorte que les résultats sont temporairement plus restreints, jamais erronés.
- La progression est affichée sur la page Configuration.
- Vous pouvez redémarrer le conteneur sans risque ; le retraitement reprend automatiquement.
- Vous pouvez revenir en arrière à tout moment. Cela retraite aussi, ce n'est donc pas gratuit — mais rien n'est perdu.
Recherche par mots-clés et texte non anglophone
Le modèle d'embedding gère la moitié sémantique de la recherche. La moitié par mots-clés compare le texte lui-même et fonctionne avec les caractères accentués dans toutes les langues prises en charge par Hive — une recherche de Müller trouve Müller.
Une limite à connaître pour l'allemand : la recherche par mots-clés trouve un nom composé lorsque vous cherchez sa fin (Versicherung trouve Rechtsschutzversicherung), mais pas l'inverse — chercher le composé entier ne trouvera pas un neurone qui n'en mentionne que les parties séparément. C'est la moitié sémantique qui comble cet écart, ce qui est une raison de plus d'utiliser International sur un corpus allemand.