Downloads · 30 days
214
7% of all-time downloads
RichardErkhov/markrodrigo_-_Llama-3.2-3B-Instruct-Spatial-SQL-1.0-gguf
markrodrigo_-_Llama-3.2-3B-Instruct-Spatial-SQL-1.0-gguf is a machine learning model from RichardErkhov. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
Downloads · 30 days
214
7% of all-time downloads
All-time downloads
2.9K
Public
Repo size
38.1 GB
Likes
0
Public
Click a slice to open those files.
.gguf44.2 GB · 100%
From the Hugging Face model README
Quantization made by Richard Erkhov.
Llama-3.2-3B-Instruct-Spatial-SQL-1.0 - GGUF
license: llama3.2 base_model: meta-llama/Meta-Llama-3.2-3B language:
ENGLISH ONLY - Use 8b models for alternate languages.
This model, Llama-3.2-3B-Instruct-Spatial-SQL-1.0, is an 3B, narrow use case, text to spatial SQL, lightly fine-tuned model. In general, its primary use case is the Natural Language command adaptation of particular geographic spatial functions as normally defined in pure SQL. Data input should be a combination of an English prefix in the form of a question, and a coordinate prompt injection, likely from an active mapping system application coordinate list. Output is PostGIS spatial SQL.
There are four primary geographic functions released in version 1.0.
Model developer: Mark Rodrigo
Model Architecture: The model is a QLoRA / Supervised Fine Tuning (SFT)
Input: Text plus coordinate prompt injection. </br> Output: PostGIS spatial SQL </br> NOTE: Inputs and outputs are in meters and or geographic decimal degrees WGS 84 coordinates.
| Function | Question Input | Geo Input | SQL Execution Output |
|---|---|---|---|
| Area | Area question | Polygon | Number - Area sq meters |
| Centroid | Center question | Polygon | Point |
| Buffer | Buffer distance | Point | Polygon |
| Length | Length question | Line | Number - Length in meters |
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
<p></p> You are a helpful assistant. You are an expert at PostGIS and Postgresql and SQL and psql. <p></p> <|eot_id|><|start_header_id|>user<|end_header_id|>### Instruction: Write a PostGIS SQL statement for the following.
<p></p>### Input:
<p></p> {input} <p></p>### Response:
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
AREA
<p></p>### Input: What is the area for the polygon? : 'Polygon ((-3.7515154 40.3855551, -3.7514972 40.3856581, -3.7507005 40.3855767, -3.7507167 40.3854722, -3.7515154 40.3855551))'
<p></p>### Response: SELECT ST_Area(geog) As area FROM (select 'Polygon ((-3.7515154 40.3855551, -3.7514972 40.3856581, -3.7507005 40.3855767, -3.7507167 40.3854722, -3.7515154 40.3855551))' :: geography geog) subquery;
<p></p>CENTROID
<p></p>### Input: What is the centroid for the polygon? : 'Polygon ((-3.6934636 40.4808785, -3.6933352 40.4811486, -3.6930125 40.4810598, -3.693141 40.4807897, -3.6934636 40.4808785))'
<p></p>### Response: SELECT ST_AsText(ST_Centroid(geog)) As centroid FROM (select 'Polygon ((-3.6934636 40.4808785, -3.6933352 40.4811486, -3.6930125 40.4810598, -3.693141 40.4807897, -3.6934636 40.4808785))' :: geography geog) subquery;
BUFFER
<p></p>### Input: What is the thousand meter buffer for the following point? : 'Point(-8.7522658 41.3862664)'
<p></p>### Response: SELECT ST_AsText(ST_Buffer(geog, 1000)) as buffer FROM (select 'Point(-8.7522658 41.3862664)' :: geography geog) subquery;
<p></p> LENGTH <p></p>### Input: How long is the line? : 'LINESTRING (-3.6976693 40.4263178, -3.6986082 40.4258729)'
<p></p>### Response: SELECT ST_Length(geog) As length FROM (select 'LINESTRING (-3.6976693 40.4263178, -3.6986082 40.4258729)' :: geography geog) subquery;
<p></p>max context ~ 8,000 or lower
<p></p> top k ~ 100 <p></p> temp ~ .4-.5 or lowerAgents are being considered as a separate project. Agents would mostly be related to pulling the coordinates from a mapping UI, and executing the SQL from responses against a PostGIS database.
https://postgis.net/docs/manual-3.3/PostGIS_Special_Functions_Index.html#PostGIS_GeographyFunctions
More information needed
Custom synthetic
The following hyperparameters were used during training:
| Training Loss | Epoch | Step | Validation Loss |
|---|---|---|---|
| 1.3788 | 5 | 10 | 1.3543 |
| 0.8504 | 5 | 20 | 0.8671 |
| 0.5990 | 5 | 30 | 0.6501 |
| 0.5836 | 5 | 40 | 0.5885 |
| 0.5713 | 5 | 50 | 0.5607 |
| 0.5481 | 5 | 60 | 0.5434 |
| 0.5221 | 5 | 70 | 0.5342 |
| 0.4983 | 5 | 80 | 0.5259 |
| 0.4914 | 5 | 90 | 0.5219 |
| 0.4754 | 5 | 100 | 0.5205 |
Additional thanks to @nicoboss for giving me access to his private supercomputer, enabling me to provide many more quants, at much higher speed, than I would otherwise be able to.