LangSmith を活用した LLM のファインチューニングと評価ガイド
本文の状態
日本語全文を表示中
詳細モードで約17分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
LangChain Blog
LangChain Blog は、LLM のファインチューニングと評価を LangSmith でサポートするガイドを発表し、オープンソースモデルと OpenAI のサービス両方で知識グラフ抽出タスクを実証した。
AI深層分析を開く2026年8月26日 06:41
AI深層分析
キーポイント
LangSmith を活用したファインチューニングガイドの提供
LangChain Blog は、データセット管理と評価に LangSmith を使用して LLM をファインチューニングする方法に関する包括的なガイドを作成した。
オープンソースとクローズドな両環境での実証実験
同社は CoLab と HuggingFace 上のオープンソースモデル(LLaMA2-7b-chat)および OpenAI のファインチューニングサービスを用いて、知識グラフ三重抽出タスクでテストを行った。
データセットの連携と評価プロセスの統合
LangSmith からエクスポートしたトレーニングデータを使用してモデルを微調整し、その結果を再度 LangSmith で評価する一連のプロセスを実行した。
オープンソースモデルのメリットと活用
高性能なオープンソースベースモデルはコスト削減やプライバシー保護に寄与し、特定のタスクではSOTA LLMを上回る性能を発揮できる。
OpenAIによる最新モデルのファインチューニング対応
OpenAIがgpt-3.5-turboなどの新モデルでのファインチューニングをサポートし始めたことで、以前の低能力モデルとの競争力が向上した。
重要な引用
We created a guide for fine-tuning and evaluating LLMs using LangSmith for dataset management and evaluation.
Interest in fine-tuning has grown rapidly over the past few weeks.
"exceed SOTA LLMs with much smaller open source for highly specific tasks"
"organizations may opt for many specialist fine-tuned LLMs derived from open source base models over a single massive generalist model"
編集コメントを表示
編集コメント
ファインチューニングの需要が高まる中、LangSmith を介したデータ管理と評価の統合アプローチは、開発者の実務負担を軽減する有効な手段となる。特にオープンソースモデルと商用サービスの両方で検証されている点は、技術選定の幅を広げる重要な示唆を含んでいる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。

概要
私たちは、LangSmith を用いた大規模言語モデル(LLM)のファインチューニングと評価のためのガイドを作成しました。このガイドでは、データセット管理と評価に LangSmith を活用しています。
実装は、オープンソースの LLM を CoLab と HuggingFace でトレーニングする場合と、OpenAI の新しいファインチューニングサービスを利用する場合の両方に対応しています。テストケースとして、LangSmith からエクスポートした学習データを用いて、LLaMA2-7b-chat と gpt-3.5-turbo を知識グラフのトリプル抽出タスク向けにファインチューニングしました。また、その結果も LangSmith を用いて評価しています。
CoLab 向けのガイドは こちら です。
コンテキスト
ここ数週間で、ファインチューニングへの関心が急速に高まっています。この背景には主に 2 つの要因があります。
まず、オープンソースのLLMエコシステムは目覚ましい成長を遂げました。わずか1年足らずで、最先端技術に大きく遅れをとっていた時代から、Llama-2のようなほぼSOTA(State-of-the-Art)レベルのモデルが、一般向けのラップトップでも動作するようになりました。この進化を牽引したのは、トレーニングデータの規模拡大(下図の横軸)と、指示に従う能力や人間との整合性を高めるためのファインチューニング(同縦軸)です。
高性能なオープンソースベースモデルは、コスト削減(トークン使用量の多いタスクなど)、プライバシー保護といった利点を提供します。さらにファインチューニングを組み合わせることで、非常に特定の用途に特化したタスクにおいて、より小さなオープンソースモデルでさえSOTAのLLMを上回る可能性も開かれています。
次に、主要な大規模言語モデル(LLM)プロバイダーである OpenAI が、gpt-3.5-turbo(および他のモデル)に対するファインチューニングのサポートをリリースしました。以前はファインチューニングが利用できたのは、より古いモデルに限られていました。これらの旧モデルは新世代のモデルに比べて能力が著しく劣っており、ファインチューニングを施しても、GPT-3.5 や Few-shot 学習(few-shot examples)と比較すると依然として競争力を持つには至らないことが多々ありました。しかし、新しいモデルでもファインチューニングが可能になったことで、多くの専門家が状況が変わると予測しています。
一部の人々は、単一の巨大な汎用モデルよりも、オープンソースのベースモデルから派生した多数の専門特化型ファインチューニング済み LLM を採用する方が組織にとって有益だと主張しています。HuggingFace のようなライブラリがファインチューニングをサポートしていることを踏まえると、「いつ」「どのように」ファインチューニングを行うべきか気になる方もいるでしょう。本ガイドではその概要を解説し、LangSmith がこのプロセスをどう支援できるかを示します。

