Створення локального ШІ-агента для OSM

Я витратив 21 день на створення локального ШІ-агента. Він перетворює природну мову на JSON-фільтри OSM.

Я хотів, щоб усе працювало повністю на локальному GPU. Жодних викликів API. Жодних ризиків для конфіденційності. Жодних обмежень за частотою запитів.

Ось як я його побудував і чого навчився.

The Architecture

Я використав RAG-конвеєр, щоб надати моделі контекст.

• Embeddings: Я використав bge-small-en-v1.5, щоб перетворити описи тегів OSM на вектори. • Database: Я зберігав ці ембедінги в SQLite. • Retrieval: Коли ви ставите запитання, система знаходить найбільш релевантні теги OSM та приклади фільтрів. • Generation: LLM отримує ваш запит разом із знайденими прикладами для створення JSON.

The Failures

Процес розробки не був гладким. Я зіткнувся з кількома перешкодами.

• Баг із stop token: Мої перші запуски повертали порожні результати. Модель додавала порожній рядок перед JSON. Це активувало мій stop token і обривало вивід. Щоб виправити це, мені довелося видалити stop token. • Сліпе копіювання: LLM часто копіювала приклади дослівно замість того, щоб адаптувати їх. Я переписав промпти, щоб змусити модель синтезувати нові фільтри. • Плутанина в доменах: Модель плутала морські теги з наземними. Я додав етап валідації, щоб фільтрувати потенційні теги за релевантністю.

The Lessons

• Уникайте stop tokens: Якщо ви не впевнені на всі 100%, не використовуйте їх. Вони часто ламають ваш вивід. • Якість даних — понад усе: Ембедінг речень природною мовою працює краще, ніж ембедінг сирих JSON-рядків. • Магія в циклі: Я додав простий цикл. Якщо фільтр повертає нуль результатів, агент розширює запит і пробує знову. Це перетворює статичний інструмент на адаптивну систему.

The Result

Система працює на одному GPU з менш ніж 8 ГБ VRAM. Вона справляється з більшістю простих запитів і адаптується у разі помилок. Їй ще потрібно допрацювати складні заперечення та синтез тегів, але ядро працює.

Як ви вирішуєте проблему неоднозначності тегів у своїх геопросторових робочих процесах?

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

Optional learning community: https://t.me/GyaanSetuAi