ローカル PC 上で動作する AI チャット（NVIDIA Chat With RTX）をインストールして遊んでみた

## 概要

ローカル PC 上で AI チャットとして動作する NVIDIA Chat With RTX を Surface Laptop Studio 2 にインストールしてみました。購入した Surface は下記表に示すスペックであり、要求されるシステム要件をぎりぎり満たしていました。インストールだけして何もしない可能性がありますが、インストールと動作確認の手順を紹介します。

| #  | 項目 | スペック |
|----|------|---------|
| 1  | CPU  | 13th Gen Intel(R) Core(TM) i7-13700H   2.90 GHz |
| 2  | RAM  | 32.0 GB |
| 3  | GPU  | NVIDIAFootnote® RTX™ 2000 Ada Generation Laptop GPU（8 GB GDDR6 vRAM） |

## Chat With RTX とは

Chat With RTX とは、NVIDIA 社のホームページでは次のように紹介されています。ローカル環境のコンテンツに基づいて、いわゆる Copilot として動作するようです。

> Chat With RTX は、独自のコンテンツ (ドキュメント、メモ、映像、その他のデータ) に接続された GPT 大規模言語モデル (LLM) をカスタマイズできるデモアプリです。検索拡張生成 (RAG)、TensorRT-LLM、および RTX アクセラレーションを利用して、カスタム チャットボットに質問することで、コンテキストに関連した回答を迅速に得ることができます。また、すべて Windows RTX PC またはワークステーション上のローカルで実行されるため、迅速かつ安全な結果が得られます。

引用元：[Chat With RTX による独自 LLM の構築 | NVIDIA](https://www.nvidia.com/ja-jp/ai-on-rtx/chat-with-rtx-generative-ai/)

紹介動画が YouTube にあります。

<iframe width="560" height="315" src="https://www.youtube.com/embed/gdsRJZT3IJw?si=r2BrFCI_U4wMhAOP" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

システム要件として次のように記載されており、GPU が必須です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/56bf335a-54b9-c912-0c4b-dacbaf96e8bb.png)

引用元：[Chat With RTX による独自 LLM の構築 | NVIDIA](https://www.nvidia.com/ja-jp/ai-on-rtx/chat-with-rtx-generative-ai/)


## インストール手順

### 1. NVIDIA 社のホームページからインストールメディアをダウンロード

下記のサイトより、35 GB 程のサイズのファイルをダウンロードします。私の環境ではダウンロードに 3 時間ほどかかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/54079de6-96ad-5364-b08e-d71c62e21314.png)

引用元：[Chat With RTX による独自 LLM の構築 | NVIDIA](https://www.nvidia.com/ja-jp/ai-on-rtx/chat-with-rtx-generative-ai/)

寝る前にダウンロードを開始させ、PowerToys の Awake 機能により画面をオンのままにして放置しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/64a7b1fa-6173-f86e-d228-6fa6ad5b8689.png)

### 2. zip ファイルの解凍

この解凍に数分かかかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f5871809-67ee-0f7e-8a6a-93872ef60efc.png)

### 3. `setup.ext`を管理者として実行

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/a12f6b20-394c-efc3-96e0-3bc16baaace9.png)


### 4. システムチェック後、ライセンス規約に同意

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/2b249048-1019-1413-f6f9-ee6495ea7772.png)

### 5. インストール時のオプションをデフォルトのまま設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9362a7f3-0b60-3e06-e54e-122d9f3a41d2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7eb26be5-fc18-5a00-5996-b5731e8423d4.png)

### 6. インストールが完了することを待機

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/469b9f49-a20a-834e-1892-135ee7e047c9.png)

### 7. インストールが完了したことを確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/448f5bf6-9ca7-5aee-3988-00f1e5f6a709.png)

### 8. 初回起動時のセットアップの完了を待機

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e9cc2244-0cba-42d5-1946-4034f56f9085.png)

### 9. アプリケーションの起動を確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7a774d65-a15a-1c59-768f-b5a61b0206f9.png)

## 動作確認

### 1. チャット投稿をしてみた

何者なのかを問い合わせてみましたが、期待した回答が実施されました。

```text
Who are you?
```

> I am an AI language model designed to assist users with information and tasks. I do not have a personality or emotions, and my responses are based solely on the information provided to me.
> Reference files:
> portal-prelude-rtx-inside-the-game-interview.txt

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/78b1434a-c787-3602-a09b-063508338fca.png)

> 私は、ユーザーの情報やタスクを支援するために設計された AI 言語モデルです。私には人格も感情もありません。私の応答は提供された情報のみに基づいています。
> 参照ファイル:
> portal-prelude-rtx-inside-the-game-interview.txt

上記の翻訳

### 2. PDF に関する質問を実施してみた

Databricks 社が提供している Spark の概要が記載されている PDF に基づいた質問を実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/34d4a5c9-bbdb-58d4-5163-74d4246568ba.png)

引用元：[A-Gentle-Introduction-to-Apache-Spark.pdf (databricks.com)](https://pages.databricks.com/rs/094-YMS-629/images/A-Gentle-Introduction-to-Apache-Spark.pdf?mkt_tok=eyJpIjoiWkdGak9HUXlZbVpsT1RNMCIsInQiOiJjTHVKeEgyUGJ3MDVCcmJcL2VLSWYrRXN1ZmhON0p0RGdkc3Y4WkZma21NZ25qYjJjZVRlUmt4andWYTNScjNSOHZJNlhzS2lpYndia01rRUJcL28wMEUrZm1GVCtBc0hTa3dwd1FKdThWV3kxaUVcL3B4RmVCYWZ1QTJlbHNUaStPRiJ9)

右上にある dataset のパスを確認して、`dataset`フォルダーと同階層に`upload_dateset`というフォルダーを作成してダウンロードした PDF を配置します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c57a4cf0-8d8e-eec4-a21b-2b3bee3e8954.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/968899a1-8d5e-e042-0984-5246a79b0951.png)

