見出し画像

MLX-UIを試してみる:ローカルLLM on MacbookPro mlxアーキテクチャ

以下のツイートが流れてきました。

ちょうど昨日の自分の努力した方向の完成形のようです。

ダウンロード先は、こちら

解説と中身をちらっとみると、virtualenvを作成して、そこで実行する形でした。しかし、自分の場合、今はconda環境で統一しているので、手作業でインストールしました。(もちろんChatGPTと相談しながらです。)

最初は、プロジェクトのクローンです。
ホルダーをつくりたいdirectoryに移動して

git clone https://github.com/da-z/mlx-ui.git
cd mlx-ui
ls -la

以上で、ファイルが正しくクローンされてるかを確認。

mlxのconda環境にしてから ( conda activate mlx(←これは私の場合))
install.shに書かれているパッケージをインストール

conda install streamlit autopep8 watchdog

さらに、以下も実行。

pip install -r requirements.txt

あとは、実行するだけで、デフォルートで指定されている
mlx-community/dolphin-2.6-mistral-7b-dpo-laser-4bit-mlx
が動きました。

実行方法はconda環境のterminalで、特にpythonを立ち上げずに、下記です。

streamlit run app.py

E-mailを入力とかのoptionがterminalにでてきますが、何もいれずにReturnですすみます。

ちなみに、streamlitについては下記のものだそうです。

Streamlitは、Pythonで書かれたウェブアプリケーションを簡単に作成できるオープンソースのライブラリです。データサイエンスや機械学習のプロジェクトでよく使用され、データの可視化、対話型のプロトタイプ、分析ツールなどを迅速に構築することができます。

Streamlitの主な特徴は以下の通りです:

- **簡単なセットアップ**: Pythonスクリプトに数行のコードを追加するだけで、ウェブアプリケーションを構築できます。
- **即時に反映される変更**: スクリプトを更新して保存すると、アプリケーションが自動的にリロードされ、変更が直ちに反映されます。
- **ウィジェットの自動生成**: スライダー、ボタン、チェックボックスなどのウィジェットをコードに簡単に組み込むことができ、ユーザーインタラクションを容易に実装できます。
- **データの可視化**: Matplotlib, Altair, Plotly などのライブラリをサポートしており、データの可視化が簡単に行えます。
- **カスタムレイアウトとテーマ**: アプリケーションの外観をカスタマイズするためのオプションが用意されています。
- **シェアとデプロイが容易**: Streamlit Sharingや他のクラウドプラットフォームを使用して、アプリケーションを他の人と共有したり、インターネット上にデプロイしたりすることが容易です。

Streamlitを使うと、データサイエンティストやエンジニアはフロントエンドの専門知識がなくても、効果的なウェブインターフェースを持つアプリケーションを迅速に開発することができます。これにより、ユーザーはデータやモデルの結果を容易に探索し、分析することができます。

Streamlitをインストールするには、以下のpipコマンドを使用します:

```sh
pip install streamlit
```

そして、基本的なStreamlitアプリケーションを実行するには、Pythonスクリプト(例えば `app.py`)にStreamlitのコードを書いて、以下のコマンドで実行します:

```sh
streamlit run app.py
```

これにより、ローカルのウェブブラウザでアプリケーションが開きます。

GPT-4

で、デフォルートにしてあるSafariが自動的に開きました。
ただし、Safariだと、日本語入力をしたときに、確定のEnterを押したときにSubmitしてしまいました。
Chromeに変えて、(アドレスバーに指定ローカルをいれて)そちらでは日本語入力は問題なく挙動しました。

http://localhost:8501

メモリは基本的にずっと同じ感じで推移して、応答もスムーズな感じです。

必要なモデルは、models.txtに書き込めばいいようです。そうすることで、ブラウザ画面の左からプルダウンメニューで選択できるようです。

1日毎あるいは数時間毎にファイルがアップデートしているので、立ち上げる前に git pull で最新にしたほうがいいかもしれません。

Twitterのポストに記憶を持たせたということが書いてあったのですが、どれほどの記憶があるのかよく分かりません。

左側ですぐにSystem プロンプトを書き換えることができること、出力のトークン数の設定、temperatureのスライダーと、今までの会話を忘れる forget  と、 途中で出力が途切れた時の continue があるというシンプルな操作体系になってるのが特徴だと思います。

終了は、terminal で Ctrl + C です。


#AI #AIでやってみた #やってみた #mlx #huggingface #ローカルLLM #macbookpro #大規模自然言語モデル


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

この記事を最後までご覧いただき、ありがとうございます!もしも私の活動を応援していただけるなら、大変嬉しく思います。