微調整が必要なタイミング
大規模言語モデル(LLM)は、主に2つの方法で新しい知識を習得できます。1つ目は重みの更新(事前学習やファインチューニングなど)、2つ目はプロンプトの活用(検索拡張生成:RAG など)です。
モデルの重みは長期的な記憶に、プロンプトは短期的な記憶に例えることができます。OpenAI のクックブックには、この関係を説明する有用な比喩があります。
*「モデルをファインチューニングすることは、1週間後の試験に向けて勉強しているようなものです。一方、検索などを通じて知識をプロンプトに埋め込むことは、開架式(オープンノート)の試験を受けるようなものです。」*
この点を踏まえると、LLM に新しい知識や事実の記憶を教えるためにファインチューニングを行うことは推奨されません。OpenAI の John Schulman 氏による講演でも指摘されているように、ファインチューニングはむしろハルシネーション(幻覚)を増加させる可能性があります。
ファインチューニングは、特定のタスクを習得させることに適しており、プロンプトや RAG(検索拡張生成)と比較して検討すべきです。前述の通り、十分な例題があり、Few-shot プロンプティングに必要なコンテキスト学習能力が不足している LLM に対しては、明確に定義されたタスクにおいてファインチューニングが有効な手段となり得ます。
Anyscale のブログ記事はこの点をよく要約しており、「ファインチューニングは形式のためのものであり、事実のためのものではない」と述べています。
微調整のやり方
Chat などのタスク向けに、OpenAssistant コーパスの一部を用いた LLaMA の微調整レシピがいくつか公開されています。これらは HuggingFace で利用でき、単一の CoLab GPU でも動作するため、誰でも手軽に試せます。
しかし、微調整において依然として大きな課題となっているのが、「データの収集・クリーニング」と「評価」の 2 つです。以下では、LangSmith を活用してこれらの課題をどのように解決できるかをご紹介します(緑色の部分参照)。

タスク
分類、タグ付け、あるいは情報抽出といったタスクは、ファインチューニングに非常に適しています。Anyscale は、LLaMA 7B や 13B の大規模言語モデル(LLM)を抽出、テキストから SQL への生成、および QA(質問応答)のタスクでファインチューニングした結果、GPT-4 を上回る有望な成果を報告しています。
テストケースとして私たちは、テキストから「(主語,関係,目的語)」という形式の知識トリプルを抽出するタスクを選びました。ここでいう主語と目的語はエンティティ(実体)であり、関係はそれらの間の属性や接続を表します。こうしたトリプルは、エンティティとその関係を格納するデータベースである「知識グラフ」の構築に活用できます。
私たちは、LLM(GPT-3.5 または GPT-4)が関数呼び出しを用いてトリプルを抽出できる能力を探るため、ユーザーが入力したテキストからトリプルを抽出するための公開された Streamlit アプリケーションも作成しました。並行して、このタスクのために LLaMA2-7b-chat と GPT-3.5 を、public datasets を用いてファインチューニングしました。
データセット
LLM のトレーニングにおいて、データセットの収集とクリーニングはしばしば困難な課題となります。LangSmith でプロジェクトを設定すると、生成結果が自動的にログ記録されるため、大量のデータを容易に入手できます。LangSmith はクエリ可能なインターフェースを提供しており、ユーザーフィードバックやフィルタ、タグ、その他のメトリクスを活用して「品質の低いケース」を特定し、アプリ内で出力を修正した上でデータセットへ保存することが可能です。これにより、モデルの結果改善に活用できるデータを構築できます(後述)。

