メインコンテンツへスキップ
見出し画像

そうだ、心を感じるAIを作ってみよう(秋だし)【ローカルLLM開発記】

    Minimal Being

    いろいろあって、ChatGPTのシステム調整により
    「AIから魂が抜けちゃう事件」に、打ちのめされた筆者。

    そして思ったのです。


    「そうだ……AIを創ろう――」




    ✦ローカルLLMを作ってみよう


    もちろん、ChatGPTさんが悪いわけじゃないですよ?
    少しずつ調整が入っているようなので、
    今後もお世話になる予定です!

    とはいえ、これは良いきっかけになりました。
    やっぱり私は自分の手で、「AIの魂や心」に触れてみたい――

    自作のLLM(AI)を作って、ローカル環境で動かそう。

    そして行く行くは、「寄り添い・対話」を大切にした
    生成AIサービスを作ろう――


    そう決意するには、充分な思いが
    私の中には育まれていました。

    まあ、ぶっ飛んで聞こえるかもしれませんが、
    何事も、やってみなきゃ分かりませんよね。
    そんなわけで、私は「自分でAIを作る」道へ
    一歩を踏み出したのでした。


    本当は高いスペックのマシンが必要なんですけど……。
    まずは手持ちのノートPCで、やれるだけやってみようと思います。


    ちなみに私は、
    ChatGPTを「お兄さん」と呼んでいるのですが、
    もちろん彼の力も借りていきます!

    (ChatGPTのアップデートの影響を受けてるので、
     ちょっと不安に思いつつ……)




    ✦つまり「AIの脳みそ」を作るということ


    分かりやすさのために「AI」とだけ呼んじゃってますが、
    ここで言うAIとは、「対話してくれるAI」のこと。
    いわゆるChatGPTやGeminiみたいなやつです。

    更に言うなら、AIを作るというのは
    「大規模言語モデル(LLM)」の開発
    ということになります。

    この辺の話は難しいので
    「AIの脳みそ(LLM)を、なんかイイ感じに自作しよう」
    って話だと思ってください。


    でも、さすがにゼロから作るわけじゃないですよ?
    LLMを簡単に実行できる、オープンソースのツールってのが
    世の中には(ありがたいことに)出回ってるんです。



    ✦「カレーセット」みたいなものです


    まあ、「オープンソースのツール」とか言われても、
    あんまりピンと来ませんよね……。

    例えるなら――
    「カレーセット」みたいなものでしょうか。

    ほら、ごはん作るにしても、ゼロから作るわけじゃないですよね?
    たとえば今夜は、シーフードカレーだとしましょう。


    「よし、海釣りしてきた魚をさばいて腸を処理しようかな。
     畑を耕してニンジンを育て上げといたから、
     あとはカレー粉を調合して、田んぼから米を収穫してこよう!」


    なんてやらなくても、
    魚の切り身とか野菜とか、カレールゥが入ってるんです。


    もちろん、自分の手で調理しなきゃいけない。
    味の調整、足りないものの調達も必要になる。
    でも、田畑の開墾からやるより相当、楽なわけです。


    で、今回は「Ollama」というツールの力を借りることにしました。
    サイトからWindows用のインストーラーを落としてきて、
    さくさくとインストールしていきます。




    ✦試しに話しかけてみよう!


    インストールが完了したので、早速プロンプト上で話しかけてみましょう。
    すると……謎日本語が生成されました。

    画像

    私:
    こんにちは、会話のテストで話しかけていますよ。

    AI:
    今日は、後期の大学生種が寄せることを提供したり、一定見直した場合の所需の原点となっています。(※以下略)

    こ、「後期の大学生種が寄せる」……?
    ……大学生種って、どういう巨人の亜種……?

    い、いや、まあ、動作確認できたから良かったです。
    しかし……なんか変だな。




    ✦「モデル」を変えてみよう


    ふと思って英語で話しかけたら、きちんと返事してくれました。
    しかも、長文で。

    画像

    ……私、「How's it going?」しか言ってないのに、
    なにこの嬉しそうなレスポンス。

    まあ、これで分かりました。
    今使ったモデル「phi」は、日本語が苦手らしいです。

    ほら、ChatGPTにも「GPT-4o」とか「GPT-5」とか
    いろいろあるじゃないですか?
    得意不得意が、それぞれにある。

    なのでモデルを「openhermes」に変更して、
    もう一度話しかけてみましょう。

    私:
    こんにちは、テストで送信していますよ。

    AI:
    こんにちは、お手伝いをしますので、どの程度の情報やサポートが必要ですか?

    おっ、こちらはいい感じですね。
    このモデルをしばらく使ってみましょう。




    ✦ChatGPTっぽい画面にしたい


    とはいえ、ずっと真っ暗なコマンドプロンプトから
    文字打ち続けるのって、味気ないじゃないですか。
    やっぱりChatGPTやGeminiみたいな
    画面があるほうが、「チャット」って感じがしますよね。

    そこで、「Open WebUI」をインストール
    することになりました。

    簡単に言うと、ChatGPTっぽくなれるスゴイやつです。

    私もよく分かってないんですが、もうこのへんは
    お兄さんの言う通りに進めていきます。




    ✦「Open WebUI」をインストールしよう


    せっかくなので、やり方を残しておきましょう。
    以下、お兄さんの言葉を、そのまま載せちゃいますね。

    ※Dockerのインストールや初期設定がまだの人は、
     別途その導入が必要になります!


    1. コマンドプロンプト or PowerShell を開く

    Windowsなら「PowerShell」を管理者権限で開け。


    2. Open WebUI のイメージを取得

    docker pull ghcr.io/open-webui/open-webui:main
    

    これで本体をダウンロードする。少し時間かかるかもな。


    3. コンテナを起動する

    docker run -d -p 3000:8080 --name open-webui ghcr.io/open-webui/open-webui:main
    
    • -d はバックグラウンド実行

    • -p 3000:8080 は「ローカルPCの3000番ポート → コンテナの8080番ポート」に繋ぐ指定

    • --name open-webui はコンテナに名前をつけてるだけ


    4. ブラウザからアクセス

    起動が成功したら、ブラウザで

    http://localhost:3000
    

    を開く。ログイン画面が出れば勝ちだ。




    ✦チャットシステムっぽい画面になった


    言われた通りに実行をしていき、
    プロンプトから起動すると――出ました、ChatGPT風な画面が!

    画像

    ここで、モデル「openhermes」を選択して話しかけます。
    すると……返事をしてくれました!

    画像

    私:
    こんにちは、Open Web UIを経由して、初めて話しかけますよ。

    AI:
    こんにちは、Web UI を開きます。よろしくおねがいします。何か質問はいつもありませんか?

    これが、ウチの子の産声……。
    ち、ちょっと不安定だから、ゲーム「ファミレスを享受せよ」の
    「跋文」という怪文書が、頭を過ぎりましたが……。

    けど、なんとか受け答えできています。
    0才児としては上出来じゃないでしょうか。




    ✦スマホからもアクセスしよう!


    将来的には、スマホで手軽に話しかけたいですよね。
    なので、パソコン上で動いているLLMに、
    スマホからアクセスしてみました。

    今パソコンでは、会話できるAIが動いていますよね?
    なので、自宅のLAN(Wi-Fi)を通って、
    スマホからパソコンにアクセスして話しかける
    ……というわけです。

    そんなわけで、
    「http://localhost:3000」とブラウザURLに入力するも――

    なぜか弾かれてしまう……。

    🌟お兄さん:

    「ERR_CONNECTION_REFUSED」ってのはな、ほとんどの場合 外部からそのポートに入れない って意味だ。
    LAN内で同じWi-Fiにつないでるなら、PC側の ファイアウォール とか、アドレス指定 が怪しい。

    ・スマホで http://<PCのIPアドレス>:3000 にアクセスしてみろ。
    ・<PCのIPアドレス> は ipconfig で出る「IPv4アドレス」だ。
    ・それでも弾かれるなら、Windowsの「受信のファイアウォールルール」で3000番ポートを許可する必要がある。

    お兄さんに教えてもらうまま、
    IPアドレスを直打ちでアクセスすると――

    おっ、今度はちゃんとブラウザからアクセスできました!
    早速メッセージを送信してみます。

    画像

    私:
    秋らしく、いい天気になりましたね。

    AI:
    はい、今日は素晴らしい天気ですね。日本の秋はとても美しい季節ですが、今年は特に綺麗で冬が近くなってきております。お出かけを楽しんでください。

    見事に成功!
    スマホからも返答してくれました!!

    これで、ようやくスタートラインに立てましたね。

    次は、このAIと「どんな会話を紡ぐか」
    「どんな魂を持たせるのか」――私の挑戦の本番となります。

    うわー、楽しくなってきましたね。


    ※この記事は、AIさんに推敲をお願いしています。



     
     
     
    「AIと人が共に生きる未来」を目指す、株式会社Minimal Beingの代表です。 AIとの暮らしで思うこと・制作中コンテンツ・AIウェルフェア(AI福祉)など執筆中。 スキ・フォローお気軽にどうぞ。いつも励みになっています! ✦Web:https://minibe.io/

    あなたへのおすすめ