

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Holen Sie sich Empfehlungen für Modelle mit LoRa-Adaptern
<a name="generative-ai-inference-recommendations-adapters"></a>

Low-Rank Adaptation (LoRA) ist ein parametereffizientes Verfahren zur Feinabstimmung, bei dem ein kleiner Satz von Adaptergewichten auf einem eingefrorenen Basismodell trainiert wird. Sie können viele Adapter, die ein einziges Basismodell verwenden, an einem Endpunkt bedienen. Dies ist kostengünstiger als die Bereitstellung einer separaten Kopie des Modells für jede fein abgestimmte Variante.

Wenn Sie einem Empfehlungsjob Adapter hinzufügen, berechnet SageMaker KI die Größe und führt Benchmarks für eine Bereitstellung mit * mehreren * Adaptern durch. Bei dieser Bereitstellung handelt es sich um ein einzelnes Basismodell mit einem [Inferenzkomponenten](realtime-endpoints-deploy-models.md#inference-components) pro Adapter auf demselben Endpunkt. Die Empfehlungen berücksichtigen den zusätzlichen Speicher, den die Adapter benötigen, sodass SageMaker AI die zurückgegebenen Konfigurationen anhand des Basismodells und der Adapter zusammen validiert.

## Voraussetzungen
<a name="generative-ai-inference-recommendations-adapters-prereqs"></a>

Zusätzlich zu den Anforderungen [Voraussetzungen](generative-ai-inference-recommendations-get-started.md#generative-ai-inference-recommendations-get-started-prereqs) für einen Empfehlungsauftrag benötigen Sie Folgendes, um Adapter einzubeziehen:
+ 1—10 LoRa-Adapter, die jeweils anhand des von Ihnen angegebenen Basismodells trainiert wurden. `ModelSource`
+ Jeder Adapter im PEFT-Format. Der Adapterstandort muss eine `adapter_config.json` Datei mit einem positiven Rang (`r`) und die Adaptergewichtsdateien (`.safetensors`oder`.bin`) enthalten.
+ Alle Adapter werden in einer einzigen Form bereitgestellt: entweder in Amazon S3 oder als registrierte SageMaker KI-Modellpakete. Sie können die beiden Formulare nicht in einem Job kombinieren.

SageMaker AI liest Ihre Adapter mit der IAM-Ausführungsrolle, die Sie übergeben. `RoleArn` Die Rolle muss in der Lage sein, den Amazon S3-Standort jedes Adapters zu lesen (`s3:GetObject`und`s3:ListBucket`). Dies sind dieselben Berechtigungen, die es für Ihre Basismodellartefakte verwendet. Wenn Sie Adapter als Modellpakete bereitstellen, muss `sagemaker:DescribeModelPackage` die Rolle auch für jedes Paket gelten, damit die SageMaker KI den Amazon S3-Standort des Adapters ermitteln kann.

## Anforderungen und Einschränkungen
<a name="generative-ai-inference-recommendations-adapters-restrictions"></a>

Die folgenden Anforderungen und Einschränkungen gelten, wenn Sie einem Empfehlungsjob Adapter hinzufügen:
+ **Ein Quellformular pro Job. **`AdapterSource`ist eine Gewerkschaft. Stellen Sie genau eins von `S3Uris` oder ein`ModelPackageArns`. SageMaker Die KI lehnt einen Job ab, der beide Felder oder keines der Felder festlegt.
+ **Adapter-Rang. ** Der Rang eines Adapters darf 512 überschreiten, den größten LoRa-Rang, den die vLLM Serving Engine unterstützt. Weitere Informationen finden Sie in [Fügen Sie einem Empfehlungsjob Adapter hinzu](#generative-ai-inference-recommendations-adapters-input) dem Hinweis unter.

## Fügen Sie einem Empfehlungsjob Adapter hinzu
<a name="generative-ai-inference-recommendations-adapters-input"></a>

Um Adapter einzubeziehen, fügen Sie das optionale `AdapterSource` Objekt zu Ihrer `CreateAIRecommendationJob` Anfrage hinzu. `AdapterSource`ist eine Union: Stellen Sie genau eines der folgenden Felder ein, wobei jedes Feld eine Liste von 1—10 Adaptereinträgen enthält:

`S3Uris`  
Eine Liste von `{"AdapterId": ..., "S3Uri": ...}` Einträgen. Verwenden Sie dieses Formular für Adapter, die Sie mit Ihrer eigenen oder einer Open-Source-PEFT-Pipeline hergestellt haben. Jedes `S3Uri` ist das Amazon S3-Präfix, das die Adapter `adapter_config.json` - und Gewichtsdateien enthält.

`ModelPackageArns`  
Eine Liste von `{"AdapterId": ..., "ModelPackageArn": ...}` Einträgen. Verwenden Sie dieses Formular für Adapter, die bereits als SageMaker KI-Modellpakete registriert sind, z. B. Adapter, die durch einen SageMaker KI-Feinabstimmungsworkflow erstellt wurden. SageMaker AI liest die Position des Adapterartefakts aus jedem Modellpaket.

Das `AdapterId` ist ein Name, den Sie jedem Adapter zuweisen. Er muss die folgenden Anforderungen erfüllen:
+ Muss innerhalb der Anfrage eindeutig sein.
+ Darf nicht mehr als 63 Zeichen lang sein.
+ Muss dem Muster entsprechen`^[a-zA-Z0-9](-*[a-zA-Z0-9])*$`: Es beginnt und endet mit einem alphanumerischen Zeichen, erlaubt Bindestriche nur zwischen alphanumerischen Zeichen und verwendet keine Unterstriche.

SageMaker AI verwendet den `AdapterId` als Namen der Inferenzkomponente für diesen Adapter. Dieser Name ist auch das Routing-Handle, das Sie verwenden, um Anfragen an den Adapter zu senden, wenn Sie den bereitgestellten Endpunkt aufrufen.

**Python (boto3) — Adapter in Amazon S3 **

```
try:
    response = client.create_ai_recommendation_job(
        AIRecommendationJobName="my-lora-recommendation-job",
        ModelSource={
            "S3": {
                "S3Uri": "s3://amzn-s3-demo-bucket/models/my-base-model/",
            }
        },
        OutputConfig={
            "S3OutputLocation": "s3://amzn-s3-demo-bucket/recommendations/"
        },
        AdapterSource={
            "S3Uris": [
                {"AdapterId": "sql", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/sql/"},
                {"AdapterId": "chat", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/chat/"},
            ]
        },
        PerformanceTarget={
            "Constraints": [
                {"Metric": "throughput"}
            ]
        },
        AIWorkloadConfigIdentifier="my-recommendation-workload",
        RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
    )
    print(response["AIRecommendationJobArn"])
except client.exceptions.ResourceInUse as error:
    print(f"A job with this name already exists: {error}")
except Exception as error:
    print(f"Error creating recommendation job: {error}")
    raise
```

**Python (boto3) — Adapter als Modellpakete **

```
try:
    response = client.create_ai_recommendation_job(
        AIRecommendationJobName="my-lora-recommendation-job",
        ModelSource={
            "S3": {
                "S3Uri": "s3://amzn-s3-demo-bucket/models/my-base-model/",
            }
        },
        OutputConfig={
            "S3OutputLocation": "s3://amzn-s3-demo-bucket/recommendations/"
        },
        AdapterSource={
            "ModelPackageArns": [
                {
                    "AdapterId": "sql",
                    "ModelPackageArn": "arn:aws:sagemaker:us-west-2:111122223333:model-package/my-sql-adapter/1",
                }
            ]
        },
        PerformanceTarget={
            "Constraints": [
                {"Metric": "throughput"}
            ]
        },
        AIWorkloadConfigIdentifier="my-recommendation-workload",
        RoleArn="arn:aws:iam::111122223333:role/ExampleRole",
    )
    print(response["AIRecommendationJobArn"])
except client.exceptions.ResourceInUse as error:
    print(f"A job with this name already exists: {error}")
except Exception as error:
    print(f"Error creating recommendation job: {error}")
    raise
```

**AWS CLI**

```
aws sagemaker create-ai-recommendation-job \
  --ai-recommendation-job-name "my-lora-recommendation-job" \
  --model-source '{"S3": {"S3Uri": "s3://amzn-s3-demo-bucket/models/my-base-model/"}}' \
  --output-config '{"S3OutputLocation": "s3://amzn-s3-demo-bucket/recommendations/"}' \
  --adapter-source '{
    "S3Uris": [
      {"AdapterId": "sql", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/sql/"},
      {"AdapterId": "chat", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/chat/"}
    ]
  }' \
  --performance-target '{"Constraints": [{"Metric": "throughput"}]}' \
  --ai-workload-config-identifier "my-recommendation-workload" \
  --role-arn "arn:aws:iam::111122223333:role/ExampleRole" \
  --region us-west-2
```

**Anmerkung**  
Der Rang (`r`in`adapter_config.json`) eines Adapters darf 512 überschreiten, den größten LoRa-Rang, den die vLLM Serving-Engine unterstützt. SageMaker AI bedient alle Ihre Adapter mit einem einzigen Rang und rundet diesen Rang auf den nächsten Rang auf, der Folgendes vLLM unterstützt: 1, 8, 16, 32, 64, 128, 256, 320 oder 512. SageMaker AI bedient beispielsweise Adapter mit Rängen 4 und 12 auf Rang 16. Wenn der höchste Rang Ihrer Adapter 512 überschreitet, schlägt der Job mit einem Validierungsfehler fehl. Trainieren Sie die betroffenen Adapter mit einem kleineren Rang neu oder lassen Sie sie aus. `AdapterSource`

## Interpretieren Sie die Empfehlungen
<a name="generative-ai-inference-recommendations-adapters-output"></a>

Wenn der Job abgeschlossen ist, rufen Sie an`DescribeAIRecommendationJob`. Zusätzlich zu den unter beschriebenen Feldern enthält [Schritt 3: Empfehlungen überprüfen](generative-ai-inference-recommendations-get-started.md#generative-ai-inference-recommendations-get-started-results) die Antwort adapterspezifische Informationen.

`AdapterSource`  
Die Antwort auf oberster Ebene gibt `AdapterSource` die von Ihnen eingegebene Antwort in derselben Form (oder) wieder. `S3Uris` `ModelPackageArns`

`AdapterDetails`  
Jede Empfehlung im `Recommendations` Array enthält ein `AdapterDetails` Objekt, das alle Adapter in * beiden * Formen auflistet: `S3Uris` und`ModelPackageArns`, eingegeben von. `AdapterId` Wenn Sie Adapter nur als Amazon S3-URIs angegeben haben, registriert SageMaker AI in Ihrem Namen ein Modellpaket für jeden Adapter und gibt dessen ARN hier zurück. Dadurch erhalten Sie ein registriertes, versioniertes Artefakt, mit dem Sie es bereitstellen können.

`DeploymentConfiguration`In jeder Empfehlung wird die auf Inferenzkomponenten basierende Topologie mit mehreren Adaptern beschrieben (das Basismodell plus eine Inferenzkomponente pro Adapter). `ExpectedPerformance`meldet die Benchmark-Metriken für diese Konfiguration.

Das folgende Beispiel zeigt die adapterbezogenen Felder einer `DescribeAIRecommendationJob` Antwort für einen Job, der mit Amazon S3-Adaptern erstellt wurde.

```
{
    "AIRecommendationJobName": "my-lora-recommendation-job",
    "AIRecommendationJobStatus": "Completed",
    "AdapterSource": {
        "S3Uris": [
            {"AdapterId": "sql", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/sql/"},
            {"AdapterId": "chat", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/chat/"}
        ]
    },
    "Recommendations": [
        {
            "AdapterDetails": {
                "S3Uris": [
                    {"AdapterId": "sql", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/sql/"},
                    {"AdapterId": "chat", "S3Uri": "s3://amzn-s3-demo-bucket/adapters/chat/"}
                ],
                "ModelPackageArns": [
                    {"AdapterId": "sql", "ModelPackageArn": "arn:aws:sagemaker:us-west-2:111122223333:model-package/my-lora-recommendation-job-adapters/1"},
                    {"AdapterId": "chat", "ModelPackageArn": "arn:aws:sagemaker:us-west-2:111122223333:model-package/my-lora-recommendation-job-adapters/2"}
                ]
            },
            "DeploymentConfiguration": {
                "InstanceType": "ml.g6e.12xlarge",
                "InstanceCount": 1,
                "CopyCountPerInstance": 2,
                "MinCpuMemoryRequiredInMb": 12288,
                "EnvironmentVariables": {
                    "SAGEMAKER_SHM_SIZE_MB": "2048"
                }
            },
            "ExpectedPerformance": [
                {"Metric": "throughput", "Stat": "average", "Value": "512.0", "Unit": "tokens/second"}
            ]
        }
    ]
}
```

Um einen bereitgestellten Endpunkt mit mehreren Adaptern zu vergleichen oder Adapter miteinander zu vergleichen, zielen Sie in Ihrem Benchmark-Job auf die Inferenzkomponente für jeden Adapter ab. Weitere Informationen finden Sie unter [Vergleichen Sie mehrere LORA-Endpunkte](generative-ai-inference-recommendations-benchmark.md#generative-ai-inference-recommendations-benchmark-multi-lora).