Leia isso em outros idiomas: 中文.
Este repositório contém os principais serviços da plataforma FFDL (Fabric for Deep Learning). O FFDL é um "tecido" operacional para aprendizado profundo. É uma plataforma de colaboração para:

Para saber mais sobre os detalhes da arquitetura, leia o documento de design. Se você está procurando demos, slides, colaterais, blogs, webinars e outros materiais relacionados ao FFDL, encontre -os aqui
kubectl : A interface da linha de comando Kubernetes (https://kubernetes.io/docs/tasks/tools/install-kubectl/)helm : The Kubernetes Package Manager (https://helm.sh)docker : a interface da linha de comando Docker (https://www.docker.com/)S3 CLI : a interface da linha de comando para configurar o armazenamento de seu objetoExistem vários caminhos de instalação para instalar o FFDL em um cluster Kubernetes existente. Abaixo estão as etapas para instalação rápida. Se você quiser seguir instruções mais detalhadas passo a passo, visite o Guia de instalação detalhado
helm init antes de executar os seguintes comandos. Para instalar o FFDL em qualquer cluster de Kubernetes adequado, verifique se kubectl aponta para o espaço para nome certo e implante os serviços da 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.Se você tiver a escada Kubeadm instalada em sua máquina, use esses comandos para implantar a 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 um exemplo de trabalho de treinamento simples que está incluído neste repositório (consulte a pasta etc/examples ):
NOTA: Para public_ip, abaixe um dos seus IP públicos de cluster que pode acessar o Nodeports do seu cluster. Você pode verificar seu IP público de cluster com
kubectl get nodes -o wide. Para a IBM Cloud, você pode obter seu IP público combx 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 A plataforma é enviada com um simples painel de monitoramento de Grafana. O URL é impresso ao executar o status , faça o alvo.
Consulte o Guia do desenvolvedor para obter mais detalhes.
Se você deseja remover o FFDL do seu cluster, basta usar os seguintes comandos.
helm delete --purge ffdl-core ffdl-helperSe você deseja remover o driver de armazenamento do seu cluster, execute:
helm delete --purge ibmcloud-object-storage-plugin Para Kubeadm-Dind, você precisa matar seus portos encaminhados. Observe que o comando abaixo matará todas as portas criadas com kubectl .
kill $( lsof -i | grep kubectl | awk ' {printf $2 " " } ' ) Se glide install falhar com um erro de reclamar de caminhos inexistentes (por exemplo, "sem SRC, não poderá continuar"), siga o layout padrão do diretório Go (consulte a seção Pré-requisitos).
Para remover o FFDL em seu cluster, basta make undeploy
Ao usar a CLI da FFDL para treinar um modelo, verifique se o caminho do seu diretório não tem barras / no final.
Se o seu trabalho estiver preso em estágio pendente, você poderá reimparar o plug-in com helm install storage-plugin --set dind=true,cloud=false para Kubeadm-Dind e helm install storage-plugin para o cluster general Kubernetes. Além disso, verifique seu arquivo de manifesto de trabalho de treinamento para garantir que você tenha as credenciais de armazenamento de objetos corretos.
Com base no trabalho de pesquisa da IBM em aprendizado profundo.
B. Bhattacharjee et al., "IBM Deep Learning Service", no IBM Journal of Research and Development, vol. 61, não. 4, pp. 10: 1-10: 11, julho-setembro. 1 2017. Https://arxiv.org/abs/1709.05871
Scott Boag, et al. Gerenciamento escalável multi-quadro-frame-tenent Gerenciamento de trabalhos de treinamento de aprendizado profundo, em workshop sobre ML Systems em Nips'17, 2017. http://learningsys.org/nips17/assets/papers/paper_29.pdf