For the complete documentation index, see llms.txt. This page is also available as Markdown.

CLIP

OpenAI의 CLIP 모델을 서버리스 클라우드 API를 통해 사용

OpenAI의 CLIP 이미지와 텍스트 임베딩을 생성하고, 그들 간의 제로샷 유사도 비교를 수행하는 모델을 저희 Serverless Cloud API를 통해 지원합니다. 세 가지 엔드포인트를 제공합니다:

  • /clip/embed_image는 이미지에 대한 임베딩 벡터를 반환합니다

  • /clip/embed_text는 문자열 또는 문자열 목록에 대한 임베딩 벡터를 반환합니다

  • /clip/compare는 대상과 프롬프트 목록 간의 유사도 점수를 반환합니다

임베딩은 캐시하여 분류, 검색, 클러스터링, 의미 검색과 같은 작업에 재사용할 수 있습니다. 더 넓은 사용법에 대한 자세한 내용은 추론 문서.

코드 예시

아래는 이미지와 텍스트 레이블 목록을 비교하는 코드 예제입니다. HTTP 엔드포인트를 직접 호출하려면 curl를 사용하거나, inference-sdk 래퍼.

1

API 키 받기

Roboflow 계정을 만들고, 다음에서 키를 찾으세요. Roboflow API 설정 페이지 에서 다음과 같이 셸에서 사용할 수 있도록 합니다:

export ROBOFLOW_API_KEY="your-key-here"
2

모델 실행

다음을 호출합니다. /clip/compare 엔드포인트를 다음과 함께 curl:

curl --location 'https://serverless.roboflow.com/clip/compare' \
  --header 'Content-Type: application/json' \\
  --data '{
    "api_key": "'"$ROBOFLOW_API_KEY"'",
    "subject": {"type": "url", "value": "https://media.roboflow.com/notebooks/examples/dog.jpeg"},
    "subject_type": "image",
    "prompt": ["a photo of a dog", "a photo of a cat", "a photo of a car"],
    "prompt_type": "text"
  }'
1

API 키 받기

Roboflow 계정을 만들고, 다음에서 키를 찾으세요. Roboflow API 설정 페이지 에서 다음과 같이 셸에서 사용할 수 있도록 합니다:

export ROBOFLOW_API_KEY="your-key-here"
2

의존성 설치

이 패키지는 다음 모델을 호출합니다:

pip install -U inference-sdk supervision
3

모델 실행

비교 실행 (이미지는 여기):

import os
import supervision as sv
from inference_sdk import InferenceHTTPClient

image = sv.load_image_from_url("https://media.roboflow.com/notebooks/examples/dog.jpeg")

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)

result = client.clip_compare(
    subject=image,
    prompt=[
        "a photo of a dog",
        "a photo of a cat",
        "a photo of a car",
    ],
    subject_type="image",
    prompt_type="text",
)

# similarity는 각 프롬프트당 하나씩의 코사인 유사도 점수 목록입니다
print(result["similarity"])

위 코드는 추론 결과를 터미널에 출력합니다:

[0.2726989686489105, 0.19865083694458008, 0.20997387170791626]

추론 속도

지연 시간 측정 기준: Roboflow Inference 1x NVIDIA L4, 배치 크기 1에서 워밍업 후 평균값.

모델
지연 시간(ms)

clip

3.9

측정 기준 embed_image 에서 ViT-B-16 체크포인트(이미지 임베딩만).

설정 api_url 를 배포 대상에 맞게:

  • https://serverless.roboflow.com 서버리스 클라우드 API용입니다.

  • http://localhost:9001 로컬 Inference 서버용.

  • 당신의 전용 배포 비공개 엔드포인트용 URL.

Inference(자가 호스팅)에서 사용

CLIP은 또한 inference Python 패키지를 사용해 전적으로 사용자의 자체 하드웨어에서 실행됩니다. 가중치를 프로세스 내부에서 로드하면 호출당 네트워크 왕복이 없어지며, 검색, 클러스터링 또는 데이터셋 정리를 위해 대규모 이미지 집합을 임베딩할 때 특히 중요합니다.

1

패키지를 설치하세요

2

로컬에서 임베드 및 비교

해당 Clip 클래스는 embed_image, embed_text, 그리고 compare를 제공합니다. 이 예제는 이미지와 프롬프트를 임베드한 다음, 그들의 코사인 유사도를 점수화합니다:

결과는 0과 1 사이입니다: 숫자가 높을수록 이미지와 텍스트가 더 유사합니다.

사용 가능한 체크포인트

model_id 는 CLIP 백본을 선택합니다:

clip/RN50, clip/RN101, clip/RN50x4, clip/RN50x16, clip/RN50x64, clip/ViT-B-32, clip/ViT-B-16, clip/ViT-L-14, clip/ViT-L-14-336px.

SDK 메서드들은 clip_compare, get_clip_image_embeddings, 그리고 get_clip_text_embeddings 를 수락합니다 clip_version 서버를 호출할 때 동일한 체크포인트를 선택하기 위한 인수입니다.

추가 읽을거리

마지막 업데이트

도움이 되었나요?