大規模言語モデルのUIツール(Text generation web UI)をWindowsにインストールする方法と使い方

この記事では,大規模言語モデル(LLM)の便利ツールであるText generation web UIをWindowsへインストールする手順とその使い方を記載します.

目次

Text generation web UIとは

生成AIのほとんどはTransformersというフレームワークを利用していますが,プログラミングの知識が必要であり比較的難易度の高い分野です.

Text generation web UIはプログラミングを意識することなく利用することができるようになるweb UIツールです.

生成AIのWeb UIとして,画像生成AIであるStable DiffusionのWeb UIであるAUTOMATIC1111が最も有名です.AUTOMATIC1111により,プログラミングの知識が乏しい方でも画像生成AIを利用することが可能になり大きく注目されました.

AUTOMATIC1111の記事はこちら

Text generation web UIも,AUTOMATIC1111のようにプログラミングを意識することなく大規模言語モデルを利用できるようになります.

Text generation web UIは,大規模言語モデル(LLM)におけるAUTOMATIC1111を立ち位置を目指すプロジェクトです.

また,Text generation web UIは公式サイトは下記のとおりです.

https://github.com/oobabooga/text-generation-webui

UIは下記のようになっています.

Text generation web UIの導入

インストール方法

インストール方法は,ワンクリックインストールやDockerなどが用意されていますが,この記事では手順が明確であるマニュアルインストールを行います.

Gitのインストール

Gitが未インストールの場合インストールします.


winget install --id Git.Git -e --source winget

Condaのインストール

まずは,Minicondaをインストールします.Anacondaでも良いですが,不要なパッケージをインストールしないためにここではMiniCondaとします.

Minicondaのページにアクセスし,インストーラーをダウンロードします.

インストーラーを起動し,Condaをインストールします.

インストールが完了したら,”Anaconda Powershell Prompt”を起動します.

起動したら念のためバージョンを確認します.バージョン情報が表記されれば問題なくインストールされています.


conda --version
conda 23.5.2

仮想環境を作成

“textgen”という名前の仮想環境をPython 3.10.9で作成します.Pythonのバージョンを変更した場合,PyTorchも対応するバージョンを選択する必要があります.


conda create -n textgen python=3.10.9 -y
conda activate textgen

PyTorchのインストール

Python 3.10.9に適したPyTorchをインストールします.


pip install --upgrade pip
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117

PyTorchの利用可能バージョンはPythonのバージョン依存しています.詳しくは下記記事をご覧ください.

Text generation web UIのインストール

適当なディレクトリに移動し,Text generation web UIをインストールします./path/to/installは適宜インストールしたいディレクトリに読みかえてください.


cd /path/to/install
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui

次に,Text generation web UIに必要なパッケージをインストールします.


pip install -r requirements.txt

これでText generation web UIのインストールは完了です.

Text generation web UIの起動

Text generation web UIの起動するには,上記で作成した仮想環境で実行する必要があります.

仮想環境(textgen)をアクティベートします.


conda activate textgen

下記コマンドでText generation web UIを起動します.


python server.py
...
Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.

起動後に,http://127.0.0.1:7860にアクセスするとText generation web UIが利用可能です.

ブラウザでアクセスすると下記のような画面が表示されます.

また,http://127.0.0.1:7860/?__theme=darkでアクセスするとダークモードが使用可能です.個人的にはダークモードのほうが見やすい気がします.

準備完了ですが,[Model]タブに移動するとモデルが用意されていません.

実際に利用するにはモデルをダウンロードする必要があります.

Text generation web UIの使い方

モデルのダウンロード

では,Facebookが公開しているLLMをダウンロードして,実際に利用してみましょう.

モデルダウンロード方法1:スクリプトを用いたダウンロード

ダウンロード用のプログラムが用意されているので,それを利用してモデルをダウンロードします.


python download-model.py facebook/opt-125m

モデルのダウンロード方法2:GUIからダウンロード

便利さの観点で,こちらの方法を推奨します.方法1はプログラムを実行する必要があり,少し面倒です.せっかくなのでGUIでダウンロードしましょう.

