Xinference

Xinference (Xorbits Inference)

https://inference.readthedocs.io/en/latest/index.html

개요 (Overview)

속성 내용
설명 모든 오픈소스 LLM, 이미지 생성 모델 등을 추론으로 실행하는 오픈소스 플랫폼
LiteLLM 제공자 라우트 xinference/
제공자 문서 링크 Xinference ↗
지원 작업 /embeddings, /images/generations

LiteLLM은 Xinference Embedding + Image Generation 호출을 지원해요.

API Base, Key

# env variable
os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"
os.environ['XINFERENCE_API_KEY'] = "anything" #[optional] no api key required

샘플 사용법 - Embedding

from litellm import embedding
import os

os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"
response = embedding(
    model="xinference/bge-base-en",
    input=["good morning from litellm"],
)
print(response)

api_base 파라미터 사용법 (Sample Usage api_base param)

from litellm import embedding
import os

response = embedding(
    model="xinference/bge-base-en",
    api_base="http://127.0.0.1:9997/v1",
    input=["good morning from litellm"],
)
print(response)

이미지 생성 (Image Generation)

LiteLLM Python SDK 사용법

from litellm import image_generation
import os

# xinference image generation call
response = image_generation(
    model="xinference/stabilityai/stable-diffusion-3.5-large",
    prompt="A beautiful sunset over a calm ocean",
    api_base="http://127.0.0.1:9997/v1",
)
print(response)

LiteLLM Proxy Server 사용법

1. config.yaml 설정

model_list:
  - model_name: xinference-sd
    litellm_params:
      model: xinference/stabilityai/stable-diffusion-3.5-large
      api_base: http://127.0.0.1:9997/v1
      api_key: anything
    model_info:
      mode: image_generation

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY

2. 프록시 시작

litellm --config config.yaml

# RUNNING on http://0.0.0.0:4000

3. 테스트

curl --location 'http://0.0.0.0:4000/v1/images/generations' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ***" \
--data '{
    "model": "xinference-sd",
    "prompt": "A beautiful sunset over a calm ocean",
    "n": 1,
    "size": "1024x1024",
    "response_format": "url"
}'

고급 사용법 - 추가 파라미터 포함 (Advanced Usage - With Additional Parameters)

from litellm import image_generation
import os

os.environ['XINFERENCE_API_BASE'] = "http://127.0.0.1:9997/v1"

response = image_generation(
    model="xinference/stabilityai/stable-diffusion-3.5-large",
    prompt="A beautiful sunset over a calm ocean",
    n=1,                           # number of images
    size="1024x1024",             # image size
    response_format="b64_json",   # return format
)
print(response)

지원 이미지 생성 모델 (Supported Image Generation Models)

Xinference는 다양한 stable diffusion 모델을 지원해요. 몇 가지 예시:

모델명 함수 호출
stabilityai/stable-diffusion-3.5-large image_generation(model="xinference/stabilityai/stable-diffusion-3.5-large", prompt="...")
stabilityai/stable-diffusion-xl-base-1.0 image_generation(model="xinference/stabilityai/stable-diffusion-xl-base-1.0", prompt="...")
runwayml/stable-diffusion-v1-5 image_generation(model="xinference/runwayml/stable-diffusion-v1-5", prompt="...")

지원되는 이미지 생성 모델의 전체 목록은 다음을 참고해 주세요: https://inference.readthedocs.io/en/latest/models/builtin/image/index.html

지원 모델 (Supported Models)

https://inference.readthedocs.io/en/latest/models/builtin/embedding/index.html 에 나열된 모든 모델이 지원돼요.

모델명 함수 호출
bge-base-en embedding(model="xinference/bge-base-en", input)
bge-base-en-v1.5 embedding(model="xinference/bge-base-en-v1.5", input)
bge-base-zh embedding(model="xinference/bge-base-zh", input)
bge-base-zh-v1.5 embedding(model="xinference/bge-base-zh-v1.5", input)
bge-large-en embedding(model="xinference/bge-large-en", input)
bge-large-en-v1.5 embedding(model="xinference/bge-large-en-v1.5", input)
bge-large-zh embedding(model="xinference/bge-large-zh", input)
bge-large-zh-noinstruct embedding(model="xinference/bge-large-zh-noinstruct", input)
bge-large-zh-v1.5 embedding(model="xinference/bge-large-zh-v1.5", input)
bge-small-en-v1.5 embedding(model="xinference/bge-small-en-v1.5", input)
bge-small-zh embedding(model="xinference/bge-small-zh", input)
bge-small-zh-v1.5 embedding(model="xinference/bge-small-zh-v1.5", input)
e5-large-v2 embedding(model="xinference/e5-large-v2", input)
gte-base embedding(model="xinference/gte-base", input)
gte-large embedding(model="xinference/gte-large", input)
jina-embeddings-v2-base-en embedding(model="xinference/jina-embeddings-v2-base-en", input)
jina-embeddings-v2-small-en embedding(model="xinference/jina-embeddings-v2-small-en", input)
multilingual-e5-large embedding(model="xinference/multilingual-e5-large", input)

출처: 문서

본문

더 알아보기 (Learn more)