# Aphrodite Engine

Aphrodite Engine एक अनुकूलित LLM इनफ़रेंस सर्वर है जो vLLM के ऊपर बनाया गया है, विशेष रूप से क्रिएटिव राइटिंग और रोलप्ले समुदाय के लिए तैयार किया गया है। यह Pascal (GTX 1000 सीरीज़) से शुरू होकर विस्तृत GPU रेंज का समर्थन करता है, जिससे यह पुराने या बजट CLORE.AI GPU सर्वरों पर भाषा मॉडल चलाने के लिए आदर्श विकल्प बन जाता है जहाँ अन्य फ्रेमवर्क विफल हो जाते हैं। Aphrodite Kobold-संगत APIs, Mirostat सैंपलिंग, और उन्नत टेक्स्ट सैंपलिंग एल्गोरिदम जोड़ता है जो मुख्यधारा के सर्विंग फ्रेमवर्क में नहीं मिलते।

{% hint style="success" %}
सभी उदाहरण GPU सर्वरों पर चलाए जा सकते हैं जिन्हें के माध्यम से किराये पर लिया जा सकता है [CLORE.AI मार्केटप्लेस](https://clore.ai/marketplace).
{% endhint %}

## सर्वर आवश्यकताएँ

| पैरामीटर | न्यूनतम                    | अनुशंसित       |
| -------- | -------------------------- | -------------- |
| RAM      | 16 GB                      | 32 GB+         |
| VRAM     | 6 GB                       | 16 GB+         |
| डिस्क    | 40 GB                      | 150 GB+        |
| GPU      | NVIDIA Pascal+ (GTX 1060+) | RTX 3090, A100 |

{% hint style="info" %}
Aphrodite Engine उन कुछ LLM सर्वरों में से एक है जो Pascal-जनरेशन GPU (GTX 10xx सीरीज़) का समर्थन करते हैं। यह पुराने GPU वाले बजट सर्वर्स पर CLORE.AI के लिए इसे आदर्श बनाता है जिनकी किराये की कीमतें कम होती हैं।
{% endhint %}

## CLORE.AI पर त्वरित तैनाती

**Docker इमेज:** `alpindale/aphrodite-engine:latest`

**पोर्ट्स:** `22/tcp`, `2242/http`

**पर्यावरण चर:**

| चर                | उदाहरण                               | विवरण                                |
| ----------------- | ------------------------------------ | ------------------------------------ |
| `HF_TOKEN`        | `hf_xxx...`                          | गेटेड मॉडलों के लिए HuggingFace टोकन |
| `APHRODITE_MODEL` | `mistralai/Mistral-7B-Instruct-v0.3` | लोड करने के लिए मॉडल                 |

## चरण-दर-चरण सेटअप

### 1. CLORE.AI पर एक GPU सर्वर किराए पर लें

Aphrodite का व्यापक GPU समर्थन आपको पर बजट-फ्रेंडली सर्वर्स लेने देता है [CLORE.AI मार्केटप्लेस](https://clore.ai/marketplace):

* **Pascal (GTX 1060–1080 Ti)**: 6–11 GB VRAM — क्वांटाइज़ेशन के साथ छोटे 3B-7B मॉडल चलाएँ
* **Turing (RTX 2000 सीरीज़)**: 8–24 GB VRAM — 7B-13B मॉडल, बेहतर प्रदर्शन
* **Ampere (RTX 3000/A100)**: 24–80 GB VRAM — 30B-70B मॉडल, पूर्ण गति
* **Ada (RTX 4000 सीरीज़)**: 16–24 GB VRAM — सर्वोत्तम प्रदर्शन/लागत अनुपात

### 2. SSH के जरिए कनेक्ट करें

```bash
ssh -p <PORT> root@<SERVER_IP>
```

### 3. Aphrodite Engine इमेज खींचें

```bash
docker pull alpindale/aphrodite-engine:latest
```

### 4. Aphrodite Engine लॉन्च करें

**7B मॉडल के साथ बुनियादी लॉन्च:**

```bash
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /root/models:/root/.cache/huggingface \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model mistralai/Mistral-7B-Instruct-v0.3 \
    --host 0.0.0.0 \
    --port 2242 \
    --max-model-len 4096
```

**HuggingFace टोकन के साथ (Llama 3):**

```bash
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /root/models:/root/.cache/huggingface \
  -e HF_TOKEN=hf_your_token_here \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model meta-llama/Meta-Llama-3-8B-Instruct \
    --host 0.0.0.0 \
    --port 2242 \
    --dtype bfloat16 \
    --max-model-len 8192
```

**GPTQ क्वांटाइज़ेशन के साथ (सीमित VRAM के लिए):**

```bash
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /root/models:/root/.cache/huggingface \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model TheBloke/Mistral-7B-Instruct-v0.2-GPTQ \
    --host 0.0.0.0 \
    --port 2242 \
    --quantization gptq \
    --max-model-len 4096
```

**AWQ क्वांटाइज़ेशन के साथ:**

```bash
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /root/models:/root/.cache/huggingface \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model casperhansen/mistral-7b-instruct-v0.2-awq \
    --host 0.0.0.0 \
    --port 2242 \
    --quantization awq \
    --max-model-len 4096
```

**GGUF मॉडल चला रहे हैं (Aphrodite नैटिवली GGUF का समर्थन करता है):**

```bash
# पहले GGUF फ़ाइल डाउनलोड करें
docker exec -it aphrodite bash -c "
pip install huggingface_hub
python3 -c \"from huggingface_hub import hf_hub_download; hf_hub_download(
    repo_id='TheBloke/Mistral-7B-Instruct-v0.2-GGUF',
    filename='mistral-7b-instruct-v0.2.Q4_K_M.gguf',
    local_dir='/root/models/mistral-gguf'
)\"
"

# फिर GGUF के साथ लॉन्च करें
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /root/models:/models \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model /models/mistral-gguf/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
    --host 0.0.0.0 \
    --port 2242 \
    --tokenizer mistralai/Mistral-7B-Instruct-v0.2
```

### 5. सर्वर सत्यापित करें

```bash
# लॉग्स जांचें
docker logs -f aphrodite

# हेल्थ चेक
curl http://localhost:2242/health

# लोड किए गए मॉडल सूचीबद्ध करें
curl http://localhost:2242/v1/models
```

### 6. CLORE.AI HTTP प्रॉक्सी के माध्यम से पहुंच

CLORE.AI ऑर्डर पैनल एक प्रदान करता है `http_pub` पोर्ट 2242 के लिए URL। इसे अपने क्लाइंट अनुप्रयोगों में उपयोग करें:

```
https://<order-id>-2242.clore.ai/v1
```

***

## उपयोग के उदाहरण

### उदाहरण 1: OpenAI-संगत चैट

```bash
curl http://localhost:2242/v1/chat/completions \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "mistralai/Mistral-7B-Instruct-v0.3",
    "messages": [
      {"role": "system", "content": "आप एक क्रिएटिव लेखक हैं जो फैंटेसी फिक्शन में विशेषज्ञ हैं."},
      {"role": "user", "content": "एक ड्रैगन के बारे में एक छोटी कहानी शुरू करें जो पेंट करना सीखता है."}
    ],
    "max_tokens": 500,
    "temperature": 0.9,
    "top_p": 0.95
  }'
```

### उदाहरण 2: Mirostat के साथ उन्नत सैंपलिंग

Aphrodite लंबी-फ़ॉर्म पाठ के लिए अधिक सुसंगतता हेतु Mirostat सैंपलिंग का समर्थन करता है:

```bash
curl http://localhost:2242/v1/completions \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "mistralai/Mistral-7B-Instruct-v0.3",
    "prompt": "एक साइबरपंक शहर में एक बार,",
    "max_tokens": 400,
    "mirostat_mode": 2,
    "mirostat_tau": 5.0,
    "mirostat_eta": 0.1
  }'
```

### उदाहरण 3: Kobold-संगत API

Aphrodite में KoboldAI-आधारित फ्रंटएंड के साथ उपयोग के लिए Kobold-संगत endpoint शामिल है:

```bash
# Kobold जनरेशन endpoint
curl http://localhost:2242/api/v1/generate \
  -X POST \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "स्पेसशिप हाइपरस्पेस में घुसी,",
    "max_length": 200,
    "temperature": 0.8,
    "top_p": 0.92,
    "rep_pen": 1.15
  }'
```

### उदाहरण 4: कस्टम सैम्पलरों के साथ Python क्लाइंट

```python
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:2242/v1",
    api_key="none",
)

# टेलर्ड सैम्पलरों के साथ क्रिएटिव राइटिंग
response = client.chat.completions.create(
    model="mistralai/Mistral-7B-Instruct-v0.3",
    messages=[
        {
            "role": "user",
            "content": "तारों के बीच की खामोशी के बारे में एक कविता लिखो.",
        }
    ],
    max_tokens=300,
    temperature=1.1,
    top_p=0.95,
    frequency_penalty=0.3,
    presence_penalty=0.2,
)

print(response.choices[0].message.content)
```

### उदाहरण 5: बैच पूर्णताएँ

```python
import requests

BASE_URL = "http://localhost:2242"

prompts = [
    "प्राचीन जादूगर ने अपनी पुस्तक खोली और",
    "नियोन-रोशनी वाली गली में, जासूस ने देखा",
    "पृथ्वी पर आखिरी AI ने रोबोट से कहा:",
]

for prompt in prompts:
    response = requests.post(
        f"{BASE_URL}/v1/completions",
        json={
            "model": "mistralai/Mistral-7B-Instruct-v0.3",
            "prompt": prompt,
            "max_tokens": 150,
            "temperature": 0.85,
            "top_k": 50,
            "top_p": 0.95,
            "repetition_penalty": 1.1,
        },
    )
    result = response.json()
    print(f"Prompt: {prompt}")
    print(f"Continuation: {result['choices'][0]['text']}\n")
```

***

## कॉन्फ़िगरेशन

### मुख्य लॉन्च पैरामीटर

| पैरामीटर                   | डिफ़ॉल्ट    | विवरण                                        |
| -------------------------- | ----------- | -------------------------------------------- |
| `--model`                  | अनिवार्य    | मॉडल आईडी या स्थानीय पथ                      |
| `--host`                   | `127.0.0.1` | बाइंड पता                                    |
| `--port`                   | `2242`      | सर्वर पोर्ट                                  |
| `--dtype`                  | `auto`      | `float16`, `bfloat16`, `float32`             |
| `--quantization`           | none        | `awq`, `gptq`, `squeezellm`, `fp8`           |
| `--max-model-len`          | मॉडल अधिकतम | अधिकतम संदर्भ लंबाई ओवरराइड करें             |
| `--gpu-memory-utilization` | `0.90`      | GPU मेमोरी अंश                               |
| `--tensor-parallel-size`   | `1`         | टेंसर पैरेललिज़्म के लिए GPUs की संख्या      |
| `--max-num-seqs`           | `256`       | अधिकतम समवर्ती अनुक्रम                       |
| `--trust-remote-code`      | false       | कस्टम मॉडल कोड की अनुमति दें                 |
| `--api-keys`               | none        | प्रमाणीकरण के लिए कॉमा-सेपरेटेड API कुंजियाँ |
| `--served-model-name`      | मॉडल नाम    | API प्रतिक्रियाओं के लिए कस्टम नाम           |

### API की प्रमाणीकरण जोड़ना

```bash
python3 -m aphrodite.endpoints.openai.api_server \
  --model mistralai/Mistral-7B-Instruct-v0.3 \
  --host 0.0.0.0 \
  --port 2242 \
  --api-keys "mysecretkey1,mysecretkey2"
```

फिर उपयोग करें `Authorization: Bearer mysecretkey1` अनुरोधों में।

### लोकल मॉडल लोड करना

```bash
# अपने मॉडल निर्देशिका को माउंट करें और उसका संदर्भ दें
docker run -d \
  --name aphrodite \
  --gpus all \
  --ipc host \
  -p 2242:2242 \
  -v /path/to/your/model:/model \
  alpindale/aphrodite-engine:latest \
  python3 -m aphrodite.endpoints.openai.api_server \
    --model /model \
    --host 0.0.0.0 \
    --port 2242
```

***

## प्रदर्शन सुझाव

### 1. अपने GPU के लिए सही क्वांटाइज़ेशन चुनें

| GPU VRAM | 7B मॉडल     | 13B मॉडल       | 30B मॉडल |
| -------- | ----------- | -------------- | -------- |
| 6 GB     | GPTQ/AWQ Q4 | ❌              | ❌        |
| 8 GB     | GPTQ Q4     | GPTQ Q4 (टाइट) | ❌        |
| 12 GB    | Float16     | GPTQ Q4        | ❌        |
| 16 GB    | Float16     | Float16        | GPTQ Q4  |
| 24 GB    | Float16     | Float16        | GPTQ Q4  |
| 48 GB    | Float16     | Float16        | Float16  |

### 2. GPU मेमोरी उपयोग को ट्यून करें

```bash
--gpu-memory-utilization 0.93  # KV कैश को और अधिक सिकोज़ करें
```

कम से शुरू करें और यदि OOM त्रुटियाँ नहीं आती हैं तो बढ़ाएँ।

### 3. Ampere+ GPUs पर bfloat16 का उपयोग करें

```bash
--dtype bfloat16
```

float16 की तुलना में बेहतर संख्यात्मक स्थिरता, समान गति।

### 4. रोलप्ले/क्रिएटिव राइटिंग के लिए अनुकूलित करें

ये सैम्पलर नैरेटिव टेक्स्ट के लिए अच्छी तरह काम करते हैं:

```json
{
  "temperature": 0.85,
  "top_p": 0.92,
  "top_k": 40,
  "repetition_penalty": 1.12,
  "mirostat_mode": 2,
  "mirostat_tau": 5.0
}
```

### 5. Pascal GPU टिप्स (GTX 10xx)

Pascal GPU के लिए, Flash Attention से बचें (समर्थित नहीं है):

```bash
--dtype float16  # यदि NaN त्रुटियाँ हों तो float32 का उपयोग करें
--max-model-len 2048  # मेमोरी बचत के लिए संदर्भ कम करें
```

***

## समस्या निवारण

### समस्या: "CUDA capability sm\_6x not supported"

Pascal GPU के लिए विशेष हैंडलिंग आवश्यक है। उपयोग करें:

```bash
--dtype float16
```

यदि फिर भी विफल हो रहा है, तो जांचें कि क्या इमेज वर्ज़न Pascal को सपोर्ट करता है:

```bash
docker pull alpindale/aphrodite-engine:v0.5.4  # विशिष्ट वर्ज़न आज़माएँ
```

### समस्या: छोटे GPU पर "out of memory"

```bash
--gpu-memory-utilization 0.85
--max-model-len 2048
--quantization gptq  # या awq
```

### समस्या: टोकन जनरेशन धीमा है

* चेक करें कि GPU वास्तव में उपयोग हो रहा है: `nvidia-smi` कन्टेनर के अंदर
* बड़े बैच साइज़ सक्षम करें: `--max-num-seqs 64`
* इनफ़रेंस तेज़ के लिए GPTQ के बजाय AWQ का उपयोग करें

### समस्या: मॉडल नहीं मिला / 404 त्रुटियाँ

हमेशा जांचें कि आपका मॉडल नाम बिल्कुल मेल खाता है:

```bash
curl http://localhost:2242/v1/models
```

अपने अनुरोधों में प्रतिक्रिया से सटीक मॉडल नाम का उपयोग करें।

### समस्या: पुनरावृत्तिपूर्ण आउटपुट

repetition penalty जोड़ें:

```json
{
  "repetition_penalty": 1.15,
  "frequency_penalty": 0.3
}
```

### समस्या: Docker कंटेनर चुपचाप बंद हो जाता है

```bash
docker logs aphrodite 2>&1 | tail -100
# सामान्य कारण: अपर्याप्त VRAM, अवैध मॉडल पथ
```

***

## लिंक

* [GitHub](https://github.com/PygmalionAI/aphrodite-engine)
* [दस्तावेज़ीकरण](https://aphrodite.pygmalion.chat)
* [Docker Hub](https://hub.docker.com/r/alpindale/aphrodite-engine)
* [समर्थित मॉडल](https://github.com/PygmalionAI/aphrodite-engine?tab=readme-ov-file#supported-models)
* [CLORE.AI मार्केटप्लेस](https://clore.ai/marketplace)

***

## Clore.ai GPU सिफारिशें

| उपयोग केस          | सिफारिश की गई GPU | Clore.ai पर अनुमानित लागत |
| ------------------ | ----------------- | ------------------------- |
| डेवलपमेंट/टेस्टिंग | RTX 3090 (24GB)   | \~$0.12/gpu/hr            |
| प्रोडक्शन (7B–13B) | RTX 4090 (24GB)   | \~$0.70/gpu/hr            |
| बड़े मॉडल (70B+)   | A100 80GB / H100  | \~$1.20/gpu/hr            |

> 💡 इस गाइड के सभी उदाहरण तैनात किए जा सकते हैं [Clore.ai](https://clore.ai/marketplace) GPU सर्वरों पर। उपलब्ध GPUs ब्राउज़ करें और घंटे के हिसाब से किराए पर लें — कोई प्रतिबद्धता नहीं, पूर्ण रूट एक्सेस।
