見出し画像

2024 年に独自の LLM おもちゃを DIY するための最も簡単なガイド

2024 年が来た、そして DIY LLM おもちゃ?もう完全に事です。技術的な魔法は必要ありません。ただあなたの好奇心だけで大丈夫です。私は思い切って、少しのコーディングとたくさんの楽しみを混ぜ合わせて、独自の話すおもちゃを作成しました。 AI の相棒を簡単に作りたいなら、ここが正しい場所です。一緒にテクノロジーの謎を解き明かし、AI の友達に命を吹き込みましょう。テクノロジーが日常生活とますます交差する世界において、独自の LLM おもちゃを作成することは、AI の謎を解くだけでなく、インタラクティブ テクノロジーの驚異へのパーソナライズされたゲートウェイを提供します。

まずは最終的な効果を見てみましょう。

正直、かなりすごいです。始める準備はできていますか?飛び込んでみましょう!

それはどのように機能しますか?

重要な手順は 3 つあります。

  1. 録音: おもちゃから UDP 経由で送信されたリアルタイム録音データを受信し、STT (Sound-To-Text) API を呼び出してサウンドをテキストに変換します。

  2. 考え方: 前のテキストを受信した後、LLM (Large-Language-Model) API がすぐに呼び出され、ストリーミング方式で LLM によって生成された文を取得します。次に、TTS (Text-To-Sound) API が呼び出され、文が人間の音声に変換されます。

  3. オーディオの再生: おもちゃは FoloToy サーバーによって生成された TTS (Text-To-Sound) オーディオ ファイル ストリームを受信し、順序に従って再生します。

開発前の準備

LLM おもちゃの作成を始める前に、必要なハードウェア、ソフトウェア、および技術的知識を理解することが重要です。このセクションでは、スムーズに開始するために必要なものをすべて準備する方法について説明します。

ハードウェア

Folotoy Core: ChatGPT AI 音声会話コアボードはプロジェクトの頭脳として機能し、AI との音声対話を可能にします。

おもちゃのコンポーネント: マイク、スピーカー、ボタン、スイッチ、電源などの必需品が必要です。私は、すぐに使えるセットアップとして Alilo Honey Bunny G6 を使用します。

タコ開発スーツ (その他の選択): 既存のおもちゃに AI 機能を搭載したいと考えている人に最適です。

購入の際、割引を受けるにはプロモーション コード F-001–17 を入力してください。

サーバー

MacBook Pro などの独自のマシンを利用して、おもちゃが音声インタラクションを処理して応答するための信頼できるバックエンドを備えていることを確認します。あるいは、Google Cloud Engine (GCE) などのクラウド サービスを使用すると、プロジェクトをより広範なアプリケーションに拡張できます。

知識

  1. Docker (必須): Docker を理解することは、ソフトウェアをコンテナにデプロイし、プロジェクトを移植可能でスケーラブルにするために重要です。 Folo サーバーの起動に使用します。

  2. Git (必須): バージョン管理は、プロジェクトのコードベースを管理するために不可欠です。 Folo サーバーのコードベースを管理するために使用します。

  3. MQTT (オプション): 高度なカスタマイズを目指している場合は、MQTT (軽量メッセージング プロトコル) に精通していると、おもちゃとサーバー間の通信に役立ちます。

  4. EMQX (オプション): IoT、IIoT、コネクテッドカー用のオープンソース MQTT ブローカー。おもちゃの管理に使用します。

  5. ollama (オプション): 大規模な言語モデルをローカルで実行したい場合は、これを選択するのが良いでしょう。

サービスと登録

おもちゃに命を吹き込むには、特定の AI サービスにアクセスする必要があります。このプロジェクトでは、OpenAI のサービスを利用することにしました。

  1. TTS (Text-to-Speech): OpenAI の Whisper サービスは、AI からのテキスト応答を音声に変換し、対話を自然にします。

  2. LLM (Large Language Model): 人間のようなテキスト応答を理解して生成するために OpenAI のモデルを利用します。

  3. STT (Speech-to-Text): OpenAI の TTS サービスは、話された言葉をテキストに変換し、AI が音声コマンドやクエリを理解できるようにします。

最も重要なことは、OpenAI プラットフォーム に登録し、キーを作成する必要があることです。 sk-...i7TL のような。

おもちゃを組み立てる

さあ、すべての部品を組み合わせて、独自の LLM おもちゃを作りましょう。

