SLMのファインチューニング入門:自社データでAIを育てる方法
この記事の要点
SLMのファインチューニングは、数百件の社内データから始められます。LLMとの違い、LoRA・QLoRAの仕組み、向く場面と向かない場面、外部委託と内製の判断基準を解説します。
結論:SLMのファインチューニングは中小企業でも現実的な手段になっている
SLMのファインチューニングは、数百件の社内データと1〜2日の学習時間があれば試せます。2年前まで、ファインチューニングは大規模モデルを動かすための高性能GPUと数百万件のデータが必要で、大手IT企業以外には縁遠い技術でした。それが変わったのは、70億パラメータ前後のスモール言語モデルと、LoRAという省メモリ学習手法の普及によってです。
自社の問い合わせ対応データ、商品説明文、社内規程を使ってAIを追加学習させることで、汎用モデルでは出せなかった業務特化の精度を引き出せます。この記事では、SLMのファインチューニングの仕組み、LLMとの違い、向く場面と向かない場面、実際に始める方法を説明します。
ファインチューニングとは何か
大規模なテキストデータで事前学習済みのSLMに対して、特定の用途に合わせた追加学習を行うことをファインチューニングといいます。
たとえば、Phi-4 MiniやGemma 3はインターネット上の膨大なテキストで事前学習されており、日本語の理解や基本的な質問応答は最初からできます。しかし「自社の製品仕様書に基づいた問い合わせ対応」や「社内規程に沿った経費申請の判断」など、業務固有の知識や回答スタイルは学習されていません。
ファインチューニングでは、「質問→正しい回答」のペアを数百〜数千件用意し、それをモデルに学習させます。モデルは既存の言語能力を保ちながら、自社業務に特化した知識と回答パターンを習得します。
ファインチューニングの基礎でも詳しく解説していますが、この記事ではとくにSLMに絞った実務的な観点に焦点を当てます。
LLMのファインチューニングと何が違うか
GPT-4やClaude 3クラスの大規模モデルのファインチューニングは、以下の点でSLMより制約があります。
コストの差が最も大きいです。大規模モデルをフルファインチューニングするには、A100クラスのGPUが複数台、数十〜数百時間の学習時間が必要で、クラウドGPU費用だけで数百万円になることがあります。一方、70億パラメータのSLMをLoRAで学習するなら、A10G相当のGPU1台で数時間から1日程度で完了します。クラウドGPUインスタンスを借りた場合の学習費用は数千円〜数万円に収まることが多いです(最新の料金は各クラウドで確認してください)。
必要なデータ量の差もあります。大規模モデルのファインチューニングでは精度向上に数万〜数十万件のデータが必要なケースがありますが、SLMでは数百〜数千件から有意な改善が得られます。これは、SLMが既にしっかりとした言語能力を持っているため、業務固有のパターンを少量データから学習できるためです。
ハードウェア要件の差も現実的な制約です。大規模モデルは数十GBのVRAMを持つGPUが必要ですが、SLMをLoRAで学習する場合は16GB程度のVRAMで動作します。NVIDIA RTX 4080クラスの民生向けGPUでも動作可能です。
LoRAとQLoRAを平易に説明すると
SLMのファインチューニングで使われる2つの代表的な手法、LoRAとQLoRAを、専門用語を使わずに説明します。
LoRAとは、モデルを丸ごと書き換えずに、薄い「上書き層」だけを学習させる手法です。
モデルのパラメータ全体は数十億個あります。これを全部更新しようとすると膨大なメモリと計算が必要です。LoRAは、「モデルの本体は変えず、追加した小さな補正データだけを学習させる」というアプローチです。たとえば元のモデルが1,000×1,000の行列を持つとすると、LoRAは1,000×10と10×1,000という2つの小さな行列だけを学習します。学習後は、この小さな補正をモデルに適用することで、業務特化の振る舞いを実現します。
学習するパラメータ数が元の1%以下になるため、メモリ消費量と学習時間が大幅に減ります。品質もフルファインチューニングに近い水準を維持できることが多いです。
QLoRAとは、LoRAをさらに省メモリ化した手法です。モデルの本体を通常より粗い精度で保持することでメモリ使用量を4分の1程度に削減しつつ、LoRAの補正部分は高精度で学習します。家庭用GPUや小規模なクラウドインスタンスでも大きめのSLMをファインチューニングできるのは、QLoRAのおかげです。
必要なデータ量と質の目安
データ量については「何件あれば十分か」という問いに一律の答えはありません。目的と業務の複雑さによって変わります。ただし実務で多く見られるパターンとして、次の目安が参考になります。
特定の業務質問への回答スタイル調整なら、300〜500件程度から改善が見られることが多いです。例として、社内の問い合わせ対応トーン(丁寧さ・専門用語の使い方)をモデルに学習させる場合です。
業務固有の知識の習得なら、1,000〜3,000件が目安です。例として、自社製品の技術仕様に関する質問に正確に答えられるようにする場合です。
複雑な判断プロセスの学習には、5,000件以上が望ましいです。例として、複数条件の組み合わせで判断が変わる審査業務などです。
データの質は量よりも重要です。誤った情報が含まれるデータ、矛盾する回答が混在するデータ、カバレッジが偏ったデータでは、学習後のモデルが誤った挙動を示します。学習データの品質チェックに十分な時間をかけてください。
ファインチューニングが向く場面・向かない場面
向く場面は、業務特化の回答スタイルが必要な場合、特定ドメインの用語や判断基準を学習させたい場合、同じ形式の処理を大量に行う場合です。問い合わせ対応のトーン統一、社内規程への準拠チェック、定型フォーマットへの変換などが代表例です。
向かない場面もあります。最新情報を参照する必要がある場合は、ファインチューニングよりRAGが適しています。ファインチューニングはモデルに知識を「焼き込む」ため、学習データよりも新しい情報を扱えません。社内文書の検索や社外の最新情報の参照が主目的なら、RAGの仕組みを検討する方が効果的です。
また、処理の種類が多岐にわたる場合、少量データのファインチューニングでは汎用性が落ちます。「なんでも答えてほしい」という要求には、大規模モデルのAPIの方が適しています。
外部委託 vs 内製の判断基準
ファインチューニングを自社でやるか、外部のAI開発会社に委託するかは、自社のエンジニアリング体制で決まります。
内製が現実的な条件は、PythonとLinuxに慣れたエンジニアが社内にいること、基本的なGPU環境の構築経験があること、数カ月の学習・実装の時間を確保できることです。HuggingFaceのライブラリやpeft・trlといったツールは充実しており、技術的な難易度は2年前より大きく下がっています。
外部委託が向く条件は、社内にMLエンジニアがいない、あるいはいても本業の工数を割けない場合です。委託費用は要件によって大きく異なりますが、データ準備から学習・評価・デプロイまでを含めると数十万〜数百万円になることが多いです(最新の相場は複数社に見積もりを取って確認してください)。
ハイブリッドの選択肢として、初回だけ外部委託で仕組みを構築してもらい、2回目以降の再学習は内製で行う形もあります。初期の学習コストを下げつつ、長期的な内製化を目指す進め方です。
どちらを選ぶにせよ、データの準備は自社で行うことを勧めます。学習データには業務の知識とルールが含まれており、それを整理する作業自体が業務の標準化につながります。
まとめ
SLMのファインチューニングは、数百件の社内データと適切な手法があれば中小規模の企業でも取り組める段階になっています。LoRAやQLoRAによって学習コストが大幅に下がり、GPUの調達も以前ほど高い壁ではなくなりました。ただし、データの質の管理と、ファインチューニングが向かない用途の見極めが成否を分けます。まず自社の業務でどの処理を改善したいかを明確にし、小規模なデータセットで試してから本格投資を判断することを勧めます。
よくある質問
SLMのファインチューニングに必要なデータ量はどのくらいですか?
業務特化の用途では数百〜数千件の質問・回答ペアから始められます。ただしデータの質の方が量よりも重要で、誤りや矛盾を含むデータはモデルの精度を下げます。まず数百件の高品質なデータを用意することが先決です。
ファインチューニングとRAGはどちらが効果的ですか?
最新情報の参照や文書検索が目的ならRAGが向いています。回答のスタイルや業界特有の判断基準を学習させたい場合はファインチューニングが向いています。多くの場合、両者を組み合わせる設計が最も効果的です。
LoRAとはどういう技術ですか?
モデル全体のパラメータを更新せず、追加の小さな差分パラメータだけを学習させる手法です。学習コストとメモリ使用量を大幅に削減できるため、SLMのファインチューニングではほぼ標準的に使われます。