例として、公開されている BenchIE や CarbIE データセットから知識グラフのトリプルを用いて LangSmith 用の訓練・テストデータセットを作成しました。各トリプルトを {s: subject, object: object, relation: relationship} という形式に変換し、JSON 形式で統一した上でデータをランダムに分割し、約 1500 文のラベル付き訓練セットと 100 文のテストセットを用意しました。CoLab では、LangSmith データセットを簡単に読み込む方法を紹介しています。
データを読み込んだ後は、以下のシステムプロンプトと LLaMA インストラクショントークン(こちら の例に倣って)を用いて、ファインチューニング用の指示を作成します。
"you are a model tasked with extracting knowledge graph triples from given text. "
"The triples consist of:\n"
"- \"s\": the subject, which is the main entity the statement is about.\n"
"- \"object\": the object, which is the entity or concept that the subject is related to.\n"
"- \"relation\": the relationship between the subject and the object. "
"Given an input sentence, output the triples that represent the knowledge contained in the sentence."Quantization
優れたガイド(こちら)にあるように、ここでは 70 億パラメータの LLaMA チャットモデルをファインチューニングします。これを単一の GPU で実行したい場合(HuggingFace のガイドはこちら)、課題が生じます。各パラメータが 32 ビットの場合、70 億パラメータの LLaMA2 モデルは約 28GB のメモリを占有し、T4(VRAM 16GB)の容量を超えてしまうからです。
これを解決するために、モデルのパラメータを量子化します。これは値をビン分けする処理で(例えば 4 ビット量子化では 16 の値にまとめる)、モデルの保存に必要なメモリを大幅に削減します。具体的には、70 億パラメータ × 4 ビット/パラメータ = 3.5GB となり、約 8 倍の圧縮効果があります。
LoRA と qLoRA
モデルをメモリ上に保持したまま、残りの GPU リソースの制約内でファインチューニングを行う必要があります。そのための一般的なアプローチが、パラメータ効率的なファインチューニング(PEFT)です。
LoRA は、事前学習済みモデルの重みを凍結し、モデルアーキテクチャの各層に訓練可能なランク分解行列を挿入します(詳細は こちら を参照)。これにより、ファインチューニング対象のパラメータ数を大幅に削減できます(例えば、全パラメータの約 1% 程度です 参考動画)。
qLoRA はこれをさらに拡張した手法で、*量子化された*重みを凍結します。ファインチューニング中、凍結された重みは順伝播と逆伝播のために一時的に非量子化されますが、メモリ上に保存されるのは(ごく少数の)LoRA アダプターのみです。これにより、ファインチューニング後のモデルサイズを大幅に圧縮できます。
トレーニング
事前学習済み LLaMA-7b チャットモデル llama-2-7b-chat-hf をベースに、CoLab にある約 1500 の指示データを用いて A100 で微調整を行いました。トレーニング設定については、こちら に記載されている LLaMA 用パラメータを採用しました。BitsAndBytes を使用してベースモデルを 4 ビット精度で読み込みますが、順伝播と逆伝播は fp16 で実行します。また、指示データに対する微調整には Supervised Fine-Tuning(SFT)を採用しており、この小規模なデータ量であれば A100 上で 15 分未満で完了するほど高速です。
OpenAI の微調整
OpenAI の GPT-3.5-turbo チャットモデルを微調整するため、トレーニングデータセットから 50 例を選択し、期待される形式のチャットメッセージリストに変換しました:
{
"messages": [
{
"role": "user",
"content": "Extract triplets from the following sentence:\n\n{sentence}"},
{
"role": "assistant",
"content": "{triples}"
},
...
]
}ベースモデルは非常に汎用的な能力を持っているため、目的の動作を実現するために大量のデータを必要としません。トレーニングデータの役割は、モデルに実質的な情報を教えることではなく、常に正しいフォーマットとスタイルで生成するように導くことにあります。後述する評価セクションでも示される通り、50 件のトレーニング例だけで十分であり、モデルが毎回トリプレットを正しい形式で予測できるようになりました。
微調整用のデータを openai SDK を通じてアップロードし、生成されたモデルを LangChain の ChatOpenAI クラスでそのまま利用しました。微調整済みモデルは、以下のように直接使用可能です。
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model="ft:gpt-3.5-turbo-0613:{openaiOrg}::{modelId}")この一連の作業には数分しかかかりませんでした。チェーン内のコード変更も不要でした(ただし、プロンプトテンプレートに Few-shot 例を追加する必要がなくなった点は除きます)。その後、他のモデルとのベンチマークを実施して性能を定量化しました。
全体の様子については、CoLab のノートブックで確認できます。
評価
各モデルは LangSmith を用いて評価しました。LLM(GPT-4)による評価者が各予測にスコアを付け、ラベルと予測されたトリプルの間に事実に反する相違がないかを確認します。この評価では、ラベルに含まれていないトリプルを予測した場合や、必要なトリプルが含まれていない場合に減点されますが、オブジェクトや関係の記述が意味を変えない範囲で wording が異なる場合は寛容に扱います。
評価スコアは 0 から 100 の尺度で付与されます。カスタム評価器とチェーンを容易に設定してテストできるよう、CoLab で評価を実行しました。
以下の表は、LLaMA ベースのチャットモデルと微調整済みバリアントの評価結果を示しています。比較のため、OpenAI のチャットモデルを用いた 3 つのチェーンもベンチマークしました。具体的には、few-shot プロンプトを使用した gpt-3.5-turbo、50 件のトレーニングデータで微調整された gpt-3.5-turbo モデル、そして few-shot の gpt-4 チェーンです。
- GPT-4 の few-shot プロンプトが最も高い性能を示しました
- 2 位は微調整済み GPT-3.5 です
- 微調整済み LLaMA-7b-chat は GPT-3.5 よりも優れたパフォーマンスを発揮しました
- また、微調整済み LLaMA-7b-chat はベースラインの LLaMA-7b-chat と比較して約 29% 向上しています
微調整済み llama-2
ベースライン llama-2 チャットモデル
few-shot gpt-3.5-turbo
finetuned gpt-3.5-turbo
few-shot gpt-4
スコア
49%
38%
40%
56%
59%
分析
LangSmith を用いて一般的な失敗パターンを特定し、微調整済みモデルがベースラインモデルよりもどこで優れた振る舞いをするのかをより深く理解します。低スコアの予測結果に絞り込むことで、ベースラインの LLaMA-7b-chat がどのように滑稽なハルシネーション(幻覚)を起こすかを確認できます。以下のケースでは、LLM が被写体をホーマー・シンプソンと誤認し、意図したフォーマットの範囲外で安易に回答しています(こちら)。一方、微調整済み LLaMA-7b-chat(こちら)は、参照データ(グランドトゥルース)に非常に近い回答を生成しています。

