Tutorial Weave: Observabilitas dan Evaluasi Aplikasi LLM dengan Weights & Biases

# Tutorial Weave: Observabilitas dan Evaluasi Aplikasi LLM dengan Weights & Biases Membangun aplikasi berbasis Large Language Model (LLM) semakin mudah, tetapi memantau, men-debug, dan mengevaluasi k...

By Ruby Abdullah · · tutorial
WeaveLLM EvaluationObservabilityWeights & BiasesMLOps

Tutorial Weave: Observabilitas dan Evaluasi Aplikasi LLM dengan Weights & Biases

Membangun aplikasi berbasis Large Language Model (LLM) semakin mudah, tetapi memantau, men-debug, dan mengevaluasi kualitas output-nya tetap menjadi tantangan besar. Bagaimana Anda tahu apakah prompt yang baru memberikan hasil yang lebih baik? Bagaimana melacak setiap panggilan LLM di production? Di sinilah Weave dari Weights & Biases hadir sebagai solusi.

Weave adalah framework open-source untuk tracing, evaluasi, dan monitoring aplikasi LLM. Berbeda dengan W&B tradisional yang fokus pada experiment tracking untuk training model, Weave dirancang khusus untuk siklus hidup aplikasi LLM mulai dari development hingga production.

Dalam tutorial ini, kita akan mempelajari cara menggunakan Weave untuk melacak panggilan LLM, membuat evaluasi otomatis, mengelola dataset, dan memantau aplikasi LLM di production.

Instalasi dan Setup

Instalasi Weave

pip install weave openai

Weave mendukung Python 3.9+ dan terintegrasi dengan berbagai provider LLM seperti OpenAI, Anthropic, Google, Mistral, dan lainnya.

Konfigurasi API Key

Anda memerlukan akun Weights & Biases. Daftar gratis di wandb.ai, lalu dapatkan API key Anda.

export WANDBAPIKEY="your-api-key-here"

export OPENAIAPIKEY="your-openai-key-here"

Inisialisasi Project

import weave

weave.init("my-llm-project")

Setelah inisialisasi, semua operasi yang di-trace akan muncul di dashboard Weave pada platform W&B.

Basic Usage: Tracing LLM Calls

Auto-Tracing dengan Integrasi Built-in

Weave secara otomatis melacak panggilan ke provider LLM populer tanpa perlu kode tambahan.

import weave

from openai import OpenAI

weave.init("tracing-demo")

client = OpenAI()

response = client.chat.completions.create(

model="gpt-4o-mini",

messages=[

{"role": "system", "content": "Kamu adalah asisten yang membantu."},

{"role": "user", "content": "Jelaskan apa itu machine learning dalam 2 kalimat."}

]

)

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

Hanya dengan menambahkan weave.init(), setiap panggilan OpenAI secara otomatis di-trace. Anda bisa melihat input, output, latency, token usage, dan cost di dashboard Weave.

Custom Tracing dengan Decorator @weave.op

Untuk fungsi kustom Anda sendiri, gunakan decorator @weave.op:

import weave

import json

from openai import OpenAI

weave.init("custom-tracing")

client = OpenAI()

@weave.op

def extractentities(text: str) -> dict:

"""Ekstrak entitas dari teks menggunakan LLM."""

response = client.chat.completions.create(

model="gpt-4o-mini",

messages=[

{

"role": "system",

"content": "Ekstrak entitas (orang, tempat, organisasi) dari teks. Kembalikan dalam format JSON."

},

{"role": "user", "content": text}

],

responseformat={"type": "jsonobject"}

)

return json.loads(response.choices[0].message.content)

@weave.op

def processdocument(document: str) -> dict:

"""Proses dokumen: ekstrak entitas dan buat ringkasan."""

entities = extractentities(document)

return {

"entities": entities,

"entitycount": sum(len(v) for v in entities.values() if isinstance(v, list))

}

result = processdocument(

"Joko Widodo bertemu dengan Joe Biden di Jakarta untuk membahas "

"kerjasama ASEAN dan investasi di Indonesia."

)

print(json.dumps(result, indent=2, ensureascii=False))

Decorator @weave.op membuat hierarchical trace, sehingga Anda bisa melihat bagaimana processdocument memanggil extractentities, lengkap dengan input/output di setiap level.

Tracing dengan Metadata Tambahan

Anda bisa menambahkan atribut kustom ke trace untuk mempermudah filtering dan analisis:

import weave

weave.init("metadata-demo")

@weave.op

def classifysentiment(text: str, language: str = "id") -> dict:

response = client.chat.completions.create(

Artikel Terkait

Tutorial Vertex AI Model Monitoring: Observabilitas Model Produksi

Tutorial Lengkap Vertex AI Model Monitoring: Monitoring ML Berkelanjutan Vertex AI Model Monitoring secara otomatis mend...

Tutorial AWS SageMaker Model Monitor: Monitoring Model Produksi

Tutorial Lengkap AWS SageMaker Model Monitor: Monitoring Model ML di Production Amazon SageMaker Model Monitor secara ot...

Tutorial Lengkap Weights & Biases: Experiment Tracking untuk Machine Learning

Tutorial Lengkap Weights & Biases: ML Experiment Tracking dan Visualization Weights & Biases (W&B) adalah platform MLOps...

Tutorial Flyte: Workflow Orchestration untuk Machine Learning dan Data Engineering

Tutorial Flyte: Workflow Orchestration untuk Machine Learning dan Data Engineering Flyte adalah platform workflow orches...