見出し画像

【Ollama】ローカルLLMをスプレッドシートの関数として動かす方法

割引あり

👋みなさんこんにちは。AI-Bridge Labのこばです!
以前の記事でOllamaで動かしているローカルLLMをスプレッドシートの関数にしてみたら、意外な再発見がありましたという内容をシェアしたのですが

「LLMをスプレッドシート関数にする方法」自体は記事化できていなかったので、今回はそちらの具体的な手順についてご紹介したいと思います!

ローカル環境で実行されるLLMをスプレッドシート上で動かすことができるようになると、この投稿のようにフロー的、並列的に動かすことができます。

ChatGPT、ClaudeやGeminiなどをAPI連携して組み込んで関数として利用するというサービス自体はすでにあるのですが、API利用回数の制限利用料金が発生するため、トライアンドエラーしながら気軽に使うのは難しいかもしれません。


今回は軽量なオープンソースのLLMをGoogleスプレッドシートで動かせる方法についてご紹介します。

上図の例は、C1に入力されたプロンプトを使用して、A列の問い合わせの感情分析を行っている様子です。(英語が得意なのでB列に英語訳を用意して、それを元に分析してもらっています)

ローカルLLMを使えるメリット

まずは現時点の情報を整理し、ローカルLLMに触れておくメリットについてお伝えしたいと思います。

2024年5月現在、オープンソース化されているローカルLLMはLlama3 70Bを始めとして、すでにそれを超えるような高性能なモデルが多数登場しています。これは、2023年版のGPT-4を超える性能と言われています。

近い将来、Llama3を提供するMeta社は400Bなど更に大型モデルのリリースを控えていることから、今のGPT-4 TurboやClaude3 opusなどの最強LLM達を超える性能になると言われ、話題を呼びました。

とはいえ、Llama3 70Bなどの大き目のローカルLLMを動かせるPCは一般的とは言えませんし、量子化によるサイズ圧縮で軽量化はできても、回答精度も劣化してしまうなどのデメリットもあるため、高性能なローカルLLMを利用するメリットを享受できる方は少ないと思います。

しかし、ローカルLLMはモデルマージやKAN(Kolmogorov-Arnold Network)などの新しいアーキテクチャの登場によって更にメモリ使用量が低く、高性能なモデルが出現する環境が整ってきています。

そのような背景から、まずは軽量なモデルからでも良いのでローカルLLMに触れておき、実装方法を確立しておくことが今後大きなメリットにつながるのではと考えています。(強いモデルが来たときに置き換えるだけでOKなので)

実際の手順

ここからはWindows環境で、Ollama経由で動作するローカルLLM(今回はYi:9Bという新型モデルを使用します)をローカルサーバーを通じてスプレッドシートと連携し、更に関数化するスクリプトを適用、実践するところまでの手順をお伝えします。

まず、前提としてOllamaおよび今回使用するYi:9Bを使える状態にしておく必要があります。Ollama自体の使い方については以下の記事をご参照ください。もしYi:9Bが動かない場合は、より軽量なモデルでお試しいただければと思います。

大きく分けて以下の5ステップで進めていきます。
テクニック自体が新しいわけではないので、ステップに沿って調べながらでも十分打開していけると思いますが、使用するコードは私の環境で動いているものをシェアしますので、有料エリアをご覧いただくことでゴールまでの時短にはなるかと思います⌛

  1. LLMモデルのダウンロード

  2. ローカルモデルをAPIで呼び出せるようにする

  3. APIをトンネリング

  4. App Scriptでオリジナル関数を作る

  5. 実際に使ってみる

ここから先は

5,370字 / 12画像
この記事のみ ¥ 500〜

皆さまの温かいサポートのおかげで、活動を続けることができています。もしよろしければ、引き続き支援をお願いできますと幸いです。より質の高い記事投稿に励みます!