ローカルLLMでXQueryをSQLに変換する:微調整は必要?それとも別のアプローチが良い?

Reddit r/MachineLearning / 2026/4/19

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • 著者はローカルで動作するLLMだけを使い、企業向けにXQueryからSQLへの変換を行おうとしているが、XQueryと対応するSQLのデータペアが少なく多様性も乏しい点が課題になっている。
  • パース/正規表現ベースでXQueryから要素(テーブル名、列、条件など)を抽出して構造化表現を作りLLMに渡す手法を試したが、XQueryの書き方の違いで入力が崩れると破綻した。
  • さらに、厳密なルールとテンプレートによるプロンプトエンジニアリングでも、単純な入力では一定の効果がある一方で、複雑・長文のXQueryでは出力が不安定になり誤りが増えた。
  • 現在はPEFT(QLoRA)でローカルのQwen2.5-Coder 7Bを微調整することを検討しているが、データセットは約110〜120サンプルと非常に小さく、生成SQLで条件や列が欠落するなどの問題が見えている。
  • そこで、これほど少ないデータでの微調整で十分なのか、あるいはこの種の構造化クエリ翻訳には別のより良い方針があるのかを相談している。

私は、企業環境の中で、XQuery の文を SQL クエリへ変換しようとしていますが、その解決策はローカルで実行する LLM に依存する必要があります。

大きな課題は、限られたトレーニングデータの入手可能性です(XQuery と、それに対応する SQL クエリのペア)。特に、さまざまなパターンをカバーするのに十分な多様性がありません。

最初は、パース(構文解析)ベースのアプローチを試しました。

その考えは、XQuery からテーブル名、カラム、条件などの要素を抽出(Python スクリプトを使う)し、それらを SQL の構成要素にマッピングして、構造化された表現を LLM に渡すというものでした。

しかし、このアプローチは正規表現ベースのパースに大きく依存しており、入力クエリの構造が変わると破綻しました。

次に、プロンプトエンジニアリングのアプローチを試しました。つまり、SQL クエリをどのように生成すべきかについて厳密なルールとテンプレートを定義しました。これは、より単純な入力に対してはある程度うまくいきましたが、より複雑、または長い XQuery では出力が一貫せず、しばしば誤ったものになりました。

現時点では、PEFT(QLoRA)を使ってローカルの LLM を微調整しようと考えています。具体的には、Qwen2.5-Coder 7B モデルを使います。ただし、利用可能なデータセットはかなり小さく(\~110〜120 サンプル)、多様性もあまりありません。

これまでに観察された主な問題:

XQuery の書き方の違いへの感度。

長い入力に対して、生成された SQL に条件やカラムが欠ける。

これらの制約を踏まえ、最も効果的な方向性を理解しようとしています。

このような限られたデータでの微調整は十分なのでしょうか?それとも、この種の構造化されたクエリ変換問題を扱うための、より良いアプローチがあるのでしょうか?

必要であれば、追加の詳細を提供できます。

submitted by /u/genius03noob
[link] [comments]