cn-sqlite-4b๏ผšไธญๆ–‡้—ฎ้ข˜ โ†’ SQLite ๆŸฅ่ฏข

English | ็ฎ€ไฝ“ไธญๆ–‡

ไธ€ไธช่ƒฝๅœจ่‡ชๅทฑ็”ต่„‘ไธŠ็ฆป็บฟ่ฟ่กŒ็š„ 4B ๅฐๆจกๅž‹๏ผš็ป™ๅฎƒๅปบ่กจ่ฏญๅฅๅ’Œไธ€ๅฅไธญๆ–‡้—ฎ้ข˜๏ผŒๅฎƒๅ†™ๅ‡บ่ƒฝ็›ดๆŽฅๆ‰ง่กŒ็š„ SQLite ๆŸฅ่ฏขใ€‚ๅœจไธ€ไธชไปŽๆฒก่ง่ฟ‡็š„ 14 ๅผ ่กจไธšๅŠกๅบ“ไธŠ็ญ”ๅฏน 64%๏ผŒๆฏ”ๅ‚ๆ•ฐๅคง่ฟ‘ไธ€ๅ€ใ€ไธๅพฎ่ฐƒ็š„ Qwen2.5-Coder-7B ้ซ˜ 36 ไธช็‚น๏ผ›้…ๅˆ ask.py ไฝฟ็”จๆ—ถ๏ผŒๆฒกๆŠŠๆกไผš็›ดๆŽฅ่ฏดๆ˜Ž๏ผŒไธ็กฌ็ป™็ญ”ๆกˆใ€‚

ๆ•ˆๆžœ

ๅฎฝๆพๅ‡†็กฎ็އ๏ผˆๆ‰ง่กŒ็ป“ๆžœๅ’Œๆ ‡ๅ‡†็ญ”ๆกˆไธ€ๆ ทๅฐฑ็ฎ—ๅฏน๏ผŒๅคš่ฟ”ๅ›žๅ‡ ๅˆ—ไนŸ็ฎ—ๅฏน๏ผ‰๏ผŒ5 ไปฝ็Žฐ็”Ÿๆˆ็š„ๆ•ฐๆฎไธŠ้ƒฝ่ฆๅฏน๏ผš

ๆต‹่ฏ•้›† ้ข˜ๆ•ฐ ๅบ•ๅบง Qwen3-4B ็ฌฌไธ€่ฝฎๅพฎ่ฐƒ ่ฟ™ไธ€็‰ˆ Qwen2.5-Coder-7B๏ผˆไธๅพฎ่ฐƒ๏ผ‰
ๅŸŽๅธ‚ๅ…ฌไบค๏ผˆ14 ๅผ ่กจ๏ผŒ่กŒไธšไธๅœจ่ฎญ็ปƒๆ•ฐๆฎ้‡Œ๏ผ‰ 64 26.6% 46.9% 64.1% 28.1%
้›ถๅ”ฎ้šพ้ข˜๏ผˆ12 ๅผ ่กจ๏ผ‰ 100 42% 69% 74% 55%
ๅฅ่บซๆˆฟ๏ผˆ5 ๅผ ่กจ๏ผ‰ 40 75% 92.5% 92.5% 85%
ๅ›พไนฆ้ฆ†๏ผˆ4 ๅผ ่กจ๏ผ‰ 40 80% 90% 92.5% 77.5%
  • ๆฏ”ๅบ•ๅบงๅœจไธ‰ไธช้›†ๅญไธŠ็š„ๆๅ‡ๆ˜พ่‘—๏ผˆ้…ๅฏน McNemar ๆฃ€้ชŒ p < 0.05๏ผ‰๏ผŒๅ›พไนฆ้ฆ† p = 0.125๏ผ›ๆฏ”็ฌฌไธ€่ฝฎๅœจๅ…ฌไบค้›†ไธŠๆ˜พ่‘—๏ผˆp = 0.043๏ผ‰
  • ๅ‡บ่ฎญ็ปƒๆ•ฐๆฎ็š„ DeepSeek ็”จๅŒๆ ท็š„ prompt ๅšๅ…ฌไบค้›†๏ผšdeepseek-chat 89%๏ผŒdeepseek-reasoner 97%ใ€‚่ฟ™ไธชๆจกๅž‹็ฆปๅฎƒ่ฟ˜ๆœ‰่ท็ฆป
  • ๆŽจ็†ๆ—ถ่ฎฉๅฎƒใ€Œ่ท‘ไธ้€šๅฐฑๆ”นใ€ๅคšๅ†™ๅ‡ ๆกๆŠ•็ฅจใ€่ฟ˜่ƒฝๅ†ๆถจ๏ผŒ่งไธ‹้ขใ€ŒๆŽจ็†ๆ—ถ่กฅๆ•‘ใ€ไธ€่Š‚

