Eat Study Love

먹고 공부하고 사랑하라

Data Science/Research

PostgreSQL, LLM 연결(2)

eatplaylove 2025. 3. 25. 10:46

https://eglife.tistory.com/335

 

PostgreSQL, LLM 연결(1)

Review,NL2SQL, SQL2NL Module을 PostgreSQL에 덧붙여 보는 연구를 진행해야 한다.일단 정확도는 나중얘기고, 어느 정도 Table metadata만 더해줘도 NL변환 정확도가 올라가는 것은 확인하였으니 PSQL에 LLM Module

eglife.tistory.com

1. Python으로 PostgreSQL, LLM(Llama 3 8b) 연결해서 SQL문 던지고 그에 맞는 NL 반환 받기.

 

일단 PSQL을 Python에 대입시켜보자

 

사실, Python으로 이미 PostgreSQL 접속해서 입력 SQL에 대한 Data도 반환 받아밨고,

 

Ollama를 이용해 NL문에 대한 Llama3 의 SQL변환문도 반환받는 코드를 가지고 있기 때문에 이 둘을 단순히 합치기만 해도 된다. 주의할 점으론, 당연하지만 Ollama를 켜두고 PostgreSQL의 Server도 Start Mode로 시켜놓아야 한다.

 

그리고 코드가 길어진다.. 이게 좀 관리하기 귀찮네

 

대충 2개 갖다 붙치니까 Output은 나온다. 그러나 역시 코드는 길어진다.

예시

그치만, Ollama는 사용 즉시 추론에는 유리하지만, 직접적인 Fine-tuning 활용은 어렵다.

  • Ollama는 **“사용 즉시 추론”**이 용이하지만, 직접적인 파인튜닝 기능은 제공하지 않습니다.
    • 내부적으로 llama.cpp 방식의 LoRA 등 제한된 형태의 파인튜닝이 가능하긴 하지만, Hugging Face처럼 전반적인 파이썬 기반 파인튜닝 파이프라인을 지원하는 구조는 아닙니다.
  • Hugging Face Transformers는 파인튜닝, 커스텀 토크나이저, 특별한 데이터 파이프라인 구성 등
  • Ollama가 내부적으로 llama.cpp 기반이기 때문에, 이론상 LoRA(혹은 QLoRA) 방식의 일부 파라미터만 업데이트하는 파인튜닝이 가능할 수도 있습니다.
  • 하지만 Ollama CLI 자체에서 ollama finetune ...처럼 바로 파인튜닝을 할 수 있는 공식 명령이나 안정된 기능은 현재 제공되지 않습니다.
  • 실제로 Ollama 이슈나 PR 등을 보면, 파인튜닝 수요가 많아 일부 시도들이 논의되곤 있으나, 공식 매뉴얼이나 주류 사용 사례는 **아직 “추론 전용”**에 가깝습니다.

 

결국 NL2SQL / SQL2NL Module Fine-tuning을 위해선 Hugging face를 쓰긴 해야겠다.

 

다시 Ollama로,, 이게 Meta Table data가 넘 크면 결과가 나오지 않는다.

보아하니, Token은 In/Output 포함 해서 한정된 수량을 사용해야 한다. 즉, 8K 선에서 input이 크면 그만큼 Output Token은 줄고 Input Token을 용량 내에서 Truncate(잘라내기) 할 때 까지 온전한 Output이 나오질 못한다.

1. Table Schema 없애고 간단한 Query 입력 (3ea)

2. 모든 Meta Data 다 추가하고 Query 입력 (3ea)



 

To-do : 시간이 왜 이렇게 차이가 크게 나는지 디버깅, Hugging Face 기반으로 Llama 돌려보기, Llama Model Fine tuning방도 적용시켜보기

'Data Science > Research' 카테고리의 다른 글

PostgreSQL, LLM 연결(4)  (0) 2025.03.26
PostgreSQL, LLM 연결(3)  (0) 2025.03.25
PostgreSQL, LLM 연결(1)  (0) 2025.03.24
PostgreSQL SQL2NL(8)  (0) 2025.03.20
PostgreSQL SQL2NL(7)  (0) 2025.03.17