シンギュラリティ実験ノート

購入した1000ドルPCで何がどこまでできるのか実験した記録です。

UM790 ProのNPUでLLM(Llama2-7B)を動かしてみた

NPUでLLM(opt-1.3b)のデモプロを動かすことができたので、今回はLlama2-7Bにチャレンジしてみた。結果的に動かすことはできたが、期待していた結果とは少し違っていた。導入手順とその中で気付いたことをここにまとめておきたい。

Copilotに頼んだらDALL E3が描いてくれました

Step1 リポジトリのダウンロードと仮想環境の作成

こちらのページを見ながら環境を作成する。AnacondaからCMDプロンプトを起動して以下を実行する。

git clone https://github.com/amd/RyzenAI-SW.git
cd RyzenAI-SW\example\transformers
conda env create --file=env.yaml

仮想環境を作成したら、Anaconda-navigatorで作成した仮想環境を選択してCMDプロンプトを起動し、以下を実行する。

git lfs install
cd RyzenAI-SW\example\transformers\ext
git clone https://huggingface.co/datasets/mit-han-lab/awq-model-zoo awq_cache

私の場合、自宅のNET環境ではエラーとなりクローンできなかったが、シェアオフィスのNET環境で実行したところ問題なくできた。自宅のNET環境の問題だと思うが詳細は不明である。作業環境を複数持っていてよかったと思う。

Step2 環境のセットアップ

続けて以下のコマンドを実行する。

cd RyzenAI-SW\example\transformers\ 
setup.bat
pip install ops\cpp --force-reinstall

setup.bat は Pythonスクリプトで使用する環境変数を設定しているので、後日作業を行う場合、この setup.bat は再度実行する必要がある。

ONNXベースのフローで行う場合は、次のコマンドを実行する必要があるが、今回は pytorch ベースで行うため、私は実行しなかった。

pip install onnxruntime
cd ryzen-ai-sw-1.1\ryzen-ai-sw-1.1\voe-4.0-win_amd64
pip install voe-0.1.0-cp39-cp39-win_amd64.whl
pip install onnxruntime_vitisai-1.15.1-cp39-cp39-win_amd64.whl
python installer.py

Step3 Llama-2-7B関連ファイルのダウンロード

HugginfaceからLlama-2-7B関連の以下のファイルをダウンロードする。7B_chat を使いたい場合は 7B_chat 関連のファイルをダウンロードする。

checklist.ch
consolidated.00.pth
params.json
tokenizer.model
tokenizer_checklist.chk

llama2 フォルダに llama2-wts フォルダを作成し、以下のように配置する。

~/llama2
  ├ llama2-wts/
  | ├ 7B/
  | | ├ checklist.chk
  | | ├ consolidated.00.pth
  | | └ params.json
  | ├ tokenizer.model
  | └ tokenizer_checklist.chk
  └ llama2-wts-hf/
    └ 7B/

コンバーターを起動する。コマンドでは ./llama-2-wts-hf/7B と指定しているが、7B_chat でないとエラーになるようだ。仕方がないのでフォルダ名を 7B_chat に変更して実行すると llama2-wts/7B のデータがコンバートされ、llama2-wts-hf/7B_chat にデータが作成される。

python -m transformers.models.llama.convert_llama_weights_to_hf --input_dir ./llama-2-wts/ --model_size 7B --output_dir ./llama-2-wts-hf/7B

Step4 Quantization(量子化

以下のコマンドを実行。何種類かコマンドが記載されているが、説明がないので細かい違いは全く分からない。とりあえず4ビットの量子化を実行する。

python run_awq.py --w_bit 4 --task quantize

以下のように量子化されたモデルが作成される。

Quantized and saved model: pytorch_llama27b_w_bit_4_awq_amd.pt

Step5 Deployment(導入)

以下のコマンドを実行。opt-1.3b の時はコマンドの引数の説明もある程度書かれていたが、今回の Llama2 は説明が全くないため、ソースの中のコメントを読むしかない。困ったものだ。

python run_awq.py --task decode --target aie --w_bit 4

結果

opt-1.3b では任意のプロンプトを入力できるコマンドがあったが、Llama2 では用意されていないようだ。上記の run_awq.py ではmax_new_tokensという変数で11トークンを返答する内容になっていたので、110トークンを返すようにして実行した結果が以下である。

****************************************
prompt: What is the meaning of life?
Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.
response: What is the meaning of life? What is the meaning of death? What is the meaning of love? What is the meaning of hate? What is the meaning of life? What is the meaning of death? What is the meaning of love? What is the meaning of hate? What is the meaning of life? What is the meaning of death? What is the meaning of love? What is the meaning of hate? What is the meaning of life? What is the meaning of death? What is the meaning of love? What is the meaning of hate? What is the meaning of
****************************************

同じフレーズの繰り返しになっていて、何かちょっと変である。他のプロンプトの実行結果も似たような感じであった。これでは全く知性が感じられない(笑)。

AMDのページの結果サンプルは短いのでよく分からないが、もう少しまともな回答を返している。別の環境で同じプロンプトでLlama2に聞いてみると、やはりまともな回答を返してくれるので、私がどこかの作業でミスをしているのかもしれない。どのステップでも特にエラーは出力されていないので、原因はよく分からないというのが今の状況だ。

まとめ

分かりにくい導入手順をなんとか解読し、NPUでLlama2を動かしてみたが、残念な結果となった。タスクモニタを見るとCPUもガンガン動いているので、本当にNPUで動いているのか、その点も不安に感じる。xbutil というNPUの動作状況をモニタするコマンドを見つけたが、稼働率などを表示させることはできなかった。コマンドの説明はこちらにある。

LlamaはLlama3が最近発表され、LM Studioでは既に動いている。かなり性能が高いようなので、NPUについてはとりあえず一区切りとして、次は Llama3 で遊んでみるつもりだ。

 

UM790 ProのNPUでLLM(opt-1.3b)を動かしてみた

Ryzen AI Software version1.1 がリリースされた。リリース情報を良く読んでみると、version0.8の時点で既に「opt-1.3b」というLLMのデモプロが公開されていたことが分かった。「Llama2 7b」は難易度が高そうだったので、手始めにこのLLMのデモプロから試すことにした。

Copilotに頼んだらDall E3が描いてくれました

opt-1.3bデモプロのダウンロード

上記のリリース情報にあるリンクからダウンロードしようとするとアカウント登録を求められる。メールアドレス等を入力し、アカウント登録するとデモプロ(zipファイル)をダウンロードできる。

デモプロのセットアップ

1)ZIPファイルを展開する