ๆ–‡ไปถ

ๆ–‡ไปถ ็”จ้€”
adapter_model.safetensorsใ€adapter_config.json LoRA๏ผˆ็บฆ 270MB๏ผ‰๏ผŒๅ ๅœจ Qwen/Qwen3-4B-Instruct-2507 ไธŠ็”จ
cn-sqlite-4b-Q4_K_M.ggufใ€cn-sqlite-4b-Q8_0.gguf LoRA ๅˆๅนถ่ฟ›ๅบ•ๅบงๅŽ็š„้‡ๅŒ–็‰ˆ๏ผŒ็ป™ llama.cpp / Ollama ๆœฌๅœฐ่ท‘๏ผŒๅˆ†ๅˆซ็บฆ 2.5 GB ๅ’Œ 4.3 GB

ๆƒณ่ฆๅˆๅนถๅฅฝ็š„ๅฎŒๆ•ดๆƒ้‡๏ผˆbf16๏ผ‰๏ผŒ็”จๆ•ฐๆฎ้›†ไป“ๅบ“้‡Œ็š„ export_gguf.sh ็ฌฌ 2 ๆญฅ่‡ชๅทฑๅˆๅนถ๏ผŒๅ‡ ๅˆ†้’Ÿใ€‚

ไปฃ็ ๏ผˆask.pyใ€่ฏ„ๆต‹ใ€่ฎญ็ปƒ๏ผ‰ๅœจๆ•ฐๆฎ้›†ไป“ๅบ“ YukiKaze1337/cn-sqlite-sft ็š„ scripts/ ้‡Œใ€‚

็”จๆณ•

prompt ๆ ผๅผๅฟ…้กปๅ’Œ่ฎญ็ปƒๆ—ถไธ€ๆ ท๏ผˆscripts/prompt.py๏ผ‰๏ผš็ณป็ปŸๆ็คบๅ›บๅฎšๆ˜ฏ

ไฝ ๆ˜ฏ SQLite ๆŸฅ่ฏขไธ“ๅฎถใ€‚็”จๆˆทไผš็ป™ไฝ ๅปบ่กจ่ฏญๅฅๅ’Œไธ€ๅฅไธญๆ–‡้—ฎ้ข˜๏ผŒไฝ ่ฆๅ†™ๅ‡บไธ€ๆก่ƒฝๅ›ž็ญ”ๅฎƒ็š„ SQLite ๆŸฅ่ฏขใ€‚ๅช่พ“ๅ‡บ SQL๏ผŒไธ่ฆ่งฃ้‡Šใ€‚

็”จๆˆทๆถˆๆฏ้‡Œๆ”พๅปบ่กจ่ฏญๅฅใ€ๅฏ้€‰็š„ใ€Œ้ƒจๅˆ†ๅญ—ๆฎต็š„ๅ–ๅ€ผใ€ใ€้—ฎ้ข˜๏ผš

ๅปบ่กจ่ฏญๅฅ๏ผš
CREATE TABLE orders (...);

้ƒจๅˆ†ๅญ—ๆฎต็š„ๅ–ๅ€ผ๏ผš
- orders.status๏ผšๅทฒๅ–ๆถˆใ€ๅทฒๅฎŒๆˆใ€ๅพ…ๆ”ฏไป˜
- orders.channel๏ผšAPPใ€็บฟไธŠใ€้—จๅบ—

