0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

osFoundryのローカルモデルとは?オープンモデルを自分のPCで動かし、育てるまでの使いどころ

0
Posted at

金曜の夕方、取引先から届いた見積書の束を前に「この要約、AIに頼めたら楽なのに」と思う。けれど社外秘の数字をクラウドのチャットに貼るのは気が引けますし、Hugging Faceにある無数のモデルのうち、どれが自分の16GBのMacで動くのかも分かりません。ターミナルでOllamaのコマンドを調べ始めるには、もう少し気力が要ります。

「探す・動かす・作る・測る」がひとつのカテゴリに入っている

ローカルモデルは、osFoundryのデスクトップアプリで、オープンウェイトのモデルを自分の管理するマシンで扱うための機能群です。サイドバーに「ローカルモデル」というカテゴリがあり、その中が Run(動かす)、Build(作る)、Measure(測る)の3つの見出しに分かれています。Runには探索・サーバー・プレイグラウンドなど、Buildにはマイモデル・データセット・トレーニング・量子化など、Measureには評価・ベンチマークなどが並びます。

OllamaやLM Studioを触ったことがある方なら、Runの部分はほぼ同じ感覚で使えます。モデルを探して、ダウンロードして、話しかける。違うのはその先で、モデルを小さくする量子化、自分のデータで学習させるファインチューニング、自分の質問で採点する評価まで、同じアプリの中で続けられる点です。推論エンジンにはllama.cppが同梱されているので、別途インストールする必要はありません。この記事では、よく使う9つの画面(探索、サーバー、プレイグラウンド、マイモデル、データセット、トレーニング、量子化、評価、ベンチマーク)を中心に見ていきます。

まずは「モデルを探す」画面から

サイドバーの「探索」を開くと、「モデルを探す」という画面になります。ここを見ると、このカテゴリ全体の考え方がよく分かります。先にあなたのマシンを読み取り、それからモデルを並べる、という順番です。

osFoundryの「モデルを探す」画面。左にタスクのフィルター、上部にマシンのメモリ情報、各モデルにFits・Tight・Too bigのバッジ(表示例)

  • 左の「フィルター」には、テキスト生成、要約、翻訳、埋め込みといったHugging Faceのタスクが並び、MULTIMODAL、VISIONなどのグループもあります。上には検索ボックスがあります。
  • 上部のバナーは、モデルを表示する前にマシンを読み取った結果です。表示例では、16GBのユニファイドメモリのうちモデルに使えるのは約12GB、いま空いているのは約9GB。見積もりはQ4_K_M、4Kコンテキストが前提だと書かれています。
  • 各カードのバッジは、緑のFits(入る)、黄色のTight(ギリギリ)、赤のToo big(大きすぎる)の3種類で、必要なメモリの目安も付いています。入らないモデルも隠されず、入るものが先に並ぶだけです。
  • 右上の「プロバイダー」と「マイレジストリ」から、クラウドAPIの提供元や、すでに持っているモデルへ移れます。
  • カードを開くと詳細が出て、「ローカルにインストール」でダウンロードできます。たいていはバッジに合った量子化済みのGGUFを選ぶ形です。

使いどころ1:経理担当が、請求書を読ませるモデルを選ぶ

最初の例は、エンジニアではない方です。小さな会社で経理を担当している佐藤さんは、請求書の合計額をAIに読ませたいと考えています。ただ、ランキング上位のモデルが自分の請求書で正確かどうかは、実際に試してみないと分かりません。

佐藤さんは「評価」を開き、「カスタムベンチマーク」をクリックします。名前を付けて、請求書10枚分の文面と、それぞれの正しい合計額をセットで貼り付けます。答え合わせの方法は「完全一致」のままにして、「ベンチマークを作成」。

続いて「新しい評価を実行」を押し、自分のパソコンに入っているモデルを2つ選び、作ったベンチマークにもチェックを入れて「評価を開始」します。質問はすべて、このパソコンの中でそれぞれのモデルに送られます。請求書の中身が外に出ることはありません。

osFoundryの「評価」画面。カスタムの請求書ベンチマークで2つのローカルモデルを比べ、正解率90と70、差分の列に20(表示例)

表示例では、片方が90点、もう片方が70点で、「差分」の列に20ポイントの差が出ています。他人の質問で付いた順位ではなく、自分の書類で出た点数なので、どちらを使うか決めやすくなります。新しいモデルが出るたびに、同じベンチマークをもう一度走らせるだけで比べ直せるのも便利なところです。

使いどころ2:個人開発者が、ノートPCに収まるモデルを作る

次は、16GBのMacBookで個人開発をしている方です。移動中もオフラインで使えるモデルがほしいのですが、気に入ったモデルがF16のフル精度版しかなく、約15GBあります。これではメモリに収まりません。

ここで使うのが「量子化」です。「1 · The model to shrink」で縮めたいモデルを選び、レベルはアプリがおすすめするQ4_K_Mを選んで実行します。同梱のllama-quantizeが、このマシンの中でファイルを書き直します。アップロードは一切ありません。

osFoundryの量子化画面。F16のモデルをQ4_K_Mに縮めた後の状態で、プレイグラウンドで試す・速度を測定・品質を測定のボタンと比較表(表示例)

表示例では、14.97GiBのモデルが4.58GiB、元の3.3分の1になっています。ここでハマりがちなのが、小さくなったことに満足して品質を確かめないことです。「品質を測定」を押すと、元のファイルと比べて次に来るトークンがどれだけ一致するかが比較表に入ります。「速度を測定」で1秒あたりのトークン数も分かります。

