Limitações e solução de problemas - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Limitações e solução de problemas

A seção a seguir descreve a ajuda para solução de problemas e as limitações que se aplicam ao usar o Amazon SageMaker Canvas. Você pode usar esses tópicos para ajudar a solucionar quaisquer problemas encontrados.

Solução de problemas com a concessão de permissões por meio do console SageMaker

Se você está tendo problemas para conceder permissões básicas ou permissões de Ready-to-use modelos do Canvas ao seu usuário, seu usuário pode ter uma função de AWS IAM execução com mais de uma relação de confiança com outros AWS serviços. Uma relação de confiança é uma política anexada à sua função que define quais entidades principais (usuários, funções, contas ou serviços) podem assumir a função. Por exemplo, você pode encontrar um problema ao conceder permissões adicionais do Canvas ao seu usuário se a função de execução dele tiver uma relação de confiança com a Amazon SageMaker e a Amazon Forecast.

Para corrigir esse problema, escolha uma das opções a seguir.

1. Remova todos os serviços confiáveis, exceto um, da função.

Essa solução exige que você edite a relação de confiança da IAM função do seu perfil de usuário e remova todos os AWS serviços, exceto SageMaker.

Para editar a relação de confiança da sua função de IAM execução, faça o seguinte:

  1. Acesse o IAM console em https://console.aws.amazon.com/iam/.

  2. No painel de navegação do IAM console, escolha Funções. O console exibe as funções de sua conta.

  3. Escolha o nome da função que você deseja modificar e selecione a guia Relações de confiança na página de detalhes.

  4. Escolha Editar política de confiança.

  5. No editor Editar política de confiança, cole o conteúdo a seguir e escolha Atualizar política.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Você também pode atualizar este documento de política usando IAM CLI o. Para obter mais informações, consulte update-trust na Referência da linha de IAM comando.

Agora você pode tentar conceder novamente as permissões básicas do Canvas ou as permissões dos Ready-to-use modelos ao seu usuário.

2. Use uma função diferente com um ou menos serviços confiáveis.

Essa solução exige que você especifique uma IAM função diferente para seu perfil de usuário. Use essa opção se você já tiver uma IAM função que possa ser substituída.

Para especificar um perfil de execução diferente para seu usuário, faça o seguinte:

  1. Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/.

  2. No painel de navegação à esquerda, escolha Configurações do administrador.

  3. Em Configurações do administrador, escolha domínios.

  4. Na lista de domínios, selecione o domínio do qual você deseja ver uma lista de perfis de usuário.

  5. Na página de detalhes do domínio, escolha a guia Perfis de usuário.

  6. Escolha o usuário cujas permissões você deseja editar. Na página Detalhes do usuário, escolha Editar.

  7. Na página Configurações gerais, escolha a lista suspensa Perfil de execução e selecione o perfil que você deseja usar.

  8. Escolha Enviar para salvar suas alterações no perfil do usuário.

Agora, seu usuário deve estar usando uma função de execução com apenas um serviço confiável (SageMaker).

Você pode tentar conceder novamente as permissões básicas do Canvas ou as permissões dos Ready-to-use modelos ao seu usuário.

3. Anexe manualmente a política AWS gerenciada à função de execução em vez de usar o botão nas configurações do SageMaker domínio.

Em vez de usar o botão nas configurações do domínio ou do perfil do usuário, você pode anexar manualmente as políticas AWS gerenciadas que concedem ao usuário as permissões corretas.

Para conceder permissões básicas do Canvas a um usuário, anexe a AmazonSageMakerCanvasFullAccesspolítica. Para conceder permissões aos Ready-to-use modelos de usuário, anexe a AmazonSageMakerCanvasAIServicesAccesspolítica.

