「科学的な論文や記事に強い言語モデルを探している」
「無料のコンテンツ生成ツールを探している」
このような場合には、GALACTICAがオススメです。
この記事では、GALACTICAをインストールする方法を解説しています。
本記事の内容
- GALACTICAとは?
- GALACTICAのシステム要件
- GALACTICAのインストール
- GALACTICAの動作確認
それでは、上記に沿って解説していきます。
GALACTICAとは?
GALACTICAは、汎用科学言語モデルのことです。
科学的なテキストとデータの大規模なコーパスで学習されています。
入力された事柄に関する、記事や論文のリンクを結果として返します。
科学についての記事や講義ノートを作成する上で役に立つでしょうね。
本格的な論文を書く場合には、その精度はどうなのでしょうかね?
また、GALACTICAは質問にも回答を返してくれるということです。
ただし、現在はデモで動作を確認できません。
アクセスが集中して、デモを停止しているのかもしれません。
GALACTICAをインストールしたら、自由に質疑応答ができるようになります。
※モデルは「facebook/galactica-6.7b」を利用
答えになっているようで、なっていないような気はしますが・・・
複数の回答を提示するパターンもあります。
なかなか、高度なことをしてくれます。
普通に面白いので、是非ともいろんな質問をGALACTICAに投げかけてみてください。
以上、GALACTICAについて説明しました。
次は、GALACTICAのシステム要件を説明します。
GALACTICAのシステム要件
現時点(2022年11月)でのGALACTICAの最新バージョンは、1.0.1となります。
この最新バージョンは、2022年11月17日にリリースされています。
GALACTICAのシステム要件では、以下がポイントになります。
- OS
- Pythonバージョン
- PyTorch
それぞれを以下で説明します。
OS
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
基本的には、OSは問わないと言えます。
Pythonバージョン
サポート対象となるPythonのバージョンは、以下。
- Python 3.7
- Python 3.8
- Python 3.9
上記がsetup.pyに記述されています。
同時に、次のような記述もあります。
これらを見る限り、Python 3.7以降であればOKと言えるでしょう。
現状(2022年11月)のPython公式開発サイクルでも、次のようになっています。
バージョン | リリース日 | サポート期限 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
3.11 | 2022年10月25日 | 2027年10月 |
Python公式開発サイクル的にも、Python 3.7以降が推奨となりますね。
通常、このような状況であればPython 3.10でも問題ないと思いがちです。
Pythonは上位互換が強く働きますからね。
しかし、GALACTICAにおいてその考えはアウトです。
Python 3.10では、インストールに失敗します。
そのため、サポートされているPythonのバージョンを用意しましょう。
PyTorch
GALACTICAは、PyTorchをベースに動いています。
GPUを利用できるなら、是非ともGPU版PyTorchを利用しましょう。
以上、GALACTICAのシステム要件を説明しました。
次は、GALACTICAのインストールを説明します。
GALACTICAのインストール
GALACTICAのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.9.13
そして、システム要件としてはPyTorchをインストール済という状況です。
このような状況において、GALACTICAのインストールを進めます。
まずは、現状のインストール済みパッケージを確認しておきます。
PyTorchは、各自の環境でバージョンは異なるでしょう。
> pip list Package Version ------------------ ------------ certifi 2022.9.24 charset-normalizer 2.1.1 idna 3.4 numpy 1.23.4 Pillow 9.3.0 pip 22.3.1 requests 2.28.1 setuptools 65.5.1 torch 1.13.0+cu117 torchaudio 0.13.0+cu117 torchvision 0.14.0+cu117 typing_extensions 4.4.0 urllib3 1.26.12 wheel 0.37.1
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、GALACTICAのインストールです。
GALACTICAのインストールは、以下のコマンドとなります。
pip install galai
GALACTICAのインストールは、結構長い時間がかかります。
終了したら、どんなパッケージがインストールされたのかを確認します。
> pip list Package Version --------------------- ------------ absl-py 1.3.0 accelerate 0.14.0 aiohttp 3.8.3 aiosignal 1.3.1 altair 4.2.0 astor 0.8.1 async-timeout 4.0.2 attrs 22.1.0 base58 2.1.1 bert-score 0.3.12 black 21.12b0 blinker 1.5 blis 0.7.9 Brotli 1.0.9 cachetools 5.2.0 catalogue 2.0.8 certifi 2022.9.24 charset-normalizer 2.1.1 click 7.1.2 colorama 0.4.6 contourpy 1.0.6 cycler 0.11.0 cymem 2.0.7 dacite 1.6.0 datasets 2.7.0 decorator 5.1.1 dill 0.3.6 entrypoints 0.4 et-xmlfile 1.1.0 exceptiongroup 1.0.4 filelock 3.8.0 flake8 5.0.4 fonttools 4.38.0 frozenlist 1.3.3 fsspec 2022.11.0 galai 1.0.1 gitdb 4.0.9 GitPython 3.1.29 huggingface-hub 0.11.0 idna 3.4 inflate64 0.3.1 iniconfig 1.1.1 isort 5.8.0 Jinja2 3.1.2 joblib 1.2.0 jsonschema 4.17.0 kiwisolver 1.4.4 langcodes 3.3.0 MarkupSafe 2.1.1 matplotlib 3.6.2 mccabe 0.7.0 more-itertools 9.0.0 multidict 6.0.2 multiprocess 0.70.14 multivolumefile 0.2.3 murmurhash 1.0.9 mypy-extensions 0.4.3 nltk 3.7 numpy 1.23.4 openai 0.25.0 openpyxl 3.0.10 packaging 21.3 pandas 1.5.1 pandas-stubs 1.5.1.221024 parallelformers 1.2.7 pathspec 0.10.2 pathy 0.8.1 Pillow 9.3.0 pip 22.3.1 platformdirs 2.5.4 plotly 5.11.0 pluggy 1.0.0 preshed 3.0.8 prompt-toolkit 3.0.32 promptsource 0.2.3 protobuf 4.21.9 psutil 5.9.4 py7zr 0.20.2 pyarrow 10.0.0 pybcj 1.0.1 pycodestyle 2.9.1 pycryptodomex 3.15.0 pydantic 1.8.2 pydeck 0.8.0 pyflakes 2.5.0 pyparsing 3.0.9 pyppmd 1.0.0 pyrsistent 0.19.2 pytest 7.2.0 python-dateutil 2.8.2 pytz 2022.6 pytz-deprecation-shim 0.1.0.post0 PyYAML 6.0 pyzstd 0.15.3 regex 2022.10.31 requests 2.28.1 responses 0.18.0 rouge-score 0.1.2 setuptools 65.5.1 six 1.16.0 smart-open 5.2.1 smmap 5.0.0 spacy 3.3.0 spacy-legacy 3.0.10 spacy-loggers 1.0.3 srsly 2.4.5 streamlit 0.82.0 tokenizers 0.13.2 toml 0.10.2 tomli 1.2.3 toolz 0.12.0 torch 1.13.0+cu117 torchaudio 0.13.0+cu117 torchvision 0.14.0+cu117 tornado 6.2 tqdm 4.64.1 transformers 4.24.0 typer 0.4.2 types-pytz 2022.6.0.1 typing_extensions 4.4.0 tzdata 2022.6 tzlocal 4.2 urllib3 1.26.12 validators 0.20.0 wasabi 0.10.1 watchdog 2.1.9 wcwidth 0.2.5 wheel 0.37.1 xxhash 3.1.0 yarl 1.8.1
GALACTICAが数多くのパッケージに依存していることを確認できます。
だからこそ、Pythonのバージョンの制約が厳しくなるのでしょう。
以上、GALACTICAのインストールを説明しました。
次は、GALACTICAの動作確認を説明します。
GALACTICAの動作確認
GALACTICAの動作確認をするには、モデルのダウンロードが必要です。
ただ、それらを手動でダウンロードする必要はありません。
GALACTICAでは、Hugging Face上にあるモデルを自動的にダウンロードします。
そのモデルに関しては、5個が公開されています。
Size | Parameters | ファイル容量 |
---|---|---|
mini | 125 M | 500MB |
base | 1.3 B | 5.26GB |
standard | 6.7 B | 27.44GB |
large | 30 B | 59.96GB |
huge | 120 B | 487.49GB |
standard以降では、ファイルが分割されています。
かなり大きなデータになりますからね。。。
今回は、「base」を用いて動作検証を行います。
この場合には、次のコードを利用することになります。
import torch from transformers import AutoTokenizer, OPTForCausalLM tokenizer = AutoTokenizer.from_pretrained("facebook/galactica-1.3b") model = OPTForCausalLM.from_pretrained("facebook/galactica-1.3b", device_map="auto", torch_dtype=torch.float16) input_text = "Why is the sky blue?" input_ids = tokenizer(input_text, return_tensors="pt").input_ids.to("cuda") outputs = model.generate(input_ids) print(tokenizer.decode(outputs[0]))
もちろん、初回実行時にはモデルのダウンロードが開始されます。
コードを実行した結果は、以下となります。
Why is the sky blue? The sky is blue because the light from the sun is blue
それらしい回答が提示されましたね。
このように表示されれば、GALACTICAは動作していると言えます。
以上、GALACTICAの動作確認を説明しました。