AVIS DE NON-RESPONSABILITÉ Ce projet est BETA et sera expérimental dans un avenir prévisible. Les interfaces et les fonctionnalités sont susceptibles de changer et le projet lui-même pourrait être abandonné. N'utilisez PAS ce logiciel dans un projet/logiciel opérationnel.
La commande ai-models
est utilisée pour exécuter des modèles de prévisions météorologiques basés sur l'IA. Ces modèles doivent être installés indépendamment.
Bien que le code source ai-models
et ses plugins soient disponibles sous licences open sources, certains poids de modèle peuvent être disponibles sous une licence différente. Par exemple, certains modèles mettent leurs poids à disposition sous la licence CC-BY-NC-SA 4.0, ce qui n'autorise pas une utilisation commerciale. Pour plus d'informations, veuillez vérifier la licence associée à chaque modèle sur leur page d'accueil principale, que nous lions depuis chacun des plugins correspondants.
Avant d'utiliser la commande ai-models
, assurez-vous de disposer des conditions préalables suivantes :
Pour installer la commande ai-models
, exécutez la commande suivante :
pip install ai-models
Actuellement, quatre modèles peuvent être installés :
pip install ai-models-panguweather
pip install ai-models-fourcastnet
pip install ai-models-graphcast # Install details at https://github.com/ecmwf-lab/ai-models-graphcast
pip install ai-models-fourcastnetv2
Voir ai-models-panguweather, ai-models-fourcastnet, ai-models-fourcastnetv2 et ai-models-graphcast pour plus de détails sur ces modèles.
Pour exécuter le modèle, assurez-vous qu'il a été installé, puis exécutez simplement :
ai-models < model-name >
Remplacez <model-name>
par le nom du modèle d'IA spécifique que vous souhaitez exécuter.
Par défaut, le modèle sera exécuté pendant un délai de 10 jours (240 heures), en utilisant l'analyse 12Z d'hier provenant des archives MARS du CEPMMT.
Pour produire une prévision sur 15 jours, utilisez l'option --lead-time HOURS
:
ai-models --lead-time 360 < model-name >
Vous pouvez modifier les autres valeurs par défaut à l'aide des options de ligne de commande disponibles, comme décrit ci-dessous.
Les modèles d'IA peuvent fonctionner sur un processeur ; cependant, ils fonctionnent nettement mieux sur un GPU. Une prévision sur 10 jours peut prendre plusieurs heures sur un CPU, mais seulement environ une minute sur un GPU moderne.
Si vous voyez le message suivant lors de l'exécution d'un modèle, cela signifie que le runtime ONNX n'a pas pu trouver les bibliothèques CUDA sur votre système :
[W:onnxruntime:Default, onnxruntime_pybind_state.cc:541 CreateExecutionProviderInstance] Échec de la création de CUDAExecutionProvider. Veuillez faire référence à https://onnxruntime.ai/docs/reference/execution-providers/CUDA-ExecutionProvider.html#requirements pour vous assurer que toutes les dépendances sont respectées.
Pour résoudre ce problème, nous vous suggérons d'installer ai-models
dans un environnement conda et d'installer les bibliothèques CUDA dans cet environnement. Par exemple:
conda create -n ai-models python=3.10
conda activate ai-models
conda install cudatoolkit
pip install ai-models
...
Les modèles d'IA s'appuient sur des poids et d'autres actifs créés pendant l'entraînement. La première fois que vous exécutez un modèle, vous devrez télécharger les poids entraînés et tous les actifs supplémentaires requis.
Pour télécharger les ressources avant d'exécuter un modèle, utilisez la commande suivante :
ai-models --download-assets < model-name >
Les ressources seront téléchargées si nécessaire et stockées dans le répertoire actuel. Vous pouvez fournir un répertoire différent pour stocker les ressources :
ai-models --download-assets --assets < some-directory > < model-name >
Puis, plus tard, utilisez simplement :
ai-models --assets < some-directory > < model-name >
ou
export AI_MODELS_ASSETS= < some-directory >
ai-models < model-name >
Pour une meilleure organisation du répertoire des actifs, vous pouvez utiliser l'option --assets-sub-directory
. Cette option stockera les actifs de chaque modèle dans son propre sous-répertoire dans le répertoire d'actifs spécifié.
Les modèles nécessitent des données d'entrée (conditions initiales) pour être exécutés. Vous pouvez fournir les données d'entrée à l'aide de différentes sources, comme décrit ci-dessous :
Par défaut, ai-models
utilisent l'analyse 12Z d'hier de l'ECMWF, extraite des archives MARS du Centre à l'aide de l'API Web de l'ECMWF. Vous aurez besoin d'un compte ECMWF pour accéder à ce service.
Pour modifier la date ou l'heure, utilisez respectivement les options --date
et --time
:
ai-models --date YYYYMMDD --time HHMM < model-name >
Vous pouvez démarrer les modèles en utilisant les données ERA5 (ECMWF Reanalysis version 5) pour le Copernicus Climate Data Store (CDS). Vous devrez créer un compte sur le CDS. Les données seront téléchargées à l'aide de l'API CDS.
Pour accéder au CDS, ajoutez simplement --input cds
sur la ligne de commande. Veuillez noter que les données ERA5 sont ajoutées au CDS avec un certain retard, vous devrez donc également fournir une date avec --date YYYYMMDD
.
ai-models --input cds --date 20230110 --time 0000 < model-name >
Si vous avez des données d'entrée au format GRIB, vous pouvez fournir le fichier en utilisant l'option --file
:
ai-models --file < some-grib-file > < model-name >
Le fichier GRIB peut contenir plus de champs que ceux requis par le modèle. La commande ai-models
sélectionnera automatiquement les champs nécessaires dans le fichier.
Pour connaître la liste des champs nécessaires à un modèle spécifique comme conditions initiales, utilisez la commande suivante :
ai-models --fields < model-name >
Par défaut, la sortie du modèle sera écrite au format GRIB dans un fichier appelé <model-name>.grib
. Vous pouvez changer le nom du fichier avec l'option --path <file-name>
. Si le chemin que vous spécifiez contient des espaces réservés entre {
et }
, plusieurs fichiers seront créés en fonction des clés écodes. Par exemple:
ai-models --path ' out-{step}.grib ' < model-name >
Cette commande créera un fichier pour chaque pas de temps prévu.
Si vous souhaitez désactiver l'écriture de la sortie dans un fichier, utilisez l'option --output none
.
Il propose les options suivantes :
--help
: Affiche ce message d'aide.--models
: Répertorie tous les modèles installés.--debug
: Active le mode débogage. Cela imprimera des informations supplémentaires sur la console. --input INPUT
: La source d'entrée du modèle. Cela peut être un mars
, cds
ou file
.
--file FILE
: Le fichier spécifique à utiliser comme entrée. Cette option définira --source
sur file
.
--date DATE
: La date d'analyse du modèle. La valeur par défaut est hier.
--time TIME
: Le temps d'analyse du modèle. La valeur par défaut est 1 200.
--output OUTPUT
: La destination de sortie du modèle. Les valeurs sont file
ou none
.--path PATH
: Le chemin pour écrire la sortie du modèle.--lead-time HOURS
: Le nombre d'heures à prévoir. La valeur par défaut est 240 (10 jours).--assets ASSETS
: Spécifie le chemin d'accès au répertoire contenant les actifs du modèle. La valeur par défaut est le répertoire actuel, mais vous pouvez le remplacer en définissant la variable d'environnement $AI_MODELS_ASSETS
.--assets-sub-directory
: Permet d'organiser les actifs dans les sous-répertoires <assets-directory>/<model-name>
.--download-assets
: Télécharge les actifs s'ils n'existent pas.--fields
: Imprime la liste des champs nécessaires à un modèle comme conditions initiales.--expver EXPVER
: La version expérimentale de la sortie du modèle.--class CLASS
: Les métadonnées 'class' de la sortie du modèle.--metadata KEY=VALUE
: métadonnées supplémentaires dans la sortie du modèle Copyright 2022, European Centre for Medium Range Weather Forecasts.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
In applying this licence, ECMWF does not waive the privileges and immunities
granted to it by virtue of its status as an intergovernmental organisation
nor does it submit to any jurisdiction.