Use o procedimento a seguir para anexar uma política AWS gerenciada à sua função:

  1. Acesse o IAM console em https://console.aws.amazon.com/iam/.

  2. Escolha Perfis.

  3. Na caixa de pesquisa, pesquise a IAM função do usuário pelo nome e selecione-a.

  4. Na página de perfilo do usuário, em Permissões, escolha Adicionar permissões.

  5. Da lista suspensa, escolha Anexar políticas.

  6. Pesquise e selecione a política ou políticas que você deseja anexar ao perfil de execução do usuário:

    1. Para conceder as permissões básicas do Canvas, pesquise e selecione a AmazonSageMakerCanvasFullAccesspolítica.

    2. Para conceder permissões aos Ready-to-use modelos, pesquise e selecione a AmazonSageMakerCanvasAIServicesAccesspolítica.

  7. Escolha Adicionar permissões para anexar a política ao perfil.

Depois de anexar uma política AWS gerenciada à função do usuário por meio do IAM console, seu usuário agora deve ter as permissões básicas ou as permissões de Ready-to-use modelos do Canvas.

Solução de problemas com a criação de um aplicativo Canvas devido à falha de espaço

Ao criar um novo aplicativo Canvas, se você encontrar um erro informandoUnable to create app <app-arn> because space <space-arn> is not in InService state, isso indica que a criação do espaço subjacente do Amazon SageMaker Studio falhou. Um espaço Studio é o armazenamento subjacente que hospeda os dados do seu aplicativo Canvas. Para obter mais informações gerais sobre os espaços do Studio, consulteEspaços do Amazon SageMaker Studio. Para obter mais informações sobre a configuração de espaços no Canvas, consulteArmazene dados do aplicativo SageMaker Canvas em seu próprio SageMaker espaço.

Para determinar a causa raiz da falha na criação do espaço, você pode usar o DescribeSpaceAPIpara verificar o FailureReason campo. Para obter mais informações sobre os possíveis status dos espaços e o que eles significam, consulteEntidades e status de SageMaker domínio da Amazon.

Para resolver esse problema, encontre seu domínio no SageMaker console e exclua o espaço com falha listado na mensagem de erro que você recebeu. Para obter etapas detalhadas sobre como encontrar e excluir um espaço, consulte a página Exclua ou interrompa a execução de instâncias, aplicativos e espaços no Studio e siga as instruções para Excluir um espaço do Studio. A exclusão do espaço também exclui todos os aplicativos associados ao espaço. Depois de excluir o espaço, você pode tentar criar seu aplicativo Canvas novamente. O espaço agora deve ser provisionado com sucesso, permitindo que o Canvas seja lançado.

Limitações para colaboração

As seguintes limitações gerais se aplicam quando você está colaborando com cientistas de dados no Amazon SageMaker Studio Classic.

  • Você só pode compartilhar modelos treinados com sucesso do Canvas para o Studio Classic. Da mesma forma, você só pode compartilhar modelos que foram treinados com sucesso no Studio Classic de volta ao Canvas.

  • Você não pode compartilhar modelos de criação rápida do Canvas com o Studio Classic. Você só pode compartilhar modelos de compilação padrão.

  • Você só pode compartilhar uma versão de um modelo de compilação padrão treinado no Canvas. Você pode treinar versões adicionais do seu modelo no Canvas, mas não pode compartilhá-las com o Studio Classic.

  • No Studio Classic, você só pode compartilhar feedback ou compartilhar um modelo atualizado com o Canvas. Você não pode realizar ambas as ações ao mesmo tempo.

  • O limite de tamanho para comentários compartilhados do Studio Classic para o Canvas e do Canvas para o Studio Classic é de 1024 caracteres.

  • Você só pode compartilhar seus modelos Canvas ou Studio Classic com um perfil de usuário diferente. Você não pode compartilhar modelos entre o Canvas e o Studio Classic dentro do seu próprio perfil de usuário.

  • Você não pode compartilhar de um usuário do Canvas para um usuário do Canvas ou de um usuário do Studio Classic para um usuário do Studio Classic.

Também há limitações que se aplicam dependendo do tipo de modelo que você deseja compartilhar. Consulte as seções a seguir para ver as limitações dos modelos de previsão de séries temporais e dos modelos de previsão numérica e categórica.

Limitações para colaborar em modelos de previsão de séries temporais