一般的な手順は次のとおりです。最初に ビデオ チュートリアル を視聴することをお勧めします。

  1. Alilo G6 の録画と再生が正常であるかどうかを確認します。

  2. ドライバーを使用して、Alilo G6 の背面にある 6 本のネジを外します。

  3. Alilo G6 のケースを慎重に開き、マザーボード上のすべてのプラグを抜きます。まず電源プラグを抜きます。プラグには接着剤が付いています。アートナイフを使用してそっと切り開きます。手を切らないように注意してください。

  4. マザーボードの 4 本のネジを緩めて取り外します。

  5. 元のマザーボードを FoloToy のマザーボードに交換し、3 本のネジを締めて固定します。

  6. マイク、ライト、スピーカー、電源ソケットを差し込み、最後に電源ソケットを差し込みます。

  7. すべてのソケットを差し込んだ後は、まだケーシングを閉じたり、ネジを取り付けたりしないでください。まずウサギの尻尾のオン/オフスイッチをオンにして、新しく取り付けたライトが点灯し、青色にゆっくり点滅するかどうかを確認します。

  8. 問題がなければ、ケースを取り付け、ネジを締めて交換作業は完了です。

サーバーをセットアップする

LLM おもちゃが音声コマンドを理解して応答できるようにするには、強力なバックエンド サポートが鍵となります。このセクションでは、サーバー コード ベースのクローンを作成し、サーバーを構成し、Docker コンテナを起動しておもちゃに安定したバックエンド サポートを提供する方法を説明します。

まず、GitHub から Folo サーバーのコードベースのクローンを作成します。

git clone git@github.com:FoloToy/folotoy-server-self-hosting.git

次に、ファイル docker-compose.yml 内の基本サーバー構成を独自のものに変更します。

  1. OPENAI_OPENAI_KEY: OpenAI API キー。sk-...i7TL

  2. OPENAI_TTS_KEY: OpenAI API キー。sk-...i7TL

  3. OPENAI_WHISPER_KEY: OpenAI API キー。sk-...i7TL

  4. AUDIO_DOWNLOAD_URL: 音声ファイルの URL。http://192.168.xx:8082

  5. SPEECH_UDP_SERVER_HOST: サーバーの IP アドレス。192.168.xx

次に、config/roles.json ファイルでロールを設定します。ここに示すのは最小限の例です。完全な設定については、Folotoy ドキュメント を参照してください。 。

{
  "1": {
    "start_text": "こんにちは、何かお手伝いしましょうか?",
    "prompt": "You are a helpful assistant."
  }
}

次に、Docker コンテナを起動します。

docker compose up -d

私は Folo サーバーを自分のマシンで実行していますが、クラウドで実行する場合もほぼ同じです。注意すべき点は、ポート 1883、8082、8085、18083、および 8083 をパブリック ネットワークに公開する必要があることです。

詳細については、Folotoy ドキュメント を参照してください。

おもちゃとおしゃべり

すべての準備ができたら、LLM おもちゃを操作してみます。

おもちゃの背面にあるスイッチをオンにして電源を入れます。耳の青い点滅ライトは、おもちゃがペアリングモードに入ったことを示します。

携帯電話またはコンピュータの電源を入れ、「FoloToy-xxxx」ワイヤレス ネットワークを選択します。しばらくすると、携帯電話またはコンピュータで設定ページが自動的に開き、どの WiFi ネットワーク (SSID とパスワード) に接続するか、サーバー アドレス (192.168.xx など) とポート番号 (デフォルトの 1883 のままにしておきます) を設定できます。

ネットワークが構成され、サーバーに接続されたら、中央の大きな丸いボタンを押して会話を開始します。話すのをやめると、FoloToy は録音の終了を示すビープ音を鳴らします。

周りにある 7 つの丸い小さなボタンは役割切り替えボタンです。クリックすると、役割の切り替えが有効になります。

デバッグ

サーバーであってもおもちゃであっても、技術的な問題が発生する可能性があります。このセクションでは、考えられる問題を診断して解決し、LLM おもちゃがスムーズに動作することを確認するのに役立つ、基本的なデバッグのヒントとツールをいくつか紹介します。

サーバーのデバッグ

サーバーのログを確認するには、次のコマンドを実行します。

docker compose logs -f

LOG_LEVEL を docker-compose.yml ファイルに設定して、ログ レベルを制御できます。

おもちゃのデバッグ

