投稿

QEUR23_ATTNS1: ゲーム2048のプログラムを「さくっと」つくる

イメージ
~ またやるの? ~ QEU:FOUNDER : “久々に見てみましょう。QEUシステムのモジュール構成。今回からLLMを加えてみました。” D先生 : “なるほどね・・・。でも、いま「私たちが立っている場所」って、Stable Diffusionを開発していた場所ですよね。” QEU:FOUNDER : “ちょっと事情があり、LLMの開発は後回しします。強化学習にもどろう!ちょっと、2048ゲームをやり直してみたい。” D先生 : “なんで・・・? 今話題のATTENTION(の応用技術の開発)をやる んじゃなかったの?” QEU:FOUNDER : “Attentionに切り込むために、強化学習から始めます。あとね、GPTにプログラムの生成を要求させてみて、どれだけプログラムの開発速度と質が上がるのかを確かめてもみたい。まずは、「ゲーム単体」をGPTに出してもらいましょう。” プロンプト:「ゲーム2048(4x4)をテキスト表示で動くようなpythonプログラムを生成してください。」 D先生 : “うまく行きましたか?” QEU:FOUNDER : “本当に驚いたんだけど、「マニュアル」付きでプログラムが出てきたよ。 プログラムの出来は90%、ただし方向が上下逆だった・・・(笑) 。これは、ボード配列の設定(配列番号+1=上)から見ても間違えそうなポイントなんだけどね・・・。そこらへんを、ちょっとだけ修正したプログラムは、こちら(↓)です。” # 2048ゲームのロジック import random # ボードのサイズ SIZE = 4 # ボードを初期化する関数 def init_board (): # ボードは二次元リストで表現する board = [[ 0 ] * SIZE for _ in range ( SIZE )] # ランダムな位置に2か4を配置する add_random_tile ( board ) add_random_tile ( board ) return board # ランダムな位置に2か4を配置する関数 def add_random_tile ( board ): #...

QEUR23_LLMDSS11: 閑話休題~「へんてこ」なデータセットを晒そう・・・

イメージ
~ 一見、無茶なデータセットの正体は? ~ QEU:FOUNDER : “ブログのリリース速度が落ちてきている「秋」・・・。もう、しようがない。これは、LLM(大規模言語モデル)の宿命・・・。” (QEUプロジェクトの「LLM3大テーマ」とは?) (1) 世界の中心にある日本語: 常体文と敬体文の情報を学習に使って、日本語のトークンをきめ細かくコントロールする (2) 世界平和のためのLLM: 歴史の見方を(立場によって)多面化させる (3) 「user-llm」をシステムとした、feedbackシステムの構築 D先生 : “今回は、前回に引き続いて、さらに 「データセット(Dataset:DS)を晒す」 というの話でしたよね。” D先生 : “・・・でコレなの?なんか、「3点セット」で学習させようというヘンテコなやり方ですねえ・・・。” QEU:FOUNDER : “今回、huggingfaceにアップしたのは「初期化用」データセットだけだよ。前回の繰り返しになるけど、LLMにおける「認識」と「記憶」の話からやりましょうか・・・。” D先生 : “これは私から説明します。汎用関数当てはめ器であるディープラーニングの発足の当初から「認識」という考え方がありました。その認識の良さというのが損失関数の滑らかさに現れるんですよね。でも、「記憶」という発想は生成AIから発生したものです。1つのLLMのファインチューニングのために複数のデータセットをシリアルにつなげるというアイデアは、「(DSの情報を)記憶」という点では禁じ手ではあるが、「認識(能力の向上)」という点ではアリじゃないかと・・・。” QEU:FOUNDER : “「解説の代打」ありがと・・・(笑)。ちょっとDSの中身を見てみましょう。” C部長 : “これは知っていますよ。QEUシステムでは日本語の文章を「常体」と「敬体」に分けるんですよね。” QEU:FOUNDER : “この「初期化データセット」は、 常体を中国語にリンク させ、 敬体を英語にリンク させるための準備をするんです。” C部長 : “このDSは10エポックしか学習させないんでしょ?” QEU:FOUNDER : “LLMに対して、 「ノリ」をわからせればOK です。この学...

QEUR23_LLMDSS10: 閑話休題~databricks(15k)のデータセットの改造と分割

イメージ
~ データ?small is best? ~ QEU:FOUNDER : “最近、ブログのリリース速度が落ちてきているなあ・・・。しようがない、LLM(大規模言語モデル)の宿命だが・・・。” (QEUプロジェクトの3件とは?) (1)世界の中心にある日本語: 常体文と敬体文の情報を学習に使って、日本語のトークンをきめ細かくコントロールする (2)世界平和のためのLLM: 歴史の見方を(立場によって)多面化させる (3)「user-llm」をシステムとした、feedbackシステムの構築 D先生 : “プロジェクトがさらに複雑になっていますからね。今回も、前回につづいて「猫(の飼い方)データセット」の解説ですか?” QEU:FOUNDER : “まあ、今回の件は 「Huggingface」にデータセットをアップロード しました。・・・結局、言いたいことはこれだけなんだけどね(笑)。「facebookページを立ち上げました!」みたいで恐縮です。” D先生 : “あれ?例のdatabricks(15k、日本語版)についてもアップしたんですか?” QEU:FOUNDER : “ただし、内容がかなり変わっています。” D先生 : “もともと、このデータセットって15kのサイズでしたよね。なんで、内容を追加して16kにしたんですか?さらに、それを4分割にして・・・。” QEU:FOUNDER : “LLMについては、時間と共に知見が追加されていろいろな思いが交錯するが・・・。我々のfinetuning(FT)の第一歩としては、学習データを大きくしたくないんですよ。Jeremy Howard(JH)の話「↑」を見ても、「学習データを工夫するとFT学習が速くなる」ことがありそうだともいうし・・・。” C部長 : “学習データのサイズを小さくすると、学習が速くなる。そんなもん当たり前じゃないですか?” QEU:FOUNDER : “「学習データが少ないとFT処理が速い」ことは当たり前ですよね。さて・・・、ちょっと小生の話を聞いてください。JHは、とあるkaggleのコンペでLLMを学習したらこんな曲線を得て、びっくりしたらしいです。 1エポック(学習データを一通り処理した)ごとに、学習損失が一気に下がったらしい。 ” D先生 : “こんな曲線は見た...

QEUR23_LLMDSS9: LLM(大規模言語モデル)におけるフィードバック理論の検証

イメージ
~ 目指せ!ノーベル省! ~ QEU:FOUNDER : “それでは、前回の知見を活かして 「Finetuning(FT)の準備」 をしましょう。” QEU:FOUNDER : “もう一度いいますが、現在は「(FTの)準備段階」です。すなわち、 学習用のデータセットの生成 ですね。” By the end of this session , attendees will understand : - How to fine - tune LLMs like Llama - 2 - 7 b on a single GPU - Techniques like parameter efficient tuning and quantization , and how they can help - How to train a 7 b param model on a single T4 GPU ( QLoRA ) - How to deploy tuned models like Llama - 2 to production - Continued training with RLHF - How to use RAG to do question answering with trained LLMs This session will equip ML engineers to unlock the capabilities of LLMs like Llama - 2 on for their own projects . # --- このセッションを終えるまでに 、 参加者は次のことを理解するだろう : - シングルGPU上でLlama - 2 - 7 bのようなLLMを微調整する方法 - パラメータ効率チューニングや量子化などのテクニックと 、 それらがどのように役立つか - シングルT4 GPUで7b paramモデルをトレーニングする方法 ( QLoRA ) - Llama - 2 のようなチューニ...