้—ฎ้ข˜๏ผšไธŠไธชๆœˆ็บฟไธŠๆธ ้“ๅ–ๆถˆไบ†ๅคšๅฐ‘ๅ•๏ผŸ

ใ€Œ้ƒจๅˆ†ๅญ—ๆฎต็š„ๅ–ๅ€ผใ€ๆ˜ฏ็Šถๆ€ใ€็ฑปๅž‹่ฟ™็ฑปๅˆ†็ฑปๅญ—ๆฎตๅœจๅบ“้‡Œๅฎž้™…ๆœ‰็š„ๅ€ผ๏ผŒprompt.values_from_db(conn) ่ƒฝไปŽๅบ“้‡Œ็Žฐๅ–ใ€‚ ไธ็ป™ไนŸ่ƒฝ็”จ๏ผŒไฝ†ๅœจๆฒก่ง่ฟ‡็š„ๅบ“ไธŠไผšๆމๅˆ†๏ผˆๅ…ฌไบค้›† 64.1% โ†’ 54.7%๏ผ‰๏ผŒๅ› ไธบๆจกๅž‹ๅพ—็Œœๅบ“้‡Œๅญ˜็š„ๆ˜ฏ 'ๅทฒๅฎŒๆˆ' ่ฟ˜ๆ˜ฏ 'completed'ใ€‚

ๆœ€็œไบ‹็š„ๆ˜ฏ็”จๆ•ฐๆฎ้›†ไป“ๅบ“้‡Œ็š„ scripts/ask.py๏ผŒๅปบ่กจ่ฏญๅฅใ€ๅ–ๅ€ผ้ƒฝไปŽๅบ“้‡Œ็Žฐ่ฏป๏ผŒๅบ“ไปฅๅช่ฏปๆ–นๅผๆ‰“ๅผ€๏ผŒ้ป˜่ฎคๅผ€ๅ‡บ้”™้‡ๅ†™๏ผš

python scripts/ask.py --db shop.sqlite --model Qwen/Qwen3-4B-Instruct-2507 --adapter YukiKaze1337/cn-sqlite-4b \
  --question "ไธŠไธชๆœˆ็บฟไธŠๆธ ้“ๅ–ๆถˆไบ†ๅคšๅฐ‘ๅ•๏ผŸ"

็”จ transformers ่‡ชๅทฑ่ฐƒ๏ผš

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
from prompt import build, values_from_db          # ๆ•ฐๆฎ้›†ไป“ๅบ“ scripts/prompt.py

tok = AutoTokenizer.from_pretrained("YukiKaze1337/cn-sqlite-4b")
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B-Instruct-2507", torch_dtype="auto", device_map="auto")
model = PeftModel.from_pretrained(base, "YukiKaze1337/cn-sqlite-4b").merge_and_unload()
msgs = build(ddl, "ไธŠไธชๆœˆ็บฟไธŠๆธ ้“ๅ–ๆถˆไบ†ๅคšๅฐ‘ๅ•๏ผŸ", values_from_db(conn))   # ddl ๆ˜ฏๅปบ่กจ่ฏญๅฅ๏ผŒconn ๆ˜ฏ sqlite3 ่ฟžๆŽฅ
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)
print(tok.decode(model.generate(ids, max_new_tokens=512, do_sample=False)[0][ids.shape[1]:], skip_special_tokens=True))

็”จ Ollama / llama.cpp ่ท‘ GGUF ๆ—ถ๏ผŒ็ณป็ปŸๆ็คบ่ฆ่ฎพๆˆไธŠ้ข้‚ฃๅฅ๏ผŒ็”จๆˆทๆถˆๆฏ็…งไธŠ้ข็š„ๆ ผๅผๆ‹ผใ€‚ไป“ๅบ“ๅ…ฌๅผ€ๅŽ Ollama ๅฏไปฅ็›ดๆŽฅๆ‹‰๏ผš

ollama run hf.co/YukiKaze1337/cn-sqlite-4b:Q4_K_M

