A LangChain azt vizsgálta, hogyan kérdezhetünk CSV-fájlokról

A LangChain egy olyan módszert vizsgált, amellyel természetes nyelven lehet kérdéseket feltenni CSV-adatokról. A csapat valós felhasználói kérdésekből épített tesztadatbázist, majd egy Python REPL-lel és lekérdezővel felszerelt egyedi ügynököt fejlesztett.
- A LangChain CSV-adatok természetes nyelvű lekérdezését vizsgálta.
- A Titanic-adatkészlettel körülbelül 400 felhasználói interakciót gyűjtöttek.
- Nagyjából 200 interakcióhoz érkezett visszajelzés, a tesztadatkészlet körülbelül 50 példából állt.
- A továbbfejlesztett ügynök Python REPL-t és lekérdezőt használ.
- A visszajelzési alkalmazást, az adatkészletet és az értékelőszkriptet nyílt forrásúvá tették.
A táblázatos adatok nehezebb feladatot jelentenek
A LangChain szerint a szöveges adatok természetes nyelvű lekérdezésére már kialakultak bevett megoldások, a CSV-fájlok esetében azonban több nehézség merül fel. Sok vállalati adat CSV-formátumban található, ezért egy természetes nyelvi felület könnyebbé teheti az adatokból származó információk megszerzését.
A kihívást részben az okozza, hogy előre nehéz megmondani, milyen kérdéseket szeretnének feltenni a felhasználók. A nagy nyelvi modellek kevés példából is képesek alkalmazásokat működtetni, ez azonban megnehezíti az értékelést, ha nincs megfelelő bemeneti és kimeneti adatbázis. A LangChain ezért a LangSmith segítségével gyűjtött és rendszerezett valós példákat, a helyesség vizsgálatához pedig nagy nyelvi modelleket is használt.
A Titanic-adatbázissal gyűjtöttek valós kérdéseket
A csapat egy gyorsan elkészített Streamlit-demót tett közzé, amelyben a felhasználók egy rögzített CSV-adatkészletről kérdezhettek. Saját fájlok feltöltése helyett azért választottak egyetlen közös adatkészletet, mert így egyszerűbbé vált a használat és az értékelés, miközben nem kellett bizalmasan kezelt CSV-fájlok kérdéseit naplózni.
A példához a Titanic klasszikus adatkészletét választották. Ez a hajó utasait, valamint a túlélésükre vonatkozó adatokat tartalmazza, és gyakran használják adat tudományi példákban. A demó körülbelül 400 interakciót gyűjtött, ezek közül nagyjából 200-hoz érkezett valamilyen visszajelzés. A LangSmith felületén a csapat áttekintette a válaszokat, különösen a negatív visszajelzéseket, majd kézzel címkézte az érdekes eseteket. Így körülbelül 50 példából álló tesztadatkészletet hoztak létre.
A megoldásnak a keresést és a számításokat is kezelnie kell
A Titanic-adatkészletben számértékek, kategóriák és szöveges mezők is vannak. A névmező különösen nehéz lehet, mert ugyanaz a személy többféle alakban jelenhet meg, például eltérő sorrendben, címmel, középső névvel vagy elírással. Emiatt a pontos szűrés önmagában nem mindig elegendő.
A LangChain kezdeti megközelítése hagyományos keresési rendszert használt. A CSV minden sorát külön dokumentummá alakították, a mezőket pedig „oszlop: érték” formában, külön sorokban ábrázolták. Ezekből vektortárat készítettek, és a kérdéshez koszinusz-hasonlóság alapján kerestek releváns sorokat. A csapat tapasztalata szerint ez a formátum hatékonyan közvetíti a táblázatos, illetve JSON-adatokat a nyelvi modell felé, ha a mezők szöveges értékeket is tartalmazhatnak.
A keresés mellett olyan kérdésekre is fel kellett készülni, amelyek számításokat vagy összesítéseket igényelnek, például annak meghatározására, ki fizette a legtöbbet a jegyért. A LangChain két irányt mérlegelt: egy Python REPL használatát, amely rugalmasabb, de tetszőleges kód futtatását is lehetővé teheti, illetve egy előre engedélyezett függvénykészletet, amely korlátozottabb, ugyanakkor biztonságosabb megközelítés.
Nyílt forrásúvá tették a kísérlet eszközeit
A LangChain előzetes ismertetése szerint a továbbfejlesztett megoldás egy egyedi ügynök lett, amely OpenAI-funkciókat használ, és két eszközhöz fér hozzá: egy Python REPL-hez és egy lekérdezőhöz. A csapat nyílt forrásúvá tette a visszajelzések gyűjtésére szolgáló alkalmazást, az adatkészletet és az értékelőszkriptet is.
A bejelentés jelentősége a felhasználók számára az lehet, hogy a CSV-adatok természetes nyelvű lekérdezése nem kizárólag előre megírt kérdésekre épülhet. A bemutatott folyamat azt is megmutatja, hogyan lehet valós használati adatokkal feltárni a problémákat, majd ezek alapján mérni és javítani egy nyelvi modellre épülő alkalmazást. A LangChain szerint az itt vizsgált megközelítések egy része SQL-adatokra is alkalmazható.
LangChain: Benchmarking Question/Answering Over CSV Data