As limitações a seguir se aplicam quando você está colaborando em modelos de previsão de séries temporais entre o Canvas e o Studio Classic.

  • Você não pode fazer previsões com modelos de previsão de séries temporais no Studio Classic por meio de um botão Compartilhar automatizado. No entanto, você pode criar um bloco de anotações Jupyter e escrever seu próprio código.

  • Para modelos de previsão de séries temporais, você não pode alterar a receita do modelo ou as transformações de dados no Studio Classic. Você só pode fazer as seguintes atualizações nos modelos de previsão de séries temporais no Studio Classic:

    • Você pode atualizar o comprimento do horizonte de previsão.

    • Você pode atualizar o campo de metadados do item, que agrupa seus dados por uma determinada coluna.

    • Você pode atualizar outros campos de dimensão, como especificar uma programação de feriados.

Limitações para colaborar em modelos de predição numérica e categórica

As limitações a seguir se aplicam quando você está colaborando em tipos de modelos de predição numéricos e categóricos entre o Canvas e o Studio Classic.

  • Ao atualizar ou treinar modelos no Studio Classic, se você fechar a guia com o banner de colaboração na parte superior, o fluxo de trabalho do modelo de compartilhamento será encerrado e você perderá seu progresso. Nesse caso, você deve reiniciar o fluxo de trabalho do modelo de compartilhamento na seção Compartilhado comigo na página Modelos compartilhados. Para obter mais informações, consulte Colaborar com cientistas de dados.

  • Ao atualizar modelos no Studio Classic, você não pode alterar a coluna de destino se quiser compartilhar as atualizações do modelo no Canvas. Se você quiser alterar a coluna de destino e treinar novamente o modelo, treine o modelo e use o botão Compartilhar para compartilhar com o Canvas. Para obter mais informações sobre como compartilhar um novo modelo no Canvas, consulte Traga seu próprio modelo para o SageMaker Canvas.

  • Ao atualizar modelos na interface Amazon SageMaker Data Wrangler Recipe no Studio Classic, há limites para quais alterações um usuário do Studio Classic pode aplicar e que o Canvas suporta:

    • Você só pode compartilhar um modelo com o Canvas que tenha sido treinado a partir do último nó em um fluxo de dados linear do Data Wrangler.

    • Somente nós de transformação são compatíveis.

    • Você não pode realizar operações na coluna de Destino.

    • Você não pode atualizar o tipo de dados das colunas.

    • Você não pode atualizar a fonte de dados nem adicionar uma nova fonte de dados.

  • Ao compartilhar um candidato alternativo ao Canvas na página de piloto automático do Studio Classic, você não pode selecionar o modelo na tabela de classificação. Você deve escolher o modelo compartilhado no banner e, em seguida, selecionar uma alternativa na lista. Para obter mais informações, consulte Compartilhar um modelo alternativo com o usuário do Canvas na documentação do Canvas.

  • Somente modelos compatíveis com SageMaker o Neo podem ser compartilhados de volta ao Canvas com sucesso. Os modelos compatíveis são modelos de piloto automático que usam XGBoost MLP algoritmos. Modelos incompatíveis incluem modelos Autopilot que usam o algoritmo linear do aluno.

  • Para transformações de fórmulas personalizadas usando o SparkSQL, o Canvas suporta apenas operações unárias, funções agregadas, a operação de concatenação de strings e a operação Power. Outras operações não são compatíveis.

Limitações para trazer seu próprio modelo (BYOM)