้‡ๅŒ–็‰ˆๆŠฝๆŸฅ่ฟ‡ไธ€้“ๅ…ฌไบคๅบ“็š„้ข˜๏ผšQ4_K_M ๅ†™ๅ‡บ็š„ SQL ๅ’Œ bf16 ็‰ˆไธ€ๅญ—ไธๅทฎ๏ผŒ็ป“ๆžœๆญฃ็กฎ๏ผ›ๅฎŒๆ•ด่ฏ„ๆต‹ๆฒก่ท‘ใ€‚

ๆŽจ็†ๆ—ถ่กฅๆ•‘๏ผˆไธ็”จ้‡่ฎญ๏ผ‰

ๅŒไธ€ไธชๆจกๅž‹ใ€ๅŒไธ€ๅคฉ่ฏ„๏ผˆๆ•ฐๆฎ้›†ไป“ๅบ“็š„ scripts/infer.py๏ผŒ็ป“ๆžœๅœจ results/infer/๏ผ‰๏ผš

ๆต‹่ฏ•้›† ็›ดๆŽฅ็”Ÿๆˆ ๅ‡บ้”™้‡ๅ†™ ๆŠ•็ฅจ + ้‡ๅ†™
้›ถๅ”ฎ้šพ้ข˜๏ผˆ100 ้ข˜๏ผ‰ 74% 77% 82%
ๅŸŽๅธ‚ๅ…ฌไบค๏ผˆ64 ้ข˜๏ผ‰ 62.5% 65.6% 64.1%
ๅฅ่บซๆˆฟ๏ผˆ40 ้ข˜๏ผ‰ 92.5% 92.5% 95.0%
ๅ›พไนฆ้ฆ†๏ผˆ40 ้ข˜๏ผ‰ 92.5% 92.5% 92.5%
  • ๅ‡บ้”™้‡ๅ†™๏ผšSQL ่ท‘ไธ้€šๅฐฑๆŠŠ SQLite ็š„ๆŠฅ้”™ๅŽŸๆ–‡ๅ‘ๅ›ž็ป™ๆจกๅž‹ๆ”น๏ผŒๆœ€ๅคš 2 ๆฌกใ€‚่ƒฝ่ท‘้€š็š„ SQL ไปŽ 89% ๅ‡ๅˆฐ 94% ๅทฆๅณ๏ผŒๅชๅœจ่ท‘ไธ้€šๆ—ถๆ‰ๅคš่Šฑๆ—ถ้—ด
  • ๆŠ•็ฅจ๏ผš่ดชๅฟƒ 1 ๆก + ้‡‡ๆ ท 4 ๆก๏ผŒๅœจไฝ ่‡ชๅทฑ็š„ๅบ“ไธŠๆ‰ง่กŒ๏ผŒ็ป“ๆžœไธ€ๆ ทๆœ€ๅคš็š„้‚ฃ็ป„่ƒœๅ‡บใ€‚้šพ้ข˜้›†ไธŠๆฏ”็›ดๆŽฅ็”Ÿๆˆๅคšๅฏน 9 ้ข˜ใ€ๅคš้”™ 1 ้ข˜๏ผˆp = 0.021๏ผ‰๏ผ› ๅ…ฌไบค้›†ไธŠๆฒกๆœ‰ๆฏ”ๅช้‡ๅ†™ๆ›ดๅฅฝใ€‚ๆ‰น้‡่ฏ„ๆต‹ๆ—ถๆ…ข 4 ๅ€ๅทฆๅณ
  • ไธคๆ ท้ƒฝๅช็œ‹ไฝ ่‡ชๅทฑๅบ“ไธŠ็š„ๆ‰ง่กŒ็ป“ๆžœ๏ผŒไธ้œ€่ฆๆ ‡ๅ‡†็ญ”ๆกˆใ€‚ask.py ้ป˜่ฎคๅผ€ๅ‡บ้”™้‡ๅ†™๏ผŒๆœ‰ GPU ๆ—ถๅ†ๅผ€ๆŠ•็ฅจ
  • ๆŠŠๆกไธๅคŸๅฐฑไธ็ญ”๏ผšๆŠ•็ฅจ็š„ไธ€่‡ด็จ‹ๅบฆ่ƒฝ็œ‹ๅ‡บๆŠŠๆกๅคงๅฐใ€‚ไธคไธช้šพ้ข˜้›†ไธŠ๏ผŒ5 ๆกๅ…จไธ€่‡ด็š„็ญ”ๅฏน 91%๏ผŒ3-4 ๆกไธ€่‡ด็š„ 78%๏ผŒ2 ๆกๅŠไปฅไธ‹ๅชๆœ‰ 31%ใ€‚ ๆ‰€ไปฅ ask.py ๅœจๅฐ‘ไบŽ 3 ๆกไธ€่‡ดใ€ๆˆ–่€…ๆ”นๅฎŒ่ฟ˜่ท‘ไธ้€šๆ—ถไธ็ป™็ป“ๆžœ๏ผŒๅช่ฏดๆ˜ŽๅŽŸๅ› ใ€‚่ฟ™ๆ ทๅฐ‘็ญ”็บฆไธคๆˆ็š„้ข˜๏ผŒ็ป™ๅ‡บๅŽป็š„้”™็ญ”ๆกˆไปŽ 41 ้ข˜้™ๅˆฐ 17 ้ข˜ใ€‚ ๅ…จไธ€่‡ดไนŸไผš้”™๏ผˆ89 ้ข˜้‡Œ้”™ 8 ้ข˜๏ผ‰๏ผŒๅœจๆฒก่ง่ฟ‡็š„ๅบ“ไธŠๆ›ดๅธธ่ง๏ผŒๆ‰€ไปฅ็ป“ๆžœๆœ€ๅฅฝ่ฟ˜ๆ˜ฏๆœ‰ไบบ็œ‹ไธ€็œผ