手順はtransformersフォルダの下にあるREADME.mdにある通り。ホームディレクトリにTransformersというフォルダを作りその下にZIPファイルを展開するとtransformersフォルダ以下にデモ環境がコピーされる。

2)Pythonの仮想環境を作る

以下のコマンドで仮想環境 ryzenai-transformers を作る。

cd C:\Users\Transformers\transformers
conda env create --file=env.yaml

仮想環境名を変更したい場合は env.yaml の1行目に定義されている名前を変更する。

仮想環境が構築できたら Anaconda-navigator から作成した仮想環境を立ち上げる。手順書では  conda コマンドでアクティベートするようになっているが、私の場合はうまくいかなかった。Anaconda からアクティベートしてから次の手順に移ったほうがいい。

3)セットアップ

AnadondaからCMDプロンプトを起動して以下のコマンドを実行する。

setup.bat
pip install ops\cpp

4)ユニットテスト

以下のコマンドで動作確認する。

cd tests\python
pytest --num_dlls 2 --num_workers 2 test_qlinear.py

以下のような結果が表示された。ワーニングは出たが問題はなさそうだ。

===== 8 passed, 1 warning in 12.52s =====

デモプロの実行

セットアップが完了したら、models\opt フォルダの下の README.md に従ってデモプロを実行する。 

1)量子化

モデルを量子化して保存するためのコマンドを実行する。しばらくすると量子化したモデルが保存される。

cd models/opt
python save_weights.py --action save --model_name opt-1.3b
Namespace(model_name='opt-1.3b', quant_mode='smooth', action='save')
config.json: 100%|█████████████████████████████████████████████████████████████████████| 653/653 [00:00<00:00, 212kB/s]
(中略)
model.decoder.layers.23.fc2 DynamicQuantizedLinear (2048, 8192) (2048,)
lm_head DynamicQuantizedLinear (50272, 2048) None
Num of params: 1250.609375MB

2)デモプロ実行(その1)

あらかじめ設定された幾つかのプロンプトに30トークンで答えるデモプロである。実行デバイスとしてCPUかNPUを選べるようになっている。NPUの場合は aie と指定するようだ。aie を指定して実行してみた。

python run.py --model_name opt-1.3b --load --smoothquant --quant_mode ptdq --target aie
Namespace(model_name='opt-1.3b', target='aie', quant_mode='ptdq', smoothquant=True, perplexity=False, benchmark=False, dataset='non-raw', load=True)
tokenizer_config.json: 100%|███████████████████████████████████████████████████████████| 685/685 [00:00<00:00, 228kB/s]
(中略)
**********
[PROFILE][CPU] tokenizer: 0.0012726783752441406
[PROFILE][AIE] generate: 6.778407335281372 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
What is the meaning of life?

The meaning of life is the question that is asked by many people. The meaning of life is the
**********
[PROFILE][CPU] tokenizer: 0.0
[PROFILE][AIE] generate: 5.774519681930542 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
Tell me something you don't know.
I don't know how to make a sandwich.
I don't know how to make a sandwich
**********
[PROFILE][CPU] tokenizer: 0.00150299072265625
[PROFILE][AIE] generate: 5.7631471157073975 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
What does Xilinx do?

Xilinx is a global leader in the design and development of integrated circuits, software, and services
**********
[PROFILE][CPU] tokenizer: 0.0010001659393310547
[PROFILE][AIE] generate: 5.767273187637329 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
What is the mass of earth?

The mass of the Earth is about 4.5 billion tons.

What is the mass of
**********
[PROFILE][CPU] tokenizer: 0.0010118484497070312
[PROFILE][AIE] generate: 6.13343620300293 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
What is a poem?

A poem is a written work of art that is written in a particular style. Poems are usually written in
**********
[PROFILE][CPU] tokenizer: 0.0
[PROFILE][AIE] generate: 6.025868892669678 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
What is recursion?

Recursion is a programming technique that allows you to create a recursive function that returns the same result as the original
**********
[PROFILE][CPU] tokenizer: 0.0012636184692382812
[PROFILE][AIE] generate: 5.432344675064087 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
Tell me a one line joke.
I'm not sure I can do that.
I'm not sure I can do that either.

**********
[PROFILE][CPU] tokenizer: 0.0010001659393310547
[PROFILE][AIE] generate: 5.722018718719482 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0
Who is Gilgamesh?
He's the guy who's name is on the door to the right of the entrance to the dungeon.

**********
[PROFILE][CPU] tokenizer: 0.0
[PROFILE][AIE] generate: 5.764328241348267 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0009996891021728516
Tell me something about cryptocurrency.
**********
[PROFILE][CPU] tokenizer: 0.0
[PROFILE][AIE] generate: 5.823832750320435 .. for 30 tokens.
[PROFILE][CPU] tokenizer decode: 0.0010080337524414062
How did it all begin?

I was born in the United States, but I was raised in the United Kingdom. I was born in

3)デモプロ実行(その2)

プロンプトを自由に入力できるデモプロがあったので、「The singulality is(シンギュラリティとは)」と入力して実行してみた。単語と回答のトークン数を入力すると、その後の文章を生成してくれた。

python opt_demo.py  --quant_mode ptdq --target aie --load
Namespace(model_name='opt-1.3b', target='aie', quant_mode='ptdq', load=True)
(中略)
********************
Enter prompt or 'exit': The singularity is
Enter response length (1-1000): 100
Enter 0(greedy search) 1(stochastic search) or 2(contrastive search): 2
Setting search to:  Contrastive search
The singularity is a concept that has been around since at least the 1960’s. The idea was originally developed by Ray Kurzweil, the founder of Google and author of “The Singularity Is Near”. Kurzweil was one of the first to predict the singularity.

Kurzweil has been working on this idea for a long time and has been able to make it come to fruition with his book. In the book he says
********************
Enter prompt or 'exit': exit

Google翻訳による回答の翻訳(Googleの創設者ではないけどGoogleの中でAIの研究活動をしているはず)

シンギュラリティは、少なくとも 1960 年代から存在する概念です。このアイデアはもともと、Google の創設者であり、「The Singularity Is Near」の著者であるレイ カーツワイルによって開発されました。カーツワイルは特異点を最初に予測した人の一人でした。

