Eat Study Love

먹고 공부하고 사랑하라

분류 전체보기 335

SQL2NL Prompt Engineering - KCC(3)

https://eglife.tistory.com/342 SQL2NL Prompt Engineering - KCC(2)https://eglife.tistory.com/341 SQL2NL Prompt Engineering - KCC(1)SQL2NL Module의 정확도를 향상시키는 법에대한 고찰이다. 일단 생각해낼 것은, 어찌어찌 SQL2NL 정확도 올리는 법을 찾았다고 쳤을때 그 것을 어찌eglife.tistory.com지난 시간 충격적인 결과,SQL to NL 모델을 이용할 때 되려 Naive한 Model이 Table Schema or Parsing Info가 추가된 Version보다 각 종 Accuracy Matrix 지표가 더 높았다.얼핏봐도 Naive한 version에서 각종 Score가 높게 나타..

English Natural Language Evaluation Matrix

영어 문장간의 Word 또는 Semantic(문맥) 을 기준으로 일치성, 통일성, Accuracy를 비교하는 Matrix에 대한 설명이다.SQL을 NL(Natural Language)로 변환하는 과정에서 NL이 기존 답안 NL과 비교했을 때 얼마나 정확도가 높게 반환되었는지 확인하는 지표로 사용할 수 있다. 물론, 프로그래밍언어와 달리 자연어 NL은 해당 지표들의 값이 높다고 무조건 정확하다고 말하기가 어렵다. 언어마다 원체 성질이 다양하다보니... 그래서 사실 제일 좋은 건, 특정 언어 Mother tongue 인간의 직접평가가 가장 정확하지만 그것은 현실적으로 Cost가 너무 많이 드릭에 대체재로 아래 MATRIX들을 많이 사용한다. 아래 코드 기준으로, 해당 Matrx들의 특징을 알아보자.# ✅ B..

Google Colab에 Google Drive 연결하기

Jupyter notebook으로 Python code를 짜는 작업을 할 때, Python Module 들을 Local에 일일히 다 저장하면 은근히 용량도 많이 차지하고, 그것보다 문제인건 가끔 Module 간 Version 차이가 발생해 Module Import 시 Error가 발생한다. 소이 뻑이간 상태인데, 이게 한 두 건이면 그냥 무시하고 쓰는데 머신러닝 세계에선 Import 해야하는 Module이 생각보다 많다. 그래서 그냥 Google Colab으로 코드를 짜기도 한다. 대신, Google Colab은 기본적으로 Temporary 한 VM환경이기 때문에 Colab 세션을 껐다 킬 때는 설치했던 Package들이 모두 사라진다. 그리하여, 기본적으로 CELL 안에 pip install같은 코드를..

Coding_Practice 2025.04.09

SQL2NL Prompt Engineering - KCC(2)

https://eglife.tistory.com/341 SQL2NL Prompt Engineering - KCC(1)SQL2NL Module의 정확도를 향상시키는 법에대한 고찰이다. 일단 생각해낼 것은, 어찌어찌 SQL2NL 정확도 올리는 법을 찾았다고 쳤을때 그 것을 어찌 판단할 것인가? 검색을 통해 얻은 NL Accuracy Evaluatieglife.tistory.com이제 본격적인 실험을 진행할 차례다.Python Code를 이용해서 LLM 연결해보는 것은 다 해봤으니, 실험만 돌리면 된다. 1) LLM 연결 Python Code 짜기 -> 준비 完2) Data Set 준비 + Table schema(DDL) -> Bird / Wiki SQLNL Pair 구해야 함3) ROUGE / BLEU-4 ..

SQL2NL Prompt Engineering - KCC(1)

SQL2NL Module의 정확도를 향상시키는 법에대한 고찰이다. 일단 생각해낼 것은, 어찌어찌 SQL2NL 정확도 올리는 법을 찾았다고 쳤을때 그 것을 어찌 판단할 것인가? 검색을 통해 얻은 NL Accuracy Evaluation Matrix는 아래와 같다. 1. ROUGE2. BERTScore 그리고, Paper SQL-to-Text Generation with Graph-to-Sequence Model(2019Feb12 Kun Xu et al.)에 나온 BLEU-4 score.이 논문의 저자도 이것만으론 좀 부족했는지 결국 Human Study(사람이 직접 문장보고 유사도 평가)를 사용했다. 연구의 골자는 다음과 같다. LLM을 통해서 SQL을 NL로 바꾸어 보려고 한다. 이것의 필요성은1. NL..