่ฎญ็ปƒ

  • ๅบ•ๅบง๏ผšQwen/Qwen3-4B-Instruct-2507๏ผˆ้žๆ€่€ƒๆจกๅผ๏ผ‰
  • LoRA๏ผšr = 32๏ผŒalpha = 64๏ผŒๅ…จ้ƒจ็บฟๆ€งๅฑ‚๏ผ›bf16๏ผ›ๅชๅœจ SQL ไธŠ็ฎ— loss
  • ๆœ‰ๆ•ˆ batch 16๏ผŒlr 2e-4 ไฝ™ๅผฆ๏ผŒ3 ไธช epoch๏ผŒๆŒ‰้•ฟๅบฆๅˆ†็ป„๏ผŒๆœ€้•ฟๆ ทๆœฌ 2678 token
  • ๆ•ฐๆฎ 10557 ๆก๏ผŒๅ…จ้ƒจๆ˜ฏๅˆๆˆๆ•ฐๆฎ๏ผŒ็”Ÿๆˆๆต็จ‹็”ฑไฝœ่€…่ฎพ่ฎก๏ผšไฝœ่€…ๆ‰‹ๅ†™ไบ† 8 ไธชไธšๅŠกๅบ“็š„่กจ็ป“ๆž„๏ผŒๅˆถๅฎšไบ†ๅ‡บ้ข˜่ง„่Œƒๅ’Œ็ญ›้€‰ๆต็จ‹๏ผ› ้—ฎ้ข˜ๅ’Œ SQL ็”ฑ DeepSeek ๆŒ‰่ง„่Œƒ็”Ÿๆˆ๏ผˆ31 ไธชๅบ“๏ผŒ4-15 ๅผ ่กจ๏ผ‰๏ผŒๅ†็ป่ฟ‡ๆ‰ง่กŒๆฃ€ๆŸฅใ€็‹ฌ็ซ‹้‡็ญ”ๆฏ”ๅฏนใ€ๅฃ่ฏญๆ”นๅ†™ๅŽๅคๆ ธ็ญ‰ๅ‡ ้“ๅ…ณๅก็ญ›้€‰ใ€‚ ๆ•ฐๆฎๅ’Œ็ญ›้€‰่ฎฐๅฝ•่ง YukiKaze1337/cn-sqlite-sft
  • ไธคไธช้šพ้ข˜ๆต‹่ฏ•้›†๏ผˆ้›ถๅ”ฎใ€ๅŸŽๅธ‚ๅ…ฌไบค๏ผ‰็”ฑ Claude ็ผ–ๅ†™๏ผŒๆฒกๆœ‰ๅ‚ไธŽ่ฎญ็ปƒๆ•ฐๆฎ็š„่ฎพ่ฎก
  • ไธ€ๅผ  RTX 4090 ไธŠ่ฎญไบ† 2 ๅฐๆ—ถ 7 ๅˆ†้’Ÿ

