Bagian 9–12
Bagian 9–12 dari 71 bagian · Belajar 1
9.Rekayasa Prompt
Rekayasa Prompt adalah perancangan masukan/instruction agar model menghasilkan perilaku yang diinginkan.
9.1 Teknik utama
- Zero-shot.
- Few-shot.
- Role/tugas framing.
- Constraint dan acceptance criteria.
- keluaran schema.
- Delimitation antara instruction dan pengguna data.
- Retrieval/konteks injection.
- Prompt templates.
- Prompt versioning dan evaluasi.
9.2 Message hierarchy
API modern dapat menyediakan beberapa tingkat instruction, misalnya pengembang/sistem/pengguna, tetapi jangan menganggap “sistem prompt selalu tersembunyi” sebagai aturan universal. Struktur, visibility, dan priority bergantung pada penyedia/product.
OpenAI API, misalnya, mendokumentasikan perbedaan instructions, pengembang messages, dan pengguna masukan. Dokumentasi juga menganjurkan pengujian prompt dengan evaluasi suites untuk perubahan produksi.
Rujukan:
10.Structured keluaran dan schema-constrained generasi
Structured keluaran penting ketika keluaran model akan diproses sistem berikutnya.
Contoh target:
{
"customer_id": "string",
"priority": "high|medium|low",
"reason": "string"
}Pendekatan:
- prompt-only formatting;
- JSON mode;
- JSON Schema / schema-constrained keluaran;
- function/pemanggilan alating dengan schema;
- validation + retry/fallback.
OpenAI mendokumentasikan Structured Outputs sebagai mekanisme untuk membuat keluaran mengikuti JSON Schema yang diberikan, sambil tetap mengingatkan bahwa schema compliance tidak berarti nilai di dalam schema otomatis benar secara semantik.
Rujukan:
11.Rekayasa konteks
Prompt hanyalah satu komponen konteks. Rekayasa konteks mengatur seluruh informasi yang diberikan kepada model pada waktu inference.
Menurut Anthropic, konteks dapat mencakup sistem instructions, alat, MCP, external data, message history, dan informasi lain yang diperlukan oleh agen. Fokusnya adalah memilih kumpulan token yang paling berguna dengan memperhatikan keterbatasan jendela konteks dan kualitas perhatian model.
Rujukan: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
11.1 Isi konteks
Context ├── System / Developer instructions ├── User request ├── Conversation state ├── Retrieved documents ├── Tool definitions ├── Tool results ├── Examples ├── Memory └── Runtime state
11.2 Context window ≠ guaranteed recall
Context window adalah kapasitas masukan yang tersedia bagi model sesuai implementasi, tetapi kapasitas token bukan jaminan model akan menggunakan semua informasi secara sama baiknya. Penelitian “Lost in the Middle” menunjukkan performa pengambilan dapat menurun ketika informasi relevan berada di tengah konteks panjang.
Rujukan:
- https://arxiv.org/abs/2307.03172
- https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
11.3 Context pollution
Context pollution adalah masuknya terlalu banyak informasi tidak relevan sehingga sinyal penting menjadi sulit digunakan. Solusi dapat berupa pengambilan yang lebih baik, kompaksi, just-in-time pengambilan, structured notes, atau sub-agen decomposition.
11.4 Compaction
Merangkum state/riwayat yang sudah panjang menjadi representasi yang lebih kecil untuk melanjutkan tugas pada jendela konteks berikutnya.
11.5 Just-in-time pengambilan
Agen menyimpan identifier ringan lalu mengambil informasi ketika diperlukan melalui alat. Pendekatan ini dapat menghindari membawa seluruh dataset ke konteks sejak awal.
Rujukan: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
12.RAG — Retrieval-Augmented Generation
RAG menggabungkan model generatif dengan sumber pengetahuan eksternal yang diambil saat kueri. Paper RAG asli mendeskripsikan penggunaan parametric memori pada model dan non-parametric memori yang diakses melalui retriever/vector index.
Rujukan: https://arxiv.org/abs/2005.11401
12.1 Pipeline dasar
Documents ↓ Parse / Clean ↓ Chunk ↓ Metadata ↓ Embedding / Inverted Index ↓ Vector Store / Search Index User Question ↓ Query Processing ↓ Retrieve ↓ Rerank ↓ Context Assembly ↓ LLM ↓ Answer + Citations / Sources
12.2 Chunking
Chunking memecah dokumen menjadi unit pengambilan. Tidak ada ukuran chunk universal; kualitas perlu dievaluasi terhadap tipe dokumen dan kueri.
Jenis strategi:
- fixed-size;
- sentence-based;
- paragraph/section-based;
- semantic chunking;
- parent-child chunking;
- structure-aware chunking untuk HTML/Markdown/PDF/code.
12.3 Metadata
Metadata dapat mencakup:
- sumber;
- dokumen ID;
- section;
- timestamp;
- author;
- product/service;
- access control labels;
- tenant;
- language;
- version.
Metadata memungkinkan filtering sebelum/selama pengambilan.
12.4 Dense pengambilan / pencarian semantik
Embedding kueri dan dokumen dibandingkan dengan similarity tertentu, misalnya cosine similarity atau distance metric lain yang didukung index.
12.5 Sparse pengambilan / BM25
BM25 merupakan keluarga ranking berbasis term frequency/inverse dokumen frequency yang berguna ketika kecocokan lexical penting, misalnya kode error, nomor serial, nama tabel, atau identifier.
12.6 Hybrid search
Menggabungkan pengambilan padat dan sparse/lexical pengambilan. Tujuannya memperkecil blind spot masing-masing metode.
12.7 Reranking
Retriever tahap pertama biasanya mengambil kandidat. Reranker menilai ulang pasangan kueri–candidate dengan model yang lebih mahal tetapi lebih selektif.
12.8 Query rewriting
Query pengguna dapat dinormalisasi atau diubah menjadi bentuk yang lebih cocok untuk pengambilan. Bentuknya antara lain:
- kueri expansion;
- multi-kueri pengambilan;
- decomposition menjadi sub-kueri;
- hypothetical dokumen generasi;
- metadata-aware penulisan ulang kueri.
12.9 Contextual Retrieval
Anthropic memperkenalkan pendekatan yang menambahkan konteks singkat ke chunk sebelum embedding dan melakukan konteksual BM25. Dalam evaluasi mereka, kombinasi konteksual embedding + konteksual BM25 menurunkan pengambilan tingkat kegagalan top-20 dari 5,7% menjadi 2,9%; tambahan reranking menurunkannya menjadi 1,9% pada eksperimen yang mereka laporkan. Angka ini adalah hasil eksperimen Anthropic pada dataset/konfigurasi mereka, bukan jaminan universal untuk semua RAG.
Rujukan: https://www.anthropic.com/engineering/contextual-retrieval
12.10 Parent-child pengambilan
Chunk kecil digunakan untuk matching yang presisi, tetapi model dapat diberikan parent section/dokumen yang lebih besar untuk menjaga konteks.
12.11 Multi-vector / interaksi akhir
Beberapa pengambilan sistem memakai lebih dari satu representasi atau interaksi kueri-dokumen yang lebih detail daripada satu vector per chunk. Pilihan ini terutama memengaruhi recall, penyimpanan, latensi, dan complexity.
12.12 GraphRAG
GraphRAG menggunakan struktur entitas-relasi dan ringkasan komunitas untuk membantu kueri yang membutuhkan pemahaman global dataset. Microsoft mendokumentasikan indexing yang mencakup entity/relationship extraction, community detection, summaries, dan beberapa mode kueri seperti global/lokal search.
Rujukan:
- https://microsoft.github.io/graphrag/
- https://github.com/microsoft/graphrag
- https://www.microsoft.com/en-us/research/project/graphrag/
12.13 Agenic RAG
Agen dapat memilih kapan harus retrieve, alat mana yang digunakan, atau kapan perlu memperluas pencarian. Ini menambah fleksibilitas tetapi juga menambah latensi, cost, dan permukaan kegagalan.
Anthropic menyarankan membandingkan pre-pengambilan dan just-in-time/agenic pengambilan berdasarkan kebutuhan tugas, bukan menganggap satu pendekatan selalu unggul.
Rujukan: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
12.14 Multimodal RAG
pengetahuan base dapat berisi text, image, tables, audio, video, atau kombinasi metadata. Retrieval dan grounding harus mempertimbangkan modalitas yang relevan; parser dokumen menjadi bagian penting dari kualitas sistem.
12.15 Evaluasi RAG
Pisahkan minimal menjadi:
Retrieval kualitas
- Recall@k
- Precision@k
- MRR
- NDCG
- pengambilan tingkat kegagalan
Generation kualitas
- faithfulness / keterikatan pada sumber
- answer relevance
- citation correctness
- completeness
sistem kualitas
- latensi
- cost
- tingkat kegagalan
- index freshness
- access-control correctness
Inti: jangan mengevaluasi RAG hanya dari “jawabannya terlihat bagus”. Retrieval dan generasi perlu diuji terpisah.