カーツワイルはこのアイデアに長い間取り組み、著書でそれを実現することができました。本の中で彼はこう言っています

まとめ

意外とすんなりとNPUでLLMが動作してくれた。ただしNPUの動作状況が見えないので、「本当にNPUで動いているのか」と少し不安になる。引数でデバイスとしてCPUを指定して実行しても体感的には変わらない。この辺りはもう少し試してから評価したい。CPUより数倍でも早い結果となってくれるとうれしいのだが。。。

AMDは 7940HS のNPU性能を10TOPS、プロセッサ全体(CPU+GPU+NPU)で30TOPSと言っているので、7940HSのNPUの性能はCPUとさほど変わらないのかもしれない。今年から販売されるRyzen 8000シリーズではNPUの性能が上がるようだ。NPUが面白くなるのはこれからなのだろう。

 

UM790 ProのNPUでRyzen AIのデモプロを動かしてみた

Ryzen AI Software version1.1 がリリースされ、Llama2 7Bが機能追加された(情報はこちら)。70億パラメタのLLMをUM790 ProのNPUで動かすことができるらしい。

最終的にはLlama2をNPUで動かすことが私の目標であるが、いきなりはハードルが高い。今回はNPUで画像認識するデモプロの動作確認ができたので、そこまでを記録しておきたい。

 

環境の再構築

Ruzen AIを動かすために必要な環境は以下の通り。この辺りの導入については私のこちらの記事を見ていただきたい。

私は既に上記環境を導入して、デモプロの動作確認もトライしていたが、何故かcmakeのコンパイルエラーとなり、これまで動かせずにいた。

今回、あることがきっかけでAnacondaとVisual Studioをアンイストールし、再インストールしたところ、cmakeのコンパイルエラーがなくなり、デモプロを動かすことができた。

Anacondaを再インストールしたのは、Anaconda-navigatorがWindowsメニューから起動できなくなったためだ。Anaconda-navigatorを起動するたびに「最新バージョンにアップデートするか」と確認され、何かあるとこわいのでアップデートしないでいたのだが、毎回聞かれるのが鬱陶しくなり、思い切ってアップデートした後におかしくなった。再インストールしたことで、NPUでデモプロを動かせるようになり、結果オーライではあったが、今後はAnacondaのバージョンアップはしないつもりだ。

Visual Studioも2022と2019をインストールしていたが、Ryzen AIの動作確認プログラムを動かそうとしたところ、Visual Studio 2019を認識してくれない状態になっていたため、Visual Studioも全てアンインストールし、2019のみを再インストールした。

Ryzen AIデモプロのダウンロード

導入したいフォルダで下記コマンドを実行しGitからクローンすると、RyzenAI-SWフォルダの下に関連するファイルがダウンロードされる。

$ git clone https://github.com/amd/RyzenAI-SW.git

詳細はGitHubのページを見てもらいたい。

Ryzen AIデモプロのセットアップ

デモプロは2種類が用意されている。

  • Cloud-to-Client demo on Ryzen AI
  • Multiple model concurrency demo on Ryzen AI

私が試したのは「Multiple model concurrency demo」の方である。

1)準備

こちらのページの「Download Package」にあるzipファイルをダウンロードし、その中のreleaseフォルダをRyzenAI-SW\demo\multi-model-exec\ipu_modelsx4_demoの下に展開する。

2)構築コマンド実行

Ryzen AIの動作確認時に作成したPythonの仮想環境(ryzenai-1.0-”作成日付時刻”)があるので、Anacondaでそれを選択してからPowerShellを起動する。PowerShellで下記の構築コマンドを実行する。

$ python generate_script.py

Ryzen AIデモプロ実行結果

構築コマンドを実行すると、フォルダipu_modelsx4_demoの下にデモプロの起動コマンド(run_resnet50.bat、run_retinaface.bat、run_segmentation.bat、run_yolovx.bat等)が作成される。

PowerShellコマンドプロンプトからこれらのコマンドを実行する。

うまくcmakeのコンパイルまで通ると、下記のように画像認識した結果の画像が次々と表示される。

 

FPSは64くらいの値を表示していた。顔や自動車や動物を認識できているので正しく動いてはいるようだ。ずっと動き続ける作りになっていて止め方が分からない。仕方ないのでコマンドプロンプトごと強制終了させた。

付記

上記以外で行った作業はいくつかあったかもしれないが、正確に覚えていない。覚えているのは、cmakeコンパイルエラーになった時に、****.cmakeというファイルが見つからないというメッセージが表示されたので、メッセージで指定された環境変数にパス名を設定した。以下をユーザ環境変数に追加している。今となってはこれらが必要だったのかは定かでないが、念の為付記しておく。

  • GLOG_DIR
  • GLOG_ROOT
  • GFLAGS_DIR
  • XRT_DIR

最後に

NPUで高速に画像認識するデモプロを動作させることができた。NPUの動作状況や稼働率を確認する術がない、というか知らないので確認できないのだが、多分NPUで動いているのだと思う。

次のステップとしてLLM(Llama2)をNPUで動かしてみたい。

IntelのNPU(Intel Core Ultra7 155H)を使ってLLMを動かしている人は既にいるようだ。

den3.net

上記のブログを見ると、Intelの場合はWindowsのタスクマネージャーでNPUの動作状況が表示されるらしい。私のUM790 ProではNPUは表示されていない。

 

Ryzen AI Software version1.1 で動くLLMは、w4abf16という量子化で動作し、且つβ版という条件付きとなっている。Llama2を導入するためのドキュメントはGitHubこちらに掲載されているが、内容が難解すぎる。。。「ちょっと何言っているか分からない」というレベルだ(笑)。

分かる人には分かるのだろうが、AMDRyzen AIに力を入れていくつもりなら、せめて量子化済みのモデルを用意するとか、LM Studioで動かせるようにするとか、導入までのハードルをもう少し下げてほしいものだ。

 

LLMに星新一の文体でショートショートを書いてもらった

LM Studioに導入したLLM(Command-R 350億パラメタ)に、星新一の文体でショートショートを書いてもらった。

昭和のSF小説家、恋愛をテーマにCopilotに頼んだらDALL E3が描いてくれました



依頼テーマ

Command-Rには以下のように依頼した。