Folo Toy は、USB シリアル ポートでおもちゃのベースをデバッグする簡単な方法を提供します。 Folo Toy Web Tool を使用しておもちゃをデバッグできます。

  1. USB ケーブルを使用しておもちゃをコンピュータに接続します。

  2. Folo Toy Web Tool を開き、「コンソール」ボタンをクリックしておもちゃに接続します。

  3. 接続すると、デバイスからのリアルタイム ログがコンソールに表示されるようになります。

また、おもちゃには LED があり、おもちゃのステータスを示すためにさまざまな色で点灯します 。

MQTT デバッグ

EMQX ダッシュボード を開いて、MQTT メッセージを確認します。デフォルトのユーザー名は admin、パスワードは public です。とにかく、ログイン後はパスワードを安全なものに変更してください。

高度なカスタマイズ


LLM おもちゃをさらに探索してカスタマイズしたい上級ユーザー向けに、このセクションでは、大規模な言語モデルをローカルで実行し、CloudFlare AI Gateway などのツールを使用して、キャラクターの音声をカスタマイズする方法を紹介します。これにより、DIY LLM おもちゃのより広い世界が開かれます。

LLM をローカルで実行する

大規模な言語モデルをローカルで実行するのは興味深いことです。 Llama 2、Gemma、世界中のあらゆる種類のオープンソースの大規模モデル (自分でトレーニングしたモデルも含む) を実行できます。 ollam を使えば簡単にできます。 最初に ollama をインストール し、次のコマンドを実行して Llama 2 モデルを実行します。

ollama run llama2

次に、ローカル LLM モデルを使用するように ロール構成を変更 します。

{
  "1": {
    "start_text": "こんにちは、何かお手伝いしましょうか?",
    "prompt": "You are a helpful assistant.",
    "llm_type": "ollama",
    "llm_config": {
      "api_base": "http://host.docker.internal:11434",
      "model": "llama2"
    }
  }
}

api_base は ollama サーバーのアドレスである必要があります。変更を有効にするために Folo サーバーを再起動することを忘れないでください。

docker compose restart folotoy

以上、お好みに応じて Gemma やその他の機種に機種変更してお楽しみください。

CloudFlare AI ゲートウェイを使用する

Cloudflare の AI ゲートウェイを使用すると、AI アプリを可視化し、制御できるようになります。アプリを AI Gateway に接続すると、分析とログを使用してユーザーがアプリケーションをどのように使用しているかに関する洞察を収集し、キャッシュ、レート制限、リクエストの再試行、モデルのフォールバックなどの機能を使用してアプリケーションをどのようにスケールするかを制御できます。

まず、新しい AI ゲートウェイを作成する 必要があります。

次に、docker-compose.ymlファイルを編集して、次のように OPENAI_OPENAI_API_BASE を AI ゲートウェイのアドレスに変更します。

services:
  folotoy:
    environment: OPENAI_OPENAI_API_BASE=https://gateway.ai.cloudflare.com/v1/${ACCOUNT_TAG}/${GATEWAY}/openai

次に、リクエスト、トークン、キャッシュ、エラー、コストに関するメトリクスを表示するダッシュボードが表示されます。

また、ログ ページでは、プロンプト、応答、プロバイダー、タイムスタンプ、リクエストが成功したか、キャッシュされたか、エラーがあったかどうかなど、個々のリクエストを確認できます。

素晴らしいですね。

ロールボイスのカスタマイズ

ロール設定ファイルのvoice_nameフィールドを変更することで、ロールの音声をカスタマイズできます。

{
  "1": {
    "tts_type": "openai-tts",
    "tts_config": {
      "voice_name": "alloy"
    }
  }
}

OpenAI TTS 音声リスト で好みの音声を見つけてください。

Edge tts にはさまざまな音声があり、次のようにお楽しみいただけます。

{
  "1": {
    "tts_type": "edge-tts",
    "tts_config": {
      "voice_name": "en-NG-EzinneNeural"
    }
  }
}

日本語の音声生成は azure-tts を使用することをお勧めします。音声ライブラリは ja-JP-MayuNeural を選択します。

{
  "1": {
    "tts_type": "azure-tts",
    "tts_config": {
      "voice_name": "ja-JP-MayuNeural"
    }
  }
}

ナレッジベースのサポート

ナレッジベースのサポートなど、より高度なカスタマイズ用。 Dify を使用することをお勧めします。Dify は、サービスとしてのバックエンドと LLMOps の概念を組み合わせ、組み込みの RAG エンジンなど、生成 AI ネイティブ アプリケーションの構築に必要なコア テクノロジー スタックをカバーします。 Dify を使用すると、任意のモデルに基づいてアシスタント API や GPT などの機能を自己展開できます。

