

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á.

# Conceitos principais do Hybrid Jobs
<a name="braket-jobs-concepts"></a>

Esta seção explica os principais conceitos da função `AwsQuantumJob.create` fornecida pelo SDK do Amazon Braket Python e o mapeamento para a estrutura do arquivo de contêiner.

Além do arquivo ou arquivos que compõem seu script de algoritmo completo, sua tarefa híbrida pode ter entradas e saídas adicionais. Quando sua tarefa híbrida é iniciada, o Amazon Braket copia as entradas fornecidas como parte da criação da tarefa híbrida no contêiner que executa o script do algoritmo. Quando o trabalho híbrido é concluído, todas as saídas definidas durante o algoritmo são copiadas para o local especificado no Amazon S3.

**nota**  
 As *métricas do algoritmo* são relatadas em tempo real e não seguem esse procedimento de saída.

O Amazon Braket também fornece várias variáveis de ambiente e funções auxiliares para simplificar as interações com entradas e saídas de contêineres. Para obter mais informações, consulte o [pacote braket.jobs](https://amazon-braket-sdk-python.readthedocs.io/en/latest/_apidoc/braket.jobs.html) no *Amazon Braket SDK*. 

**Topics**
+ [Entradas](#braket-jobs-inputs)
+ [Saídas](#braket-jobs-outputs)
+ [Variáveis de ambiente](#braket-jobs-environmental-variables)
+ [funções auxiliares](#braket-jobs-helper-functions)

## Entradas
<a name="braket-jobs-inputs"></a>

 **Dados de entrada**: os dados de entrada podem ser fornecidos ao algoritmo híbrido especificando o arquivo de dados de entrada, que é configurado como um dicionário, com o argumento `input_data`. O usuário define o argumento `input_data` dentro da função `AwsQuantumJob.create` no SDK. Isso copia os dados de entrada para o sistema de arquivos do contêiner no local fornecido pela variável de ambiente `"AMZN_BRAKET_INPUT_DIR"`. Para ver alguns exemplos de como os dados de entrada são usados em um algoritmo híbrido, consulte [QAOA com Amazon Braket Hybrid Jobs PennyLane [e Quantum machine learning nos notebooks Amazon Braket Hybrid Jobs Jupyter](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs.ipynb)](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/2_Using_PennyLane_with_Braket_Hybrid_Jobs/Using_PennyLane_with_Braket_Hybrid_Jobs.ipynb).

**nota**  
Quando os dados de entrada forem grandes (>1 GB), haverá um longo tempo de espera até que o trabalho híbrido seja enviado. Isso se deve ao fato de que os dados de entrada locais serão primeiro carregados em um bucket do S3, depois o caminho do S3 será adicionado à solicitação de trabalho híbrida e, por fim, a solicitação de trabalho híbrida será enviada ao serviço Braket.

 **Hiperparâmetros**: se você passar os `hyperparameters`, eles estarão disponíveis na variável de ambiente `"AMZN_BRAKET_HP_FILE"`.

**nota**  
Para obter mais informações sobre como criar hiperparâmetros e dados de entrada e, em seguida, passar essas informações para o script de trabalho híbrido, consulte a seção [Usar hiperparâmetros](braket-jobs-hyperparameters.md) e esta [página do GitHub](https://github.com/amazon-braket/amazon-braket-examples/blob/main/examples/hybrid_jobs/1_Quantum_machine_learning_in_Amazon_Braket_Hybrid_Jobs/qcbm/qcbm.py).

 **Pontos de verificação**: Para especificar um ponto de verificação `job-arn` cujo você deseja usar em um novo trabalho híbrido, use o comando `copy_checkpoints_from_job`. Esse comando copia os dados do ponto de verificação `checkpoint_configs3Uri` para o novo trabalho híbrido, disponibilizando-os no caminho fornecido pela variável de ambiente `AMZN_BRAKET_CHECKPOINT_DIR` enquanto o trabalho é executado. O padrão é `None`, o que significa que os dados do ponto de verificação de outro trabalho híbrido não serão usados no novo trabalho híbrido.

## Saídas
<a name="braket-jobs-outputs"></a>

 **Tarefas quânticas**: os resultados das tarefas quânticas são armazenados no local `s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/tasks` do S3.

 **Resultados do trabalho**: tudo o que seu script de algoritmo salva no diretório fornecido pela variável de ambiente `"AMZN_BRAKET_JOB_RESULTS_DIR"` é copiado para o local do S3 especificado em `output_data_config`. Se o valor não for especificado, o padrão será. `s3://amazon-braket-<region>-<accountID>/jobs/<job-name>/<timestamp>/data` Fornecemos a função auxiliar do SDK **`save_job_result`**, que você pode usar para armazenar resultados convenientemente na forma de um dicionário quando chamada a partir do seu script de algoritmo.

 **Pontos de verificação**: Se você quiser usar pontos de verificação, poderá salvá-los no diretório fornecido pela variável de ambiente `"AMZN_BRAKET_CHECKPOINT_DIR"`. Você também pode usar `save_job_checkpoint` para invocar a função.

 **Métricas de algoritmo**: você pode definir métricas de algoritmo como parte do seu script de algoritmo que são emitidas para a Amazon CloudWatch e exibidas em tempo real no console do Amazon Braket enquanto sua tarefa híbrida está em execução. Para obter um exemplo de como usar métricas de algoritmo, consulte [Usar Amazon Braket Hybrid Jobs para executar um algoritmo QAOA](braket-jobs-run-qaoa-algorithm.md).

Para obter mais informações sobre como salvar suas saídas de trabalho, consulte [Salvar seus resultados](https://docs.aws.amazon.com/braket/latest/developerguide/braket-jobs-first.html#braket-jobs-save-results) na documentação do Hybrid Jobs. 

## Variáveis de ambiente
<a name="braket-jobs-environmental-variables"></a>

O Amazon Braket fornece várias variáveis de ambiente para simplificar as interações com entradas e saídas de contêineres. O código a seguir lista as variáveis ambientais que Braket usa.
+ `AMZN_BRAKET_INPUT_DIR`— O diretório de dados de entradaopt/braket/input/data.
+ `AMZN_BRAKET_JOB_RESULTS_DIR`— O diretório de saída no opt/braket/model qual gravar os resultados do trabalho.
+ `AMZN_BRAKET_JOB_NAME`: o nome do trabalho.
+ `AMZN_BRAKET_CHECKPOINT_DIR`— O diretório do ponto de verificação.
+ `AMZN_BRAKET_HP_FILE`— O arquivo contendo os hiperparâmetros.
+ `AMZN_BRAKET_DEVICE_ARN`— O ARN (nome do AWS recurso) do dispositivo.
+ `AMZN_BRAKET_OUT_S3_BUCKET`— O bucket de saída do Amazon S3, conforme especificado na solicitação `CreateJob` do `OutputDataConfig`.
+ `AMZN_BRAKET_SCRIPT_ENTRY_POINT`— O ponto de entrada, conforme especificado na solicitação `CreateJob` do `ScriptModeConfig`.
+ `AMZN_BRAKET_SCRIPT_COMPRESSION_TYPE`— O tipo de compressão conforme especificado na solicitação `CreateJob` do `ScriptModeConfig`.
+ `AMZN_BRAKET_SCRIPT_S3_URI`— A localização do script do usuário no Amazon S3, conforme especificado na solicitação `CreateJob` do `ScriptModeConfig`.
+ `AMZN_BRAKET_TASK_RESULTS_S3_URI`— O local do Amazon S3 em que o SDK armazenaria os resultados da tarefa quântica por padrão para o trabalho.
+ `AMZN_BRAKET_JOB_RESULTS_S3_PATH`— O local do Amazon S3 onde os resultados do trabalho seriam armazenados, conforme especificado na solicitação `CreateJob` do `OutputDataConfig`.
+ `AMZN_BRAKET_JOB_TOKEN`— A string que deve ser passada para o parâmetro `jobToken` do `CreateQuantumTask` para tarefas quânticas criadas no contêiner de tarefas.

## funções auxiliares
<a name="braket-jobs-helper-functions"></a>

O Amazon Braket fornece várias funções auxiliares para simplificar as interações com entradas e saídas de contêineres. Essas funções auxiliares seriam chamadas de dentro do script de algoritmo usado para executar seu Hybrid Job. O exemplo a seguir demonstra como utilizá-las.

```
from braket.jobs import get_checkpoint_dir, get_hyperparameters, get_input_data_dir, get_job_device_arn, get_job_name, get_results_dir, save_job_result, save_job_checkpoint, load_job_checkpoint

get_checkpoint_dir() # Get the checkpoint directory
get_hyperparameters() # Get the hyperparameters as strings
get_input_data_dir() # Get the input data directory
get_job_device_arn() # Get the device specified by the hybrid job
get_job_name() # Get the name of the hybrid job.
get_results_dir() # Get the path to a results directory
save_job_result(result_data='data') # Save hybrid job results
save_job_checkpoint(checkpoint_data={'key': 'value'}) # Save a checkpoint
load_job_checkpoint() # Load a previously saved checkpoint
```