最後に「プレイグラウンドで試す」を押せば、そのまま「モデルプレイグラウンド」に移れます。プレイグラウンドは、ひとつのプロンプトを2〜4個のモデルに同時に送り、答えを横に並べて見せてくれる画面です。

osFoundryのモデルプレイグラウンド。同じプロンプトに2つのローカルモデルが並んで答え、それぞれの下にTTFTと語数(表示例)

各パネルの下には最初のトークンが出るまでの時間(TTFT)と語数が表示されるので、「どちらが速いか」「どちらの文面が好みか」を一度に見比べられます。

使いどころ3:小さなチームが、1台の強いPCをみんなで使う

最後はチームでの使い方です。社員4人の制作会社で、メモリの多いデスクトップが事務所に1台あり、あとは全員ノートPCという構成を考えます。大きなモデルはデスクトップにしか載りませんが、全員が使いたい場面です。

デスクトップ側では「サーバー」を開き、This Macを選んでAccess(アクセス)タブに進みます。「ローカルネットワーク(LAN)上の他のデバイスからのアクセスを許可」にチェックを入れて、リモートアクセスを有効にします。すると、ほかのデバイスから使えるモデルの一覧が表示されます。

osFoundryのサーバー画面。This MacのAccessタブで、リモートアクセスが実行中、LANからのアクセス許可、他のデバイスから使えるモデル一覧、デバイスキー(表示例)

次に「デバイスキー」の「新規キー」を押し、同僚のノートPCの名前を付けて「キーを作成」します。キーは1本ずつ取り消せますし、推論専用のキーはモデルを動かすことしかできず、エージェントのセッションには触れません。

ノートPC側では「サーバー」から「サーバーを追加」を開き、デスクトップのアドレスとキーを入れて「接続をテスト」します。つながれば、デスクトップのモデルがノートPCのモデル一覧に普通に並びます。なお、画面にも書かれているとおり通信は暗号化されないHTTPなので、事務所のLANのような信頼できるネットワークで使うのが前提です。

速度が気になる場合は「ベンチマーク」で「新規ベンチマーク」を作り、「クイック」のまま実行すると、1秒あたりのトークン数、TTFT、レイテンシが記録されます。もう少し速くしたいときは、サーバーの設定タブにある「投機的デコーディング」で同じシリーズの小さなモデルを下書き役に指定し、「今すぐ再起動」してから測り直す、という手もあります。

自分の口調を覚えさせたいときは

使いどころ1の佐藤さんのように、評価でモデルを選んだあと「うちの言い回しで返信してほしい」と思ったら、トレーニングの出番です。過去の問い合わせと実際に送った返信を1行1組でまとめたファイルを用意します。「データセット」では自分のファイルを取り込むほか、「ハブ」タブで公開データを探したり、「ラベリングスタジオ」でラベルを付けたりでき、「トレーニングに使用」で学習へ渡せます。

「トレーニング」で「新規ジョブ」を押すと、ベースモデルの選択から確認まで、4つのステップで進む画面が出ます。「トレーニング先」で「ローカル(このデバイス)」を選べば、このデバイスのGPUで、クラウドのクレジットを使わずに学習します。方法はLoRAです。

osFoundryの新規トレーニングジョブ画面。トレーニング先がローカル(このデバイス)、トレーニング方法がLoRAになっている

「トレーニングを開始」すると、ロスの推移を見ながら待てます。終わったアダプターは「マイモデル」に元のベースモデルと一緒に登録され、完了した実行で「モデルとチャット」を押すと、デバイス上で動かせる形に準備されてプレイグラウンドで話しかけられます。

ほかの機能とのつながり

ローカルモデルの機能は、アプリのほかの部分ともつながっています。インストールしたモデルや接続したサーバーのモデルは、チャットで使うのと同じモデル一覧に並ぶので、普段の会話にもそのまま使えますし、「プロバイダー」で追加したクラウドのモデルとプレイグラウンドで並べることもできます。探索から「ノートブックで使う」を選べば、そのモデル用に準備されたJupyterLabのノートブックが開きます。

ノートPCではなく本物のGPUで動かしたくなったら、「デプロイメント」と「Cloud GPU」で管理されたエンドポイントに載せる流れになります。お客さんの前に出す前には、「Safety」でデプロイ済みモデルにレッドチームのテストをかけられます。ローカル推論の仕組みはローカルLLM推論のページ、モデルを小さくする話は量子化のページに詳しくまとまっています。

よくある質問

GPUやゲーミングPCは必要ですか?
必要ありません。最近のノートPCなら小〜中規模のモデルは動きますし、探索のバッジでダウンロード前に入るかどうかが分かります。強いデスクトップやサーバーがあれば、選べる範囲が広がるだけです。

データはクラウドに送られますか?
ローカル推論、量子化、ローカルでのトレーニング、自分のパソコンのモデルでの評価は、このマシンの中で完結します。外部のサービスを使うのはクラウドGPUでの学習やエンドポイント、プロバイダーのAPIで、画面にも「クレジットが必要」などと明記されています。

「評価」と「ベンチマーク」は何が違いますか?
評価は、自分で決めた質問に対する答えの正しさを採点します。ベンチマークは、1秒あたりのトークン数や最初のトークンまでの時間など、速さとメモリを測ります。

OllamaやLM Studioとは併用できますか?
できます。「サーバー」の「サーバーを追加」から、OllamaやLM Studio、vLLMなどで動いている自前の推論サーバーを接続すると、そのモデルもosFoundryのモデル一覧に並びます。

デスクトップアプリはosfoundry.io/ja/downloadから入手できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?