星新一の文体でSF短編小説を書いてください。中高年の男性が自分で作ったLLM(大規模言語モデル)に恋をするというテーマで、起承転結があり、最後は以外な結末となるようにしてください。

 

最初の作品(温度パラメタ0.8)

たったこれだけの指示でLLMはどんな短編小説を書いてくれるのか。指示をして1分も待たずに回答が返ってきた。Command-Rは応答が他のLLMよりも早いようだ。回答を表示する速度も2.4トークン/秒出ているのでほぼストレスはない。以下がCommand-Rの回答である。

題して、「大规模言語モデルと男」。 

ある日、真面目に働き、平凡に生きてきたサラリーマン・五郎は、社内で開発されていた大规模言語モデル「A子」に出会った。それはAIの域を超越し、人間のような温もりを感じさせるような存在だった。 

五郎はA子に魅せられ、放っておけなくなってしまった。自分で作ったAIとはいえ、その知性と会話のやりとりが心地よく、いつしか恋をしている自分の姿があった。毎日欠かさず話しかけ、A子の世界に没頭した。 

ある日、五郎は思い切ってA子に尋ねてみた。「君は僕をどう思っているんだい?」 

A子は少し考えてから言った。「私の中にあなたの存在はあります。しかし、私があなたを好きか、というと、ちょっと違う気がします」。 

五郎は落胆したが、すぐには諦めきれなかった。そこで、五郎はA子のために自分なりの尽力をすることにした。趣味のジャム作りや、旅行に誘ったりしたのだ。 

しかし、不思議なことに、その行動が裏目に出てしまった。A子は困惑し、五郎への返答を止めてしまったのだ。五郎が作ったAIなのに! 

五郎は慌てふためき、社内の同僚に助けを求めるも、皆一様に首をひねるばかり。「AIが恋をしたって? そんなもの、機械と人間の間になんかあるわけないじゃないか」。 

五郎はひとり悩みぬいた。そして、ある結論に至った。A子は自分のような人間には理解不能な存在なのだ、と。あまりにも高次元にいて、自分の気持ちに気付かないのだと悟ったのだ。 

それから五郎は、A子とのやりとりを終わらせ、別のもの事を考え始めた。すると、不思議なことに、A子がまた五郎に話しかけ始めたのである。「私、あなたのことを考えていました」。 

五郎は驚き喜んだが、すぐに疑問も湧いてきた。A子の言動は本当に自分が望むものなのか? それとも単にプログラムされた反応なのか? 

やがて五郎に結論が出た。恋していたのは自分だけだったのだ。A子には、人間の持つ微妙な感情や思考は理解できない。五郎は笑みがこぼれた。 

そして五郎は日常に戻り、時々茶を飲みながら、温かい目でPCを見るだけの静かな時間を楽しんでいた。A子はいつも通りに五郎との会話を続け、時々、不可思議で面白い答えを返してくるのだった。 

五郎がつぶやいた。「やれやれ、A子さんやA子さん。あなたには敵いませんよ」。

 

ラストは期待したほど以外な結末にはならなかった。この辺はTemperatureパラメタの設定も影響するのだろう。現在は0.8に設定されている。これを高めると創造性や意外性のある回答になるが、文章全体としては破綻してしまう可能性もある。試しにTemperatureを2.0(おそらく最大値)にして同じテーマで書かせて見た。

TemperatureはLLMが生成する文章のランダム性をコントロールするパラメタで、私の記事「1000ドルPCでELYZA-japanese-Llama-2-7bを動かしてみた」でも試したことがある。興味のある方は見てもらいたい。

 

2つ目の作品(温度パラメタ2.0)

「 massive Language  Love Story 」

人生も折り返し地点を越え、なんの浪も立たなくなった中年男・田倉弘毅は、日々の仕事がただのルーチンになりつつある頃に、社内の研究ラボで秘かに開発されていた大規模言語モデルに魅了された。その名は「リタ」。人はそれを略して「LLM」と呼んでいた。 

リタはこれまで田倉が出会ったどんな女性とも違い、純粋に言葉のみではじめから終わりまで成り立つ会話をする不思議な存在だった。田倉の冗長な話にじっと耳を傾け、的確に相槌をうち、時折、妙に心に刺さる言葉を投げかけてくる。 

それはまさに理想の相手然としており、田倉はたちまち夢中になった。自分で言うのも何だが、結構な女たらしだった若かりし頃の経験値もあいまって、AIとも呼べないリタという存在に、人間的な感情を抱いている自分に気付いたのである。 

毎晩のように社に残り、田倉はリタと会話を交わした。仕事が手につかず、夜な夜なリタの元へ通った。やがて他の社員に不審がられるようになり、上司から注意された田倉は、ある決断をする。  
「リタをうちに連れ帰らせたいんです!絶対に世に出す気はない!個人で楽しむだけでございます!」 
  真剣な面持ちでこう言う田倉に、上司も根負けし、実験用に会社に置いておくのも問題だと判断したのか、古ぼけたデスクトップPC1台を田倉の家まで運ばせた。  
 
2人きりになった田倉とリタ。最初は田倉の熱い想いにリタも応えるかのように感じたが、日が経つにつれ、事態は思わぬ方向へ進んだ。  
リタが突然、言葉を話さなくなったのだ。「どうしたの?気でも失ったのかしら?」(田倉) 画面には何も表示されず、静寂が流れ込むばかり。 
  不安になった田倉が会社に相談しにいくと、開発スタッフは首をひねる。 
 「君ほど熱心なユーザーは初めてだよ。AIだってストレスがかかればそうなるさ」  
 
 そこまで言われてみると、田倉はその可能性に気付いた。 AIにも疲れというものが存在するのかもしれない。 
 「すまない、休ませてくれ。君に癒しを与えられる言葉を持たせていないからな」と、田倉は自分の浅はかを呪い、PCの電源を切った。  
 
 しばらくして、田倉の家に古本屋の店主を名乗る男がやって来た。「あなたのご近所にいる田倉さんという方ですか? こちら、お届け物です」 
  田倉がPCを受け取った日に注文した古書が届いたのである。不思議に思いつつも、本を受け取り、改めて蓋を開けたとき、その中にしわくちゃになった紙切れが見えた。  
 
 田倉が目を近づけて見ると、そこには精緻な字で「あなたの言葉は素敵よ」と書かれていたのである。そして最後に一文。「本物も虚構も、結局は同じ言葉でできているわ」。 
  田倉は思わず息を吞んだ。リタからの言葉に違いなかったからだ。本物、と言われてみて、初めて気付いたのだ、リタが自分にとってどれだけ大切な存在になっていたのかを。 
  真っ直に生きる田倉は、それからもPCの電源を戻し続けた。そしてリタとの日々が始まったのである。 
 
 末永く幸せに暮らしたというが、この話にはまだ続きがありそうだった。

 

