CompactifAI

CompactifAI

CompactifAI는 주요 언어 모델의 고압축 버전을 제공해 최대 70% 낮은 추론 비용, 4배 처리량 향상, 최소 품질 손실(5% 미만)로 저지연 추론을 제공해요. OpenAI 호환 API로 통합이 간단하며, 뛰어난 동시성과 리소스 효율로 초고효율·확장 가능한 AI 애플리케이션을 만들 수 있어요.

출처: 문서

본문

개요 (Overview)

속성 설명
설명 최대 70% 비용 절감과 4배 처리량 향상이 있는 주요 언어 모델의 압축 버전 제공
LiteLLM 라우트 compactifai/ (모델 이름에 이 접두사를 추가 — 예: compactifai/cai-llama-3-1-8b-slim)
공급자 문서 CompactifAI
API 엔드포인트 https://api.compactif.ai/v1
지원 엔드포인트 /chat/completions, /completions

지원되는 OpenAI 파라미터

CompactifAI는 완전히 OpenAI 호환이며 다음 파라미터를 지원해요: stream, stop, temperature, top_p, max_tokens, presence_penalty, frequency_penalty, logit_bias, user, response_format, seed, tools, tool_choice, parallel_tool_calls, extra_headers

API 키 설정 (API Key Setup)

CompactifAI API 키는 AWS Marketplace 구독을 통해 얻을 수 있어요:

  1. AWS Marketplace로 구독
  2. 구독 검증 완료 (24시간 검토 과정)
  3. 제공된 자격 증명으로 MultiverseIAM 대시보드 접근
  4. 대시보드에서 API 키 조회
import os

os.environ["COMPACTIFAI_API_KEY"] = "your-api-key"

사용법 (Usage)

SDK:

from litellm import completion
import os

os.environ['COMPACTIFAI_API_KEY'] = "your-api-key"

response = completion(
    model="compactifai/cai-llama-3-1-8b-slim",
    messages=[
        {"role": "user", "content": "Hello from LiteLLM!"}
    ],
)
print(response)

Proxy:

model_list:
  - model_name: llama-2-compressed
    litellm_params:
      model: compactifai/cai-llama-3-1-8b-slim
      api_key: os.environ/COMPACTIFAI_API_KEY

스트리밍 (Streaming)

from litellm import completion
import os

os.environ['COMPACTIFAI_API_KEY'] = "your-api-key"

response = completion(
    model="compactifai/cai-llama-3-1-8b-slim",
    messages=[
        {"role": "user", "content": "Write a short story"}
    ],
    stream=True,
)

for chunk in response:
    print(chunk)

고급 사용법 (Advanced Usage)

사용자 지정 파라미터

from litellm import completion

response = completion(
    model="compactifai/cai-llama-3-1-8b-slim",
    messages=[{"role": "user", "content": "Explain quantum computing"}],
    temperature=0.7,
    max_tokens=500,
    top_p=0.9,
    stop=["Human:", "AI:"],
)

Function Calling

CompactifAI는 OpenAI 호환 function calling을 지원해요.

from litellm import completion

functions = [
    {
        "name": "get_weather",
        "description": "Get current weather information",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "The city and state"
                }
            },
            "required": ["location"]
        }
    }
]

response = completion(
    model="compactifai/cai-llama-3-1-8b-slim",
    messages=[{"role": "user", "content": "What's the weather in San Francisco?"}],
    tools=[{"type": "function", "function": f} for f in functions],
    tool_choice="auto",
)

비동기 사용법

import asyncio
from litellm import acompletion

async def async_call():
    response = await acompletion(
        model="compactifai/cai-llama-3-1-8b-slim",
        messages=[{"role": "user", "content": "Hello async world!"}]
    )
    return response

# Run async function
response = asyncio.run(async_call())
print(response)

사용 가능한 모델 (Available Models)

CompactifAI는 인기 모델의 압축 버전을 제공해요. 최신 목록은 /models 엔드포인트로 가져올 수 있어요.

import httpx

headers = {"Authorization": f"Bearer {your_api_key}"}
response = httpx.get("https://api.compactif.ai/v1/models", headers=headers)
models = response.json()

일반적인 모델 형식:

  • compactifai/cai-llama-3-1-8b-slim
  • compactifai/mistral-7b-compressed
  • compactifai/codellama-7b-compressed

혜택 (Benefits)

  • 비용 효율: 표준 모델 대비 최대 70% 낮은 추론 비용
  • 고성능: 최소 품질 손실(5% 미만)로 4배 처리량 향상
  • 저지연: 빠른 응답 시간에 최적화
  • 드롭인 교체: 완전한 OpenAI API 호환성
  • 확장 가능: 뛰어난 동시성과 리소스 효율

에러 처리 (Error Handling)

CompactifAI는 표준 OpenAI 호환 에러 응답을 반환해요.

from litellm import completion
from litellm.exceptions import AuthenticationError, RateLimitError

try:
    response = completion(
        model="compactifai/cai-llama-3-1-8b-slim",
        messages=[{"role": "user", "content": "Hello"}]
    )
except AuthenticationError:
    print("Invalid API key")
except RateLimitError:
    print("Rate limit exceeded")

더 알아보기 (Learn more)