ファインチューニング

「ファインチューニング」

データ活用やDX成功に必要な考え方を、各種キーワードの解説で理解できる用語解説集です。
今回は、IT活用で現在大変に注目されている機械学習において学習をどのように行うかについて考えてみましょう。

ファインチューニング(fine-tuning)とは

ファインチューニング(fine-tuning)とは、機械学習の活用において、既存の学習済みモデルに対して追加で学習を行うことで、能力を調整した学習済みモデルを作る手法のことです。
ゼロからの学習を行う場合と比べて学習にかかるコストを下げる手法として活用できることがあり、既存の学習済みモデルを用途にあわせて調整できる再利用手段として利用されることがあります。

機械学習を活用したいが、学習済みモデルの準備が大変

現在世間で「AI」がよく話題になっていますが、ほとんどの場合「AI」とは「機械学習」のことです。機械学習はデータから価値を生みだすことができる手段でもあり、データ活用の取り組みにおいても、機械学習をどのように活用するのかは重要なテーマとなっています。

機械学習を活用したいが、学習済みモデルの用意が大変

機械学習を業務で活用するためには、自分たちの用途で必要なタスクをこなすことができる「学習済みモデル」が必要になります。

例えば(単純化していますが)、画像データから、その画像に映っているものが「りんご」か「みかん」かを自動判定したいのなら、

画像データ(入力) ⇒ 学習済みモデル ⇒ 「りんごです」「みかんです」(出力)

入力データと取ってくるところや、判断結果をどのように活用するかも実は難しいところですが、このような活用を成立させるためには、十分な性能を持った「学習済みモデル」を用意する必要があります。

しかし、学習済みモデルの用意には手間やコストがかかることがあります。データの準備が大変なことがあり、ハイスキルなエンジニアや高いスペックのハードウェアが必要になることがあるなど、十分な取り組みが難しいことがあります。

「学習済みモデル」を用意するためには:

  • 「入力データ+教師データ」を訓練データとして用意して
    (画像データを用意して、人が「これはみかん」「これはリンゴ」とラベルをつける、一般的に多くのデータを用意する必要がある)
  • そのデータを用いて機械学習のエンジンで学習させて、「学習済みモデル」を得る
    (高いスキルのある人員が、コンピュータに沢山の計算をさせて学習させる必要がある)

自分たちの用途にあわせてゼロから学習させる方が、理想的な性能の学習済みモデルを作成できる可能性は高いのですが、現実的には難しいことがあります。

既存の学習済みモデルの再利用

またそもそも、自前でデータを用意しての学習が「現実的に不可能」なケースもあります。

執筆時点では生成AIが大変な話題になっていますが、ChatGPTなどを実現している学習済みモデルである「LLM(大規模言語モデル)」は、途方もない量の訓練データを使って途方もない量の計算を経て作られています。日本中の各社において「途方もない量の訓練データ」を用意して莫大な計算を行い、個別に自社専用のLLMを用意することは、多くの場合には現実的ではないでしょう。

そこで、「既存の学習済みモデルを何らかの方法で再利用する」ことが、機械学習の活用で重要なポイントになっています。

事後に追加学習する

ファインチューニングは、そのような既存の学習済みモデルを再利用する方法の一つです。

ファインチューニングは言葉の意味が不明瞭なところがありますが、ここでは「既存の学習済みモデルに対して追加で学習」を行って性能の調整を行うこと一般をファインチューニングと呼ぶとして説明をします。

機械学習には、多数ある訓練データ全体を使って「一気に学習する」タイプのものと、データを少しずつ与えて「段階的に学習する」タイプのものがあります。

段階的に学習を行うタイプの機械学習なら、これで学習はおしまいにしますというアルゴリズムにはなっていません。そうであるなら、学習済みモデルに対して「さらなる追加の訓練データ」を与えて「追加の学習を行わせる」ことができます。例えば、ディープラーニングで用いられているニューラルネットワークは基本的に後者のタイプです。

ファインチューニングの例

先ほどの例、「りんごとみかんを自動判定する」を例に説明しましょう。既に既存の学習済みモデルが存在し、そのモデルは「りんごとみかんを見分けることが十分にできる」ものだとします。これを再利用して「青りんごも見分けられる」ようにします。

  • 「りんごとみかんを自動判定できる」学習済みモデルを用意
  • 「青りんごの画像データ」に「これは青りんごです」のラベルとつけた追加の訓練データを用意
  • 学習済みモデルに、上記訓練データで追加学習を行う

その結果、既存の学習済みモデルの能力がうまく調整され、以下のようなことができるようになることがあります。