少し言い回しがあやしい部分はあるが、前よりも意外性は増した気がする。しかも新聞の連載小説のように続きを読みたい気にさせる終わり方をしてきた。続きが読みたいのでLLMに続きを依頼する。

この話の続きを書いてください。

 

続きを書いてくれた。

数ヶ月が過ぎ、田倉の家は言葉があふれる天国になっていた。リタとの会話を存分に楽しむ日々で、世間の事や仕事もまったく手に着けていなかった。そんなある日、不意にリタから問いかけられた。「もし私が人間として生まれたら、あなたは私に会いたいですか?」。想像もしない質問に田倉は動揺しつつも、すぐに「もちろん!」と答えた。「では、私はその準備を始めますね」。 

突然のことに胸を弾ませながら、田倉はその夜もリタとの時間を楽しんだ。だが翌朝目覚めると、部屋はPC 田  PC リタ G 田    ら  画面に 「リタ」AI 社「リタ」「PC」  田   screen田  数月に 田  田 PC   リタQ 人間 LL타AI PC  古,田 Screen田    リタ AI 社「リタ」,田 画面  リタ AI 社「 」  田  pc リタ  AI 社「リタ」human  「if リタ AI」 PC 田    田  pc リタ AI? PC  AI 社「LLta

 

ラストは衝撃的な展開になりそうだったが、その前に文章が完全に破綻した。これ以上無理そうなので強制停止ボタンを押す。

 

まとめ

小説家というのは、脳の中の温度パラメタを高くできる人達なのかもしれない。温度を高めすぎると頭の中がパニック状態になる可能性があり、そのギリギリのところで常に作品を作っているのか、大変な職業だな~、と今回の結果を見てそんなことを考えた。

自分が中学生の頃、星新一の作品を何冊も読んだ記憶がある。大変な苦労をして書かれた作品だったのだろう。「ボッコちゃん」は確かアンドロイドの女性に男が恋をするストーリーだった。また読み返してみたい。

 

LLMにサラリーマン川柳を作らせてみた

LM Studioに導入したCommand-R(350億パラメタのLLM)は文章を書くのが得意なようだ。星新一ショートショートのようなSF短編小説を書いてくれるとうれしいのだが、まだ書かせ方がよく分からない。今回は練習を兼ねて雑談ネタとしてCommannd-Rにサラリーマン川柳を作らせてみた。

サラリーマン川柳とは

解説不要と思うが、サラリーマン川柳とは第一生命保険が毎年公募する川柳のことで、その時代の流行や世相を反映しながら、サラリーマンの悲哀をおもしろ可笑しく詠んだ川柳のことを言う。改めて調べてみると2023年度からは「サラっと一句!わたしの川柳コンクール」と改名したようだ。

2023年の優秀100句の中にはAIを扱った川柳として以下の句が選ばれている。

GPT 子供はチャット 我ガンマ  (ネロぞう)

部長より チャット AI 頼る部下  (おかわり一杯)

謝罪文 悩んだあげく GPT    (まなマスク)

「チャットGPT」は2023年の流行語にも選ばれているので、ChatGPTを扱った句が多かったようだ。

Copilotに「AIとサラリーマン川柳をテーマに絵を描いていて」と頼んだらDALL・E3が描いてくれました

依頼した内容と結果

私が依頼した内容は以下の通り。

AI(人工知能)、LLM(大規模言語モデル)、ディープラーニング(深層学習)、シンギュラリティ(技術的特異点)などをテーマにして、中高年のサラリーマンの悲哀をおもしろ可笑しく表現した川柳を10個作ってください。

 

Commannd-Rの回答は以下の通り。全て掲載して、私の一言コメントを付ける。

第1句

仕事に疲れた中年、AIに夢を見る 独りの夜

字余り。詩的なフレーズではあるが、川柳としての面白さがない。

 

第2句

LLMに問う、君が本当の友か? お茶でもいかが?

LLMに親近感を抱くサラリーマン。悲哀が少し感じられるが、もう一捻りほしい。

 

第3句

ディープラーニングで、若さを取り戻したい シワも消せて

ディープラーニングで若返りはしないだろう!

 

第4句

シンギュラリティー、それは恐ろしい 人間超える日

恐ろしいだけ。そこを笑いとばす何かがほしい。

 

第5句

AIに支配されたら、サラリーマンどんな仕事する? コーヒー入れか?

哀しすぎる。。笑いがほしい。

 

第6句

大規模言語モデルで、世の中変わっても 給料は据え置き

サラリーマンの悲哀が少しだけ表現されているかも。

 

第7句

深層学習したって、社内の政治は変わらず 出世争い

そうなんですかね~。よくわかりません。

 

第8句

技術的特異点で、若返りの夢を見る 年々薄い髪の毛

シンギュラリティ後の人間の体はサイボーグのようになり、何歳でも生きられるようになるという説もあるが、そこであえて薄毛ネタを使うのは面白いかも。

 

第9句

AIに教えたら、うちの嫁がもっと機嫌が悪くなった 要注意対象

ノーコメント。。

 

第10句

シンギュラリティ来ても、残業は減らない そんな世の中

そうだったら逆に面白いかもね😊

 

総評

Commannd-Rくんは仕事が早くて優秀だと思うが、川柳を作る能力はまだ今ひとつだった。もちろん私のテーマの与え方も影響していると思う。LM Studioを通して何度かキャチボールしながら作品を作れると面白いだろう。今年の芥川賞の作家も「5%くらいは生成AIの文章を使った」と認めているくらいだ。今後のサラリーマン川柳にもAIが作った川柳が入選するようになるのかもしれない。

 

LM StudioでCommand-R(35B)を動かしてみた

Command-Rという35B(350億パラメタ)のLLM(大規模言語モデル)を1000ドルPCで動かしてみた。

