私は、企業環境の中で、XQuery の文を SQL クエリへ変換しようとしていますが、その解決策はローカルで実行する LLM に依存する必要があります。
大きな課題は、限られたトレーニングデータの入手可能性です(XQuery と、それに対応する SQL クエリのペア)。特に、さまざまなパターンをカバーするのに十分な多様性がありません。
最初は、パース(構文解析)ベースのアプローチを試しました。
その考えは、XQuery からテーブル名、カラム、条件などの要素を抽出(Python スクリプトを使う)し、それらを SQL の構成要素にマッピングして、構造化された表現を LLM に渡すというものでした。
しかし、このアプローチは正規表現ベースのパースに大きく依存しており、入力クエリの構造が変わると破綻しました。
次に、プロンプトエンジニアリングのアプローチを試しました。つまり、SQL クエリをどのように生成すべきかについて厳密なルールとテンプレートを定義しました。これは、より単純な入力に対してはある程度うまくいきましたが、より複雑、または長い XQuery では出力が一貫せず、しばしば誤ったものになりました。
現時点では、PEFT(QLoRA)を使ってローカルの LLM を微調整しようと考えています。具体的には、Qwen2.5-Coder 7B モデルを使います。ただし、利用可能なデータセットはかなり小さく(\~110〜120 サンプル)、多様性もあまりありません。
これまでに観察された主な問題:
XQuery の書き方の違いへの感度。
長い入力に対して、生成された SQL に条件やカラムが欠ける。
これらの制約を踏まえ、最も効果的な方向性を理解しようとしています。
このような限られたデータでの微調整は十分なのでしょうか?それとも、この種の構造化されたクエリ変換問題を扱うための、より良いアプローチがあるのでしょうか?
必要であれば、追加の詳細を提供できます。
[link] [comments]




