QEUR23_LMABYS0: INTRODUCTION~実際に使ってみたいね、LLM・・・
~ 現在進行形のイノベーションを実感したい ~
・・・ FOUNDERは、またまた気が変わり ・・・・
QEU:FOUNDER : “大規模言語モデルを使って、ちょっと遊んでみましょうか・・・。”
D先生 : “あれ?Stable_Diffusionを続けるんじゃなかったんでしたっけ?確かに、前回でEmbeddingの代わりにT法を使うというテストに成功したので、一区切りはついたとは言えますが・・・。”
C部長: “以前、FOUNDERはボクに「コンサルタントの代わりになる大言語モデルがあるといいなぁ」といっていました。あと、GPTはQEUラウンド2.3の目指す方向にもあっているといえます。ちなみに「高齢者によるイノベーション」は続いています。高齢者の皆さま、いまイノベーションしてますか?”
QEU:FOUNDER : “結局、小生も、今、世の中に渦巻いている大きなイノベーションの渦を覗き込みたいと思っているのでね。まあ、取り組む順序を少しだけ組み替えたと考えてくださいな・・・。Stable_Diffusionの特性を理解したとき、やはりテキスト処理も触れておきたいと思ったんです。”
(Stable_Diffusion事例のプロンプト)
prompt = '((1girl:1.3),blue eye,in style of {0},standing,looking at viewer), (beach, in style of {1}:1.1), などなど '
ここで、{0}と{1}にアーティスト名がつく
QEU:FOUNDER : “勉強会(↓)に参加し、思う所があった。”
D先生 : “う~ん・・・。説明がとても丁寧・・・。この勉強会の説明は分かりやすいですね。海外のYoutubeのレクチャーを見ても、これほどうまく説明されていません。ちょっと持ち上げすぎ(笑)?”
QEU:FOUNDER : “Stable_Diffusionはいくつかのモジュールが組み合わさってできています。そのうち、我々がかかわってきたのテキスト関連の作業は、Text Encoderが担当しています。ユーザーが入力したテキスト(プロンプト)をベクトルに分解して、Denoising Autoencoderに入力するんですね。”
D先生 : “この「ベクトルを入力する」というのが重要です。何なんですかね、これ(ベクトル)は・・・。そういえば、このシステムも「例のAttention(Transformer)の技術」を使っているんでしょ?”
QEU:FOUNDER : “そう・・・。拡散処理で画像を生成するためには「KeyとValue」というペアで構成されたベクトルが必要になります。つまり、「array=[(key,value),(key,value),…(key,value)]」みたいな・・・。”
D先生 : “あっ!その(key,value)って、テキストのEmbeddingの事でしょ?”
QEU:FOUNDER : “そう・・・。我々はいままで、テキストをそのまま使ってT法による分析しようとしていました。でもね、それって本質的な意味があるのかな?・・・というわけで、一回休みだ!!GPTをやろう!とても小さなヤツを・・・。”
D先生 : “モデルの大きさはどのくらい?30GBぐらいですか? ”
QEU:FOUNDER : “普通は3~4GBの間ですよね。”
D先生 : “そんなに小さいの?”
QEU:FOUNDER : “「量子化(Quantization)」という技術を使っています。”
D先生 : “どんなマジックなんです?”
QEU:FOUNDER : “普通に考えると、ニューラルネットの重みの値は小数点付きの値になっているはずですよね。それを整数値に変換したんです!そうすれば、当然ながらデジタル情報量は一気に小さくなります。詳しくは、自分で勉強してください。小生としては、(詳細は知らなくとも)使えればいいんで・・・(笑)。じゃあ、いきなりGPT4ALL(GPT for all)という、パソコンでも動くGPTをやってみましょう。”
D先生 : “おおっ・・・。GPTさんが、自分で(必要PCスペックを)白状しております・・・(笑)。”
QEU:FOUNDER : “Windowsの場合、インストーラ付きのアプリがあるのでGPT4Allを使うのはカンタンです。5年前以内のモデルのパソコンに5GBぐらい余裕があれば余裕で遊べます。でも、我々の場合、Pythonでも動かしたいのでやってみました。それではプログラムをドン!!”
from pygpt4all.models.gpt4all_j import GPT4All_J
model = GPT4All_J('D:./ggml-gpt4all-j-v1.3-groovy.bin')
# -----
question = "Please advise some sightseeing place in London."
for token in model.generate(question):
print(token, end='', flush=True)
QEU:FOUNDER : “ちょっとロンドンについて聞いてみました。このプロジェクトはE国のものらしいので・・・。”
D先生 : “へえ・・・。Pythonでも動くとは便利だ・・・。”
QEU:FOUNDER : “・・・言っておくけど、アプリよりも反応は遅いよ。それは、ある意味しょうがないけどね。あと、小生の苦い経験を白状すると、これが動くまでに多量のトライ・エラーがありました。モデルによって使うべきインスタンスが違う(GPTAll or GPTAll_J)というノウハウがわからなかったんです。あと、これだけ頻繁にバージョンが変わっていますので、率直にいって今回晒したプログラムとモデルの相性も将来どうなるかもわかりません。”
D先生 : “まあ動くことが分かっただけでも、重大な一歩ですね。”
QEU:FOUNDER : “次から、このプロジェクトが少しづつ多様化していきます。是非、カンパをください・・・。”
>寄付のお願い(click here)<
D先生 : “そういえば、ノウハウをGPTに注入したいんでしたっけ・・・。”
~ まとめ ~
C部長 : “すいません。ボクから質問です。GPT4AllってJ国語は使えますか?”
QEU:FOUNDER : “本人(?)に聞いてみました。まだ苦手なようですよ。それでも、だれかが(J語化を)やるんじゃないかな?”
C部長 : “オープン・ソース化の威力はすごいですね。”
QEU:FOUNDER : “技術をイノベーションさせるには、オープンソースが一番です。技術を周回遅れさせたいのであれば、「家元制」が一番・・・。”
コメント
コメントを投稿