Membangun Agen AI Lokal untuk OSM

Saya menghabiskan 21 hari untuk membangun agen AI lokal. Agen ini mengubah bahasa alami menjadi JSON filter OSM.

Saya ingin ini berjalan sepenuhnya di GPU lokal. Tanpa panggilan API. Tanpa risiko privasi. Tanpa batasan rate limit.

Berikut adalah cara saya membangunnya dan apa yang saya pelajari.

Arsitektur

Saya menggunakan pipeline RAG untuk memberikan konteks kepada model.

• Embeddings: Saya menggunakan bge-small-en-v1.5 untuk mengubah deskripsi tag OSM menjadi vektor. • Database: Saya menyimpan embedding ini di SQLite. • Retrieval: Saat Anda mengajukan pertanyaan, sistem akan menemukan tag OSM dan contoh filter yang paling relevan. • Generation: LLM menerima kueri Anda ditambah contoh yang telah diambil untuk membuat JSON.

Kegagalan

Membangun ini tidaklah mulus. Saya menemui beberapa kendala.

• Bug Stop Token: Hasil percobaan pertama saya kosong. Model menambahkan baris kosong sebelum JSON. Hal ini memicu stop token saya dan memotong output secara prematur. Saya harus menghapus stop token untuk memperbaikinya. • Blind Copying: LLM sering kali menyalin contoh secara persis alih-alih mengadaptasinya. Saya menulis ulang prompt untuk memaksa model mensintesis filter baru. • Kebingungan Domain: Model mencampuradukkan tag maritim dengan tag daratan. Saya menambahkan langkah validasi untuk menyaring tag kandidat berdasarkan relevansi.

Pelajaran yang Didapat

• Hindari stop token: Kecuali Anda yakin, jangan menggunakannya. Mereka sering kali merusak output Anda. • Kualitas data adalah kunci: Melakukan embedding pada kalimat bahasa alami bekerja lebih baik daripada melakukan embedding pada string JSON mentah. • Loop adalah keajaibannya: Saya menambahkan loop sederhana. Jika sebuah filter menghasilkan nol hasil, agen akan memperluas permintaan dan mencoba lagi. Ini mengubah alat statis menjadi sistem yang adaptif.

Hasilnya

Sistem ini berjalan pada satu GPU dengan VRAM kurang dari 8 GB. Sistem ini menangani sebagian besar kueri sederhana dan beradaptasi saat gagal. Masih perlu perbaikan pada negasi kompleks dan sintesis tag, tetapi inti sistemnya sudah berfungsi.

Bagaimana Anda menangani ambiguitas tag dalam alur kerja geospasial Anda?

Sumber: https://dev.to/gisfromscratch/building-a-local-ai-agent-for-osm-21-days-of-iteration-2fc4

Komunitas belajar opsional: https://t.me/GyaanSetuAi