다음을 통해 공유


Azure Arc에서 사용하도록 설정된 Edge RAG 미리 보기에 사용할 엔드포인트 만들기

Microsoft에서 제공하는 모델 중 하나 대신 고유한 언어 모델을 사용하려는 경우 Edge RAG 배포에 대해 OpenAI API 호환 엔드포인트를 설정해야 합니다. 이 문서에 포함된 다음 방법 중 하나를 선택하여 엔드포인트를 만듭니다.

엔드포인트를 만든 후 Edge RAG에 대한 확장을 배포 하고 고유한 언어 모델을 추가하도록 선택할 때 엔드포인트를 사용합니다.

중요합니다

Azure Arc를 기반으로 하는 Edge RAG 미리 보기는 현재 PREVIEW 상태입니다. 베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Azure AI Foundry (에이아이 파운드리)

Edge RAG에서 사용자 고유의 모델을 사용하려면 Azure AI Foundry를 사용하여 언어 모델을 배포하고 엔드포인트를 만들 수 있습니다.

  1. Azure AI Foundry이동하여 Azure 계정으로 로그인합니다.

  2. 새 Azure AI Foundry 리소스를 만들거나 기존 리소스로 이동합니다.

  3. Azure AI Foundry 리소스에서 모델 + 엔드포인트를 선택합니다.

  4. 모델 배포>기본 모델 배포를 선택합니다.

  5. 다음과 같이 gpt-4o목록에서 채팅 완성 모델을 선택합니다.

  6. 확인을 선택합니다.

  7. 시나리오에 맞게 다음 필드를 편집합니다.

    분야 설명
    배포 이름 배포 이름을 선택합니다. 기본값은 선택한 모델의 이름입니다.
    배포 유형 배포 유형을 선택합니다. 기본값은 Global Standard입니다.
  8. 선택한 리소스에 배포를 선택합니다.

  9. 배포가 완료되어 상태가성공한 상태가 될 때까지 기다립니다.

  10. 배포된 모델을 선택하여 엔드포인트 및 API 키를 가져옵니다. 예를 들어 엔드포인트는 다음 URL과 같습니다.

    https://<Azure AI Foundry Resource Name>.openai.azure.com/openai/deployments/<Model Deployment Name>/chat/completions?api-version=<API Version>

자세한 내용은 다음 문서를 참조하세요.

KAITO

Azure Kubernetes에서 KAITO(Kubernetes AI Toolchain Operator)를 사용하여 AI 모델을 배포하려면 Kubernetes AI 도구 체인 연산자를 사용하여 Azure Arc에서 사용하도록 설정된 AKS에 AI 모델 배포를 참조하세요.

파운드리 로컬

Foundry Local을 사용하여 AI 모델을 배포하려면 GitHub - microsoft/Foundry-Local을 참조하세요.

올라마 섬

Kubernetes 클러스터에서 Ollama를 언어 모델 엔드포인트로 설정할 수 있습니다. CPU 또는 GPU를 사용합니다.

  1. GPU에서 Ollama를 사용하는 경우 GPU 노드에서 다음 두 가지를 설정해야 합니다. moc-gpunode를 GPU 노드의 이름으로 바꾸십시오.

    kubectl taint nodes <moc-gpunode> ollamasku=ollamagpu:NoSchedule –overwrite
    
    kubectl label node <moc-gpunode> hardware=ollamagpu`
    
  2. 모델에 GPU 또는 CPU를 사용하는지 여부에 따라 다음 코드 조각 중 하나를 사용하여 yaml 파일을 만듭니다.

    • GPU yaml:

      # ollama-deploy.yaml
      
      apiVersion: apps/v1
      kind: Deployment
      metadata:
          name: ollama-deploy
          namespace: default
      spec:
          replicas: 1
          selector:
              matchLabels:
                  app: ollama-deploy
          template:
              metadata:
                  labels:
                      app: ollama-deploy
              spec:
                  affinity:
                      nodeAffinity:
                          requiredDuringSchedulingIgnoredDuringExecution:
                              nodeSelectorTerms:
                              - matchExpressions:
                                  - key: hardware
                                      operator: In
                                      values:
                                      - ollamagpu
                  containers:
                      - name: ollama
                          image: ollama/ollama
                          args: ["serve"]
                          ports:
                              - containerPort: 11434
                          volumeMounts:
                              - name: ollama-data
                                  mountPath: /root/.ollama
                          resources:
                              limits:
                                  nvidia.com/gpu: "1"
                  volumes:
                      - name: ollama-data
                          emptyDir: {}
                  tolerations:
                      - effect: NoSchedule
                          key: ollamasku
                          operator: Equal
                          value: ollamagpu
      
      ---
      apiVersion: v1
      kind: Service
      metadata:
          name: ollama-llm
          namespace: default
      spec:
          selector:
              app: ollama-deploy
          ports:
              - port: 11434
                  targetPort: 11434
                  protocol: TCP
      
    • CPU yaml:

      # ollama-deploy.yaml
      
      apiVersion: apps/v1
      kind: Deployment
      metadata:
          name: ollama-deploy
          namespace: default
      spec:
          replicas: 1
          selector:
              matchLabels:
                  app: ollama-deploy
          template:
              metadata:
                  labels:
                      app: ollama-deploy
              spec:
                  containers:
                      - name: ollama
                          image: ollama/ollama
                          args: ["serve"]
                          ports:
                              - containerPort: 11434
                          volumeMounts:
                              - name: ollama-data
                                  mountPath: /root/.ollama
                  volumes:
                      - name: ollama-data
                          emptyDir: {}
      
      ---
      apiVersion: v1
      kind: Service
      metadata:
          name: ollama-llm
          namespace: default
      spec:
          selector:
              app: ollama-deploy
          ports:
              - port: 11434
                  targetPort: 11434
                  protocol: TCP
      
  3. 다음 yaml 코드 조각을 사용하여 기본 네임스페이스에 Ollama를 배포합니다. 이 코드 조각은 기본 네임스페이스에 Ollama 배포 및 서비스를 만듭니다.

    kubectl apply -f ollama-deploy.yaml
    
  4. 다음 명령 중 하나를 사용하여 모델을 다운로드합니다. 지원되는 최신 모델인 Ollama Search를 확인하세요.

    kubectl exec -n default -it deploy/ollama-deploy -- bash -c "ollama pull <model_name>"
    

    또는 k9s를 사용하여 Pod에 연결하고 ollama Pod 내에서 다음 명령을 실행합니다.

    ollama pull <model_name>
    
  5. Edge RAG 확장 배포를 구성할 때 다음 엔드포인트 값을 사용합니다.

    http://ollama-llm.default.svc.cluster.local:11434/v1/chat/completions

Edge RAG 확장을 배포한 후 다른 네임스페이스에서 모델에 액세스할 수 있는지 확인합니다. arc-rag 네임스페이스의 유추 흐름 Pod에서 다음 curl 명령을 실행합니다.

curl http://ollama-llm.default.svc.cluster.local:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "llama3:8b",
        "messages": [
            { "role": "system", "content": "You are a helpful assistant." },
            { "role": "user", "content": "What is the capital of Japan?" }
        ]
    }'

다음 단계