組み込みの RAG エンジンに注目してみましょう。RAG エンジンは、質疑応答、対話、文書の要約などのタスクに使用できる検索ベースの生成モデルです。 Dify には、全文インデックス作成またはベクター データベース埋め込みに基づくさまざまな RAG 機能が含まれており、PDF や TXT などのさまざまなテキスト形式を直接アップロードできます。知識ベースをアップロードすれば、背景知識がないためにおもちゃが意味をなさないのではないかと心配する必要がなくなります。

Dify は、単独でデプロイすることも、クラウド バージョンを直接使用することもできます。 Folo の設定も非常に簡単です。

{
  "1": {
    "llm_type": "dify",
    "llm_config": {
      "api_base": "http://192.168.52.164/v1",
      "key": "app-AAAAAAAAAAAAAAAAAAa"
    }
  }
}

カスタムおもちゃの形状

動作原理に関しては、どんなおもちゃでも改造することができます。 Folo Toy は、普通のおもちゃをインテリジェントなおしゃべりおもちゃに変えることができる Octopus AI 開発キットも提供しています。チップは小さくて軽量なので、ぬいぐるみ、プラスチック、木製など、あらゆる種類のおもちゃに簡単に取り付けることができます。

陝西省のサボテンを DIY してみました。想像力を働かせて、お気に入りのおもちゃにそれを組み込むことができます。それを行うのは特に複雑なことではありません。

  1. おもちゃを開ける

  2. Octopus AI 開発キットを入れる

  3. おもちゃを閉じます

サーバーは引き続き同じものを使用します。 sn を通じてさまざまなおもちゃにさまざまな役割を割り当てることができますが、ここでは詳しく説明しません。 公式 Web サイトで構成ドキュメントを確認できます。

セキュリティに関する注意事項

キーを GitHub などの公共の場所に決して置かないでください。悪用される可能性があります。キーが漏洩した場合は、OpenAI プラットフォーム上で直ちにキーを削除し、新しいキーを生成してください。

コード内でキーが公開されるのを避けるために、docker-compose.yml で環境変数を使用し、コンテナーの起動時に環境変数を渡すこともできます。

services:
  folotoy:
    environment:
      - OPENAI_OPENAI_KEY=${OPENAI_OPENAI_KEY}
OPENAI_OPENAI_KEY=sk-...i7TL docker compose up -d

FoloToy Server をインターネット上で公開したい場合は、EMQX サービスを保護し、パスワードを使用してのみ EMQX へのアクセスを許可することを強くお勧めします。 EMQX セキュリティ の詳細をご覧ください。

結論

独自の LLM おもちゃを作ることは、AI とテクノロジーの世界へのエキサイティングな旅です。 DIY 愛好家でも初心者でも、このガイドは真にインタラクティブでパーソナライズされたものを作成するためのロードマップを提供します。 Folotoy Core の取得中に問題が発生した場合、または途中で問題に直面した場合は、Telegram グループに参加すると、コミュニティ サポートと専門家のアドバイスが提供されます。

既製のソリューションを希望する場合は、完成品をこちらから購入できます。このオプションは、組み立てを必要とせずに、同じインタラクティブなエクスペリエンスを提供します。 Folo Toys は他にも多くの製品を提供しており、こちら でご覧いただけます。これは店舗のアドレスです: https://folotoy.taobao.com/

今すぐ Folo Toy 製品を購入し、カスタマー サービスにお問い合わせの際に私のプロモーション コード F-001–17 を伝えて割引を受けてください。 Fofo G6 は 20 RMB、Octopus Dev Suite は 15 RMB、Cactus は 10 RMB 節約できます。他のほとんどの商品も 10 RMB 割引の対象となりますが、カスタマー サービスにお問い合わせください。



この創造的な冒険に乗り出して、AI コンパニオンに命を吹き込み、教育、エンターテイメント、その他の分野で LLM おもちゃの膨大な可能性を活用してください。

参考リンク:

  1. https://medium.com/@chenzhiqing/simplest-guide-to-creating-your-own-llm-toy-in-2024-ab5a5fe5d440

  2. https://docs.folotoy.com/

この記事が参加している募集

新生活をたのしく

みんなでつくる春アルバム

この記事が気に入ったらサポートをしてみませんか?