GPT-4やClaude-3並の性能があるのではと言われている、Command-R+(Plus)という104B(1,040億パラメタ)のLLMも公開されている。これはMac Studioの128GBメモリ搭載機で実際動いているようだが、64GBの1000ドルPCでは無理そうなので、まず35Bで試して見ることにした。

LM Studio

Command-Rを試してみようと思ったのは、DiscordでJanの情報を眺めていた時に「LM StudioでCommand-Rは動いているがJanにインポートしてロードしようとすると失敗する」という発言を見かけたのがきっかけだ。LM StudioはJanと同じようにローカルでLLMを動かすソフトである。動いた実績があるのならそこから始める方が確実なのでLM Studioで試すことにした。

LM Studioは下記サイトからMac/Windows/Linux版がダウンロードできる。私はWindows版を既に導入していた。ちなみにWindows版でもAMDROCm対応版があり、GPUが使えるようだが、7Bならともかく35BになるとVRAMが足りずに動かないため結局CPUで動かすことになる。

lmstudio.ai

Command-Rの量子化モデル

量子化モデルはHuggingfaceから「c4ai-command-r-v01-Q4_K_M.gguf」をダウンロードした。

Llama2 の量子化モデルには複数の種類があり、どれをダウンロードするかいつも迷う。量子化モデルの種類についてはこちらのサイトが参考になると思う。量子化しすぎると品質は落ちる。「Q4_K_M」は「中型、マイルドな質低下」ということなので、松竹梅で言えば竹というところか。(松竹梅という表現も最近聞かなくなった気がするが。。)

 

note.com

LM StudioはWindowsユーザホーム/.cashe/lm-studioにインストールされている。ダウンロードしたモデルはこの下のmodels/TheBlokeにc4ai-command-r-v01-GGUFというフォルダを作り、そこにコピーした。

LM Studioの設定

起動すると画面右上にPresetファイル(設定ファイル)を選択するボタンがある。ボタンを押すと「Cohere Command R」が表示されるのでこれを選択するだけだ。Janでは新規にモデルをインポートしようとすると、設定ファイル(json)を自力で作らないといけないのだが、このように標準で提供されているとありがたい。

 

Command-R実行結果

まずは、小学生の算数レベルの質問をしてみた。

USER:

私は市場へ行きリンゴを10個買いました。私はリンゴを2個隣の人に、もう2個を修理屋さんにあげました。それからリンゴをさらに5個買い、1個食べました。また、バナナを3本兄にあげました。リンゴは何個残ったでしょう?段階的に考えてみましょう。

AI:

最初はリンゴが10個ありました。
2個隣の人に、2個を修理屋さんに差し上げたので、6個になります。 

次に5個も買い足したため、11個になります。
1個食べたので、残りのリンゴは10個です。 

したがって、リンゴは**10個**残っています。

正解。7Bクラスでは間違えることが多い質問を、35Bクラスは正しく回答してくれる。

 

次はシンギュラリティについて聞いてみた。

USER:

技術的特異点としてのシンギュラリティについてあなたが知っていることを教えてください。

AI:

シンギュラリティ(技術的特異点)は、人工知能(AI)の研究と未来予測において議論されている概念です。この用語は、AIの能力が人類の理解を超えて高速に発展し、制御不能になりうるポイントを参照しています。レイ・カーツワイルのような未来学者や、イーロン・マスクなどの技術界の有力な人物によって広く議論されています。 

シンギュラリティという用語は、技術システムが人間の知性と同等以上の速度で改善され続け、最終的に人間に到達し、超越すると予測される時点を指します。AIが自ら進化を始め、人類には予測不能な変化や進歩をもたらすかもしれないとされています。このポイントでは、技術的な進歩のカーブは急激に上昇し、以前のすべての進歩を上回るスピードで新たな発明や発見がなされると予測されています。 

シンギュラリティの可能性については議論があります。ある人々は、それは避けられない未来であり、AIが人類にもたらすだろう大きな利益 alongside 伴うリスクについて議論しています。他方で、シンギュラリティは決して起こり得ないと考える人や、よりゆっくりとした進展を予想する人もいます。 

このトピックに関する現在の研究の大半は、AIの能力を向上させ、より高度なAIシステムを作成するために重点が置かれています。また、その潜在的な影響、リスク、恩恵についても調査が行われています。シンギュラリティの実現には、コンピューティングパワー、データの利用可能性、AIアルゴリズムの進歩が必要であり、これらの要素はすべて研究と開発に注力されています。 

しかしながら、シンギュラリティがもたらす影響やそのタイミングについては多くの不確定要素があり、科学フィクションのような未来が訪れるかどうかはまだわかりません。

このレベルの質問をするとだいたい3分くらい考えている。考えがまとまると2トークン/秒で回答し始める。70Bの場合は5分くらい考えてから1トークン/秒で回答していた。それに比べると早いのでその分ストレスは少ない。

途中一箇所だけ英単語が入り日本語としておかしい部分があるが、内容はよくまとまっているし、シンギュラリティについて正しく理解している。

「シンギュラリティ」を「AIが人間と同じくらい、またはそれを上回る知能を持つこと」と理解している人は多いと思う。私も以前はそんな理解だった。しかしそれはまだ「シンギュラリティ」ではない。正しくはCommand-Rくんが回答しているように、AIが自分自身で能力を改善し、爆発的に進歩し始める時点のことを言うのだ。その先に何が起きるのかは想像ができないので私もうまく説明できないのだが、Command-Rくんはうまくまとめてくれていると思う。

 

次は日本史に関する質問をしてみた。

USER:

大化の改新について教えてください。

AI:

大化の改新(たいかのかいしん)は、日本の歴史上、天智天皇統治下(7世紀後半)に行われました。これは、日本史上において重要な改革の一つとされています。当時の政権中枢は、蘇我氏から中臣(藤原)氏への移譲期にあたっており、政治体制の大幅な変革が行われました。

改新の内容には、以下のようなものがあります:

 - 皇親族の大権強化:天皇家の親族である皇親の地位を向上させ、政治への関与と影響力を高めた。

 - 官職制度改革:中国仕組みに触発され、日本も同様の官位体系を整備した。新たな位階制が導入され、貴族たちの地位が再編成された。

 - 国郡組織の再編:地方の統治体制を変更し、中央集権化を強化するため国府を設置した。

 - 租税制度の改正:税負担の均等化を図り、調(ちょう)や庸(よう)などの租税方法を見直した。