右上にある dataset のえんぴつボタンを選択して、作成した`upload_dateset`フォルダーを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/c57a4cf0-8d8e-eec4-a21b-2b3bee3e8954.png)

データセットとして読み込みに少し時間がかかりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/e07aa4db-3ab3-dfa8-0ff6-aef538b78b82.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1483b5b5-dea5-31eb-f429-0fd69c73c914.png)

読み込みが完了するとディレクトリが表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/781e8ad4-284d-59ef-7848-820e8ea26698.png)

準備が完了したため、Spark とは何かという質問をしてみます。内容としては正しそうです。

```text
What is Spark ?
```

> Apache Spark is a unified computing engine and a set of libraries for parallel data processing on computer clusters. It is the most actively developed open source engine for this task and is considered the de facto tool for any developer or data scientist interested in big data. Spark supports multiple widely used programming languages and includes libraries for diverse tasks ranging from SQL to streaming and machine learning. It runs anywhere from a laptop to a cluster of thousands of servers and is easy to start and scale up to big data processing or incredibly large scale.
> Reference files:
> A-Gentle-Introduction-to-Apache-Spark.pdf

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/23dd2203-4805-f40e-83d0-b0aa100df795.png)

> Apache Spark は、統合コンピューティング エンジンであり、コンピューター クラスター上で並列データ処理を行うためのライブラリのセットです。 これは、このタスク用に最も積極的に開発されているオープンソース エンジンであり、ビッグ データに関心のある開発者やデータ サイエンティストにとっての事実上のツールとみなされます。 Spark は広く使用されている複数のプログラミング言語をサポートしており、SQL からストリーミング、機械学習に至るまでのさまざまなタスク用のライブラリが含まれています。 ラップトップから数千台のサーバーのクラスターまで、どこでも実行でき、簡単に開始してビッグ データ処理や信じられないほど大規模なデータ処理にスケールアップできます。
> 参考ファイル:
> A-Gentle- Introduction-to-Apache-Spark.pdf

上記の翻訳

PDF 内にほぼ同様の内容が記載されている箇所がありますが、文章が異なるためいい感じに解釈しているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/1ad2dd7f-6054-6e95-5841-f37bf5381057.png)

引用元：[A-Gentle-Introduction-to-Apache-Spark.pdf (databricks.com)](https://pages.databricks.com/rs/094-YMS-629/images/A-Gentle-Introduction-to-Apache-Spark.pdf?mkt_tok=eyJpIjoiWkdGak9HUXlZbVpsT1RNMCIsInQiOiJjTHVKeEgyUGJ3MDVCcmJcL2VLSWYrRXN1ZmhON0p0RGdkc3Y4WkZma21NZ25qYjJjZVRlUmt4andWYTNScjNSOHZJNlhzS2lpYndia01rRUJcL28wMEUrZm1GVCtBc0hTa3dwd1FKdThWV3kxaUVcL3B4RmVCYWZ1QTJlbHNUaStPRiJ9)

### 3. YouTube の動画に関する質問をしてみた

右上の Dataset にて `YouTube URL`に変更後、URL を入力して`Download transcripts`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d04734cc-1afd-55c9-1f4d-1319f5f7ad4d.png)

データセットの読み込みがはじまります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/45d574e2-4bcb-a9d9-63a1-8f55981a6e03.png)

入力した URL は、Databricks の Unity Catalog に関する動画です。

<iframe width="560" height="315" src="https://www.youtube.com/embed/ibvG-pYKl8U?si=Ewx0KgZ3pOGsbk7S" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

Unity Catalog とは何かを質問してみます。いい感じの回答がかえってきました。

```text
What is Unity Catalog ?
```

> Unity Catalog is a data management platform that provides a centralized location for managing and organizing data assets, such as tables, views, schemas, and other metadata. It also provides account-level user management, which allows users to access their data across multiple workspaces. Unity Catalog also supports identity federation, which allows users to be federated across multiple workspaces, eliminating the need to manage users and groups at the workspace level. Additionally, Unity Catalog provides a number of other features, such as role-based access control, external location management, and integration with cloud storage devices.
> Reference files:
> Title: A Practitioner's Guide to Unity Catalog—A Technical Deep Dive
> Channel: Databricks
> Upload Date: 2022-07-19

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/89d2265c-db22-0f49-9991-7b2af59e85c1.png)


> Unity Catalog は、テーブル、ビュー、スキーマ、その他のメタデータなどのデータ資産を管理および整理するための一元的な場所を提供するデータ管理プラットフォームです。また、アカウント レベルのユーザー管理も提供され、ユーザーが複数のワークスペースにまたがってデータにアクセスできるようになります。 Unity Catalog は ID フェデレーションもサポートしています。これにより、ユーザーが複数のワークスペース間でフェデレーションできるようになり、ワークスペース レベルでユーザーとグループを管理する必要がなくなります。さらに、Unity Catalog は、ロールベースのアクセス制御、外部ロケーション管理、クラウド ストレージ デバイスとの統合など、他の多くの機能を提供します。
> 参照ファイル:
> タイトル: Unity カタログの実践者向けガイド - 技術的な詳細
> チャネル: Databricks
> アップロード日: 2022-07-19

## 結論

Github Copilot など生成 AI のテクノロジーを活用せずにシステム開発をすることを想像できないぐらい浸透してきましたが、生成 AI のテクノロジーがローカル環境上で利用できるようことにとてもわくわくしています。NVIDIA Chat With RTX の開発が活発に実施されるかが不透明ですが、こういった新しいテクノロジーに触れる機会を作っていただけることに感謝しています。