画像データ(入力) ⇒ ファインチューニング済みモデル ⇒ 「りんごです」「みかんです」「青りんごです」(出力)

実際には、素朴に追加のデータを与えて学習させるだけではなく、ゼロから学習する時とは異なった技術的な工夫がなされたりします(学習済みモデルのニューラルネットの全部を再学習しないなど)。

しかし利用イメージとしては、「既存モデル」に「追加の訓練データ」を与えることで、「性能を調整した『学習済みモデル』を生み出す」取り組みがファインチューニングです。

ファインチューニングは万能ではない

ファインチューニングを用いることで、既存の学習済みモデルに対して新しい能力を付与することや(例:青りんごの判定能力を追加)、違う用途への転用(例:リンゴの判定能力を野菜の判定へ転用)、一般的性能を具体的な用途に特化させる(例:特定の産地のりんごに特化して精度向上)ことなどが期待できます。

追加で学習させるアイディアは、一般的に優れていて常に使うべきであるような印象を直観的には受けるかもしれません。しかしファインチューニング、残念ながら「思ったように働かない」ことがあります。

ゼロから学習させた方がマシなことがある

学習させてある「賢い」ものを使うのでゼロから学習するよりもプラスの効果があると思いたいところです。しかし実際には、ゼロから学習させた方がマシなことがあります。

比喩ですが、例えばあなたが「東京から新潟に行ってから山梨県の甲府に行ってください」と言われたらどう思うでしょうか。新潟に寄らずに東京から直接甲府に行った方が早い(新潟まで行くのはただの無駄)と思うはずです。そういうこともあり得ます。

既存の「学習したこと」が劣化することがある

上記の例ならば、「青りんご」を追加学習させたことで「みかん」の判定能力が下がってしまうようなことがあります。獲得して欲しい能力だけ獲得させることができず、学習によりすでに獲得している能力を劣化させてしまうことがあり、調整したい能力だけ都合よく変更できないことがあります。

望んだ性能が出ないことがある

追加で学習させてみても望んだ能力をうまく獲得できないこともあります。例えば執筆時点では、自社にあわせた独自の生成AIを作ろうとして、LLM(大規模言語モデル)に自社データを追加学習させてファインチューニングしてみても、望んだ性能が出ないことが珍しくないと言われていることがあります。

そもそも学習させなければいけない

いずれにしても、追加学習を実施する必要があります。データを用意する必要があり、ハードウェアなどを用意する必要もあり、機械学習を理解したハイスキルなエンジニアも必要になります。「学習させないといけない」時点で、誰にでもお手軽ではなく理想的な手段ではありません。

ファインチューニングと他の選択肢

ファインチューニングは有用な手法ですが、残念ながら切り札ではありません。他にも選択肢があることを意識して利用する必要があります。

  • ゼロから学習済みモデルを作る
    (その方が結局手間もかからず性能が高いこともあります)
  • 転移学習
  • In-Context Learning
    • RAG(Retrieval-Augmented Generation)

また、用意するデータを改善する、あるいは学習済みモデルの活用方法を工夫するなど、それ以外の方法での試行錯誤で性能改善が行えることもあります(機械学習の記事を参照)。

試行錯誤が必要な状況で役に立つ「つなぐ」技術

機械学習の活用では、必要なデータを集めてくることはもちろん、どのようなデータを使ってどのように学習させるか、さらには学習済みモデルをどのように業務で利用するかについても、このように試行錯誤が必要になることがあります。

このような試行錯誤のたびに、例えばデータを集めてくるために、業務との組み合わせ方を試してみるたびに、毎回手間と時間がかかってしまっては、効率的に取り組みが行えません。

実際、機械学習の活用に取り組もうとしてその準備に多くの時間がかかってしまうことは珍しくなく、PoCをやって一応成果は出たけれども、そこから実業務に展開できないままになっているようなことはどうもあります。

解決するためには、試行錯誤で必要になる「各種の連携処理」がスムーズかつ効率的に実現できる必要があります。

「つなぐ」技術を活用ください

このような各種の「連携処理」を、「GUIだけ」で効率的に開発できる手段が存在します。EAI」や「ETL」、「iPaaS」と呼ばれる、「DataSpider」や「HULFT Square」などの「つなぐ」技術です。これらを活用することで、新旧システムをスムーズかつ効率的に連携させることができます。

GUIだけで利用できる

通常のプログラミングのようにコードを書く必要がありません。GUI上でアイコンを配置し設定をすることで、多種多様なシステムやデータ、クラウドサービスへの連携処理を実現できます。