ๅฑ€้™

  • ๅชๆ”ฏๆŒ SQLite ๆ–น่จ€๏ผ›RIGHT JOIN / FULL JOIN ่ขซๅˆปๆ„ๆŽ’้™คๅœจ่ฎญ็ปƒๆ•ฐๆฎๅค–๏ผˆ่€็‰ˆๆœฌ SQLite ไธๆ”ฏๆŒ๏ผ‰
  • ๆ‰€ๆœ‰่ฎญ็ปƒๅบ“ๅ’Œๆต‹่ฏ•ๅบ“้ƒฝๆ˜ฏๅˆๆˆ็š„๏ผŒ่กจๅๅˆ—ๅๅคงๅคšๆ˜ฏ่ง„ๆ•ด็š„่‹ฑๆ–‡๏ผŒ้—ฎ้ข˜ไนŸๆฏ”็œŸๅฎž็”จๆˆท้—ฎๅพ—ๆธ…ๆฅšใ€‚็œŸๅฎžไธšๅŠกๅบ“ไธŠ็š„ๆ•ˆๆžœๆฒกๆต‹่ฟ‡
  • ๅคๆ‚ๅบ“ไธŠๅ‰ฉไธ‹็š„้”™๏ผŒไธ€ๅŠๅคšๆ˜ฏ้€ป่พ‘ๅ†™้”™๏ผˆไธ€ๅฏนๅคš่ฟžๆŽฅใ€ๆ—ถ้—ด้กบๅบ็ญ‰๏ผ‰๏ผŒ็บฆไธ‰ๅˆ†ไน‹ไธ€ๆ˜ฏ่ฎฐ้”™ๆŸๅˆ—ๅœจๅ“ชๅผ ่กจ๏ผˆ้›ถๅ”ฎ้šพ้ข˜้›†ๅ‰ฉไธ‹็š„ 26 ้“้”™้ข˜้‡Œ๏ผŒ้€ป่พ‘้”™ 14 ้“ใ€ๅˆ—ๅ้”™ 8 ้“๏ผ‰
  • ่ฎญ็ปƒๆ—ถๆœ€้•ฟ็š„ๆ ทๆœฌ 2678 token๏ผ›ๅ‡ ๅๅผ ่กจ็š„ๅคงๅบ“ไผš่ถ…ๅ‡บ่ฟ™ไธช้•ฟๅบฆ๏ผŒ้œ€่ฆๅ…ˆๆŒ‘ๅ‡บ็›ธๅ…ณ็š„่กจ
  • ๆจกๅž‹ไผš็…ง็€้—ฎ้ข˜ๅ†™ๆŸฅ่ฏข๏ผŒไธไผš่ฏดใ€Œ่ฟ™ไธชๅบ“ๅ›ž็ญ”ไธไบ†ใ€

่ฎธๅฏ

ๆจกๅž‹่ทŸๅบ•ๅบง่ตฐ Apache 2.0ใ€‚่ฎญ็ปƒๆ•ฐๆฎ็”ฑไฝœ่€…่ฎพ่ฎก็š„ๆต็จ‹็”Ÿๆˆ๏ผˆ้ข˜็›ฎๅ’Œ SQL ็”ฑ DeepSeek ็”Ÿๆˆ๏ผ‰๏ผŒๆ•ฐๆฎๅ’Œไปฃ็  MITใ€‚ๆ•ฐๆฎ้‡Œๆฒกๆœ‰็œŸไบบไฟกๆฏใ€‚

Downloads last month
28
GGUF
Model size
4B params
Architecture
qwen3
Hardware compatibility
Log In to add your hardware

4-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for YukiKaze1337/cn-sqlite-4b

Adapter
(5,876)
this model

Dataset used to train YukiKaze1337/cn-sqlite-4b