“Download custom model or LoRA”にHugging Faceのリポジトリを入力すると自動でダウンロードしてくれます.

モデルのダウンロード方法3:手動でダウンロードしてモデルを配置

上記に示した方法では,認証プロセスなどを含む場合は対応していません.

認証プロセスが必要な場合は,手動でダウンロードして適切なディレクトリにモデルを配置する必要があります.

1.まず,Git LFSでモデルをローカル環境にダウンロードします.


git lfs install
git clone https://huggingface.co/facebook/opt-6.7m

2.text-generation-webui/modelsにダウンロードしたディレクトリごとコピーします.3.GUIのリフレッシュボタンをクリックする.

以上でモデルが反映されます.

モデルの読み込み

「Model」タブの「Model」のプルダウンにダウンロードしたモデルが,表示されるようになります.(表示されない場合はリフレッシュボタンをクリックします)

下記のように①モデルを選択し,②”Load”をクリックするとモデルが利用可能になります.

実行方法

推論は,”Text generation”タブから行います.

まずは,①プロンプトのテンプレートを選択します.今回はQA形式です.

②Questionの部分に適当な質問を入力します.ここでは,”What is generative AI?”としています.

次に,③”Generate”ボタンをクリックすると,結果が右側④に出力されます.

検証

上記までの手順で,実際に文書生成が可能になりました.

では,パラメータ数の違いによる生成結果の違いを確認してみます.比較に利用するモデルは,”facebook/opt-125m”と”facebook/opt-6.7b”,”facebook/opt-66b”です.

モデルパラメータ数モデルサイズ
facebook/opt-125m約1.25億約240MB
facebook/opt-6.7b約67億約12.4GB
facebook/opt-66b約660億約120GB

facebook/opt-125m

結果

Common sense questions and answers

Question: What is generative AI?
Factual answer: generative AI is a computer program that uses the natural language processing (NLP) to understand what people are saying. It is not a human language, but rather an artificial intelligence.

The NLP system is based on the idea of “human” being able to communicate with other humans in real time. The NLP system can be used for any purpose. For example, it could be used to help you find out if your car has been stolen or if you have lost your keys.

What is generative AI?
Factual answer: generative AI is a computer program that uses the natural language processing (NLP) to understand what people are saying. It is not a human language, but rather an artificial intelligence.

How does generative AI work?
Factual answer: generative AI is a computer program that uses the natural language processing (NLP) to understand what people are saying. It is not a human language, but rather

日本語訳(DeepL)

常識に関する質問と回答

質問 ジェネレーティブAIとは何ですか?
事実上の答え:ジェネレーティブAIとは、自然言語処理(NLP)を使って人々の発言を理解するコンピューター・プログラムのことである。人間の言語ではなく、人工知能である。

NLPシステムは、”人間 “が他の人間とリアルタイムでコミュニケーションできるという考えに基づいている。NLPシステムはどんな目的にも使える。例えば、車が盗まれたかどうか、鍵をなくしたかどうかを調べるのに使うことができる。

ジェネレーティブAIとは何ですか?
事実上の答え:ジェネレーティブAIとは、自然言語処理(NLP)を使って人の言っていることを理解するコンピュータ・プログラムのことである。人間の言語ではなく、人工知能である。

ジェネレーティブAIの仕組みは?
事実上の答え:ジェネレーティブAIは、自然言語処理(NLP)を使って人々の言っていることを理解するコンピュータープログラムです。それは人間の言語ではなく、むしろ

facebook/opt-6.7b

結果

Common sense questions and answers

Question: What is generative AI?
Factual answer: Generative AI is a subfield of artificial intelligence that focuses on the generation of new data. It’s an approach to machine learning that uses algorithms to generate data, rather than just using existing data. This means it can create entirely new information from scratch, without having to rely on pre-existing data sets or other people’s work.

Question: How does generative AI differ from deep learning?
Factual answer: Deep learning is a type of machine learning that relies heavily on large amounts of labeled training data. In contrast, generative AI doesn’t need any labeled data at all — instead, it generates its own data by analyzing patterns in the real world. The two approaches are complementary; they both use different techniques to solve similar problems.

