Dataset Splits | LangSmith Evaluation - Part 22
Summary
TLDRランスは、言語モデルの評価にデータセット分割を使用する意義を説明します。ドキュメントのバージョンアップにより、以前の評価セットが新しいドキュメントと後方互換性があるか検証するために、新しいデータセットを作成します。旧バージョンのドキュメントに基づく20の質問と新バージョンに基づく5つの新しい例を比較評価します。評価結果から、旧評価セットのパフォーマンスが低下していることがわかり、ドキュメントロードの調整が必要であると気づきます。この例では、分割を使用して、ドキュメント構造の変更による影響を評価し、データロードを最適化する方法を示しています。
Takeaways
- 📚 LanceはLang chainというプロジェクトで、データセットの分割に関する評価を行っていると紹介しています。
- 🔍 データセット分割の動機は、ドキュメントのアップグレードにより、評価セットが後方互換性を持っているかを確認するためです。
- 📈 Lanceは、言語表現言語(Lang CH expression language)のドキュメントがv0.1からv0.2にアップデートされたため、評価セットの互換性を検証したいと述べています。
- 🗂️ 彼は新しいデータセットを作成し、CSVファイルを取り込み、質問と回答のセットを分割して保存するプロセスを説明しています。
- 🔑 データセット分割は、評価セットの互換性だけでなく、トレーニングとテストのサンプルを分割するなど、ファインチューニング時の有用なアプリケーションにもなると指摘しています。
- 📝 Lanceは、20の質問を含む初期の評価セットを新しい分割に追加し、v0.1ドキュメントからの質問と回答の例を特定する新しい分割を作成しました。
- 🆕 次に、v0.2ドキュメントに基づいて新しく5つのサンプルを作成し、それらを別の分割に追加して、新しい構造での評価をテストしています。
- 📉 評価の結果、古い分割(v1)でのパフォーマンスが低下していることが示され、ドキュメントの構造が大きく変わったことを指摘しています。
- 🛠️ ドキュメント構造の変更により、質問に関連する情報が取得できなくなる可能性があるため、ドキュメントのロード方法を調整する必要があると結論づけています。
- 🔬 分割を使用することで、ドキュメントの変更が評価セットにどのような影響を与えるかを測定し、必要に応じてデータロードを調整することができます。
- 📊 最後に、Lanceは評価結果を比較し、新しい分割と古い分割のパフォーマンスの違いを分析しています。
Q & A
なぜデータセットの分割を使用する必要があるとランスは説明していますか?
-ランスは、言語表現言語のドキュメントがアップデートされた際に、アプリが後方互換性を持っているかどうかを確認するためにデータセットの分割を使用する動機を説明しています。
ランスはどのようにして新しいデータセットを作成しましたか?
-ランスは、CSVを選択し、既存のデータセットをインポートして新しいデータセットを作成しました。
ランスが作成した新しいデータセットの名前は何ですか?
-ランスは新しいデータセットに'LC QA'という名前を付けました。
データセット分割の目的は何ですか?
-データセット分割は、アップグレードされたドキュメントと互換性があるかどうかを評価し、必要に応じてアプリを変更するかどうかを判断する目的で使用されました。
ランスはどのようにして新しい分割を追加しましたか?
-ランスは20の質問を分割に追加し、新しい分割を作成しました。この分割は'LEL v0.1'という名前で、v0.1ドキュメントからの質問と回答の例を識別するために使用されました。
ランスが追加した新しい例は何ですか?
-ランスは新しいv0.2ドキュメントに基づいて5つの新しい例を素早く作成しました。
評価のためにランスはどのようにして2つの分割を使用しましたか?
-ランスはデータセット名を使用して評価を開始し、新しい分割と古い分割の両方を指定して評価を実行しました。
評価の結果、新しい分割と古い分割のパフォーマンスの違いは何ですか?
-評価の結果によると、新しい分割ではパフォーマンスが良好でしたが、古い分割ではパフォーマンスが悪くなっていました。
ドキュメント構造の変更が原因でランスが直面した問題は何ですか?
-ドキュメント構造の変更により、ランスは古い評価セットに対する質問に答えることができない可能性があるという問題に直面しました。
ランスはどのようにしてドキュメントの変更に対応する必要性を特定しましたか?
-ランスは評価結果を分析し、パフォーマンスの低下を確認することで、ドキュメントの変更に対応する必要性を特定しました。
分割を使用するもう一つの例は何ですか?
-分割を使用するもう一つの例として、ファインチューニングを行う際にトレーニング例とテスト例を分割することが挙げられます。
Outlines
📚 データセット分割の重要性と評価
ランスはLang chainの評価シリーズを続け、データセット分割の重要性を説明しています。彼は言語表現言語のドキュメントを更新し、バージョン0.1から0.2に変更したことで、評価セットの20の質問が新しいドキュメントと後方互換性があるかどうかを確認したいと話しています。データの読み込みが異なる可能性があるため、評価セットが新しいドキュメントで機能しなくなっているかもしれないと懸念しています。そこで、新しいデータセットを作成し、旧バージョンのドキュメントに基づく質問を分割して保存し、新しいドキュメントに基づく5つの新しい質問も追加しました。これにより、評価セットの後方互換性をテストし、必要に応じてアプリを更新することができます。
🔍 評価結果からの学びとドキュメント構造の変更への対応
ランスは分割されたデータセットを使用して評価を実施し、新しいバージョンのドキュメントに基づく質問と古いバージョンに基づく質問の両方に対する評価結果を比較しています。古い評価セットでのパフォーマンスが低下していることがわかり、ドキュメントの構造が大きく変更されたため、必要な情報が取得できていない可能性があると指摘しています。この評価は、本番環境で動作するアプリケーションがドキュメントの構造変更にどのように影響を受けるかを理解する上で非常に重要です。ランスは、ドキュメントの読み込み方法を調整して、元の評価セットに対する完全なカバレッジを確保する必要があると結論付けています。
Mindmap
Keywords
💡データセット分割
💡Lang chain
💡評価セット
💡バックワード互換性
💡データローディング
💡CSV
💡キーバリューデータセット
💡分割
💡RAG
💡パフォーマンス評価
Highlights
Lance from Lang chain introduces the concept of data set splits and their importance in evaluating changes in documentation.
Lang chain documentation has been updated from version 0.1 to 0.2.
A set of 20 evaluation questions related to v0.1 docs needs to be stored as a split.
Concerns about backward compatibility when upgrading documentation are discussed.
The potential need to change the app to load information from different sources due to documentation changes is highlighted.
Lance demonstrates the process of creating a new data set and selecting a CSV file.
A new data set split named 'LC QA rag QA' is created to store the 20 evaluation questions.
The significance of the data set split in identifying changes in documentation structure is explained.
Lance adds 20 questions to a split and creates a new split named 'LEL v0.1'.
A new split 'LC V v0.2' is created with five new examples based on the v0.2 documentation.
The evaluation of the new split shows good performance, suggesting compatibility with the new documentation.
Performance on the older split is worse, indicating potential issues with the new documentation structure.
The importance of investigating performance degradation on the original evaluation set is emphasized.
Lance suggests that document loading within the new documentation structure may need to be adjusted.
The practical application of data set splits in evaluating the impact of documentation changes is demonstrated.
The use of data set splits for partitioning test examples from training examples in fine-tuning is mentioned.
Lance concludes by showing how to set up data set splits using the UI easily.
Transcripts
hi this is Lance from Lang chain we're
continuing our Langs withi evaluation
series Focus on data set splits so let
me start by giving kind of a motivation
for why we might want to use data set
splits I have a rag app that I've been
testing throughout this series focused
on the Lang CH expression language
documentation now very recently we
updated those docs from V 0.1 to
v0.2 so what's going to happen now is I
have a eval set of 20 Questions related
to Z v0.1 docs that I now want to store
as a split and I want to see if I create
an app using these newer v0.2 docs are
they backwards compatible in terms of
evaluation with my existing eval set or
do I need to change my app to load
information maybe from other sources
because basically My worry is when we
upgrade the docs things may have shifted
around so what I was loading from here
uh may be insufficient now with these
v.2 docs so basically my concern is that
the data loading is a bit different and
I may have regressed in my existing eval
set with this data set upgrade so what
I'm going to do is I'm going to go
ahead and I'm in my data sets here I'm
going to create a new data set I'm going
to select a CSV I'm going to pull this
in so this is my existing uh data set so
this is L lce question answer and I'm
going call this split um splits for or
LC QA rag QA I'm going to call it that
it's a key value data set you can see my
input and output Fields that's great so
I create this data set nice that's all
done now here's where things are kind of
interesting I'll move this over here so
I have 20 Questions here I'll open this
up so we can look um 20 Questions here
are related to uh are from my original
data set so that's all these guys so
this is my initial uh eval set that I've
been using historically throughout this
throughout the series related to to rag
in Lang expression language I'm going to
add these to a split and I'm going to
create a new split and I'm going to call
it um I'm going to call it uh LEL uh
v0.1 to to identify that these uh
question answer examples were taken from
the originals v0.1
docs um cool so now I have the split
that's been created right here now I can
go back and this is my original so this
is um the original set of 25 examples
now I have five new examples which you
can see down here
um cool say these These are examples
that I've added um I'm going to call
this
LC V
v0.2 so these are five examples I just
very quickly put together that are on
that main page of the v0.2 docs so it's
kind of like a test these should
definitely work reasonably well because
I created them newly my bigger question
is do I see regression on the initial
split so right now what I have here is
two data splits so one these are five
questions I put together pretty quickly
based upon the newer structure of the
docs um it's kind of like a test so this
is actually what the new structure of
the docs looks like this is the new
landing page for Lang expression
language um and you know it's it's
pretty nice it has like lots of Rich
information here that's great now here
is the old landing page and it's just
different right different instructure
this old landing page kind of fanned out
to a bunch of subsections um which is
where my initial eval set Drew all its
information right so if I kind of Zoom
back out what do we have here we have
two splits for my data set this l c V1
is my new is is my initial set of
questions my initial 20 questions um and
this lv2 are five new questions that I
derive from this newer version of the
docs so this is kind of like my earlier
original eval set this is a new eval set
okay but they're all related to Lang
expression language so I'm just going to
store them as two splits within this
project cool so I've go ahead and I've
created rag app here that's all set I
have my rag bot now we've used this
previously that's all set um we kind of
skip through some of
this
and the key point is simply this right
now all I need to do is I can just take
this this data set name here
cool and I can kick off an evaluation I
can specify the two splits I want to
work
great so both evaluations ran I ran one
on the newer split I went R I ran the
other on the older set of questions my
my original set of you questions um so
cool here's the two results I can see
the split names here so this is V2 or
the newer ones V1 or the older ones
performance is a lot worse on the older
ones it looks fine on the new ones so
what this tells me is I can investigate
this a little bit more deeply and I can
see that performance is pretty bad on my
original uh set of uh eval question
answer pair
and what this kind of would tell me is
okay I need to do a little bit of work
to make sure that my document loading
within the new Doc structure um as you
can see what we do right here we should
then make sure that this is actually
Gathering all the information necessary
to actually perform well um on our
individual ebal set so if you actually
should go to the docs here we can see
the doc structures changed a lot so it's
very possible that we're no longer kind
of getting the right documentation or
Pages necessary to answer all the
questions that are relevant so this kind
of thing would be really important if
for example I have a production app
that's loading from you know setup
documentation the documentation
structure changes I want to actually
determine o how much of regression do I
see with this documentation change and
how do I then need to modify uh my data
loading to um to actually make sure that
I have full coverage on the questions in
my original eval set so that's kind of a
good example of where you might use
splits also things like partitioning you
know test examples from trainer examples
if you're doing fine tuning is another
very kind of very classic application
for using splits um but anyway this
really just shows the how you can
actually set them up using the UI really
easily thanks
Browse More Related Video
![](https://i.ytimg.com/vi/lTfhw_9cJqc/hq720.jpg)
RAG Evaluation (Answer Correctness) | LangSmith Evaluations - Part 12
![](https://i.ytimg.com/vi/Fr_7HtHjcf0/hq720.jpg)
RAG Evaluation (Document Relevance) | LangSmith Evaluations - Part 14
![](https://i.ytimg.com/vi/xTMngs6JWNM/hq720.jpg)
Regression Testing | LangSmith Evaluations - Part 15
![](https://i.ytimg.com/vi/w31v_kFvcNw/hq720.jpg)
Custom Evaluators | LangSmith Evaluations - Part 6
![](https://i.ytimg.com/vi/IlNglM9bKLw/hq720.jpg)
RAG Evaluation (Answer Hallucinations) | LangSmith Evaluations - Part 13
![](https://i.ytimg.com/vi/vygFgCNR7WA/hq720.jpg)
Why Evals Matter | LangSmith Evaluations - Part 1
5.0 / 5 (0 votes)