DESCARGO DE RESPONSABILIDAD Este proyecto es BETA y será experimental en el futuro previsible. Es probable que las interfaces y la funcionalidad cambien y que el proyecto en sí se descarte. NO utilice este software en ningún proyecto/software que esté operativo.
El comando ai-models
se utiliza para ejecutar modelos de pronóstico del tiempo basados en IA. Estos modelos deben instalarse de forma independiente.
Aunque el código fuente ai-models
y sus complementos están disponibles bajo licencias de código abierto, algunos pesos de modelo pueden estar disponibles bajo una licencia diferente. Por ejemplo, algunos modelos ofrecen sus pesos bajo la licencia CC-BY-NC-SA 4.0, que no permite el uso comercial. Para más información, consulta la licencia asociada a cada modelo en su página de inicio principal, que enlazamos desde cada uno de los plugins correspondientes.
Antes de utilizar el comando ai-models
, asegúrese de tener los siguientes requisitos previos:
Para instalar el comando ai-models
, ejecute el siguiente comando:
pip install ai-models
Actualmente se pueden instalar cuatro modelos:
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
Consulte ai-models-panguweather, ai-models-fourcastnet, ai-models-fourcastnetv2 y ai-models-graphcast para obtener más detalles sobre estos modelos.
Para ejecutar el modelo, asegúrese de que esté instalado y luego simplemente ejecute:
ai-models < model-name >
Reemplace <model-name>
con el nombre del modelo de IA específico que desea ejecutar.
De forma predeterminada, el modelo se ejecutará con un plazo de entrega de 10 días (240 horas), utilizando el análisis 12Z de ayer del archivo MARS del ECMWF.
Para generar un pronóstico de 15 días, use la opción --lead-time HOURS
:
ai-models --lead-time 360 < model-name >
Puede cambiar los demás valores predeterminados utilizando las opciones de línea de comando disponibles, como se describe a continuación.
Los modelos de IA pueden ejecutarse en una CPU; sin embargo, funcionan significativamente mejor en una GPU. Un pronóstico de 10 días puede tardar varias horas en una CPU, pero sólo alrededor de un minuto en una GPU moderna.
Si ve el siguiente mensaje al ejecutar un modelo, significa que el tiempo de ejecución de ONNX no pudo encontrar las bibliotecas CUDA en su sistema:
[W:onnxruntime:Default, onnxruntime_pybind_state.cc:541 CreateExecutionProviderInstance] No se pudo crear CUDAExecutionProvider. Consulte https://onnxruntime.ai/docs/reference/execution-providers/CUDA-ExecutionProvider.html#requirements para asegurarse de que se cumplan todas las dependencias.
Para solucionar este problema, le sugerimos que instale ai-models
en un entorno conda e instale las bibliotecas CUDA en ese entorno. Por ejemplo:
conda create -n ai-models python=3.10
conda activate ai-models
conda install cudatoolkit
pip install ai-models
...
Los modelos de IA se basan en pesas y otros activos creados durante el entrenamiento. La primera vez que ejecute un modelo, deberá descargar los pesos entrenados y cualquier activo adicional requerido.
Para descargar los activos antes de ejecutar un modelo, utilice el siguiente comando:
ai-models --download-assets < model-name >
Los activos se descargarán si es necesario y se almacenarán en el directorio actual. Puede proporcionar un directorio diferente para almacenar los activos:
ai-models --download-assets --assets < some-directory > < model-name >
Luego, más adelante, simplemente usa:
ai-models --assets < some-directory > < model-name >
o
export AI_MODELS_ASSETS= < some-directory >
ai-models < model-name >
Para una mejor organización del directorio de activos, puede utilizar la opción --assets-sub-directory
. Esta opción almacenará los activos de cada modelo en su propio subdirectorio dentro del directorio de activos especificado.
Los modelos requieren datos de entrada (condiciones iniciales) para ejecutarse. Puede proporcionar los datos de entrada utilizando diferentes fuentes, como se describe a continuación:
De forma predeterminada, ai-models
utilizan el análisis 12Z de ayer del ECMWF, obtenido del archivo MARS del Centro utilizando la WebAPI del ECMWF. Necesitará una cuenta ECMWF para acceder a ese servicio.
Para cambiar la fecha u hora, utilice las opciones --date
y --time
, respectivamente:
ai-models --date YYYYMMDD --time HHMM < model-name >
Puede iniciar los modelos utilizando datos ERA5 (ECMWF Reanalysis versión 5) para Copernicus Climate Data Store (CDS). Deberá crear una cuenta en el CDS. Los datos se descargarán utilizando la API CDS.
Para acceder al CDS, simplemente agregue --input cds
en la línea de comando. Tenga en cuenta que los datos de ERA5 se agregan al CDS con un retraso, por lo que también deberá proporcionar una fecha con --date YYYYMMDD
.
ai-models --input cds --date 20230110 --time 0000 < model-name >
Si tiene datos de entrada en formato GRIB, puede proporcionar el archivo usando la opción --file
:
ai-models --file < some-grib-file > < model-name >
El archivo GRIB puede contener más campos de los requeridos por el modelo. El comando ai-models
seleccionará automáticamente los campos necesarios del archivo.
Para conocer la lista de campos necesarios para un modelo específico como condiciones iniciales, utilice el siguiente comando:
ai-models --fields < model-name >
De forma predeterminada, la salida del modelo se escribirá en formato GRIB en un archivo llamado <model-name>.grib
. Puede cambiar el nombre del archivo con la opción --path <file-name>
. Si la ruta que especifica contiene marcadores de posición entre {
y }
, se crearán varios archivos en función de las claves ecocodes. Por ejemplo:
ai-models --path ' out-{step}.grib ' < model-name >
Este comando creará un archivo para cada paso de tiempo previsto.
Si desea deshabilitar la escritura de la salida en un archivo, use la opción --output none
.
Tiene las siguientes opciones:
--help
: Muestra este mensaje de ayuda.--models
: enumera todos los modelos instalados.--debug
: activa el modo de depuración. Esto imprimirá información adicional en la consola. --input INPUT
: La fuente de entrada para el modelo. Puede ser un mars
, cds
o file
.
--file FILE
: El archivo específico que se utilizará como entrada. Esta opción establecerá --source
en file
.
--date DATE
: La fecha de análisis del modelo. El valor predeterminado es ayer.
--time TIME
: el tiempo de análisis del modelo. El valor predeterminado es 1200.
--output OUTPUT
: El destino de salida del modelo. Los valores son file
o none
.--path PATH
: La ruta para escribir la salida del modelo.--lead-time HOURS
: El número de horas a pronosticar. El valor predeterminado es 240 (10 días).--assets ASSETS
: especifica la ruta al directorio que contiene los activos del modelo. El valor predeterminado es el directorio actual, pero puede anularlo configurando la variable de entorno $AI_MODELS_ASSETS
.--assets-sub-directory
: permite organizar activos en los subdirectorios <assets-directory>/<model-name>
.--download-assets
: Descarga los activos si no existen.--fields
: Imprime la lista de campos que necesita un modelo como condiciones iniciales.--expver EXPVER
: La versión experimental de la salida del modelo.--class CLASS
: Los metadatos de 'clase' de la salida del modelo.--metadata KEY=VALUE
: metadatos adicionales en la salida del modelo 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.