Tutorial Lengkap Replicate: Menjalankan dan Deploy Model ML via API
Replicate adalah platform cloud yang memungkinkan Anda menjalankan model machine learning melalui API tanpa perlu mengelola infrastruktur GPU sendiri. Dengan Replicate, Anda bisa mengakses ribuan model open-source mulai dari image generation, LLM, speech-to-text, hingga video generation hanya dengan beberapa baris kode.
Platform ini sangat populer di kalangan developer karena kemudahannya: tidak perlu setup server, tidak perlu konfigurasi CUDA, dan model langsung siap digunakan melalui REST API atau Python SDK. Replicate juga menyediakan fitur untuk mendeploy model custom Anda sendiri menggunakan tool bernama Cog.
Dalam tutorial ini, kita akan mempelajari cara menggunakan Replicate mulai dari setup awal, menjalankan prediksi, streaming response, menggunakan webhooks, fine-tuning model, hingga packaging model custom dengan Cog.
Instalasi dan Setup
Membuat Akun dan API Token
Langkah pertama adalah membuat akun di Replicate. Setelah mendaftar, Anda bisa mendapatkan API token dari halaman Account Settings.
# Set API token sebagai environment variable
export REPLICATEAPITOKEN="r8yourapitokenhere"
Instalasi Python SDK
# Instalasi menggunakan pip
pip install replicate
Atau menggunakan uv (recommended)
uv pip install replicate
Verifikasi Instalasi
import replicate
import os
Pastikan token sudah di-set
assert os.environ.get("REPLICATEAPITOKEN"), "Token belum di-set!"
Test koneksi dengan menjalankan model sederhana
output = replicate.run(
"meta/meta-llama-3.1-8b-instruct",
input={"prompt": "Hello, world!"}
)
print("".join(output))
Menjalankan Prediksi (Basic Usage)
Text Generation dengan LLM
Cara paling sederhana untuk menjalankan model di Replicate adalah menggunakan fungsi replicate.run().
import replicate
Menjalankan Llama 3.1 untuk text generation
output = replicate.run(
"meta/meta-llama-3.1-70b-instruct",
input={
"prompt": "Jelaskan konsep machine learning dalam 3 paragraf",
"maxtokens": 512,
"temperature": 0.7,
"topp": 0.9,
"systemprompt": "Kamu adalah asisten AI yang membantu menjelaskan konsep teknologi dalam bahasa Indonesia."
}
)
Output adalah iterator, gabungkan menjadi string
result = "".join(output)
print(result)
Image Generation
import replicate
Generate gambar menggunakan SDXL
output = replicate.run(
"stability-ai/sdxl:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b",
input={
"prompt": "A futuristic city skyline at sunset, cyberpunk style, highly detailed",
"negativeprompt": "blurry, low quality, distorted",
"width": 1024,
"height": 1024,
"numoutputs": 1,
"scheduler": "KEULER",
"numinferencesteps": 30,
"guidancescale": 7.5
}
)
Output berupa list URL gambar
for i, url in enumerate(output):
print(f"Image {i+1}: {url}")
Image to Text (Vision Model)
import replicate
Menggunakan LLaVA untuk image understanding
output = replicate.run(
"yorickvp/llava-v1.6-34b:41ecfbfb261e6c1adf3ad896c9066ca98346996d7c4045c5bc944a79d430f174",
input={
"image": "https://example.com/photo.jpg",
"prompt": "Describe this image in detail"
}
)
result = "".join(output)
print(result)
Speech to Text (Whisper)
import replicate
Transkripsi audio menggunakan Whisper
output = replicate.run(
"openai/whisper:4d50797a6f35677e3f7e36c5b0d0c3c50e8a0b0e4e0e0e0e0e0e0e0e0e0e0e",
input={
"audio": open("recording.mp3", "rb"),
"model": "large-v3",
"language": "id",
"translate": False
}
)
print(output["transcription"])
Prediksi Asinkron
Untuk task yang membutuhkan waktu lama, gunakan prediksi asinkron agar tidak blocking.