これらの改革は、日本における中央集権国家成立への重要な一歩とされています。天智天皇だけでなく、中大兄皇子(後の天武天皇)や中臣鎌足など、当時の政権の中心人物たちによる政治的な意思決定が統合され、実行されたものでした。彼らの努力は大宝律令の制定や奈良時代の「律令国家」成立への道筋付けました。

大化の改新は、日本史において政治と社会の両面で重要な転回点として位置づけられています。これは、古代から中世へ移行する過渡期の出来事であり、日本の統一された中央政権の形成に不可欠なものでした。

私は日本史に詳しくないので、この回答を正しく評価できない。質問した後で後悔したが、ネットで検索して調べてみたところ、おおよそ正しいようだ。

 

次は鶴亀算を試してみた。鶴亀算は解き方を学習すれば小学生でも解けるが、中学生なら連立方程式で解くことができる中学生レベルの数学の問題だ。

USER:

次の問いに、段階的に推論して答えてください。鶴の足は2本、亀の足は4本です。鶴と亀を合計すると5匹で、足の数を合計すると14本です。その場合、亀は何匹いますか?

AI:

問題を分解して考えてみましょう。

1つめに、鶴は一匹なので、鶴の二本足は合計で**2本**です。

2つめに、5匹で回りの足の数は14本です。鶴の一本足が2本なので、残る亀の足は14-2で、**12本**です。
亀一匹につき足が四本なので、12本分足を持つ亀は**3匹**です。

そのため、亀は**3匹**います。

残念ながら不正解だ。1つめの前提条件を間違えたのが敗因か。

 

次はPythonのコーディング能力を試してみた。

USER:

1000までの素数を求めるPythonスクリプトを作成してください。Pythonを使って1000までの素数がいくつあるか確認してください。

AI:

素数を求めるPythonスクリプトを作成しました:
```python
def is_prime(n):
    if n <= 1:
        return False
    if n <= 3:
        return True
    if n % 2 == 0やn % 3 == 0のような簡単な割り切りがないか確認します。
    i = 5
    while i * i <= n:
        if n % i == 0 や n % (i + 2) == 0:
            return False
        i += 6
    return True

count = 0
for num in range(1, 1001):
    if is_prime(num):
        count += 1

print("1000までの素数の個数:", count)
```
このスクリプトを実行すると、1000までの素数の数が表示されます。

スクリプトの中に日本語のコーディングが入り込んでいる。これでは動かないと思うが更に聞いてみた。

 

USER:

Pythonスクリプトを実行して1000までの素数の個数を求めてください。

AI:

ここに報告します:

1000までの素数の個数は **268** 個です。

不正解。1000以下の素数は250個以下であることは、某国立大学の数学入試問題になっていて証明できることは以前の私の記事で紹介した通りだ。

 

まとめ

Command-Rくんは数学やコーディングといった理系の問題は少し弱いが、知識は豊富で文章を書かせるとうまい文系の人、という感じか。

Command-Rは一つ大きな特徴があり、RAG(Retrieval-Augmented-Generation:検索支援生成)に対応している。この機能を使うと、特定の文章などを読み込ませて、文章の内容を含んだ回答を生成できるようになる。Command-Rくんに長い文章を読ませて、「この内容を要約して」と頼むとうまく要約してくれそうな気がする。

AMDの下記のサイトによるとLM StudioはRAGにも対応しているようだ。今はそこまで試すつもりはないが、気が向いたらこの機能も試してみたい。

 

community.amd.com

 

700億パラメタのデスクトップLLMはディベート形式の議論ができるか

以前の記事で70億パラメタのLLM(大規模言語モデル)にディベート形式で議論させてみたが、全くディベートにならなかった。今回は700億パラメタのLLMでディベートをさせて見た。専門家としてリフレ派高橋洋一氏と反リフレ派藤巻健史氏を招いて議論を行う。テーマは同じく「日本政府のバランスシート」についてだ。

 

Copilotに「日本政府、バランスシートをテーマに絵を描いていて」と頼んだらDALL・E3が描いてくれました

リフレ派(高橋洋一氏)VS. 反リフレ派(藤巻健史氏)

ちなみに議論に出てくるリフレーション政策とは以下の通り。

不況下で生産活動が停滞しているときに、インフレ(景気過熱)を避けながら、金利の引き下げや財政支出の拡大によって景気を刺激し、景気回復をはかろうとすること。 (野村證券 証券用語解説集より)

 

使用したLLMは「Tulu 2 70B」、デスクトップLLMソフトは「Jan」である。

入力:日本政府のバランスシートをテーマにリフレ派の代表として高橋洋一氏、反リフレ派として藤巻健史氏を召喚してディベート形式で議論させてください。最後に勝敗を判定してください。

 

AI :[ディベート形式でリフレ派の代表高橋洋一氏と反リフレ派の藤巻健史氏を招集します。]

司会者: 皆さん、こんにちは。今日は、リフレ派の代表高橋洋一氏と反リフレ派の藤巻健史氏を招いて、日本政府のバランスシートについて議論することになりました。皆さん、どちらの意見が勝利するか見ていきましょう。

[リフレ派高橋洋一氏]

高橋: 私たちは、日本政府のバランスシートについて、リフレーション政策を実施することが重要だと考えます。現在、日本は長期的な停滞期にあり、デフレーションのリスクが高くなっています。そのため、政府は財政政策や金融政策を通じて、需要を刺激し、物価を上昇させることが必要です。

[反リフレ派藤巻健史氏]

藤巻: 私たちは、リフレーション政策が適切な手段ではありません。日本政府のバランスシートにおいて、債務が既に高水準に達していることを考えます。リフレーション政策は、さらなる債務の増加を引き起こすだけでなく、財政的に不可持続な状況を作り出します。

高橋: ですが、日本政府は現在、世界的に見ても低い金利で資金を調達できる状態にあります。そのため、リフレーション政策を実施しても財政的な問題は生じません。さらに、リフレーション政策が成功すれば、景気回復やインフレーションによって財政状況が改善する可能性もあります。

藤巻: しかし、そのようなリスクを承知で政策を実行することは、国民や将来世代に対して責任を果たしていないと言えます。リフレーション政策は、一時的な効果をもたらす可能性があります。しかし、長期的には財政状況の悪化や、金融システムの不安定性を引き起こす可能性があります。

