LOCAL AI HACKATHON 2024-03 成果概要
チャンスをありがとうございます
https://gyazo.com/ca7471121289d5642cfdaf3a31852dfa
ハッカソン概要(00:00)
「LOCAL AI HACKATHON」では、エンジニアが「社会のしがらみに縛られない挑戦をする」を指針として、「お金」や「環境」といった制約をなくし、参加者の熱量とアイデアを最大限に発揮できる場を提供することを目的としています。プレゼンテーションの上手さや革新性よりも、「自分が作りたいものを作りきる」ことに重きを置いており、参加者一人ひとりがハッカソンを通して「達成感」を得られることを目指しています。第0回である今回は「ローカルAIと未来」をテーマにしています。
プロジェクト概要(00:05)
「infinite-tinyllama」
TinyLlamaはRaspberry Pi 4 8GBでも実行できる、軽量かつ小規模だが一定の性能を発揮するLLMである。
TinyLlamaを様々なオープンライセンスのデータセットでLoraファインチューニングし、様々な言語や様々な分野に特化させて、それらをOSSとして公開したい。
TinyLlamaのLoraファインチューニングはデータセットやLoraパラメーターのチューニングによっては1GPU 12GB VRAMでも可能だが、データセットが巨大な場合やパラメーターによっては24GB VRAMでも足りない。
VRAM 24GBで日本語データセットでファインチューニングしようとしてVRAM不足で失敗しており、既に困っている。
今回は与えられたGPUとVRAM容量の限りで並列にTinyLlamaのLoraファインチューニングを実行することで、可能な限り多くの特化型TinyLlamaを生み出すことを目指す。
また、ローカルで動かしやすいようにGGUFモデルとしても公開したい。GGUFに変換するためにも多くのVRAMが必要となる。
さらなる野望としては、TinyLlamaが自律的にHuggingfaceのデータセットを探索しデータ構造を把握してファインチューニングを実行し新たなTinyLlamaを生み出す「autonomous-infinite-tinyllama」を開発することや、TinyLlamaのソースコードやアーキテクチャを参考にしつつフルスクラッチでLLMを実装して事前学習から着手することで、「WTFPL」というライセンスで「WTFPLLM」をリリースすることを目指したい。
まとめ
TinyLlamaはRaspberry Pi 4 B 8GBでも実行できる、軽量かつ小規模だが一定の性能を発揮するLLMである
可能な限り多くのTinyLlamaを作りたい
はじまり(00:10)
https://gyazo.com/65c10368d1e16cb29ee2b945f32c0888
ハッカソンを通じた感想(00:30)
https://gyazo.com/e4e98fad66ae15f26e16a63fcbc4395e
数日後
https://gyazo.com/f29dcc664edc0aebac2bd91d4a782cf0
最終日:現在
https://gyazo.com/f29dcc664edc0aebac2bd91d4a782cf0
成果概要(01:00)
新規データセット 作成・リリース
5個
TinyLlamaファインチューニング基盤システム 開発・リリース
1個
多言語対応TinyLlama ファインチューニング・リリース
ベースモデル(言葉を理解するモデル)
18個
インストラクションモデル(その言葉での指示に従うようにしたモデル)
15個
タスク特化TinyLlama ファインチューニング・リリース
70個くらい
新規データセット 作成・リリース(01:30)
日本語オノマトペデータセット
日本酒質問応答データセット
SCP財団日本支部データセット
おーぷん2ちゃんねる なんでも実況(ジュピター) 質問応答データセット
Super-NaturalInstructionsデータセット
TinyLlamaファインチューニング基盤システム 開発・リリース(02:30)
特徴
様々なデータセットの形式に対応
データセットのデータセットを構築(!?)
TinyLlama以外のLLMにも対応
学習したTinyLlamaをさらに別のデータセットで学習することも可能(!!)
現状
100個以上のデータセットを機械可読にしてある
具体例:
https://gyazo.com/83e3070cf2eb5769bcd0e33a0c5dcd01
https://gyazo.com/c9db5d97e9c3bd3b7ba539d16365bf44
100個以上のTinyLlamaのレシピがある
具体例:
https://gyazo.com/780940cf3e225e907ea0e40172039f42
https://gyazo.com/8d1242a7b8964d33d75ee5d60daab054
陰謀論
実はこれと同じようなものは既にいくつもあった説
なんならもっと高性能高品質なものも既にあった説
……
https://gyazo.com/168b43b83ee801f9c021051d81566f12
AIにAIを作るためのYAMLファイルを書かせる前提のやつはいなかった説
無限にTinyLlamaを作る上でのボトルネック
GPU計算資源
データセットの不足
人類の遅さや怠惰さ
AIにAIを作るためのYAMLファイルを書かせる
AIにそれを自動で実行させる
AIがAIを生み出す未来がすぐにでも来ると信じて、今回は人力でやりました
未来のプロトタイピング
多言語対応TinyLlama 開発・リリース(04:30)
TinyLlama 1.1B v1.0は英語を知りすぎ
英語を知りすぎていないTinyLlamaの中間モデルから始める
英語を忘れさせる
Wikipediaで任意の言語を叩き込む
aya_datasetで任意の言語での指示に従うようにする
国連公用語(英語、フランス語、ロシア語、スペイン語、中国語) 第111条
この憲章は、中国語、フランス語、ロシア語、英語及びスペイン語の本文をひとしく正文とし、アメリカ合衆国政府の記録に寄託しておく。この憲章の認証謄本は、同政府が他の署名国の政府に送付する。
英語(en)
ベースモデル
インストラクションモデル
中国語(zh)
ベースモデル
インストラクションモデル
フランス語(fr)
ベースモデル(言葉を理解するモデル)
インストラクションモデル(その言葉での指示に従うようにしたモデル)
ロシア語(ru)
ベースモデル
インストラクションモデル
スペイン語(es)
ベースモデル
インストラクションモデル
国連の公用語は、アラビア語、中国語(普通話・簡体字)、英語(イギリス式)、フランス語、ロシア語、スペイン語の6言語である。公式文書と公式会合での発言は、最小限これらの公用語に翻訳される。国連発足時からの公用語は、現在の言語よりアラビア語を除いた5言語であった。アラビア語が公用語に追加されたのは、1973年の第30回総会においてである
アラビア語(ar)
ベースモデル
インストラクションモデル
国連公用語TinyLlama GGUFお得詰め合わせパック
その他言語(日本語、韓国語、イタリア語、ドイツ語)
日本語(ja)
ベースモデル
https://gyazo.com/3ce810139e2dd6523d17c1b6f8e58111
インストラクションモデル
質問応答モデル
ネタモデル
例:語尾が「ござる」
例:語尾が「ですわ」
例:語尾が「なのだ」
karasu
🔨 TBD: recipes/A5000_24GB_x8/karasu-ojousama.yaml
🔨 TBD: recipes/A5000_24GB_x8/karasu-zundamon.yaml
🔨 TBD: recipes/A5000_24GB_x8/karasu-livejupiter.yaml
韓国語(ko)
ベースモデル
インストラクションモデル
イタリア語(it)
ベースモデル
インストラクションモデル
ドイツ語(de)
ベースモデル
インストラクションモデル
その他言語(ベースモデルのみ)(マダガスカル語、マラヤーラム語、マレー語、シンハラ語、アルバニア語、セルビア語、タミル語、ヨルバ語)
マダガスカル語(mg)
ベースモデル
インストラクションモデル
マラヤーラム語(ml)
ベースモデル
インストラクションモデル
マレー語(ms)
ベースモデル
インストラクションモデル
シンハラ語(si)
ベースモデル
インストラクションモデル
アルバニア語(sq)
ベースモデル
インストラクションモデル
セルビア語(sr)
ベースモデル
インストラクションモデル
タミル語(ta)
ベースモデル
インストラクションモデル
ヨルバ語(yo)
ベースモデル
インストラクションモデル
タスク特化TinyLlama 開発・リリース(05:30)
英語
コーディング(プログラミング)
日本語
文章要約
TBD
感情分析
ヘイトスピーチ検出
データセットがない!
フェイクニュース検出
データセットがない!
コーディング(プログラミング)
自動でいろんなモデルを作りまくる方法はないか
Super-NaturalInstructions: 色々な指示と応答のデータセットを1600種類以上集めたもの
https://scrapbox.io/files/6607f850fc407e0025d00e5c.png
1つずつにバラしたら大量生産できないか?→50個以上自動で作った
質問生成だけとっても複雑な推論、物語のプロットへの質問、常識を要するものなど
要約もニュース、ソーシャルメディア、ブックレビューなど
Chat-Vectorで足し算と引き算で日本語モデルを作る
英語要約モデル-英語モデル+日本語モデル=日本語要約モデル
うーん、うまくいってるような…
ローカルAIと未来(07:30)
https://gyazo.com/2de903c9ee30849d7d6c2fdd777d928e
https://gyazo.com/5534d6a78500197e03111d8054f942c2
https://gyazo.com/adcd6eea42d41aca2f64179c836aad58
https://gyazo.com/0a879d4c980184feb035761052204a51
https://gyazo.com/ea7c8e166aa67b7054127ac72fc9a601
https://gyazo.com/ff9b4a7bc96a5225d3886d5af4260ea7
One more thing...
https://gyazo.com/5eff71f1c97bdfc907fcc8aa2983031f
GPU 8個を100%活用
https://gyazo.com/630830322a8f96285748b2db78e6b43e
YuisekinAILlamaTokenizer-v0.0
壊れてる
YuisekinAILlamaTokenizer-v0.1
動く
事前実験(HuggingFaceリリースなし)
YuisekinAI-mistral-300M-FA2-v0.1
YuisekinAI-mistral-300M-FA2-v0.2
https://gyazo.com/253ab5dff7f6bad5646f6262442a5e8f
YuisekinAI-mistral-300M-FA2-v0.3
https://gyazo.com/071b9cd713ce16c59969cd4788e7cb1d
※ここでトークナイザーがぶっ壊れていることに気づいて修正
Wikipedia英語+日本語
YuisekinAI-mistral-0.3B
YuisekinAI-mistral-0.7B
https://gyazo.com/1b734b12cfd81f8d7c3967bc3a93f565
大規模言語モデルとは、様々な言語を共有する言語である。<s><s>概要<s>言語の言語は、言語や言語によって異なる言語に依存しない言語であり、その言語が言語化される言語として機能する
YuisekinAI-mistral-1.1B
いま作ってる
現状 2024/4/1 19:50
https://gyazo.com/489b3117d55cba92bd9351cc250e8417
オープンライセンス
オープンソース
今後の展望(09:30)
多言語対応TinyLlama、タスク特化TinyLlama
性能評価、パラメーター最適化
もっと速くもっとたくさん作れたハズ……
不足しているデータセットの構築
LLMによるデータセットの構築
独自の大規模言語モデルの事前学習
もっと巨大なデータセットを与えるべき
現状:人間が、LLMsを作るという行為に無限回の作業を強制されている
https://gyazo.com/a42a24c7b99c7477b7f15fc31fcf3ebe
未来:LLMsに、LLMsを作るという行為の無限回の作業を強制したい
https://gyazo.com/99a9efc5e773b6f3e20e3eee28528b36
https://gyazo.com/e60a0ae9a9e800d870cc3f40534876c3
よいお返事を期待していますね
自分やれます
チャンスをください
質疑応答
コメント