QEUR23_LLMDSS7: LAMINIを使ってみる(BasicModelRunner)
~ これは便利そうなサービスだ! ~
QEU:FOUNDER : “例の「御大(レジェンド)」が、新しいコースを発表しましたよ。”
D先生 : “この若い女性がFinetuneの会社の経営者でしょ?この人の名前は、あちこちで聞いたことがあるなあ・・・。C国の女性か?”
QEU:FOUNDER : “多分ね・・・。だから、「J国すごい」系のご立派な方々は見ないでください(笑)。小生も論文で何回も名前を見ました。彼女って、スタンフォード大の卒業でしょ?だから、Laminiなんですよ。”
D先生 : “スタンフォードといえば、・・・Alpaca・・・。そうか、なるほどね・・・。ちょっと、彼女の会社のページを見てみましょう。Laminiはスタートアップしたてのようで、Webページも、とてもシンプルです。”
C部長 : “なぜ、LLM(大規模言語モデル)のFinetuneがビジネスになるんだろうか・・・?”
QEU:FOUNDER : “まずは、C部長のその問いについて考えましょう。それでは、プログラムをドン!!”
!pip install lamini
# -----
#
from llama import LLMEngine, Type, Context
class Test(Type):
test_string: str = Context("just a test")
#llm = LLMEngine(id="my_test")
llm = LLMEngine(
id="example_llm",
config={"production.key": "<YOUR TOKEN>"}
)
test = Test(test_string="which mountain is the highest in the world?")
str_out = llm(test, output_type=Test)
print(str_out)
QEU:FOUNDER : “こういう結果(↓)がでました。”
C部長 : “ん!?なにこれ?”
QEU:FOUNDER : “小生もわからん、マニュアルの「Getting Started」を参照しただけです。それにしても、なぜこれがLaminiを使いこなすための第一歩になるのか小生にもよくわかりません。ただし、あえてこのコードを使っているのは、上記のコードの中で、トークンを使ってLaminiサービスに接続しているからです。”
D先生 : “ああ・・・、なるほど。Laminiってクレジットを販売するサービスなんですね。しかし、このサービスは、実際のところ何を売るのでしょうか?”
QEU:FOUNDER : “次はBasicModelRunnerを使ってみましょう。”
# -------
# 簡単な推論を行う
from llama import BasicModelRunner
# GPT-2時代の小さなモデル群
#EleutherAI/pythia-70m
#EleutherAI/pythia-70m-deduped
#EleutherAI/pythia-70m-v0
#EleutherAI/pythia-70m-deduped-v0
#EleutherAI/neox-ckpt-pythia-70m-deduped-v0
#EleutherAI/neox-ckpt-pythia-70m-v1
#EleutherAI/neox-ckpt-pythia-70m-deduped-v1
#EleutherAI/gpt-neo-125m
#EleutherAI/pythia-160m
#EleutherAI/pythia-160m-deduped
#EleutherAI/pythia-160m-deduped-v0
#EleutherAI/neox-ckpt-pythia-70m
#EleutherAI/neox-ckpt-pythia-160m
#EleutherAI/neox-ckpt-pythia-160m-deduped-v1
#EleutherAI/pythia-410m-v0
#EleutherAI/pythia-410m-deduped
#EleutherAI/pythia-410m-deduped-v0
#EleutherAI/neox-ckpt-pythia-410m
#EleutherAI/neox-ckpt-pythia-410m-deduped-v1
#cerebras/Cerebras-GPT-111M
#cerebras/Cerebras-GPT-256M
non_instruct_model = BasicModelRunner("EleutherAI/pythia-70m")
non_instruct_output = non_instruct_model("Question:What is the highest mountain in the world? An-swer:")
print("EleutherAI/pythia-70m output:", non_instruct_output)
# -------
# 最先端のモデル(Llama2)
instruct_model = BasicModelRunner("meta-llama/Llama-2-7b-hf")
instruct_output = instruct_model("Question:What is the highest mountain in the world? Answer:")
print("meta-llama/Llama-2-7b-hf output:", instruct_output)
QEU:FOUNDER : “推論の結果は以下のとおりです。さすがのLlama-v2クオリティでしょ?”
D先生 : “FOUNDER・・・、質問です。このNotebookではGPUを使っていますか?”
QEU:FOUNDER : “いや、自分のPCのCPUだけで動かしていますよ。”
D先生 : “そう・・・。ふつう、Llama2であれば推論のためにTesla A100クラスのGPUが必要になります。・・・ということは、Laminiのサーバーが計算処理をしていますね。う~ん・・・、これがクレジットの使い道なんですね。”
QEU:FOUNDER : “クレジットの使い道は、当然のこと、これだけじゃないと思いますよ。何はともあれ、今回はここまでにしましょう。たぶん、もうすこしクレジットを買うことになるかな?ちなみに「一口」あたり、20ドルのようです。”
>寄付のお願い(click here)<
C部長 : “普通のFinetuneスキームで余計なGPUパワーと計算時間(お金)をかけるよりも、このサービスを使えばトータルで安くなると思います。まっ、まだ本当のところはわかりませんけどね。”
~ まとめ ~
・・・ 前回のつづきです(「水って大切の巻」) ・・・
D先生 : “例によって、この件(↓)で世の中が盛り上がっていますが・・・。”
QEU:FOUNDER : “最近、面白いネタをみてねえ・・・。この人たちって何を考えているのだろうと・・・。”
D先生 : “あれ?トリチウムって、水に沈むの!?”
QEU:FOUNDER : “う~ん・・・。David Lettermanの伝説の(安保)企画である「Will it Float?」の展開になってきました(笑)。”
D先生 : “Jimi Hendrixの名曲も楽しめる、お得な企画ですね(笑)。”
C部長 : “ちがうんですか?すご~く、たくさんの人が「トリチウムは沈む!」って、言っていますよ。ぼくも、トリチウムはH3Oなので、H2Oよりも重いのだろうと納得していました・・・。”
D先生 : “分子量と密度は別の概念でしょ?C大先生、「水素結合」って覚えてる?”
C部長 : “高校時代は授業中にはぐっすり寝てました。特に理科(笑)。”
QEU:FOUNDER : “もし、分子量と密度が比例しているのだったら、(不溶性)アルコールや(高分子)油の密度が水よりも軽いなんてことは、絶対にないって・・・。”
C部長 : “そういえばそうですね。”
QEU:FOUNDER : “我々よりも、はるかに賢いといわれているGPT様に質問してみましょう。・・・ドン!!”
C部長 : “やっぱり、トリチウムのほうが密度が低そうです。”
QEU:FOUNDER : “ちなみに、具体的なトリチウムの密度(の数字)が正確かどうかはわかりません。ほかのGPTを使うと、ちょっと違う数字が出てきましたから・・・。それにしても、「(人々が)水のことをよくわかっていない」ということは大変に重大な問題なんじゃない?本当に学校で、水のことを教えているの?・・・ということで、またまたGPT様に聞いてみました。”
日本の高校教育では、化学の授業で水素結合について学ぶ。ここでは、一般的に扱われる内容を紹介する: 水素結合の定義: 水素結合の定義:水素結合は分子間に働く力の一種であることを学ぶ。水素結合には、電気陰性原子(酸素、窒素、フッ素など)に結合した水素原子と、別の分子内の別の電気陰性原子が引き合う力が関係します。 水素結合の特性: 生徒は、水素結合の独特な性質と特徴について学びます。水素結合は、双極子-双極子相互作用やロンドン分散力などの他の分子間力よりも強いことを理解します。また、水素結合が、水を含む物質の物理的および化学的特性を決定する上で重要な役割を果たしていることも学びます。 水素結合の例: 生徒は水素結合のさまざまな例を学ぶ。一般的な例としては、水分子同士の水素結合があり、これが水の高い沸点や表面張力、その他のユニークな性質を生み出している。その他の例としては、DNAやタンパク質などの生体分子における水素結合が挙げられる。 重要性と応用: 化学、生物学、材料科学など、さまざまな分野における水素結合の重要性を学ぶ。水素結合が物質の構造や性質にどのような影響を与えるか、また生物学的プロセスや化学反応における水素結合の役割を理解する。 高校教育で扱う具体的な内容は、カリキュラムや教師によって異なる可能性があることに注意することが重要です。しかし、上記のポイントは、日本の高校化学の授業で水素結合について一般的に教えられていることの概要を示している。
D先生 : “水素結合については教えているはずです。ただし、先生が水のユニークさについて、教えているのかはわかりませんが・・・。”
D先生 : “あれ?この先生は動画の中でトリチウムは重い(比重は1.2)って言っていますよ。”
QEU:FOUNDER : “ああ・・・。訳が分かんなくなってきた・・・(笑)。でもね、水の特殊な性質があるから、地球で生物が住めるし、さらには生物が生まれたんです。今回の件(逆放射脳)の根本問題は、人々が「水のことを知らないことが原因」じゃないかなぁ。少なくとも、今回の件は「学びなおし」が必要ですね。”
D先生 : “私もこれ(↑)で学びなおしました。”
コメント
コメントを投稿