「GUIで開発できる」ことは長所でもある

GUIだけでのノーコード開発は、本格的なプログラミングに対して簡易で妥協的な印象を受けるかもしれません。しかしながら、GUIだけで開発できることは「業務の現場の担当者が自分たち自身で主体的にクラウド連携に取り組む」ことを可能にします。ビジネスのことを一番良くわかっているのは現場の担当者です。

本格的処理を実装できる

「GUIだけで開発できる」ことを謳っている製品は沢山ありますが、そういう製品に簡易で悪い印象を持っている人もおられるかもしれません。

確かに、「簡単に作れるが簡易なことしかできない」「本格的処理を実行しようとしたら処理できずに落ちてしまった」「業務を支えられるだけの高い信頼性や安定稼働能力がなくて大変なことになってしまった」ようなことは起こりがちです。

「DataSpider」や「HULFT Square」は、簡単に使うこともできますが本格的プログラミングと同等のレベルの処理の作りこみもできます。内部的にJavaに変換されて実行されるなど本格的プログラミングと同様の高い処理能力があり、長年にわたって企業ITを支えてきた実績もあります。「GUIだけ」の良さと、本格的能力の両方を兼ね備えています。

iPaaSなので自社運用不要

DataSpiderなら自社管理下のシステムでしっかりと運用できます。クラウドサービス(iPaaS)のHULFT Squareなら、このような「つなぐ」技術そのもの自体もクラウドサービスとして自社運用不要で利用でき、自社での導入やシステム運用の手間がなく利用できます。

関係するキーワード(さらに理解するために)

機械学習に関連したキーワード

生成AI/ChatGPTに関係するキーワード

データ連携やシステム連携に関係するキーワード

  • EAI
    • システム間をデータ連携して「つなぐ」考え方で、様々なデータやシステムを自在につなぐ手段です。IT利活用をうまく進める考え方として、クラウド時代になるずっと前から、活躍してきた考え方です。
  • ETL
    • 昨今盛んに取り組まれているデータ活用の取り組みでは、データの分析作業そのものではなく、オンプレミスからクラウドまで、あちこちに散在するデータを集めてくる作業や前処理が実作業の大半を占めます。そのような処理を効率的に実現する手段です。
  • iPaaS
    • 様々なクラウドを外部のシステムやデータと、GUI上での操作だけで「つなぐ」クラウドサービスのことをiPaaSと呼びます。

「iPaaS」や「つなぐ」技術に興味がありますか?

オンプレミスにあるITシステムからクラウドサービスまで、様々なデータやシステムを自在に連携し、IT利活用をうまく成功させる製品を実際に試してみてください。

「つなぐ」ツールの決定版、データ連携ソフトウェア「DataSpider<」および、データ連携プラットフォーム「HULFT Square」

当社で開発販売しているデータ連携ツール「DataSpider」は長年の実績がある「つなぐ」ツールです。データ連携プラットフォーム「HULFT Square」はDataSpiderの技術を用いて開発された「つなぐ」クラウドサービスです。

通常のプログラミングのようにコードを書くこと無くGUIだけ(ノーコード)で開発できるので、自社のビジネスをよく理解している業務の現場が自ら活用に取り組めることも特徴です。

DataSpider / HULFT Squareの「つなぐ」技術を試してみてください:

簡易な連携ツールならば世の中に多くありますが、GUIだけで利用でき、プログラマではなくても十分に使える使いやすさをもちつつ、「高い開発生産性」「業務の基盤(プロフェッショナルユース)を担えるだけの本格的な性能」を備えています。

IT利活用の成功を妨げている「バラバラになったシステムやデータをつなぐ」問題をスムーズに解決することができます。無料体験版や、無償で実際使ってみることができるハンズオンも定期開催しておりますので、ぜひ一度お試しいただけますと幸いです。


「HULFT Square」で貴社のビジネスが変えられるか「PoC」をしてみませんか:

貴社のビジネスで「つなぐ」がどう活用できるのか、データ連携を用いた課題解決の実現可能性や得られる効果検証を行ってみませんか?

  • SaaSとのデータ連携を自動化したいが、その実現可能性を確認したい
  • データ利活用に向けて進めたいがシステム連携に課題がある
  • DXの実現に向けてデータ連携基盤の検討をしたい

用語集 コラム一覧

英数字・記号

あ行

か行

さ行

た行

な行

は行

ま行

や行

ら行

わ行

» データ活用コラム一覧

Recommended Content

Related Content

Return to column list