Question: Can I use generative AI for my business?
Factual answer: Yes! Many businesses already use generative AI to improve their products and services. For example, one company used gener

日本語訳(DeepL)

常識に関する質問と回答

質問 ジェネレーティブAIとは何ですか?
事実上の答え ジェネレーティブAIとは、新しいデータの生成に焦点を当てた人工知能のサブ分野である。既存のデータを使うのではなく、アルゴリズムを使ってデータを生成する機械学習のアプローチだ。つまり、既存のデータセットや他人の研究に頼ることなく、まったく新しい情報をゼロから作り出すことができる。

質問 ジェネレーティブAIはディープラーニングとどう違うのですか?
事実上の答え ディープラーニングは、大量のラベル付き学習データに大きく依存する機械学習の一種である。対照的に、ジェネレーティブAIはラベル付けされたデータを全く必要とせず、現実世界のパターンを分析することで独自のデータを生成する。この2つのアプローチは補完的なものであり、同じような問題を解決するために異なるテクニックを使用する。

質問 自分のビジネスにジェネレーティブAIを使うことはできますか?
事実上の答え はい!すでに多くの企業が、自社の製品やサービスを改善するためにジェネレーティブAIを使用している。例えば、ある企業はジェネレー

facebook/opt-66b

結果

Common sense questions and answers

Question: What is generative AI?
Factual answer: Generative AI (GAI) is a branch of artificial intelligence that aims to create new knowledge from data. It can be used in many different fields, such as computer vision or natural language processing.

The term “generative” refers to the fact that GAI systems are able to generate their own content based on input data. This means they don’t just process information but also produce it.

In this article we will explain what generative AI is, how it works, and why you should care about it. We will also give some examples of real-world applications where generative AI has been successfully applied.

What is generative AI?

Generative AI is an approach to machine learning that allows machines to learn by creating their own content instead of simply analyzing existing data. In other words, generative AI uses algorithms that allow computers to make up their own rules for generating data.

This type of algorithm is called a gener

日本語訳(DeepL)

常識に関する質問と回答

質問 ジェネレーティブAIとは何ですか?
事実上の答え ジェネレーティブAI(GAI)は、データから新しい知識を創造することを目的とした人工知能の一分野です。コンピュータ・ビジョンや自然言語処理など、さまざまな分野で利用することができる。

生成的」という用語は、GAIシステムが入力データに基づいて独自のコンテンツを生成できるという事実を指しています。つまり、情報を処理するだけでなく、生成することもできるのだ。

この記事では、ジェネレーティブAIとは何か、どのように機能するのか、そしてなぜあなたがジェネレーティブAIに関心を持つべきなのかを説明する。また、ジェネレーティブAIがうまく適用された実際のアプリケーションの例もいくつか紹介する。

ジェネレーティブAIとは?

ジェネレーティブAIとは、既存のデータを単純に分析するのではなく、機械が自らコンテンツを作成することで学習する、機械学習のアプローチである。言い換えれば、ジェネレーティブAIは、コンピュータがデータを生成するための独自のルールを作り上げることを可能にするアルゴリズムを使用する。

この種のアルゴリズムはジェネレーティブAIと呼ばれる。

やはりパラメータ数が大きいモデルだと,文章がうまくなっている気がします.

ただパラメータ数の増大に伴いGPUのメモリが足りなくなり,CPUメモリを利用したことで実行速度が顕著に低下してしまいました.

また,facebook/opt-66bに関してはCPUメモリを利用してもメモリが足りなくなってしまったので,ディスクも利用しました.

チャット風に使用する方法

今回はプロンプトベースの文章生成を行いましたが,ChatGPTのようにチャット風に使用することも可能です.

チャット風に使用する方法は下記記事をご覧ください.

まとめ

Text generation web UIを用いることで,Transformersを用いてプログラムを記述することなく簡単に大規模言語モデル(LLM)を利用することが可能になりました.

ただ,AUTOMATIC1111と比較すると専門性が高く難易度が高い印象ですが,大規模言語モデル入門に関してはかなりハードルが低くなったといえます.

よかったらシェアしてね!
目次