Lea esto en otros idiomas: 中文.
Este repositorio contiene los servicios centrales de la plataforma FFDL (Fabric for Deep Learning). FFDL es un "tela" del sistema operativo para el aprendizaje profundo. Es una plataforma de colaboración para:

Para saber más sobre los detalles arquitectónicos, lea el documento de diseño. Si está buscando demostraciones, diapositivas, garantías, blogs, seminarios web y otros materiales relacionados con FFDL, busquelas aquí
kubectl : la interfaz de línea de comandos Kubernetes (https://kubernetes.io/docs/tasks/tools/install-kubectl/)helm : The Kubernetes Package Manager (https://helm.sh)docker : la interfaz Docker de comandos (https://www.docker.com/)S3 CLI : la interfaz de línea de comandos para configurar el almacenamiento de su objetoHay múltiples rutas de instalación para instalar FFDL en un clúster Kubernetes existente. A continuación se muestran los pasos para la instalación rápida. Si desea seguir instrucciones paso a paso más detalladas, visite la guía de instalación detallada
helm init antes de ejecutar los siguientes comandos. Para instalar FFDL en cualquier clúster de Kubernetes adecuado, asegúrese de que kubectl apunte al espacio de nombres correcto, luego implementa los servicios de plataforma:
export NAMESPACE=default # If your namespace does not exist yet, please create the namespace `kubectl create namespace $NAMESPACE` before running the make commands below
export SHARED_VOLUME_STORAGE_CLASS= " ibmc-file-gold " # Change the storage class to what's available on your Cloud Kubernetes Cluster.
helm install ibmcloud-object-storage-plugin --name ibmcloud-object-storage-plugin --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE # Configure s3 driver on the cluster
helm install ffdl-helper --name ffdl-helper --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE ,shared_volume_storage_class= $SHARED_VOLUME_STORAGE_CLASS --wait # Deploy all the helper micro-services for ffdl
helm install ffdl-core --name ffdl-core --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE ,lcm.shared_volume_storage_class= $SHARED_VOLUME_STORAGE_CLASS --wait # Deploy all the core ffdl services.Si tiene instalado Kubeadm-Dind en su máquina, use estos comandos para implementar la plataforma FFDL:
export SHARED_VOLUME_STORAGE_CLASS= " "
export NAMESPACE=default
./bin/s3_driver.sh # Copy the s3 drivers to each of the DIND node
helm install ibmcloud-object-storage-plugin --name ibmcloud-object-storage-plugin --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE ,cloud=false
helm install ffdl-helper --name ffdl-helper --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE ,shared_volume_storage_class= $SHARED_VOLUME_STORAGE_CLASS ,localstorage=true --wait
helm install ffdl-core --name ffdl-core --repo https://ibm.github.io/FfDL/helm-charts --set namespace= $NAMESPACE ,lcm.shared_volume_storage_class= $SHARED_VOLUME_STORAGE_CLASS --wait
# Forward the necessary microservices from the DIND cluster to your localhost.
./bin/dind-port-forward.sh Para enviar un trabajo de capacitación de ejemplo simple que se incluye en este repositorio (ver, etc/examples ):
Nota: Para public_ip, coloque una de las IP públicas de su clúster que pueda acceder a los nodeports de su clúster. Puede verificar su IP pública de clúster con
kubectl get nodes -o wide. Para IBM Cloud, puede obtener su IP pública conbx cs workers <cluster_name>.
export PUBLIC_IP= < Cluster Public IP > # Put down localhost if you are running with Kubeadm-DIND
make test-push-data-s3
make test-job-submit La plataforma se envía con un tablero de monitoreo de Grafana simple. La URL se imprime al ejecutar el status de marca de estado.
Consulte la Guía del desarrollador para obtener más detalles.
Si desea eliminar FFDL de su clúster, simplemente use los siguientes comandos.
helm delete --purge ffdl-core ffdl-helperSi desea eliminar el controlador de almacenamiento de su clúster, ejecute:
helm delete --purge ibmcloud-object-storage-plugin Para Kubeadm-Dind, debes matar tus puertos reenviados. Tenga en cuenta que el siguiente comando matará todos los puertos que se crean con kubectl .
kill $( lsof -i | grep kubectl | awk ' {printf $2 " " } ' ) Si glide install falla con un error quejándose de rutas no existentes (por ejemplo, "sin SRC, no puede continuar"), asegúrese de seguir el diseño de directorio de GO estándar (consulte la sección Requisitos previos).
Para eliminar FFDL en su clúster, simplemente ejecute make undeploy
Cuando use la CLI FFDL para entrenar un modelo, asegúrese de que su ruta de directorio no tenga cortes / al final.
Si su trabajo está atascado en la etapa pendiente, puede intentar volver a desplegar el complemento con helm install storage-plugin --set dind=true,cloud=false para Kubeadm-Dind e helm install storage-plugin para el clúster general de Kubernetes. Además, verifique el archivo de manifiesto de su trabajo de capacitación para asegurarse de tener las credenciales correctas de almacenamiento de objetos.
Basado en el trabajo de investigación de IBM en el aprendizaje profundo.
B. Bhattacharjee et al., "IBM Deep Learning Service", en IBM Journal of Research and Development, vol. 61, no. 4, págs. 10: 1-10: 11, julio-septiembre. 1 2017. Https://arxiv.org/abs/1709.05871
Scott Boag, et al. Gestión de ciclo de vida multiframe de múltiples marcas escalable de trabajos de capacitación de aprendizaje profundo, en taller en sistemas ML en NIPS'17, 2017. Http://learningsys.org/nips17/assets/papers/paper_29.pdf