Разработка AI Model Marketplace (маркетплейс AI-моделей)
AI Model Marketplace — платформа, где поставщики публикуют ML-модели, а потребители их находят, тестируют и используют через API. Примеры: Hugging Face Hub, AWS Marketplace ML, Replicate. Кастомный маркетплейс нужен для корпоративного B2B рынка или специализированных доменов.
Архитектура платформы
┌─────────────────────────────────────────────────────────┐
│ Provider Portal │
│ [Model Upload] → [Validation Pipeline] → [Publishing] │
│ [Pricing Config] → [Usage Analytics] → [Revenue] │
└─────────────────────────────────────────────────────────┘
↓ (Model Store)
┌─────────────────────────────────────────────────────────┐
│ Discovery Layer │
│ [Search] [Categories] [Tags] [Benchmarks] [Reviews] │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Inference Gateway │
│ [Auth] → [Rate Limiting] → [Model Router] │
│ → [Inference Cluster] → [Response] │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Billing & Analytics │
│ [Token/Request Counting] [Invoice] [Usage Dashboard] │
└─────────────────────────────────────────────────────────┘
Model Registry и публикация
from fastapi import FastAPI, UploadFile
from pydantic import BaseModel
class ModelPublishRequest(BaseModel):
name: str
description: str
task_type: str # text-classification, image-generation, etc.
input_schema: dict
output_schema: dict
pricing_model: str # per_request, per_token, subscription
price_per_unit: float
demo_available: bool = True
tags: list[str]
@app.post("/models/publish")
async def publish_model(
request: ModelPublishRequest,
model_file: UploadFile,
provider = Depends(authenticate_provider)
):
# 1. Валидация модели (безопасность, производительность)
validation_job = await model_validator.submit(model_file)
await validation_job.wait(timeout=3600)
if not validation_job.passed:
raise HTTPException(400, f"Model validation failed: {validation_job.report}")
# 2. Загрузка в registry
model_id = await model_store.upload(
provider_id=provider.id,
model_file=model_file,
metadata=request.dict()
)
# 3. Создание инференс-endpoint
endpoint = await inference_gateway.create_endpoint(
model_id=model_id,
scaling_config={"min_replicas": 0, "max_replicas": 10}
)
# 4. Индексация для поиска
await search_index.add(model_id, request.dict())
return {"model_id": model_id, "endpoint": endpoint.url}
Unified Inference API
Потребители вызывают любую модель через единый API:
@app.post("/v1/models/{model_id}/inference")
async def run_inference(
model_id: str,
request: InferenceRequest,
consumer = Depends(authenticate_consumer)
):
# Проверка баланса
model = await model_registry.get(model_id)
estimated_cost = billing.estimate(request, model.pricing)
if not await billing.check_balance(consumer.id, estimated_cost):
raise HTTPException(402, "Insufficient credits")
# Запуск инференса
result = await inference_gateway.run(model_id, request.inputs)
# Биллинг
actual_cost = billing.compute_actual(result, model.pricing)
await billing.charge(consumer.id, actual_cost)
await analytics.record(consumer.id, model_id, actual_cost)
return result
Benchmarking система
Каждая модель на маркетплейсе имеет стандартные benchmark результаты, позволяющие потребителям сравнивать:
STANDARD_BENCHMARKS = {
"text-classification": ["SST-2", "IMDB", "AG-News"],
"question-answering": ["SQuAD 2.0", "NaturalQuestions"],
"summarization": ["CNN/DailyMail", "XSum"],
"image-classification": ["ImageNet-1K", "CIFAR-100"],
}
async def run_standard_benchmarks(model_id: str, task_type: str):
results = {}
for benchmark in STANDARD_BENCHMARKS[task_type]:
score = await benchmark_runner.run(model_id, benchmark)
results[benchmark] = score
await model_registry.update_benchmarks(model_id, results)
Монетизация для провайдеров
Marketplace берёт комиссию (15-30%) с каждой транзакции. Провайдер получает выплаты еженедельно. Revenue dashboard показывает: количество уникальных потребителей, usage по времени, популярные use cases, revenue attribution по endpoint.
Срок разработки MVP маркетплейса: 3-4 месяца. Полная версия с benchmark системой, review платформой и advanced analytics: 6-8 месяцев.







