https://arxiv.org/abs/2501.12372
Is Long Context All You Need? Leveraging LLM's Extended Context for NL2SQL
Large Language Models (LLMs) have demonstrated impressive capabilities across a range of natural language processing tasks. In particular, improvements in reasoning abilities and the expansion of context windows have opened new avenues for leveraging these
arxiv.org
2025 VLDB에 개제된 Google에서 발표한 논문이다.
Google에서도 Text2SQL을 연구하는 팀이 있을텐데 그 팀에서 주기적으로 해당분야와 관련된 논문을 기재한다.

그 유명한 BIRD Benchmark에서 저기 3위에(2025.08.29 기준) 랭크되어 있는 팀이다.
본 논문의 골자는, 기존의 NL2SQL 방법을 전체적으로 소개하며 동시에 은근히 Google의 최신 LLM인 gemini-1.5-pro를 홍보하는 글로 보인다.

기존에는 LLM의 Context수용 한계로 어떻게든 LLM에 적절한 정보를 잘 추려서 전달하는 것이 중요했기에 Text Query와 Relevant한 Hint를 찾는 것에 사람들은 공을 많이 드렸다.
또는, LLM Call을 짧게 여러 번 해서 Agent AI의 느낌으로 NL2SQL Task를 수행하는 연구도 많았다.
(위 내용들 포함해서 다양한 기법들이 본 논문에 소개 됨)
저자는 그런 것들 필요 없이 gemini-1.5pro를 이용하면 한 Context에 약 1~10M의 Token을 담을 수 있기 때문에 Hint 추리지도 말고 그냥 통째로 넣으면 된다고 했다.
그러면 보통 LLM이 ' Lost in the middle ' 현상을 일으켜서 많은 Hint들 중에 진짜 필요한 것이 무엇인지 모르고 오답을 내놓는다고 했는데 Gemini 1.5는 정답을 곧 잘 찾아낸다는 것을 실험으로 보여주는 논문이다.
굳이, 자랑글 같은 이 논문을 왜 탐색해봤냐면 논문의 도입부부터 중간 중간 Reference들에 현재까지의 NL2SQL 동태가 잘 정리된 것들이 많이 보이기 때문에 그 점은 참고하기 좋을 거 같아서 논문을 읽어봤다.
즉, 논문에서 As is 와 To be를 비교할 때 사실 To be는 gemini 자랑밖에 없어서 굳이 안 읽어도 되지만 As is 부분을 잘 읽다보면 현재까지 NL2SQL 연구가 어찌 진행되어 왔는지 Summary로 찾아볼 수 있는 것이다.
나한테 있어서 이제 생각해볼 Topic은, 나의 SQL2NL 연구를 NL2SQL에 어떻게 접목시킬 수 있을까? 이다. 이 때문에 해당 논문을 보면서 NL2SQL 연구들 중에 SQL2NL이 비짚고 들어갈 틈이 있는지 보려했는데 잘 보이지 않는다. . ㅠ
그냥 SQL2NL은 SQL2NL로 따로 분류해서 논문쓰는 것으로 정리하고 NL2SQL영역은 다시 검토해야하나.. 싶다.
NL2SQL의 Output인 SQL가지고 다시 SQL2NL 결과를 통해 #강화학습 또는 BenchMark 평가로 이용할 수 있지 않을까..했는데 제일 문제는 내가 SQL2NL에 손을 대는 그 순간부터 의구심을 품었던..
도대체 SQL2NL에서 반환된 'NL'에 대해서 어떻게 정확도를 평가하겠다는 건가.. 이다.
매번 사람이 개입해서 평가할 순 없는 것 아닌가..? 그렇다고 BERTScore나 BLEU_4를 쓰자니 너무 단순한 Evaluation만 된다.
하.. 실익이 너무나도 없어보이지만 시간도 없고 무엇보다 의욕도 없어서 ㅋㅋㅋ 대충 주먹구구식으로 연구마무리를 해야겠다는 생각이 든다.
1) SQL2NL 그 자체로 실험결과 뽑아 놓았던 것들만 잘 정리하기
2) NL2SQL과 어떻게든 엮어보기
-> 적어도 BIRD BenchMark에선 잘 동작하는(특정 Domain Specific한) SQL2NL 모델을 STEP 1에서 만든다.
-> STEP 1에서 해당 모델에 대해서 검증할땐 BERT,BLEU도 좋은데 걍 Human 평가까지 포함시켜서 BIRD 에서 위 기법이 잘 동작하는 것을 보여준다. => 이게 잘 되면, 어떤 Domain이든 이 기법을 이용해서 SQL2NL 모델을 만들 수 있다는 일반화로 넘어갈 수 있다.
-> 이제 STEP2로 넘어 간다.
-> 전반적인 NL2SQL 모델이 아닌, 특정 Domain Specific(Like BIRD)한 NL2SQL 모델이 Target이다.
| ㄱ. BenchMark로서 SQL2NL 이용 NL2SQL ->SQL ouput 결과 A 저장 -> SQL2NL(여기서 나온 점수로 평가? 의미 없음 나올 수 있는 점수가 BLEU/BERT 이런 참고용일 뿐. 그냥 SQL2NL이 절대적인 BenchMark라고 가정을 찍어버려야 한다.) -> NL2SQL -> Output 결과 B를 결과 A와 비교해서 같으면 OK 다르면 NO ㄴ. NL2SQL 모델 Finetuning / 강화학습 등등에 사용.. 이건 내가 논문으로 쓸 수 있을지 모르겠다. 강화학습개념도 잘 없고(물론 LLM과 함께하면 비벼지겠지만..) 무엇보다 실익이 있을지 의문이다..ㅎ 그래도 Logic을 생각해보자면, NL A -> NL2SQL -> SQL2NL -> NL B -> NL A와 NL B가 맥락적으로 같아질 수 있도록 Finetuning or 강화학습 시작!(LLM한테 시켜야 겠지ㅎㅎ?) 이렇게 해서 만들어진 NL2SQL모델이 Naive Model보다 성능이 좋다고 여기면 된다.. |
위 Logic대로 하면 꽤나 Fancy한 논문이 더러 나올 수 있다고 생각한다.
아 제발요옹~~

'Data Science > Paper' 카테고리의 다른 글
| Data Augmentation with Hierarchical SQL-to-Question Generation for Cross-domain Text-to-SQL Parsing (0) | 2025.03.20 |
|---|