

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemples de définitions de tâches neuronales
<a name="ecs-inference-task-def"></a>

## Exemple d'allocation d'appareils gérés
<a name="ecs-inference-task-def-managed"></a>

L'exemple suivant montre une définition de tâche qui demande à tous les appareils Neuron de l'instance à l'aide du `resourceRequirements` paramètre. Cette approche n'est disponible que sur les instances gérées.

```
{
    "family": "ecs-neuron",
    "requiresCompatibilities": ["MANAGED_INSTANCES"],
    "networkMode": "awsvpc",
    "cpu": "8192",
    "memory": "16384",
    "executionRoleArn": "{{${YOUR_EXECUTION_ROLE}}}",
    "containerDefinitions": [
        {
            "name": "neuron-inference",
            "image": "763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-vllm-inference-neuronx:0.11.0-optimum0.4.5-neuronx-py310-sdk2.26.1-ubuntu22.04",
            "essential": true,
            "command": [
                "--model", "{{${YOUR_HUGGING_FACE_MODEL_ID}}}",
                "--port", "8080",
                "--tensor-parallel-size", "2",
                "--allow-non-cached-model"
            ],
            "portMappings": [
                {
                    "containerPort": 8080,
                    "protocol": "tcp"
                }
            ],
            "resourceRequirements": [
                {
                    "type": "NeuronDevice",
                    "value": "ALL"
                }
            ]
        }
    ]
}
```

Dans cet exemple, l'image du conteneur inclut un serveur d'inférence vLLM optimisé pour AWS Neurone. Le point d'entrée de l'image télécharge un modèle depuis HuggingFace, le compile pour Neuron et lance un OpenAI-compatible Serveur API sur le port 8080. Remplacer `{{${YOUR_HUGGING_FACE_MODEL_ID}}}` avec votre HuggingFace ID du modèle.

## Exemple de spécification manuelle de l'appareil
<a name="ecs-inference-task-def-ec2"></a>

L'exemple suivant montre une définition de tâche Linux pour `inf1.xlarge` en utilisant le type de lancement EC2 avec `linuxParameters.devices` pour spécifier les chemins des périphériques Neuron.

```
{
    "family": "ecs-neuron",
    "requiresCompatibilities": ["EC2"],
    "placementConstraints": [
        {
            "type": "memberOf",
            "expression": "attribute:ecs.os-type == linux"
        },
        {
            "type": "memberOf",
            "expression": "attribute:ecs.instance-type == {{inf1.xlarge}}"
        }
    ],
    "executionRoleArn": "{{${YOUR_EXECUTION_ROLE}}}",
    "containerDefinitions": [
        {
            "entryPoint": [
                "/usr/local/bin/entrypoint.sh",
                "--port=8500",
                "--rest_api_port=9000",
                "--model_name=resnet50_neuron",
                "--model_base_path=s3://{{amzn-s3-demo-bucket/resnet50_neuron/}}"
            ],
            "portMappings": [
                {
                    "hostPort": 8500,
                    "protocol": "tcp",
                    "containerPort": 8500
                },
                {
                    "hostPort": 8501,
                    "protocol": "tcp",
                    "containerPort": 8501
                },
                {
                    "hostPort": 0,
                    "protocol": "tcp",
                    "containerPort": 80
                }
            ],
            "linuxParameters": {
                "devices": [
                    {
                        "containerPath": "/dev/neuron0",
                        "hostPath": "/dev/neuron0",
                        "permissions": [
                            "read",
                            "write"
                        ]
                    }
                ],
                "capabilities": {
                    "add": [
                        "IPC_LOCK"
                    ]
                }
            },
            "cpu": 0,
            "memoryReservation": 1000,
            "image": "{{763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-neuron:1.15.4-neuron-py37-ubuntu18.04}}",
            "essential": true,
            "name": "resnet50"
        }
    ]
}
```