【自己紹介】
【転職支援サービス】
転職を検討しているデータサイエンティスト向けに【完全無料の】転職支援サービスを実施しています!
詳しくは下記をご覧ください!
【キャリア相談サービス】
キャリアに悩むデータサイエンティスト向けにキャリア相談サービスをやっています!
詳しくは下記をご覧ください!
こんにちは、ぬるったんです。
今回は、企業でLLMを活用する時にどのLLMを選択するべきか?というテーマで解説していきます。
昨今、話題の生成AIですが、データサイエンティストとして、学んでおくべき領域の一つだと感じています。
生成AIを企業活用する流れは今後も続くことが想定される中で、広義の意味でのデータ活用と捉えることができ、データサイエンティストとして価値を発揮すべき領域だからです。
今後のデータサイエンティストは生成AIを企業で活用できることが求められていくことは間違いないでしょう。
今回は、生成AI活用を企業で進めるにあたって、どのようなLLMを選択するべきか?という点について解説していきます。
YouTube版はこちらをご覧ください。チャンネル登録も合わせてよろしくお願いします。
前提となる「RAG」に関しては、下記の記事を参照ください。
どのようにRAGの精度をどう向上させるのか?
そもそもRAGの精度をどのように向上させるのか?という点を解説していきます。
左の図がRAGの構成になります。
RAGでは、事前にベクトルデータベースに社内情報などの固有情報を参照させて、ユーザーの検索に対して、固有情報を参照させて回答を生成する手法です。
このようなRAGの精度向上には大別して4つ方法が有効です。
- LLMの精度向上
LLM自体の精度を向上させて、RAGの性能を向上させる手法 - プロンプトエンジニアリング
LLMへの指示、プロンプトを調整して、RAGの性能を向上させる方法 - 参照データの整備・加工
参照させるデータのクレンジング、データの参照、チャンクのさせ方など参照データを綺麗にして、RAGの性能を向上させる方法 - 検索アルゴリズムの高度化
検索手法を最適化、リランカーの導入などにより、情報への検索性能を上げて、RAGの性能を向上させる方法
今回は、この4つの中で、1つ目のLLMの精度に関して焦点を当てた内容になっています。
LLMを選択する観点は?
ここから企業でLLMを活用するために考えるべき観点について解説していきます。
LLMの種類
観点の前に簡単にLLMの種類について解説していきます。
大別するとLLMは「クローズドソース系」「オープンソース系」の2つに分けることができます。
クローズドソース系はLLMの重みやソースコードが開示されておらず、各企業が提供するSaaSサービスやAPIを経由してLLMを利用する必要があります。
一方で、オープンソース系はLLMの重みやソースコードが全世界に開示されており、自由に改変することができます。
新しいモデルが出た時に、よく××ベースのLLMが××社より発表、と言われることもありますが、その場合はなにがしかのオープンソースを改良して作られているということです。
一部のオープンソースではすべての情報が開示されておらず、半オープンソースのような場合もありますが、LLMを活用する場合は大きく「クローズドソース系」と「オープンソース系」で異なるという点について理解しておくことが必要です。
この図では一部のLLMを掲載していますが、実際には数多くのLLMが市場には出回っています。
生成AIのトレンドに乗って、多くのLLMが出ていることから企業で活用する際に、どんなLLMを活用するべきか?という点で悩まされることも増えてきていると感じています。
LLM選択時の観点
ここから、LLM選択時の観点について解説していきます。
大きく、LLMを企業活用する際に考えるべき観点は、
- コスト
- パフォーマンス
- セキュリティ
の3つの観点で検討が必要になります。それぞれ解説していきます。
コスト
まずはコストの観点です。
これはLLMを活用する際に、どれくらいのコストがかかるか?という観点です。
このコストの中には、LLMを利用するコストだけではなく、構築コスト、運用コスト、なども含まれます。
クローズドソース系のLLMはOpenAIやGoogleが提供しているAPIを利用した従量課金制なので、オープンソースの方が安いだろう、と考える方も多くいますが、実際はそんな単純な話ではありません。
LLMはそもそも出力を作るために、必要な計算量が莫大になります。
特に精度が高いLLMであれば、数百億のパラメータ数が当たり前になっており、計算をさせるだけでも大量のGPUを要します。
そのため、
- クローズドソース系:各社のAPI利用量
- オープンソース系:LLMを計算させる計算リソース(主にGPU代)
と、いう形でオープンソース系を動かすにも、高額なGPUのホスティングが必要になります。
GPU費用はLLMのトレンドの伴って高騰中である上、従量課金のような仕組みにすることも難しいため、オープンソース系でも大型のモデルを動かそうとすると費用が高くなります。
自前で環境をセットして、モデルを載せて動かすとシステム構築費用もかかりますし、モデルアップデート時などの運用のしづらさも気になるポイントです。
このような理由から、クローズドソース系、オープンソース系でもコストの考え方が大きく異なります。
パフォーマンス
次に、LLMのパフォーマンスです。LLMのパフォーマンスはそれぞれのモデルで異なります。
多くの評価指標が出ており、判断しにくい部分もありますが、現状ではやはりGPT系が優位であるということは間違いないでしょう。
最近ではGeminiの性能が上がってきている印象もあります。
オープンソース系でもLlama3や小型のGemmaなども注目を集めています。
パフォーマンスの観点でも検討が必要になりますが、どれくらいの性能が必要かはユースケースに依存します。
LLMの性能がそこまで多く求められない使い方も中にはあるでしょう。
とはいえ、いまの市場ではPoCが多く、やろうとしていることが実現できるかどうかを試すためには、高性能のモデルを使っておけばいいという流れになりやすいです。
前述したように大型のモデルや高性能のモデルはどうしても利用料金は高くなりがちです。
今後、LLMの活用が進み、運用フェーズに入った段階でコスト削減のためにモデルの再選択をするといった状況が出てくると予測されます。
日々、技術革新があるLLM界隈なので、将来的にどうなるかは予測しきることはできませんが、企業活用でLLMの精度の観点は必ず重要になる観点です。
セキュリティ
最後の観点がセキュリティです。
LLMを企業活用する場合は、社内情報を参照させることが多く、情報漏洩のリスクが必ず発生します。
特にLLM特有の再学習による情報漏洩リスクは大手企業であればかなり慎重な姿勢を見せています。
企業活用を進める上でかなり難しい部分になるのが、このセキュリティです。
基本的にSaaS版のLLM系サービスは大手企業では禁じていることが多いです。
再学習による情報漏洩リスクがあり、再学習NGとするオプトアウト設定が個人に委ねられてしまいます。
そのため、API経由で利用できるようなWebUIを独自に作成して利用する企業がほとんどです。
API経由では再学習しないという規約があるため、全社員がオプトアウトした状態で利用することができます。
また、企業によっては根幹にかかわるデータはそもそもクラウド上に上げていけないというルールで運用している企業もあります。
例示すると、医療データや製造業のデータなどです。
このような場合であれば、クローズドソース系のLLMを利用すると、API経由で情報をクラウド上に上げてしまうことになるので、セキュリティ要件を満たすことができない場合もあります。
一般的なシステムのセキュリティ要件を満たしつつ、LLM特有のリスクを検討しながら活用を検討することになります。
また、広義のセキュリティにはなりますが、社内の情報統制的な観点で、LLMに入力した情報の中に人事情報などが含まれている場合、特定の人間にしか利用させないという権限管理・利用ルールも必要になってきます。
このように、LLMを企業活用するとなるとセキュリティ・情報統制的な観点は慎重に検討していく必要があります。
上記のように、LLMを企業活用するためには単にパフォーマンスという観点だけで考えることができません。
あらゆる観点で検討をする必要があり、利用用途によって個別で考える部分がどうしても必要になってきます。
LLM選択のパターンはどのようなものがあるか?
では、LLMを選択するパターンがどのようなものがあるか?という点について解説していきます。
LLM選択のパターンとしては大別すると下記の2つがあります。
- API利用(クローズドソース系)
- OSS利用(オープンソース系)
API利用(クローズドソース系)
まずはAPIを利用するパターンです。
OpenAIやGoogleなどのハイパースケーラーが提供するAPIを利用して、LLMを活用する方法になります。
メリット
メリットとしては、
- 環境構築が簡単
- モデルの更新などが自動でなされる
と、いう点があります。
各ハイパースケーラーが利用しやすく管理しているものを使うため、使いやすいというのが特徴的です。
LLMの更新などのメンテナンスも自分で行う必要がないため、運用面でも安心できます。
デメリット
デメリットとしては、
- クラウド環境にデータを置く必要がある
- モデルによってはコストが高くなる
といった点が挙げられます。
APIを使ってRAGを構築する際には必ずクラウド上にデータを格納する必要があります。
そのため、ローカルで扱うよりは必ずセキュリティレベルは下がってしまいます。
また、APIを使って利用するLLMは比較的、パラメータ数が多い大型のモデルになるため、モデルによってはコストが高くなる可能性があります。
こちらの内容を作成している最中に、GPT-4o、Gemini flashの値下げが発表されたので、コストは比較的安い方向に触れていくことが予測されます。
今後もコストは注目すべきポイントです。
コスト
再度解説することになりますが、コストはAPIの従量課金制になります。
API利用量は各モデルによって異なりますが、一般的にはパラメータ数が多い大型のモデルではコストが高い傾向があります。
LLMはスケーリング則というモデルのパラメータ数が大きくなると、性能が良くなる法則があるので、性能がいいモデルを使うと必然的に計算コストも高くなりコストは大きくなります。
ただし、LLMはマイクロソフト(OpenAI)やGoogleのプラットフォーム争いが起きている最中です。
プラットフォーム争いは一般的に初期投資量が鍵になるので、各社APIの利用コストを下げて覇権争いをしているため、高性能なモデルも安価に使えるようになってきている状況と感じます。
パフォーマンス
APIを利用する場合、パフォーマンスは良好であることが多いです。
基本的には大型のモデルがAPIとして提供されるため、性能は高くなります。
また、最新モデルもすぐにAPIとして提供されるため、簡単に最新モデルを使うこともでき、中期的な運用を鑑みても性能が高いモデルを使い続けられる環境になります。
OSS利用であれば、都度モデルの載せ替えなども自分でやらないといけないので、運用コストはかさみます。
セキュリティ
最後にセキュリティ面です。
セキュリティ面は中々語っている人が少ないのですが、LLMを企業活用するためには必須要件になります。
セキュリティとユーザビリティは基本的にはトレードオフになるので、ユースケースとセットで検討する必要があります。
API利用してLLMを活用する場合は、社内の情報をクラウド環境に上げる必要があります。
一般的な業務をする環境であればクラウド環境に置くことは普通になってきているので、適切に設計をすれば問題なく活用できるでしょう。
しかし、秘匿性が高いデータはクラウド環境にあげられてないという要件もあります。
医療関係のデータであったり、各企業の根幹となる技術的なデータなどはオンプレミスでの運用を行っている企業も多々あります。
このような場合は、API経由でLLMを利用することが難しく、自前で環境を用意してローカル環境で使うことが求められます。
そのため、どのような情報を入力するのか?どう使うのか?によってアーキテクチャを設計しなければならないというのが、企業活用で難しいポイントです。
OSS利用(オープンソース系)
ここから、OSS系の解説に移ります。
OSS系利用は、自前の環境を作ってLLMを動かすやり方です。
各企業が環境ごと管理している訳ではないので、自ら動作環境を構築する必要があります。
特にLLMなどの大型なモデルは計算量が莫大になるので、ほとんどの場合でGPUが必須になります。
そのため、GPUをホスティングしてGPU代を払いながら活用することになります。
メリット
メリットとしては、
- モデルの選択肢が増える
- データを外に出さず、セキュリティが担保
と、いう点です。
オープンソース系のモデルは数多くあり、様々なモデルから選択して使うことができます。自由度は高くなるのは一つのメリットでしょう。
最大のメリットは、データをクラウド環境に出す必要性がないため、セキュリティレベルを高められる点です。
APIが安くなってきているいまの環境で、オープンソース系を使う一番の理由はセキュリティになることが多いです。
デメリット
一方でデメリットとしては、
- LLMの動作環境を自作する必要あり
- システム構築に専門的な知識が必要
という点です。
LLMの動作環境を自前で用意する必要があり、開発時に大きな負担となります。
モデルの更新なども対応しなければならず、運用コストもかさむので、管理工数が増えるというのはデメリットです。
その際のシステム構築に専門的な知識が必要になり、人材確保が難しくなるというのも企業目線だとデメリットになります。
システム構築のコスト・難易度という点で難しくなってくるというのが、OSS利用時のデメリットです。
コスト
OSSはLLMの利用料はかかりません。
大抵の場合は計算にGPUが必要になってくるので、GPU代が発生します。
GPUをホスティングして利用する必要がありますが、最近はGPU代も高騰しているので、感覚的ではありますが、大型モデルを活用する場合はAPIを利用した方が安くなっているように感じます。
パフォーマンス
パフォーマンス面ではGPT系、Gemini、Claudeなどの有名どころと比較すると、性能は低くなってしまいます。
徐々に性能は上がってきているものの、大手ハイパースケーラーの性能と比較すると見劣りしてしまうため、やや精度は低いという前提で考える必要があります。
ですが、小型のモデルでも徐々に性能が上がってきている言語モデルもあるので、活用先を絞れば、有用な使い方はあると感じます。
セキュリティ
最後にセキュリティ面ですが、OSSを活用することでセキュリティレベルを高めることが出来ます。
ローカル環境でLLMを活用することができるので、企業のクローズドネットワークでLLMを活用するシステム設計にできます。
この点はセキュリティレベルが高い開発領域では嬉しい特徴であり、OSSの活用が期待される領域の一つになります。
このようにLLMを活用するパターンは大きく二つですが、考えるべきポイントは多くあります。
活用用途に応じて、詳細に設計することが重要であり、中々に骨が折れる作業です。
特に大企業であれば、意思決定のプロセスもセキュリティ部門やシステム部門など多岐に渡るのでコミュニケーション面でも多くの難しさを生みます。
ただ、今後もLLM活用は注目されていくテーマになるので、いまから少しづつ学んでいくことが重要だと感じます。
現時点でのベストプラクティスは?
最後に現時点で私自身がベストプラクティスとして、感じているモデルを紹介していきます。
利用用途によってベストプラクティスは変わりますので、あくまで参考までに見ていただければと思います。
API利用(GPT-4o mini)
API利用の場合はGPT-4o miniです。
現時点で、API利用する場合は期待すべきはまずはパフォーマンスだと考えています。
実際に企業活用を進めている上でも、まずはパフォーマンスが出ている前提でいかにコストが下げられるか?という観点で考えることが多いです。
これはまだまだ各企業技術検証・PoCフェーズであることから、実際にどれくらいの性能が実現できるか?という点で考えるからです。
そのため、とりあえずGPT系を使ってPoCを行うことが多々あります。
そのような中でもGPT-4o miniはコストに対するパフォーマンスが圧倒的です。
コスト
一番の利点はコスト面です。圧倒的な価格の低さが特徴になります。
*2024年8月7日にGPT-4oの価格が下がった、追随するようにGemini Flashの価格が下がった点は反映できていない点はご留意ください。
GPT4系では、100万トークンあたり、15ドルかかっていたコストが、GPT-4o miniでは0.6ドルになります。
GPT-4oと比較して、約4%程度のコストしかかかりません。(2024年7月末時点)
この低コストでGPT4系を利用できるのは現時点では破格であり、極端な言い方をすると、コストを気にせずに使い倒せる状態と言っていいほど安価になっています。
パフォーマンス
GPT-4o miniはパフォーマンス面でもGPT4レベルのパフォーマンスです。
やや劣る部分はありますが、GPT3.5と比較すると大幅によく、限りなくGPT-4oに近い出力を期待できます。
そのため、性能面でも申し分なく、コストパフォーマンスという観点では圧倒的です。
セキュリティ
セキュリティ面ではクラウド環境にデータを上げる必要がありますが、Azureを含む、周辺機能が充実しており、適切に設計すれば高いセキュリティレベルを確保できます。
多くの業務で活用することは十分可能です。
OSS利用(Llama3 70b)
OSSでは利用用途に応じて変わるので中々難しい部分がありますが、極端に振り切ってベストプラクティスを提示しました。
まずは性能重視でベストプラクティスとなるモデルがLlama3 70bです。
こちらは性能に振り切った場合は現時点で高精度となってくるモデルはLlama3 70bになってくるのではと感じます。
コスト
コスト面ではやや厳しいものがあります。
70bほどの大型なモデルになるので、多く計算リソースを確保する必要があります。
動作環境を作るだけでも一苦労になります。GPUコストがかさんでしまい、コスト面では高額になることはやむを得ないでしょう。
パフォーマンス
パフォーマンス面では、GPT4系と比較すると一段下がってくるものの、Gemini 1.5 ProとClaude 3よりも一部のベンチマークでハイスコアであるため、精度は期待することが出来ます。
セキュリティ
セキュリティ面ではクローズドな環境でシステム構築することができるため、セキュリティレベルを高くすることが出来ます。
この点はOSSならではの大きなメリットになります。
OSS利用(Gemma2 2b)
OSSの利用用途の二つ目がコスト重視のモデルです。
こちらはエッジデバイスでの導入を期待する際に考えるモデルであり、いわゆるローカルLLMと呼ばれているものになります。
期待すべき点は小型かつ高性能であり、計算リソースが少なくて精度が高いものが好まれます。
コスト
2bレベルであれば、CPUでも動かすことが出来ますし、一般的なパソコンでも動作させることができます。
そのため、莫大なGPUが必要という訳ではなく、コストは低く抑えることができ、コスト優位性は高いです。
パフォーマンス
一方、パフォーマンス面では小型モデルであるということから、やや性能は低くなってしまいます。
しかし、2bという小型でありながら、Chatbot Arenaというチャットボットの性能比較でGPT3.5を超えていることが話題となりました。
小型でありながらも、性能は期待できる点がおすすめポイントです。
セキュリティ
最後にセキュリティですが、こちらもセキュリティ面ではクローズドな環境でシステム構築することができるため、セキュリティレベルを高くすることが出来ます。OSSならではの大きなメリットです。
このようにこちらのベストプラクティスにはやや賛否両論あると思いますが、いままでの私の実務経験を兼ね合わせた現時点での評論になります。
ご参考までにご理解ください。
まとめ
と、いうところでまとめに移ります。
- LLMは多くの企業が開発しており、LLMの選択肢は幅広くなっている
- LLM活用時には”コスト”,”パフォーマンス”,”セキュリティ”の3観点で検討する必要がある
- APIを利用するか、自前で環境を立てて動かすか、要件に応じて適切な選択が必要
と、いうのが今回のまとめになります。
生成AIのスキルは今後のデータサイエンティストのキャリア構築には非常に重要なスキルになってきます。
今後も生成AIの企業活用というテーマで発信していこうと思います。
今回は以上です。ありがとうございました。