As seguintes limitações gerais se aplicam quando você deseja trazer seu próprio modelo para o SageMaker Canvas.

  • Quando um modelo é compartilhado do Studio Classic para o Canvas, o usuário do Canvas não pode atualizar ou visualizar detalhes no conjunto de dados que foi usado para criar o modelo.

  • Quando um usuário do Canvas deseja executar uma única previsão em um modelo importado, não há restrições de tipo de dados ao atualizar os valores de colunas. Você deve garantir manualmente que, ao atualizar valores para previsões únicas, corresponda ao tipo de dados dos valores existentes.

  • Quando um usuário do Canvas deseja executar previsões em lote em um modelo importado, o Canvas assume que você (o usuário do Canvas) sabe como deve ser o conjunto de dados de entrada esperado. Você deve ter um conjunto de dados com colunas e tipos de dados que correspondam ao conjunto de dados usado para treinar o modelo. Caso contrário, consulte o usuário que compartilhou o modelo com você e importe um conjunto de dados que você possa usar para executar previsões em lote.

  • O aplicativo Canvas usa internamente um endpoint sem servidor para executar previsões e gerar métricas de modelo. O modelo compartilhado com o Canvas deve ser compatível com endpoints sem servidor:

    • O tamanho máximo de memória é de 6144 MB.

    • Ao configurar as chaves de resposta de entrada de inferência em seu contêiner, use a seguinte configuração:

      INFERENCE_INPUT_RESPONSE_KEYS = { "BINARY": ["predicted_label", "probability"], "MULTI_CLASS": ["predicted_label", "probability", "probabilities", "labels"], }
    • Você pode escolher um contêiner SageMaker de inferência fornecido ou trazer seu próprio contêiner de inferência de imagem para ser usado como endpoint. SageMaker fornece contêineres para seus algoritmos integrados e imagens pré-criadas do Docker para algumas das estruturas de aprendizado de máquina mais comuns. Se você estiver trazendo seu próprio contêiner, deverá modificá-lo para funcionar com ele SageMaker. Para obter mais informações sobre como levar seu próprio contêiner, consulte Como adaptar seu próprio contêiner de inferência.

    • As exclusões de recursos para endpoints sem servidor também se aplicam.

  • Para compartilhar um modelo do Studio Classic com o Canvas com sucesso, o Canvas aceita saídas de inferência de modelo no formato abaixo:

    TEXT/CSV

    • Regressão: a resposta de inferência do modelo deve ser uma string de bytes em que cada uma das previsões de saída é separada por \n:

      b'-0.0007884334772825241\n-0.015136942267417908\n0.050063662230968475\n0.02891816757619381\n'
    • Classificação: a resposta de inferência do modelo deve ser uma string de bytes em que cada um dos predicted_label, predicted_probability, probabilities e labels é separado por \n. O exemplo a seguir é para classificação binária:

      b'no,0.9967488050460815,"[0.9967488050460815, 0.003251201706007123]","[\'no\', \'yes\']"\nno,0.9999420642852783,"[0.9999420642852783, 5.793538366560824e-05]","[\'no\', \'yes\']"\nno,0.9999846816062927,"[0.9999846816062927, 1.5326571883633733e-05]","[\'no\', \'yes\']"\nno,0.9999727606773376,"[0.9999727606773376, 2.7267418772680685e-05]","[\'no\', \'yes\']"\n'

      O exemplo a seguir é para classificação multiclasse:

      b'Iris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\nIris-setosa,1.0,"[1.0, 0.0, 0.0]","[\'Iris-setosa\', \'Iris-versicolor\', \'Iris-virginica\']"\n'

    APPLICATION/JSON

    • Regressão: a resposta de inferência do modelo deve ser uma JSON string que contém a prediction chave e seu valor deve ser a lista de previsões de saída:

      let response = { "predictions": [ // First instance prediction. 1.75 // Second instance prediction. 3.25 ] }
    • Classificação: A resposta de inferência do modelo deve ser uma JSON string que contenha a probabilities chave e seu valor deve ser a lista de probabilidades.

      O exemplo a seguir é para classificação binária:

      let response = { "probabilities": [ // First instance prediction. [0.9, 0.1] // Second instance prediction. [0.2, 0.8] ] }

      O exemplo a seguir é para classificação multiclasse:

      let response = { "probabilities": [ // First instance prediction. [0.7, 0.2, 0.1] // Second instance prediction. [0.2, 0.5, 0.3] ] }

Também há limitações que se aplicam dependendo do tipo de modelo que você deseja trazer:

Traga seu próprio modelo da JumpStart

Revise as seguintes informações e limites ao compartilhar um JumpStart modelo com o Canvas.

  • A seguir estão os algoritmos compatíveis para os quais você pode importar modelos para o Canvas. Para obter mais detalhes, consulte a documentação do JumpStart .

    • Classificação tabular: LightGBM,,, AutoGluon -Tabular CatBoostXGBoost, TabTransformer Linear Learner

    • Regressão tabular: LightGBM,,, AutoGluon -Tabular CatBoost,XGBoost, Linear Learner TabTransformer

  • Dentro JumpStart, o botão Compartilhar só é ativado se o modelo estiver pronto para ser compartilhado no Canvas. Se seu modelo treinado não tiver um botão Compartilhar no SageMaker Canvas, seu modelo não é suportadoBYOM.

  • Você deve fornecer conjuntos de dados de treinamento e validação ao treinar o JumpStart modelo. Os conjuntos de dados devem ser armazenados no Amazon S3, e a função de execução dos usuários do Studio Classic e do Canvas deve ter acesso à localização do Amazon S3. Você pode usar o mesmo Amazon S3 URIs para compartilhar os conjuntos de dados de treinamento e validação com o Canvas, ou você pode compartilhar conjuntos de dados diferentes com o mesmo esquema de dados.

    Seu arquivo de dados de treinamento ou validação deve ter a seguinte aparência (em CSV formato). Você deve indexar seus arquivos com a primeira coluna como destino.

    3 1 22 1 1 0 4 4 0 0 38 0 0 1 3 4 1 0 67 0 1 0 1 6 1 0 67 0 0 2 2 6 0 0 40 0 0 2 6 6 2 0 56 1 0 1 2 6
  • Por padrão, JumpStart usa a primeira coluna dos conjuntos de dados de treinamento e validação como destino ao treinar um modelo. A coluna de destino (ou, por padrão, a primeira coluna) dos conjuntos de dados é compartilhada com o Canvas.

  • Você deve fornecer os cabeçalhos das colunas dos conjuntos de dados de treinamento e validação ao treinar o JumpStart modelo. Por padrão, JumpStart só aceita conjuntos de dados sem cabeçalhos de coluna, então você deve adicionar os cabeçalhos das colunas como um arquivo enquanto treina seu modelo. O Amazon S3 URI para o arquivo de cabeçalhos de coluna também é compartilhado com o Canvas. Seu arquivo de cabeçalhos de coluna deve ter a aparência do exemplo a seguir (em CSV formato). A primeira coluna deve ser o destino.

    Segmentation EverMarried Age Graduated WorkExperience SpendingScore FamilySize Var1
  • O trabalho de treinamento em JumpStart deve ser Complete antes que você possa compartilhar com o Canvas.

  • Para problemas de classificação (ou previsão categórica no Canvas), os nomes das classes originais precisam ser fornecidos na seção Configurar o modelo de saída ao compartilhar com o Canvas. A ordem dos nomes da classe deve corresponder ao índice usado no modelo. Seu arquivo de relação de mapeamento deve ter a aparência do exemplo a seguir em CSV formato, em que o índice 0 (o primeiro índice) é mapeado para o nome da classe: A

    A B C D

    Quando o usuário do Canvas visualiza as métricas do modelo no aplicativo Canvas, ele só pode ver o índice de cada classe (0, 1, 2). No entanto, o usuário pode ver os nomes das classes ao visualizar os resultados de uma única previsão.

Traga seu próprio modelo do Autopilot

Revise as seguintes informações e limites ao compartilhar um modelo do Autopilot para o Canvas.

  • Você só pode compartilhar no Canvas modelos que você treinou com sucesso a partir de um trabalho do AutoML com o modo Ensembling ou Auto (no modo Automático HPO, o Autopilot escolhe Ensembling ou HPOmodo com base no tamanho do conjunto de dados de treinamento). Os tipos de problemas do piloto automático atualmente suportados são regressão, classificação multiclasse e classificação binária.

  • Para cada trabalho de piloto automático, você pode escolher qualquer modelo (o melhor modelo ou qualquer outro candidato) para compartilhar no Canvas, um por vez. Você só precisa escolher o botão Compartilhar modelo e, em seguida, especificar os usuários do Canvas com os quais você gostaria de compartilhar o modelo e uma nota.

  • AutoGluon-Modelos tabulares que usam transformadores Data Wrangler para inferência não podem ser compartilhados com o Canvas. Isso ocorre porque os transformadores Data Wrangler fazem com que o modelo use mais de um contêiner.

  • HPOmodelos que não são compatíveis com SageMaker o Neo não podem ser compartilhados com o Canvas com sucesso. Os modelos compatíveis são modelos de piloto automático que usam XGBoost MLP algoritmos. Modelos incompatíveis incluem modelos Autopilot que usam o algoritmo linear do aluno.

Traga seu próprio modelo do Registro do modelo

Revise as seguintes informações e limites ao compartilhar um modelo do Registro do modelo para o Canvas.

  • Ao contrário do botão Compartilhar fornecido por JumpStart, o Model Registry não fornece validação de modelo, então é possível que um modelo registrado compartilhado com sucesso do Studio Classic falhe durante a importação para o Canvas devido à incompatibilidade do modelo. Revise as dicas a seguir antes de compartilhar com o Canvas a partir do Registro do modelo:

    • Use um único contêiner de inferência para seu modelo. Você pode registrar modelos com vários contêineres dentro do AdditionalInferenceSpecificationscampo, mas o Canvas é otimizado apenas para um contêiner de inferência por modelo. Por exemplo, quando você usa um pipeline de inferência e registra vários contêineres no campo AdditionalInferenceSpecifications com vários contêineres de pré-processamento de dados e um contêiner de inferência, por padrão, o primeiro contêiner é selecionado para inferência de modelo no Canvas. Avalie se isso funciona para seu caso de uso se você estiver usando pipelines de machine learning.

    • Use um algoritmo tabular SageMaker integrado com formatos de inferência compatíveis. Os algoritmos de amostra testados com saídas de inferência compatíveis são Autogluon-Tabular, Light e. CatBoost GBM TabTransformer XGBoost Algoritmos como máquinas de fatoração não aceitam CSV como entrada de arquivo, e os formatos de saída de inferência para algoritmos como Linear Learner e K-NN não são suportados pelo Canvas.

    • Você também pode trazer seu próprio contêiner de imagem e compartilhar no Canvas ou modificar SageMaker contêineres pré-construídos.

  • Ao registrar seu modelo em um grupo de pacotes de modelos, lembre-se de fornecer os seguintes atributos com seu contêiner de inferência:

    • Ambiente:

      "{\"SAGEMAKER_CONTAINER_LOG_LEVEL\": \"20\", \"SAGEMAKER_PROGRAM\": \"inference.py\", \"SAGEMAKER_REGION\": \"us-west-2\", \"SAGEMAKER_SUBMIT_DIRECTORY\": \"/opt/ml/model/code\"}"
    • Imagem:

      "s3://sagemaker-us-west-2-<account-id>/model-regression-abalone-2022-10-14-23-02-45/model.tar.gz"
    • ModelDataUrl

      "<account-id>.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1"
  • Você deve fornecer conjuntos de dados de treinamento e validação ao compartilhar o modelo do Registro do modelo para o Canvas. Os conjuntos de dados devem ser armazenados no Amazon S3, e a função de execução dos usuários do Studio Classic e do Canvas deve ter acesso à localização do Amazon S3. Você pode usar o mesmo Amazon S3 URIs para compartilhar os conjuntos de dados de treinamento e validação com o Canvas, ou você pode compartilhar conjuntos de dados diferentes com o mesmo esquema de dados. Os conjuntos de dados devem ter a formatação de entrada exata que alimenta o contêiner de inferência do seu modelo.

  • Você deve fornecer a coluna de destino ao Canvas, ou a primeira coluna do seu conjunto de dados de treinamento/validação será usada por padrão.

  • Na seção Adicionar detalhes do modelo ao compartilhar no Canvas, você pode fornecer na primeira linha seus conjuntos de dados de treinamento e validação como cabeçalhos ou pode especificar os cabeçalhos como um arquivo diferente.

  • Para problemas de classificação (ou previsão categórica no Canvas), os nomes das classes originais precisam ser fornecidos ao compartilhar com o SageMaker Canvas por meio da opção Configurar saídas do modelo. A ordem dos nomes da classe deve corresponder ao índice usado com o modelo compartilhado. O mapeamento pode ser um CSV arquivo no Amazon S3 ou você pode inserir manualmente os nomes das classes.