PostgreSQL, LLM 연결(5)

PostgreSQL Openai or Llama 연결 Settinghttps://eglife.tistory.com/338 PostgreSQL, LLM 연결(4)1.https://github.com/cloudquery/pg_gpt2.https://github.com/prabin-acharya/pg_gpt3.https://github.com/JelteF/pg_human4. https://github.com/pramsey/pgsql-openai5.https://www.crunchydata.com/blog/accessing-large-language-models-from-postgresql 으쌰으쌰eglife.tistory.com지난 글에서의 후기처럼, 어찌어찌 Llama를 이용한 Output은 받아올 수 있다..

SQL2NL 용 Data set 만들기

세상에 Data는 많다지만, 나의 Module에 Exactly fit한 data set은 없다. 물론, 시중 NL2SQL Benchmark pair data를 이용할 순 있지만, 그걸로만 Model Fine-tuning을 진행하기엔 한계가 있다. 그렇다고 그냥 구글링해서 쓰자니 또 정확도가 떨어지는 Data가 섞여 Fine-tuning이 잘 진행되지 않을 가능성이 농후하다. 그리하여.. 유명한 Database 책에 있는 SQL, Natural explanation을 일일히 따와서 Fine - Tuning 작업을 진행해보려고 한다. 옛날 책같은 경우엔 LLM도 pdf 파일 내의 text를 잘 검출하지 못하여 일일히 노가다를 뛰어보도록 했다. 너무 많은 책을 다루기엔 빡세니까 유명한 책 2가지를 타켓팅해보기..

PostgreSQL, LLM 연결(4)

1.https://github.com/cloudquery/pg_gpt2.https://github.com/prabin-acharya/pg_gpt3.https://github.com/JelteF/pg_human4. https://github.com/pramsey/pgsql-openai5.https://www.crunchydata.com/blog/accessing-large-language-models-from-postgresql 으쌰으쌰 얼른 PostgreSQL에 LLM을 연결해보자. 위 git-hub내용을 싸그리 검토해봅시다.. 1. Extension을 사용해보기내가 찾아본건, Paul Ramsey라는 양반이, 본인이 만든 PostgreSQL http extension을 가지고 PLpgSQL이란 언어로 ..

PostgreSQL, LLM 연결(3)

To-do : 시간이 왜 이렇게 차이가 크게 나는지 디버깅, Hugging Face 기반으로 Llama 돌려보기, Llama Model Fine tuning방도 적용시켜보기 일단 이전 코드와 비교해보며 디버깅해보니, Table schema처럼 좀 긴~ 놈을 Prompt text에 그냥 집어 넣으면 시간이 오래 걸리고, System_prompt로 따로 빼 놓으면 시간이 좀 덜 걸린다. 같은 양의 Token 처리 비교 표1. Table Schema를 System_prompt로 따로 빼놓기2. Table Schema를 User prompt_text에 넣기 오케이, 대충 이거는 원인을 찾았다근데, 이유에 대한 설명은 잘 나와있지 않다. 일단 GPT답변 참고,1) 실제로 system prompt + user pr..

PostgreSQL, LLM 연결(2)

https://eglife.tistory.com/335 PostgreSQL, LLM 연결(1)Review,NL2SQL, SQL2NL Module을 PostgreSQL에 덧붙여 보는 연구를 진행해야 한다.일단 정확도는 나중얘기고, 어느 정도 Table metadata만 더해줘도 NL변환 정확도가 올라가는 것은 확인하였으니 PSQL에 LLM Moduleeglife.tistory.com1. Python으로 PostgreSQL, LLM(Llama 3 8b) 연결해서 SQL문 던지고 그에 맞는 NL 반환 받기. 일단 PSQL을 Python에 대입시켜보자 사실, Python으로 이미 PostgreSQL 접속해서 입력 SQL에 대한 Data도 반환 받아밨고, Ollama를 이용해 NL문에 대한 Llama3 의 SQL..