Створення локального ШІ-агента для 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
