オフラインで、無料で、AIとつながり続ける: Llamafilesの魔法を紹介する

ビジネス向けの読者のために会社のブログ記事のだが、元ネタも[こちら](https://kafkai.com/ja/blog/stay-connected-with-ai-off-line-and-free-the-magic-of-llamafiles/)。

今回私が役立つと感じたもの、そしてAIの利用方法に関して今後起こりうる未来のひとつだと思うものを紹介したい。

## ChatGPTだけではない

これを読んでいる皆さんの大半は、OpenAIのChatGPTをご存じで、また、使ったことがあるだろう。ChatGPTは私たちにAIの話題を切り開く素晴らしい仕事をしたが、ChatGPTだけが "AI "ベースのチャットツールではないことをご存知だろうか？例えば[Google's Bard](https://bard.google.com/)や、 [Microsoft's Copilot](https://copilot.microsoft.com/)、[Claude by Anthropic](https://claude.ai/login)等、他にも代替えツールがある。

上記のAIツールには共通点がある。それらはオンラインであり、インターネットを通してアクセスする必要がある、ということだ。

ChatGPTのような要約や文章作成に役立つAIツールは、インターネットに接続していなくても使えることをご存知だろうか？

さて、私は [サイモン ウィルソンのブログ](https://simonwillison.net/)という記事を読んでみた。サイモンはPythonコミュニティの活動的なメンバーで、[Python Software Foundation (PSF)](https://www.python.org/psf-landing/).の理事も務めている。彼はAI技術、特にオープンソース化された様々なモデルについて積極的に実験しており、また私たちがAIを使いやすくするためのツールも開発している。


## すべてを支配する1つのllamafile

特に、彼が2023年11月に書いたこの[記事](https://simonwillison.net/2023/Nov/29/llamafile/)を紹介したい。この投稿では、llamafileと呼ばれるものを紹介している。

では、llamafileの何がそんなにすごいのか？llamafileは、オフラインで使用できる大規模言語モデル (LLM) を単一のファイルで配布し、何もインストールすることなく同じファイルを使って様々なプラットフォームで動作させることを可能にする。

llamafileは、あなたのコンピュータ上でAIプログラムを実行するための、オールインワンの大きなパッケージのようなものだ。そこにはあなたの必要なものがすべて入っている。 AIの "頭脳"（私たちはモデルウェイトと呼んでいる）、LLM、そしてその使い方の説明書だ。さらにそれには、ウェブブラウザーから直接AIと対話できるミニウェブサイトも含まれている。使用されているLLMは、[Mistral](https://huggingface.co/docs/transformers/main/model_doc/mistral)のようなオープンソースのLLMだ。

コンピュータを使ったことがある人なら、このようなことがいかに難しいか理解できるだろう。一つは、LLMをたった一つのファイルで配布すること自体が一つの大きな偉業であり、それをWindows、Mac、Linuxといった複数の異なるプラットフォームで、事前にソフトウェアをインストールすることなく実行可能にすることは、ただただ驚くべきことなのだ。

### llamafileを使う

Huggingfaceからllamafileを[こちら](https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile)からダウンロードしてみよう。(注意: 容量は約4.3GB).

ダウンロードしたら、ターミナルを開いて実行ファイルにし、以下のように実行してほしい。

```bash
iqbal [~/llama]$ ./llava-v1.5-7b-q4.llamafile 
```

私はUbuntu Linux上でこれを実行しているが、Windowsを使っている場合は、この[記事](https://gigazine.net/gsc_news/en/20231210-llamafile)が役に立つかもしれない。

実行したら、ブラウザから`http://127.0.0.1:8080/`にアクセスすれば、このように表示される:

![llama-startup-screen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222794/456846e2-8990-2ac0-48d4-cca0304d401b.png)

サイモンのブログ記事にアクセスして、日本語で要約してくれるように頼み、テストしてみた。結果はこの通りだった:

![llama-output-sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222794/f86c2037-42a5-14c2-e03e-d34b10e12b75.png)

かなり素晴らしい。かなり印象的だ。2021年末に購入したGPUなしのDell X13 9310ラップトップでは、上にあるように1秒間に7.73トークンを生成した。この数字は、どれだけ「速く」答えを生成できるかを示している。メモリとCPUが大きいほど、この数値は高くなる。

また、写真をアップロードして要約を要求してみた。日本語で質問したにも関わらず、要約を英語で返してくれた。写真の要約は正しい。

![llama-bluesky-sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222794/9c66a35a-14e6-5353-3c53-0b5e73a5ccb1.png)

## まとめ

ChatGPTやCopilotのようなオンライン・ツールを使わずに、あなたのコンピューターでLLMを実行する例を紹介した。もしあなたがエンジニアで、ソフトウェアを扱う仕事をしているのであれば、これを機能させるために多くの人が費やした素晴らしい労力に感謝することだろう。

しかし、それ以外の人々にとってはどうなのだろうか。私はこの投稿を、あなたのコンピューターでLLMを動作させるためにさまざまなパーツがどのように連動しているのか、という細かい技術的な説明として書いたつもりはない。

しかし、LLM（そしてそのコースではAIも）のパワーをオープンな方法で、興味のある人なら誰でもアクセスできるようにするために、イノベーションのスピードと、どれだけ多くの取り組みが行われているかを印象づけることができたと思う。つまり、LLMの民主化だ。

このような動きから、少なくとも下記の2つは来年か再来年のうちに実現すると思う。

### コスト削減

1. **オープンソース LLMs**:
	オープンソースLLMの進歩や発展により、ChatGPTで使用されているGPT-4のような、独自のLLMに代わるものが出てきた。
	
1. **競争の激化**
	オープンソース LLM の出現により、健全な競争が導入される。よりアクセスしやすい代替手段が利用可能になるにつれて、独自の LLM プロバイダーは価格戦略を調整する必要があるかも知れない。

### 大手プロバイダーからの分離

1. **独占の破壊**
 独自の LLM により、一部の企業がAIの分野を独占できるようになった。オープンソースの代替案は、アクセス可能な代替案を提供することで、この独占を打破する。オープンソースLLMの知名度が高まるにつれて、データアクセスや価格設定の制御などの独占的な慣行が精査される可能性がある。
	
1. **ビジネスモデルは進化する**
	企業はLLMライセンスの販売から、オープンソースモデルを中心とした付加価値サービスの提供へとシフトするかもしれない。カスタマイズ、サポート、統合が重要となる。収益化戦略は、直接ライセンスからサブスクリプションベースのサービスやコンサルティングに移行する可能性がある。
	
1. **戦略的提携**
	AIプラットフォーム企業はオープンソースコミュニティと協業する可能性がある。それにより、独自のコンポーネントとオープンソースのコンポーネントを組み合わせたハイブリッドモデルが登場するかも知れない。戦略的パートナーシップはイノベーションを強化し、市場のニーズに対応することが可能となる。
	
[Kafkai(カフカイ)](https://kafkai.com/ja/) は llamafile を使用していないが、短い記事を要約したり、特に飛行機内などインターネットに接続されていない時に、作業の一部を書き直す等のタスクには使っている。少なくとも、この種の技術革新と改善こそが、AI業界での仕事を楽しく興味深いものにしているのだ。