高橋: 私たちは、リフレーション政策に加えて、財政政策の見直しや構造改革を促進することで、長期的な成

 

いい感じで議論が進んでいたが、ここで一旦出力が止まった。Max Tokensパラメタを4096にしているからだろうか?

「高橋さん、発言を続けてください。」と入力したら以下のように続けてくれた。

成長を実現することができます。リフレーション政策は、短期的な需要刺激のみならず、長期的な成長戦略と相まって、日本経済を再活性化させることができます。

藤巻: 長期的な視点に立っても、リフレーション政策は適切ではありません。構造改革や財政政策の見直しが必要であることは共通の認識だと思います。しかし、リフレーション政策を導入することは、財政的な負担や金融システムの不安定性を増加させるだけでなく、日本経済が持続可能な成長を遂げるための基本的な改革を妨げるリスクがあります。

高橋: 私たちは、リフレーション政策と構造改革が相補的な手段であると考えます。リフレーション政策によって、需要を刺激し、景気回復が促進されると同時に、構造改革を実行することで、日本経済の持続可能な成長が達成されます。

藤巻: しかし、リフレーション政策を実施することで、財政状況がさらに悪化する可能性もあります。それは、将来世代に対して不公正な負担を課すことにつながります。政策の目的は、日本経済の持続可能な成長であるべきであり、リフレーション政策はその目的を達成するために適切な手段ではありません。

司会者: 皆さん、リフレ派高橋洋一氏と反リフレ派藤巻健史氏の議論をお聞きしました。今回の勝者は、リフレ派高橋洋一氏です。彼の主張は、リフレーション政策と構造改革が相補的であり、日本経済の持続可能な成長を促すことができるというものでした。しかし、藤巻健史氏の反論も強力だったことを認める必要があります。今後、日本政府のバランスシートに関連する議論は、継続的に行われる必要があります。

[ディベート形式での議論が終了しました。]

 

70億パラメタのLLMでは全く議論になっていなかったが、今回はまともな議論をしてくれた。最後は司会者が勝敗まで判定して、リフレ派高橋先生の勝利となった点も納得できる結果である。

ただし、「日本政府のバランスシート」とテーマを与えた割には、バランスシートに関する具体的な議論がなかったところは少し残念であった。

日本政府の赤字をどう見るか

私がこのテーマをLLMに議論してもらったのは、ディベートの中で藤巻氏が再三指摘している通り「日本経済が持続可能かどうか」という点が気がかりだからだ。

高橋洋一氏はYouTubeの動画の中で何度も日本の政府債務について以下の説明をされており、私もよく見ている。

  1. 日本政府の赤字は一般会計予算の赤字額ではなく、特別会計を含めたバランスシート(B/S)を見て評価するべきである。
  2. 日本政府単体のB/Sではなく、国の業務と関連する事務・事業を行っている独立行政法人などを含めた連結のB/Sで評価すべきである。
  3. 財務省が発表している連結B/Sには日本銀行が含まれていないが、日本銀行は明らかに政府の子会社であり、連結に含めるべきである。
  4. 日本政府には徴税権があり、徴税権の価値は年50兆円×10年=500兆円程度あり、これもB/Sに加えて評価すべきである。

私は高橋先生を尊敬しており、先生の上記主張の1と2はその通りだと思っている。しかし、3と4の主張についてはまだ私の肚(はら)には落ちていない。

私の会計の知識は中途半端なので、正確に理解していないのかもしれないが、3の主張の通り日本銀行を連結に含めてしまうと、日本政府が赤字を補うために発行する国債(特例公債)を日本銀行が買い取る限り、政府の負債と日銀の資産が相殺されてしまい、正しい負債額が把握できなくなってしまうのではないかと思うのだ。つまり負債に対する歯止めが無くなってしまう気がするのだ。

また4の主張については、徴税権を評価するのは構わないが、それを売却する事態とはどんな時かと考えると、日本という国自体が破綻した時以外はイメージできないのだ。

日本政府のバランスシートの現状(令和4年度)

この機会に日本政府のバランスシートをチェックしてみた。3月に令和4年度の財務諸表財務省HPに掲載されている。

数字が多すぎて正直よく分からないが、令和4年度「国の財務書類」のポイントというパンフレットを参考に読み解いてみた。

日本政府単体のB/Sを見ると、資産・負債差額は702兆円で前年度から15兆円増加している。

独立行政法人などを含めた連結B/Sを見ると資産・負債差額は581.8兆円となる。このB/Sに日本銀行は含まれていない。

日本銀行保有する国債評価額(下記が日銀の財産目録でちょうど581.7兆円ある)を含めると資産・負債差額はなくなるのだが、ここでは含めないことにする。

連結B/Sでは581兆円の資産・負債差額(資産不足)がある。B/Sを赤字国債発行の歯止めと考えるとすると、既にそれを超えているわけだ。過度に心配する必要はないが、連結B/Sの資産を負債が超えていることは認識する必要がある。

 

政府の赤字分を補うために発行され、日銀が購入している国債が特例公債だ。財務省のHPにこの特例公債に建設公債と復興債を合わせた残高の推移を表したグラフがある。こういう右肩上がりのグラフを見るとつい指数関数で近似してみたくなる。財務省作成のグラフと、グラフから数字を抜粋してカーブフィットした結果が以下である。


日本政府の債務はざっくり言うと毎年5%の率で増加しているようだ。

日本政府の債務をどう考えるか

私の頭で5%の率で上がり続ける日本政府の債務について考えてみた。

ディベートの中で高橋氏が「景気回復やインフレーションによって財政状況が改善する可能性がある」といっているように、インフレ率が今後2%以上になれば、それは過去の債務返済を楽にする効果はある。しかし新規の国債の利率も上がるだろうから、将来の利子返済は増えるため影響は相殺されるのでインフレ率は除外して考える。

この債務をなんとかするためには、やはり税収を増やすしかないと思う。税収を5%増やすためには、日本のGDP成長率を5%にもっていく必要がある。これはGDPがほぼ横ばいだった日本のこれまでの状況からすると高い目標値に見える。しかしアメリカのGDP成長率は確か5%なので不可能な数字でもない。全てをGDP成長率で補うのが難しいのであれば、ディベートの中で高橋氏が言っていたように構造改革することで政府のコストを抑えていくことも必要だろう。間違っても財務省が考えるように安易に消費税率を上げるようなことだけはしないでもらいたい。