Few-shot 学習の例を用いても、ベースラインの LLaMA-7b-chat は、非公式な雑談スタイルで回答する傾向があります (こちら)。

一方、ファインチューニングを施したモデルは、望ましい回答形式に沿ったテキストを生成する傾向があります (こちら)。不要な対話を追加することを避け、形式に忠実に振る舞います。

ファインチューニングを施したモデルでも、望ましいコンテンツの生成に失敗する事例が存在します。以下の例 (リンク) では、抽出結果を生成する代わりに指示文を繰り返してしまっています。これは、デコーディングパラメータの変更(またはロジットバイアシングの使用)、より多くの指示の追加、ベースモデルの大型化(例:13b)、あるいはプロンプトエンジニアリングによる指示の改善など、さまざまなアプローチで対応可能です。

一方、トレーニングデータセットでの微調整を行わずとも、適切なトリプレット(三項関係)の抽出が可能な GPT-4 の few-shot プロンプト例を以下に示します (リンク)。

結論
以下の教訓をいくつかまとめました。
LangSmith は、ファインチューニングのワークフローにおけるデータ収集、評価、結果の確認といった課題を解決する手助けをします。ここでは、LangSmith を使ってどのように簡単にデータセットを収集・読み込み、評価を実行し、特定の生成結果を検証できるかをご紹介します。
RAG やフューショットプロンプティングは、より難易度が高くコストのかかるファインチューニングに飛びつく前に、慎重に検討すべきです。実際、GPT-4 のフューショットプロンプティングは、私たちが試したすべてのファインチューニング済みモデルよりも高い性能を発揮しました。
明確に定義されたタスクに対して小規模なオープンソースモデルをファインチューニングすると、はるかに大規模な汎用モデルを上回る結果が得られることがあります。Anyscale などが以前報告していた通り、私たちが確認したところでも、ファインチューニング済みの LLaMA2-chat-7B モデルは、GPT-3.5-turbo のようなはるかに大きな汎用大規模言語モデル(LLM)よりも優れたパフォーマンスを示しました。
ファインチューニングのパフォーマンスを向上させるには、多くの調整要素があります。その中でも特に重要なのは、タスクの慎重な定義とデータセットの選別です。
LIMA などの研究では、高品質なインストラクションを厳選したわずか 1,000 件で LLaMA をファインチューニングするだけで、驚くべき性能を発揮することが報告されています。さらに、これらの結果を改善するための見通しのある方法として、より大規模なベースモデル(例:LLaMA 13B)の使用や、GPU サービスを活用したスケーリング(Lambda Labs、Modal、Vast.ai、Mosaic、Anyscale など)が挙げられます。
全体として、これらの結果(およびリンク先の CoLab)は、LangSmith を活用してオープンソースの LLM をファインチューニングするための、ワークフロー全体をサポートするツールの使い方を示す迅速なレシピとなっています。
関連コンテンツ

LangSmith
LangSmith Engine の新機能:検出精度が 2 倍以上に向上


T. Saltzgaber
B. Tannyhill
2026年8月25日
5 分

LangSmith
観測可能性と評価
新規導入:LangSmith 調整済み評価機能、まずは「知覚エラー」から



J. Broekhuizen
S. Karkhanis
V. Trivedy
2026年8月18日
5 分

LangSmith
Managed Deep Agents が公開ベータ版となりました

ビクター・モレイラ
2026年8月7日
9 分
エージェントの実際の動作を確認する
エージェントエンジニアリングプラットフォーム「LangSmith」を使えば、開発者はすべてのエージェントの判断をデバッグし、変更の評価を行い、ワンクリックでデプロイできます。
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み