タグ: Google Colab

  • Google Colab 初手の初手 – GPUいらずでパワフルなAI開発環境を手に入れよう

    皆さん、こんにちは!生成AI時代に「つくる人をつくる」で活動しているAICU media編集部です。
    勉強がはかどる秋の夜長ですね!今回は手法を変えて、画像生成だけでなく、Pythonや機械学習の勉強に役立つGoogle Colabの基本操作について解説していきます。GPUいらず、Gmailアカウントさえあれば無料で利用できるパワフルなAI開発環境を手に入れましょう!

    Google Colabとは?

    Google Colabは、ブラウザ上で利用できるGoogleの無料のPython開発環境です。Googleドライブと連携しており、機械学習やデータ分析などの作業に最適な環境を提供しています。

    Google Colabへのアクセス

    ブラウザで「Google Colab」と検索し、検索結果から「Google Colaboratory」をクリックしてアクセスします。

    https://colab.google/

    画像
    画像
    Google Colabのトップページ

    サンプルノートブックの実行

    Google Colabにアクセスすると、最初に「Colaboratoryへようこそ」というサンプルノートブックが表示されます。このノートブックは、Google Colabの基本的な操作方法を学ぶためのものです。

    ノートブックは、コードセルとテキストセルで構成されています。コードセルにはPythonコードを記述し、実行することができます。テキストセルには説明文や注釈などを記述することができます。

    基本操作

    サンプルノートブックで基本的な操作を確認してみましょう。

    1. コードセルの実行

    コードセルを実行するには、セルの左側に表示されている再生ボタンをクリックするか、セル内で「Ctrl + Enter」キーを押します。

    画像
    スクリーンショット:コードセルの実行

    2. 結果の確認

    コードセルを実行すると、その結果がセルの下に表示されます。

    Googleへのログインが済んでいない場合は、Googleへのログインが必要です。

    画像

    3. ランタイムの設定

    Google Colabでは、コンピューターのスペック(CPU、GPU、TPUなど)を選択できます。

    画像
    スクリーンショット:ランタイムの設定

    ランタイムの設定は、ノートブックのメニューから「ランタイム」→「ランタイムのタイプを変更」を選択して行います。

    4. セッションの終了

    Google Colabのセッションを終了するには、ブラウザのタブを閉じます。

    次のステップは…?

    今回は、Google Colabの基本操作について解説しました。Google Colabは、機械学習や大規模言語モデルだけでなく、画像生成AIの学習にも非常に役立つツールです。今後、Google Colabを使って、様々な画像生成AIのモデルを学習していきましょう。

    ここまでの手順はこちらの動画でも解説しております。

    Google Colabも画像生成も学べちゃう 画像生成Lesson(無料動画)

    Google Colabにも公式サンプルやはあるのですが、公式は初心者向けではないかもしれません。特にPythonによる開発環境「Jupyter notebook」に慣れた方であればこちらの基本機能比較が役に立つと思います。https://colab.research.google.com/notebooks/basic_features_overview.ipynb

    「Curated Notebooks」には「ChatGPTとGoogle Geminiの比較」といった玄人ごのみのサンプルもあります。

    https://colab.google/notebooks

    やってみました。
    「日本語英語とフランス語の違い列挙して」

    画像

    上のサンプルの動作確認にはGoogle GeminiのAPIに加えてChatGPTのAPIも必要です(それぞれクレジットカード等の登録が必要になります)。
    ちょっと初心者向けとはいい難いので、やはり無料で試せるStability AIのAPIを使った学習が良いかなと思いました。

    超入門:Stable Diffusionではじめる画像生成AI

    https://j.aicu.ai/coloso1

    Google Colabさえあれば、GPUは不要です!!

    以上、初心者け動画 「#画像生成Lesson」の紹介でした。
    これをみて「これならやれそう…?」という方は、ぜひ上を目指してみましょう。

    「生成AIクリエイティブ AICU」シリーズ
    ■超入門:Stable Diffusionではじめる画像生成AI
    https://j.aicu.ai/AICUXColosoJP
    ■初級者:広告企画から動画制作までのプロセス
    https://j.aicu.ai/ColosoJPXAICU
    ■ComfyUIマスター:カスタムノードとアプリ開発
    https://j.aicu.ai/Coloso3

    Originally published at https://note.com on Oct 29, 2024.

  • [解決] Google Colab xformersに関する不具合情報 (2024/7/26)

    #SD黄色本 「画像生成 AI Stable Diffusionスタートガイド」のサポート情報です。

    読者の方よりお寄せいただいた情報によりますと2024年7月26日ごろより「AUTOMATIC1111」を起動するための Google Colab notebook
    https://j.aicu.ai/SBXL1
    および
    https://j.aicu.ai/SBXL2
    において不具合が発生している方がいらっしゃるとのことで調査を実施いたしました。

    【2024/7/29現在】この不具合は修正されています

    ・最新の TheLastBen 提供のコードに追従しました
    ・最新版の AUTOMATIC1111 v1.10.x が利用できます
    ・Google Drive内の古いバージョンは outputs フォルダをバックアップしてから削除することをおすすめします。

    ダウンロードはこちらから

    https://j.aicu.ai/SBXL1

    https://j.aicu.ai/SBXL2

    Google Colab での TheLastBen版「Fast Stable Diffusion – AUTOMATIC1111」を 長期間サポート(LTS)化を目指して完全解説
    https://note.com/aicu/n/nf5562077c8ad


    以下は経過情報です

    xformers の再インストール(v20240522)
    のセルで以下のようなエラーが起きることが報告されています

    ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
    basicsr 1.4.2 requires lmdb, which is not installed.
    gfpgan 1.3.8 requires lmdb, which is not installed.
    clean-fid 0.1.31 requires requests==2.25.1, but you have requests 2.28.2 which is incompatible.
    fastai 2.7.15 requires torch<2.4,>=1.10, but you have torch 2.4.0 which is incompatible.
    torchaudio 2.3.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    torchvision 0.18.1+cu121 requires torch==2.3.1, but you have torch 2.4.0 which is incompatible.
    Successfully installed nvidia-cudnn-cu12-9.1.0.70 torch-2.4.0 triton-2.3.1 xformers-0.0.27.post1

    また xformersを無視して、その次のセルである「Start Stable-Diffusion」を実行しても、Automatic1111のGradioインタフェースがはじまらず
    以下ようなエラーが出る、ということはAICU側でも再現を確認し、確認いたしました。

    現在対応調査中です。

    (おそらく現在のColabで使うべきxformersのバージョンが変わったせいだと見ております。Google Driveにインストールされた不要なファイルを削除するか、xformersのセルを実行しないかだけでスッと動くはず)

    いちおう再現しているのでこちらでも調査継続します
    https://note.com/preview/nc5da1bf2f818?prev_access_key=f3de9eefe0a60a6af296b6d9a7653e35

    この記事で調査をしていきます。

    以下出力されるエラーログです。

    Traceback (most recent call last):File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/webui.py", line 13, in <module>initialize.imports()File "/content/gdrive/MyDrive/sd/stable-diffusion-webui/modules/initialize.py", line 17, in importsimport pytorch_lightning # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/init.py", line 34, in <module>from pytorch_lightning.callbacks import Callback # noqa: E402File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/init.py", line 14, in <module>from pytorch_lightning.callbacks.callback import CallbackFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/callbacks/callback.py", line 25, in <module>from pytorch_lightning.utilities.types import STEP_OUTPUTFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/init.py", line 18, in <module>from pytorch_lightning.utilities.apply_func import move_data_to_device # noqa: F401File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/apply_func.py", line 29, in <module>from pytorch_lightning.utilities.imports import _compare_version, _TORCHTEXT_LEGACYFile "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 153, in <module>_TORCHTEXT_LEGACY: bool = _TORCHTEXT_AVAILABLE and _compare_version("torchtext", operator.lt, "0.11.0")File "/usr/local/lib/python3.10/dist-packages/pytorch_lightning/utilities/imports.py", line 71, in _compare_versionpkg = importlib.import_module(package)File "/usr/lib/python3.10/importlib/init.py", line 126, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "/usr/local/lib/python3.10/dist-packages/torchtext/init.py", line 18, in <module>from torchtext import _extension # noqa: F401File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 64, in <module>_init_extension()File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 58, in _init_extension_load_lib("libtorchtext")File "/usr/local/lib/python3.10/dist-packages/torchtext/_extension.py", line 50, in _load_libtorch.ops.load_library(path)File "/usr/local/lib/python3.10/dist-packages/torch/_ops.py", line 1295, in load_libraryctypes.CDLL(path)File "/usr/lib/python3.10/ctypes/init.py", line 374, in initself._handle = _dlopen(self._name, mode)OSError: /usr/local/lib/python3.10/dist-packages/torchtext/lib/libtorchtext.so: undefined symbol: _ZN5torch3jit17parseSchemaOrNameERKSs

    ご不便をおかけして申し訳ありません。


    以下は過去の関連情報です。ご参考まで。

    ◼️Stability Matrixで Automatic1111が起動しない…そんなときに試してほしいノウハウ

    https://ja.aicu.ai/0715-sdyb-support/

    ◼️Google Colabでつくる初心者向けLoRA最短設定

    https://note.com/aicu/n/n36b121e46668

    Google ColabでのAUTOMATIC1111 xformers関連の不具合と解決方法について(2024/5/22)

    https://ja.aicu.ai/code20240522/

    ◼️「画像生成AI Stable Diffusion スタートガイド」アップデート情報 第6章 LoRA動作不具合改訂について

    https://note.com/aicu/n/n96f9e51041fa

    本エントリーは更新される予定です。
    書籍購入者に向けてはこちらのDiscordチャンネル

    https://discord.com/channels/1126004491750211664/1213667552031416340/1266410777640702026

    もしくはこちらのコミュニティ掲示板でも構いません。

    https://note.com/aicu/membership/join

    Originally published at https://note.com on July 26, 2024.

  • 描画工程を推論する「Paints-Undo」、Google Colabで実際に動作させてみた

    日本時間で2024年7月10日、スタンフォード大学の博士課程の学生である「Fooocus」や「Omost」「Style2Paint」の開発者Lvmin Zhang さん(GitHubアカウント: lllyasviel)らの研究グループが、興味深い研究成果を発表しました。Google Colabで試せる実験コードも紹介します。

    https://note.com/aicu/n/n8990c841e373

    圧巻のデモ

    ぜひこちらのデモサイトで結果を観てください

    https://lllyasviel.github.io/pages/paints_undo

    この Web ページのすべての入力画像は AI によって生成されたものであることに注意してください。それらの「グラウンド・トゥルース」つまり「正解の描画プロセス」は存在しません。画像生成によって生成された1枚の画像をベースに「それが描かれたであろう工程」を、まるでイラストレーターの作業配信動画(タイムラプス)のように生成しています。

    画像

    美少女イラスト以外の分野での実験。

    画像
    画像

    ラフスケッチの生成

    画像

    異なる描画工程の再現

    画像
    画像
    画像

    失敗例

    画像

    以下、公式READMEの翻訳を中心に、解説を補完しながらお送りします。
    https://github.com/lllyasviel/Paints-UNDO
    実際に動作させた例は最後に紹介します。

    画像

    Paints-Undo:デジタルペイントにおける描画動作のベースモデル

    Paints-Undoは、将来のAIモデルが人間のアーティストの真のニーズに沿うことができるように、人間の描画動作のベースモデルを提供することを目的としたプロジェクトです。

    「Paints-Undo」という名前は、モデルの出力がデジタルペイントソフトで「元に戻す」ボタン(通常はCtrl+Z)を何度も押したときのように見えることに由来しています。

    Paints-Undoは、画像を入力として受け取り、その画像の描画シーケンスを出力するモデル群です。このモデルは、スケッチ、インク入れ、着色、シェーディング、変形、左右反転、カラーカーブ調整、レイヤーの表示・非表示の変更、さらには描画プロセス中の全体的なアイデアの変更など、人間のあらゆる行動を表現します。

    利用方法

    PaintsUndoは、以下の方法でローカルにデプロイできます。
    condaのインストールと10GB以上のVRAMが必要です。

    git clone https://github.com/lllyasviel/Paints-UNDO.git
    cd Paints-UNDO
    conda create -n paints_undo python=3.10
    conda activate paints_undo
    pip install xformers
    pip install -r requirements.txt
    python gradio_app.py    

    推論は、Nvidia 4090および3090TIの24GB VRAMでテストされています。16GB VRAMでも動作する可能性がありますが、8GBでは動作しません。私の推定では、極度の最適化(重みのオフロードやスライスアテンションを含む)を行った場合、理論上の最小VRAM要件は約10〜12.5GBです。

    設定にもよりますが、1つの画像を処理するのに約5〜10分かかります。一般的な結果として、解像度320×512、512×320、384×448、または448×384で、FPS 4、25秒のビデオが得られます。

    処理時間は、ほとんどの場合、HuggingFace Spaceのほとんどのタスク/クォータよりも大幅に長いため、HuggingFaceサーバーに不要な負担をかけないように、HuggingFace Spaceにデプロイすることはお勧めしません。

    必要な計算デバイスがなく、それでもオンラインソリューションが必要な場合は、Colabノートブックがリリースされるのを待つという選択肢があります(ただし、Colabの無料枠で動作するかどうかはわかりません)。

    モデルに関する注意事項

    現在、 paints_undo_single_frame と paints_undo_multi_frame の2つのモデルをリリースしています。それぞれをシングルフレームモデル、マルチフレームモデルと呼ぶことにします。

    シングルフレームモデルは、1つの画像と操作ステップを入力として受け取り、1つの画像を出力します。1つのアートワークは常に1000の人間の操作で作成できると仮定し(たとえば、1つのブラシストロークが1つの操作、操作ステップは0から999までの整数)。第0番は完成した最終アートワーク、第999番は真っ白なキャンバスに最初に描かれたブラシストロークとします。このモデルは、「元に戻す(Undo/Ctrl+Z)」モデルと理解することができます。最終的な画像を入力し、「Ctrl+Z」を何回押したいかを示すと、モデルはそれらの「Ctrl+Z」が押された後の「シミュレートされた」スクリーンショットを表示します。操作ステップが100の場合、この画像に対して100回「Ctrl+Z」をシミュレートして、100回目の「Ctrl+Z」後の外観を取得することを意味します。

    マルチフレームモデルは、2つの画像を入力として受け取り、2つの入力画像間の16の中間フレームを出力します。結果はシングルフレームモデルよりもはるかに一貫性がありますが、はるかに遅く、「創造性」が低く、16フレームに制限されています。

    このリポジトリでは、デフォルトの方法ではこれらを一緒に使用します。最初にシングルフレームモデルを5〜7回推論して5〜7つの「キーフレーム」を取得し、次にマルチフレームモデルを使用してそれらのキーフレームを「補間」して、実際に比較的長いビデオを生成します。

    理論的には、このシステムはさまざまな方法で使用でき、無限に長いビデオを作成することもできますが、実際には最終フレーム数が約100〜500の場合に良好な結果が得られます。

    モデルアーキテクチャ (paints_undo_single_frame)

    このモデルは、異なるベータスケジューラ、クリップスキップ、および前述の操作ステップ条件でトレーニングされたSD1.5の変更されたアーキテクチャです。具体的には、このモデルは、次のベータを使用してトレーニングされています。

          betas = torch.linspace(0.00085, 0.020, 1000, dtype=torch.float64)
        

    比較のために、元のSD1.5は、次のベータを使用してトレーニングされています。

          betas = torch.linspace(0.00085 ** 0.5, 0.012 ** 0.5, 1000, dtype=torch.float64) ** 2
        

    終わりのベータと削除された正方形の違いに気付くでしょう。このスケジューラの選択は、内部ユーザー調査に基づいています。

    テキストエンコーダCLIP ViT-L / 14の最後のレイヤーは完全に削除されます。 操作ステップ条件は、SDXLの追加の埋め込みと同様の方法でレイヤーの埋め込みに追加されます。

    また、このモデルの唯一の目的は既存の画像を処理することであるため、このモデルは、他の拡張なしでWD14 Taggerと厳密に整合性が取れています。入力画像を処理してプロンプトを取得するには、常にWD14 Tagger(このリポジトリにあるもの)を使用する必要があります。そうしないと、結果に欠陥が生じる可能性があります。人間が書いたプロンプトはテストされていません。

    画像

    モデルアーキテクチャ (paints_undo_multi_frame)

    このモデルは、VideoCrafterファミリーから再開することでトレーニングされますが、元のCrafterのlvdmは使用されず、すべてのトレーニング/推論コードは完全にゼロから実装されています。(ちなみに、コードは最新のDiffusersに基づいています。)初期の重みはVideoCrafterから再開されますが、ニューラルネットワークのトポロジーは大幅に変更されており、ネットワークの動作は広範なトレーニングの後、元のCrafterとは大きく異なります。

    全体的なアーキテクチャは、3D-UNet、VAE、CLIP、CLIP-Vision、Image Projectionの5つのコンポーネントを持つCrafterのようなものです。

    • VAE:VAEは、ToonCrafterから抽出されたのと同じアニメVAEです。Craftersに優れたアニメの時間的VAEを提供してくれたToonCrafterに感謝します。
    • 3D-UNet:3D-UNetは、アテンションモジュールのリビジョンを含むCraftersのlvdmから変更されています。コードのいくつかのマイナーな変更以外に、主な変更点は、UNetがトレーニングされ、空間的自己注意レイヤーで時間ウィンドウをサポートするようになったことです。 diffusers_vdm.attention.CrossAttention.temporal_window_for_spatial_self_attentionおよびtemporal_window_typeのコードを変更して、3つのタイプのアテンションウィンドウをアクティブ化できます。
      • “prv”モード:各フレームの空間的自己注意は、前のフレームの空間的コンテキスト全体にも注意を払います。最初のフレームは自分自身だけに注意を払います。
      • “first”モード:各フレームの空間的自己注意は、シーケンス全体の最初のフレームの空間的コンテキスト全体にも注意を払います。最初のフレームは自分自身だけに注意を払います。
      • “roll”モード:各フレームの空間的自己注意は、torch.rollの順序に基づいて、前後のフレームの空間的コンテキスト全体にも注意を払います。
    • CLIP:SD2.1のCLIP。
    • CLIP-Vision:位置埋め込みを補間することで、任意のアスペクト比をサポートするClip Vision(ViT / H)の実装。線形補間、ニアレストネイバー、および回転位置エンコーディング(RoPE)を試した後、最終的な選択はニアレストネイバーです。これは、画像を224×224にサイズ変更または中央トリミングするCrafterメソッドとは異なることに注意してください。
    • Image Projection:2つのフレームを入力として受け取り、各フレームに16の画像埋め込みを出力する小さなトランスフォーマーの実装。これは、1つの画像のみを使用するCrafterメソッドとは異なることに注意してください。

    免責事項

    このプロジェクトは、人間の描画動作のベースモデルを開発し、将来のAIシステムが人間のアーティストの真のニーズをより適切に満たせるようにすることを目的としています。ユーザーはこのツールを使用してコンテンツを自由に作成できますが、地域の法律を遵守し、責任を持って使用する必要があります。ユーザーは、虚偽の情報を生成したり、対立を扇動したりするためにツールを使用してはなりません。開発者は、ユーザーによる misuseの可能性について、いかなる責任も負いません。

    実際に動作させてみた

    ✨️Google Colabで動作するコードは社会的影響を鑑みて、当面は文末にてメンバーシップのみの公開とさせていただきます✨️

    gradio_app.pyの最終行を以下のように変更してください
    #block.queue().launch(server_name=’0.0.0.0′)

    block.queue().launch(server_name=’0.0.0.0′, share=True)

    チュートリアル

    Gradioインターフェースに入ったら:

    ステップ0:画像をアップロードするか、ページの下部にある[作例画像]をクリックします。

    画像

    ステップ1:「ステップ1」というタイトルのUIで、[プロンプトの生成]をクリックして、グローバルプロンプトを取得します。

    画像

    ステップ2:「ステップ2」というタイトルのUIで、[キーフレームの生成]をクリックします。左側でシードやその他のパラメータを変更できます。

    画像

    ステップ3:「ステップ3」というタイトルのUIで、[ビデオの生成]をクリックします。左側でシードやその他のパラメータを変更できます。

    オリジナル画像でやってみた

    AICU所属のイラストレーター・犬沢某さんに素材をご提供いただきました。

    画像
    画像
    画像
    画像
    画像
    画像

    動画はこちらです

    犬沢某さん「なんだか最初のほう、悩みながら描いてるのがそれらしくていいですね・・・」

    描画工程を推論する技術は、様々なクリエイティブ工程に役立つツールが生み出せる可能性があります。
    オープンな技術として公開していただいた lllyasvielさん、Paints-Undo Teamに感謝です。

    https://github.com/lllyasviel/Paints-UNDO

    Google Colabで condaをインストールし、Paints-UNDOを利用するnotebook

    社会的影響を鑑み、当面はメンバーシップのみの提供とさせていただきます
    くれぐれも悪用禁止でお願いいたします。
    フェイク動画や、素手で描かれるイラストレーターさんのお気持ちを害するような使い方は誰にとっても利がありません。

    原作の免責事項(disclaimer)を再掲しておきます

    このプロジェクトは、人間の描画動作のベースモデルを開発し、将来のAIシステムが人間のアーティストの真のニーズをより適切に満たせるようにすることを目的としています。ユーザーはこのツールを使用してコンテンツを自由に作成できますが、地域の法律を遵守し、責任を持って使用する必要があります。ユーザーは、虚偽の情報を生成したり、対立を扇動したりするためにツールを使用してはなりません。開発者は、ユーザーによる misuseの可能性について、いかなる責任も負いません。

    この記事の続きはこちらから https://note.com/aicu/n/n7e654dcf405c

    Originally published at https://note.com on July 9, 2024.

  • Fooocus v2.4.0リリース & AICUによるColab無料版で動く日本語UI版も継続メンテナンス実施

    Fooocus v2.4.0リリース & AICUによるColab無料版で動く日本語UI版も継続メンテナンス実施


    midJourneyや nijiJourneyスタイルのカンタン高画質なAI画像生成が行える「Fooocus」の最新版がリリースされました。AICU Inc.が原作そのままに Google Colab (無料版も可) を使って、旧来のv2.3.0も日本語UIで動くようにメンテナンスを実施したのでお知らせします。

    2024年3月24日にリリースされた v.2.3.0 からUI変更に加え、機能面が大きく追加されています。
    https://github.com/lllyasviel/Fooocus/releases/tag/v2.4.0

    https://github.com/lllyasviel/Fooocus/releases/

    v2.4.0動きました。Lightning速いですが、HyperSDはもっと高速です。
    Fooocus v2.4.0

    v2.4.0 最新版リリースノートより

    変更点
    feat: ミラーサイトからの huggingface ファイルのダウンロードをサポート。
    chore: インターポーザーを v3.1 から v4.0 に更新 by @mashb1t in #2717
    feat: ページをリロードせずに UI を再接続するボタンを追加 by @mashb1t in #2727
    feat: オプションのモデルVAE選択を追加 by @mashb1t in #2867
    feat: ランダムスタイルを選択 by @mashb1t in #2855
    feat: アニメを animaPencilXL_v100 から animaPencilXL_v310 に更新 by @mashb1t in #2454
    refactor: 再接続ボタンのラベル名を変更 by @mashb1t in #2893
    feat: 履歴ログに完全な生プロンプトを追加 by @docppp in #1920
    修正: 正しい border radius css プロパティを使用するようにしました by @khanvilkarvishvesh in #2845
    修正: HTMLヘッダでメタタグを閉じないようにした by @e52fa787 in #2740
    機能: uov 画像アップロード時に画像を自動的に記述 by @mashb1t in #1938
    nsfw 画像の検閲を設定とチェックボックスで追加 by @mashb1t in #958
    feat: 手順を揃えるスケジューラーを追加 by @mashb1t in #2905
    lora のインラインプロンプト参照をサポート by @cantor-set in #2323
    feat: sgm_uniform (lcmと同じ)に基づくtcdサンプラーと離散蒸留tcdスケジューラの追加 by @mashb1t in #2907
    feat: 4step LoRA に基づくパフォーマンス Hyper SD を追加 (@mashb1t 氏による) #2812
    修正: HyperSDテスト用に残っていたコードを削除しました。
    feature: nsfw 画像検閲のモデル管理を最適化 by @mashb1t in #2960
    feat: プログレスバーの改善 by @mashb1t in #2962
    feat: インラインローラの最適化 by @mashb1t in #2967
    feat: コードの所有者を @lllyasviel から @mashb1t に変更 by @mashb1t in #2948
    feat: 有効なインラインローラのみを使用し、サブフォルダをサポート by @mashb1t in #2968
    feature: イメージのサイズと比率を読み取り、推奨サイズを与える by @xhoxye in #2971
    feature: ghcr.io 用コンテナイメージのビルドとプッシュ、docker.md の更新、その他関連する修正 by @xynydev in #2805。
    利用可能なイメージを見る
    feat: 行末のデフォルト設定を調整 by @mashb1t in #2991
    feat: image size description の翻訳を追加しました。
    feat: ‘CFG Mimicking from TSNR’ の値をプリセットから読み込む by @Alexdnk in #2990
    feat: ブラシのカラーピッカーを追加 by @mashb1t in #2997
    feat: ほとんどの画像入力フィールドからラベルを削除 by @mashb1t in #2998
    feat: クリップスキップ処理を追加 by @mashb1t in #2999
    feat: UI設定をよりコンパクトに by @Alexdnk and @mashb1t in #2590

    HyperSDのサポート

    https://huggingface.co/ByteDance/Hyper-SD

    ByteDanceによる「Hyper-SD(効率的な画像合成のための軌跡分割整合モデル)」がサポートされました。

    論文 https://arxiv.org/abs/2404.13686

    サンプリングが4ステップという非常に短いステップで高品質な画像が生成されます。

    Google Colabでの起動

    #SD黄色本「画像生成AI Stable Diffusionスタートガイド」の p.13-18でも扱っているとおり、FooocusはGoogle Colabで動作可能です。具体的にはこのようなコードを書けば最新のFooocusを実行することができます。

    !pip install pygit2==1.12.2
    %cd /content
    !git clone https://github.com/lllyasviel/Fooocus.git
    %cd /content/Fooocus
    !python entry_with_update.py --share --always-high-vram
    

    Fooocus 日本語アニメ特化版 j.aicu.ai/FoooC の更新

    AICU Inc.が #SD黄色本 でリリースしたバージョン「Fooocus 日本語アニメ特化版 j.aicu.ai/FoooC」についてもメンテナンスを実施しました。

    原作そのままに Google Colab (無料版も可) を使って、日本語UIで動くようにしたものです。

    配布等は原作のライセンスに従います。

    https://github.com/lllyasviel/Fooocus/blob/main/fooocus_colab.ipynb

    超初心者向け使い方

    ランタイムを実行「▶」を押してしばらくお待ち下さい。 https://….gradio.com のURLが表示されたらそれをクリックして別タブで遊べます。最大72時間有効ですが、途中で切断されたり止まったり、エラーが出た場合は「■」(停止)をしてもう一度「▶」を押してください。

    起動オプション

    このスクリプトではGUIで操作できるスイッチにしてあります。

    このスクリプトでは Google Driveの マイドライブ直下「Fooocus-outputs」に保存されるようにしました。

    • target_drive_dir: /content/gdrive/MyDrive/Fooocus-outputs
    • use_japanese: UIに日本語が表示されます。
    • model_type: anime
    • fixed_version: バージョンを書籍「画像生成AI Stable Diffusion スタートガイド」で紹介した v2.3.1 (e2f9bcb) に固定して実行します

    無料版 Colab での動作について

    このColabはデフォルトでrefinerを無効にすることに注意してください。なぜならColab freeのリソースは比較的限られているからです(そして画像プロンプトのようないくつかの「大きな」機能はfree-tier Colabの切断を引き起こすかもしれません)。フリー版のColabでは、基本的なテキストから画像への変換が常に動作するようにしています。「Image Prompt/画像で指示」は 無料版 Google Colab T4 GPU では動作しない可能性があります。

    v2.3.1 (e2f9bcb) が動作しています。生成結果はGoogle Driveに生成されるので業務内システムへの活用も可能かもしれませんね。

    日本語化の部分もAICUが翻訳を行っています。カスタマイズや、より子供向けや企業内ワークショップの開発の案件はぜひAICU Inc.までご相談ください。

    https://corp.aicu.ai/ja/pricing

  • Google ColabでのAUTOMATIC1111 xformers関連の不具合と解決方法について(2024/5/22)

    Google ColabでのAUTOMATIC1111 xformers関連の不具合と解決方法について(2024/5/22)

    「生成AI時代に つくる人をつくる」AICUの しらいはかせ です。
    ご高評いただいております「画像生成AI Stable Diffusion スタートガイド」
    (通称 #SD黄色本 )掲載の主要なプログラム(SBXL1SBXL2)につきまして、編集部が本日、Google ColabでのAUTOMATIC1111において不具合を発見いたしましたので、本日、解説とともに修正を実施いたしました。

    【現象1】SD1.5系でGradioURLが表示されない

    p47 【Start Stable-Diffusion】のセルを実行時 WARNING[XFORMERS]: xFormers can’t load C++/CUDA extensions. xFormers was built for: PyTorch 2.2.1+cu121 with CUDA 1201 (you have 2.3.0+cu121) Python 3.10.13 (you have 3.10.12) Please reinstall xformers というエラーが出てURLも表示されず完了しません。

    読者の方からも同様のご報告を頂いております(SBクリエイティブさんありがとうございます)。

    【現象2】起動には成功するが画像生成に失敗する

    「Generate」ボタンを押すと以下のようなエラー表示されます。

    AUTOMATIC1111側にはこちらのエラーが表示されています

    NotImplementedError: No operator found for `memory_efficient_attention_forward` with inputs:
    query : shape=(1, 4096, 1, 512) (torch.float32)
    key : shape=(1, 4096, 1, 512) (torch.float32)
    value : shape=(1, 4096, 1, 512) (torch.float32)
    attn_bias : <class 'NoneType'>
    p : 0.0
    `decoderF` is not supported because:
    max(query.shape[-1] != value.shape[-1]) > 128
    xFormers wasn't build with CUDA support
    attn_bias type is <class 'NoneType'>
    operator wasn't built - see `python -m xformers.info` for more info
    `flshattF@0.0.0` is not supported because:
    max(query.shape[-1] != value.shape[-1]) > 256
    xFormers wasn't build with CUDA support
    requires device with capability > (8, 0) but your GPU has capability (7, 5) (too old)
    dtype=torch.float32 (supported: {torch.bfloat16, torch.float16})
    operator wasn't built - see `python -m xformers.info` for more info
    `cutlassF` is not supported because:
    xFormers wasn't build with CUDA support
    operator wasn't built - see `python -m xformers.info` for more info
    `smallkF` is not supported because:
    max(query.shape[-1] != value.shape[-1]) > 32
    xFormers wasn't build with CUDA support
    operator wasn't built - see `python -m xformers.info` for more info
    unsupported embed per head: 512

    ChatGPTによるログと日本語解説はこちら

    https://chatgpt.com/share/41ae4cbb-74ce-4e72-8851-42d1698f8bf0

    なお、xFormersとは、Facebook Research (Meta)がオープンソースソフトウェアとして公開しているPyTorchベースのライブラリで、Transformersの研究を加速するために開発されたものです。xFormersは、NVIDIAのGPUでのみ動作します。NVIDIAのGPUを演算基盤として動作させるためのCUDAやそのビルド時のバージョンをしっかり管理する必要があります。
    https://github.com/facebookresearch/xformers

    【関連】PyTorchとCUDAバージョンエラーの警告について

    実はPyTorchとCUDAバージョンエラーの警告も出ています。

    PyTorch 2.2.1+cu121 with CUDA 1201 (you have 2.3.0+cu121)
    Python 3.10.13 (you have 3.10.12)

    AUTOMATIC1111のインストールマニュアルによると
    https://github.com/AUTOMATIC1111/stable-diffusion-webui

    Install Python 3.10.6 (Newer version of Python does not support torch), checking “Add Python to PATH”.
    Python 3.10.6をインストールし、”Add Python to PATH “をチェックする。

    とありますが、実際にGoogle Colab上でデフォルトで動作しているPythonは現在、Python 3.10.12です(!python — version で確認できます)。
    Python3.10.6が推奨なので、だいぶ後続のバージョンを使っていることになります。この問題はGoogle Colab上でのPythonのメジャーバージョンに関する問題で、関係はありますが、文末で解説します。

    AICU版の原作となったTheLastBenさんのリポジトリでも同様の問題がレポートされています。

    Xformers Google Colab ERROR · Issue #2836 · TheLastBen/fast-stable-diffusion

    Getting Error in the last cell during the launch: WARNING[XFORMERS]: xFormers can’t load C++/CUDA extensions. xFormers…

    github.com

    Google Colabが xformers や JAX といった関連ライブラリを更新してしまうことが問題の根幹でもありますので不具合報告を Google Colab 側にも入れておきます。

    Python and xformers version conflict · Issue #4590 · googlecolab/colabtools

    Describe the current behavior I’m Google Colab Pro+ user and using TheLastBen’s Automatic1111 (A1111) frequently…

    github.com

    【解決】とりいそぎの回避方法

    Start Stable-Diffusionの手前にセルを追加して、以下のコードを入れて実行してください。これで問題の xformersをアンインストールし、解決したバージョンの xformers を再インストールできます。

    #@markdown ### xformers の再インストール(v20240522)
    !python --version
    !yes | pip uninstall xformers
    !pip install xformers

    この「xformers 0.0.26.post1」がインストールされていれば、問題なく動作するはずです。

    【補足】Google ColabのPythonはいつまで現行のバージョン3.10.xなのか

    ところで、いい機会なので Google Colab上でのPythonはいつまで現行のバージョンなのか、調べてみました。実は2024年4月にPython自体のメジャーバージョンアップが予定されているようです。
    https://colab.google/articles/py3.10

    colab.google

    Colab Updated to Python 3.10 With the upgrade to Python 3.10, it brings Colab into alignment with the cadence of final…

    colab.google

    Python 3.10 へのアップグレードにより、Colab はPython バージョン最終的な定期的なバグ修正リリースペースに合わせられます。 Python の次のバージョン (3.11) は、2024 年 4 月に最終的な定期バグ修正リリースが予定されています。

    最終リリースとなる Python3.11.9 は2024年4月2日にリリースされているので、実はもういつ移行してもおかしくない時期なんですね…これはAUTOMATIC1111ユーザーにとってはたいへん重要なアップデートとなります。いきなり使えなくなるのは困るのでGoogle Colab上での切り替えも用意されると良いですね…。
    Google Colab上での賢い方法を期待しつつ、さいごにPythonのメジャーバージョンのロードマップをチェックしておきましょう。

    https://devguide.python.org/versions

    Status of Python versions

    The main branch is currently the future Python 3.13, and is the only branch that accepts new features. The latest…

    devguide.python.org

    Python3.10は2026年中、Python3.11は2027年に終了(end-of-life ; EOL)が宣言されています。

    AICU Inc.は生成AI時代のつくる人をつくるとともに、オープンソースソフトウェアや日本語コミュニティへの貢献を常に行っています。

    書籍なのに最新のオープンソースソフトウェアがアップデートされる、
    新感覚の画像生成AIの教科書「画像生成AI Stable Diffusion スタートガイド」の購入はこちらから! https://j.aicu.ai/SBXL

    書籍[画像生成AI Stable Diffusionスタートガイド] – つくる人をつくる AICU Inc.
    著者:AICU media、白井 暁彦 発売日:2024年3月29日(金) ISBN:978-4-8156-2456-9サイズ:B5判 ページ数:224定価:2,640円(本体2,400円+10%税) 画像生成AIの1つであるStable…

    ja.aicu.ai

    Originally published at https://note.com on May 22, 2024.

  • 日報を画像生成でバエさせる #10分で学べるAI

    日報を画像生成でバエさせる #10分で学べるAI

    新企画「#10分で学べるAI」

    「つくる人をつくる」AICU新人ライターのNaruです。初の原稿となる今回は、Stability AIが提供しているStable Diffusion 3 APIを用いた画像生成ついて、忙しいビジネスパーソンがめっちゃ使えそうなテクニックを #10分で学べるAI というシリーズで紹介していきたいと思います。

    今すぐ終業、でもバエる絵が見つからない…。

    「提案書や日報にバエる、インパクトがある画像がほしいな…」と思ったこと、ありませんか?でもライセンスフリーの画像検索では画像的にも著作権的に微妙…有料のストックフォトを日報に使うなんて予算がない…そんなあなたに送る、画像生成テクニックです。

    <設定>新入社員のSくん
    新人研修ももうすぐ終わり…毎日の日報もネタがつきてきました。今すぐスライドのトップページに16:9の画像を付け足して、BOSSに送りつけて帰宅したい…!でも検索しても検索してもバエる絵が見つからない…!

    ふと某ChatGPT 4oさんにお願いしてみました。
    「今日の日報に使える16:9のバエる画像がほしい」

    うーん、ちょっと、微妙すぎやしませんか。ここは日本ですし。

    ちなみに今日は飛び込み営業で、 日焼けした27歳の元気なスタートアップ企業の社長さんにお会いしました。というレポートしたいので、そんな感じの絵を作りたかったのです。

    そしてBOSSから注文が入りました。

    「今日の日付を入れて」

    いま16時30分ですよ?

    出来上がった画像がこれです。

    念の為、ソースコードへのリンクがあったので確認してみました。

    from PIL import Image, ImageDraw, ImageFont
    import matplotlib.font_manager as fm
    
    # Load the image
    image_path = "/mnt/data/A_vibrant,_eye-catching_image_for_a_daily_report,_.png"
    image = Image.open(image_path)
    
    # Define the date text
    date_text = "2024年5月20日"
    
    # Get a font
    # Using a default font as an example
    font_path = fm.findSystemFonts(fontpaths=None, fontext='ttf')[0]
    font = ImageFont.truetype(font_path, 40)
    
    # Initialize ImageDraw
    draw = ImageDraw.Draw(image)
    
    # Define the text position and color
    text_position = (image.width - 300, image.height - 70)
    text_color = (255, 255, 255)  # White color
    
    # Add the date text to the image
    draw.text(text_position, date_text, font=font, fill=text_color)
    
    # Save the edited image
    output_path = "/mnt/data/A_vibrant_image_with_date.png"
    image.save(output_path)
    
    output_path

    ちがう!僕がやりたいのはこういうことじゃない…!

    僕が作りたいのは、こういうインパクトがある絵です。

    ギラッギラです

    ギラッギラなカバーアートでぜひともBOSSに読んでもらいたい!
    ですが、
    必要な知識は AICU media の過去記事だけで十分でした。
    非エンジニアでも大丈夫、コーディングはゼロ、絵心もゼロです。
    さて作っていきましょう。

    必要なもの

    • Google Colab(無料アカウントでOK)
    • Stability AI のアカウント

    Stability AIのアカウントを持っていない人は https://platform.stability.ai/ にアクセスすると作成できます。

    右上からアカウントを作成できます

    セットアップしよう

    APIキーを取得する

    まずはGoogle Colabで呼び出すためのAPIキーを用意しましょう。

    https://platform.stability.ai/account/keys

    https://platform.stability.ai/account/keys にアクセスするとAPIの管理画面に行くことができます。

    ここでAPIキーを発行できます

    右上にあるCreate API Key というボタンを押すと新しくAPIキーが発行されます。
    なおAPIの呼び出しにはクレジットを使うので不足した人は適宜追加をしてください。

    クレジットはDreamStudioと共通です。10ドルは僕の時給よりも安いです。

    Colabでプログラムを実行する

    今回は実行に必要なPythonコードをアナタのために限定で用意しました。
    日本語解説付きです。

    https://colab.research.google.com/drive/1mc1iQyIDT7FTO74SWcGqqHItUr9nkIC8?usp=sharing

    GitHubは こちら ✨️現在はGitHubに バグ があるのでひと手間あります。

    このColabを開いたら、まずは「ドライブにコピー」のボタンを押してからはじめのコードを▶を押して実行しましょう。

    ドライブにコピーをお忘れなく
    これで必要なライブラリをインポートできます

    次のコードを実行して、取得したAPIキーを入力します。

    実行すると入力画面が現れます

    最後のコードで画像生成の機能を準備します。

    モデルをColab上に用意しないので非常に速いです

    これで画像を生成する準備ができました!


    実際に生成してみよう

    いよいよ画像の生成に取り掛かります。
    下にスクロールするとプロンプトの入力画面があるので[prompt]に生成したい画像を入力し、実行します。

    ここまで正しくできていれば ▶ を押すたびに画像が生成されます。

    文字までしっかりと生成されました!
    ※日本語はまだ書けないっぽいです。

    さて日報のカバーイラスト作っていきます

    ここまでの部分は何度でも再利用できます。
    今日の日報も明日の日報も今週末の日報も、これでイケるって寸法です。

    今日の飛び込み営業で体験した日焼けした27歳の元気なスタートアップ企業の社長さんというレポートにふさわしいカバーイラストを作りましょう。

    [Prompt]にプロンプトを入力しますが、英語で入力する必要があります。
    ここは大人しくDeepLを使いましょう、早く退勤しないとなので。

    https://www.deepl.com/ja/translator/l/ja/en-US

    日報の表紙イラスト、日焼けした27歳の元気な日本人社長のマンガ。右下に「5/20th」の文字。

    Cover illustration of the daily bulletin, a manga of a Japanese president tanned, energetic 27-year-old man, With the words “May/20th” in the lower right corner.

    prompt: Cover illustration of the daily bulletin, a manga of a Japanese president tanned, energetic 27-year-old man, With the words “May/20th” in the lower right corner.

    negative_prompt: NSFW

    aspect_ratio: 16:9

    output_format: png

    こんな感じに入力して▶を押します。

    気に入る画像になるまで、何度でも押しましょう。数秒で生成されます。
    SD3は実写も綺麗ですが、イラストレーションとか漫画も得意です。
    美少女っぽいのもめちゃ良いですが、オジサンが好きそうな絵も作れます。

    どやっ!

    どやっ!

    ちょうどイメージぴったりです!
    このカバーアートに続くレポートの本文にはもちろん、この若くて何か大きなことをしでかしそうな社長さんへの提案が記載されています。
    きっとBOSSも興味を持って読んでくれることでしょう!

    明日からはこの[Prompt]を書き換えるだけです!やったぜ

    10分でできましたか?

    今回はここで終わります。また次回もぜひ読んでください!

    なおStable Diffusion 3 APIの技術詳細についてはこちらで紹介しているのでぜひ読んでくださいね~。

    https://note.com/aicu/n/n838bf71a361f

    https://note.com/aicu/n/ne2fe8a0073b0


    ✨️以上のように業務で仕事でパッと使える画像生成を社内やサービスに導入したい、使いこなせる社員をパッと育成したい!そんな需要がございましたら sai@aicu.ai までどうぞご相談ください。

    本記事が面白かったら、ぜひシェアをよろしくお願いいたします!
    社内Slack等のシェアでも歓迎です。
    また「こんな記事欲しい」といったリクエストがございましたら X@AICUai までメンションやDMでいただければ幸いです。

    AICU Inc.は Stability AI 公式パートナーです。
    様々なアプリ開発のご相談も承っております!

    https://corp.aicu.ai/ja/stability-ai

    https://corp.aicu.ai/ja/stability-ai-membership

    Originally published at https://note.com on May 20, 2024.

  • Stability AI、日本語大規模言語モデル「Japanese Stable LM 2 1.6B」を発表。Google Colabのシークレット機能で短いコードを書いてみよう!

    Stability AI、日本語大規模言語モデル「Japanese Stable LM 2 1.6B」を発表。Google Colabのシークレット機能で短いコードを書いてみよう!


    2024年5月9日(日本時間)、Stability AIから新たな日本語大規模言語モデル「Japanese Stable LM 2 1.6B」がリリースされました。

    モデルのサイズも小さく性能も高いLLMです。比較的シンプルな環境で動作しそうです。今回の記事は特殊な環境が不要なGoogle Colabで、最新のサンプルを、非常に短いコードで実験できることを確認したので紹介していきます。

    まずは Stability AI 公式リリースから

    https://ja.stability.ai/blog/japanese-stable-lm-2-16b

    🎉日本語特化の言語モデル「Japanese Stable LM 2 1.6B」をリリースしました🎉

    Japanese Stable LM 2 1.6B(JSLM2 1.6B)は16億パラメータで学習した日本語の小型言語モデルです。
    こちらのモデルはStability AI メンバーシップにご加入いただくことで商用利用が可能です。

    詳細はこちら💁‍♀️… pic.twitter.com/b35t2Il4lm

    – Stability AI Japan (@StabilityAI_JP) May 9, 2024

    • Japanese Stable LM 2 1.6B(JSLM2 1.6B)は16億パラメータで学習した日本語の小型言語モデルです。
    • JSLM2 1.6Bのモデルサイズを16億パラメータという少量にすることによって、利用するために必要なハードウェアを小規模に抑えることが可能であり、より多くの開発者が生成AIのエコシステムに参加できるようにします。
    • ベースモデルとしてJapanese Stable LM 2 Base 1.6Bと、指示応答学習(Instruction tuning)済みのJapanese Stable LM 2 Instruct 1.6Bを提供します。両モデルとも Stability AI メンバーシップ で商用利用が可能です。また、どちらのモデルもHugging Faceからダウンロードすることができます。

    Stability AI Japanは16億パラメータで学習した日本語の言語モデルJapanese Stable LM 2 1.6B(JSLM2 1.6B)の ベースモデル指示応答学習済みモデルをリリースしました。ベースモデルの学習ではWikipediaやCulturaX等の言語データを利用、指示応答学習では jasterIchikara-Instruction 、Ultra Orca Boros v1の日本語訳等、商用データおよび公開データを利用しました。今回のJSLM2 1.6Bでは言語モデリングにおける最新のアルゴリズムを活用し、適度なハードウェアリソースで迅速な実験を繰り返すことを可能にし、スピードと性能を両立しました。

    性能評価

    Nejumiリーダーボードを用いて、他の小規模パラメータのモデルと比較したJSLM2 1.6Bの性能は以下のとおりです。今回は llm-leaderboard(の社内Fork)のcommit c46e165 を用いています。

    (サイズが)16億パラメータという小型モデルでありながら、40億パラメータ以下のモデルのスコアよりも高いスコアを達成し、70億パラメータのモデルに近いスコアを獲得しています。

    高性能な小型言語モデルをリリースすることで、言語モデル開発の敷居を下げ、より高速に実験を反復することを可能にします。なお、少ないパラメータ数の小型モデルであるため、より規模の大きいモデルで発生しうるハルシネーションや間違いをおかす可能性があります。アプリケーションでのご利用の際には適切な対策を取るようご注意下さい。JSLM2 1.6Bのリリースを通じて、日本語LLMのさらなる開発と発展に貢献できると幸いです。

    商用利用について

    JSLM2 1.6Bは Stability AI メンバーシップで提供するモデルのひとつです。商用でご利用したい場合は、 Stability AIメンバーシップページから登録し、セルフホストしてください。

    Stability AI の最新情報は 公式XInstagram をチェックしてください。

    (以上、公式リリース情報終わり)

    Google Colabで実際に使ってみる

    それでは早速Google Colabで体験していきましょう。
    基本は 公式のサンプルコードに従って、Google Driveで新規作成→Google Colab Notebookで構築していきます。
    (完動品のコードへのリンクはこの記事の最後に紹介します)
    Google ColabはGPUや搭載メモリサイズなどを気にしなくて良いので気軽に学習環境として試すことができます。

    以下は公式のサンプルコードです。

    import torch
    from transformers import AutoTokenizer, AutoModelForCausalLM

    model_name = "stabilityai/japanese-stablelm-2-instruct-1_6b"
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

    # The next line may need to be modified depending on the environment
    model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype=torch.float16,
    low_cpu_mem_usage=True,
    device_map="auto",
    trust_remote_code=True,
    )

    prompt = [
    {"role": "system", "content": "あなたは役立つアシスタントです。"},
    {"role": "user", "content": "「情けは人のためならず」ということわざの意味を小学生でも分かるように教えてください。"},
    ]
    inputs = tokenizer.apply_chat_template(
    prompt,
    add_generation_prompt=True,
    return_tensors="pt",
    ).to(model.device)

    # this is for reproducibility.
    # feel free to change to get different result
    seed = 23
    torch.manual_seed(seed)

    tokens = model.generate(
    inputs,
    max_new_tokens=128,
    temperature=0.99,
    top_p=0.95,
    do_sample=True,
    )

    out = tokenizer.decode(tokens[0], skip_special_tokens=False)
    print(out)


    リポジトリへの利用申請

    まずは下準備として、HuggingFaceでアカウント作成し、 モデルカード からStability AIリポジトリへの利用申請、以下の質問に答えましょう。

    大事なポイントは最後のメールニュースの受信のためのメールアドレスを入れることですね。

    ✨️なお AICU は Stability AI 商用メンバーです✨️

    利用申請が承認されていると、上のフォームは表示されず、「Gated model」と表示されます。

    Google Colabのシークレット機能

    Google ColabとHuggingFaceに最近実装された機能なのですが、左側の「シークレット」から「HF_TOKEN」という環境変数を指定します。

    環境変数、ファイルパス、またはキーを保存することにより、コードを構成することができます。ここに保存される値は非公開であり、ユーザ自身と選択したノートブックにのみ表示されます

    「+新しいシークレットを追加」を押します

    並行して、HuggingFaceの「Settings」>「Access Tokens」でトークンを作りましょう。
    https://huggingface.co/settings/tokens

    「Colab-HF_TOKEN」という名前をつけて、権限は「WRITE」をONにします(READだけでも動きますが、 HuggingFace推奨はWRITE)。
    取得したユーザーアクセストークン(hf_で始まる文字列)を「HF_TOKEN」の「値」に貼り付けます。
    「ノートブックからのアクセス」をONにします。

    これで
    token = userdata.get(‘HF_TOKEN’)
    と書くだけで、HuggingFaceのトークンが参照できます。

    もちろん、Pythonスクリプトに直書きしたいひとは
    token=”(あなたのHugginFaceトークン)”
    もしくは
    !huggingface-cli login — token $token 
    でも動くと思います!

    スクリプトを起動

    https://j.aicu.ai/JSLM2B16B

    コードはこちらです

    吾輩は猫である、名前は…
    Setting `pad_token_id` to `eos_token_id`:100257 for open-end generation.
    吾輩は猫である、名前は…まだない。 そもそも「名前を付ける必要があるのか?」 それを考えるのに、10歳を目前にしている吾輩である。 しかし、他の猫達との差別化という意味では、あった方が良いとも思うし、なんせ名前があるという安心感から、猫は猫らしく、自由気ままにやりたい

    Colabは動作環境を選べるのですが、CPUでの実行だとでだいたい1分以下で生成されます。

    吾輩は猫である、名前は…名無しである。 名前はない。 何故なら、吾輩は名前を言いたくないのだ。 それを、そのことを知っている奴らが「名無し」と呼ぶのである。 そいつらを、「名付き」の奴らと呼ぼう。 吾輩が名無しと呼ばれるのは「何も持っていないから」である。 何も持っていないから、それ

    吾輩は猫である、名前は… といえるほど、名前が思い浮かばないのは、私だけでしょうか? そうは言っても、「猫じゃらし」は、その場によって名前のバリエーションがたくさんありますよね。 そういう「猫じゃらし」が持つ、イメージとか、意外な性格とか、飼い猫のネコじゃらしの場合を

    吾輩は猫である、名前は…まだないのである。 ここは、吾輩が住み慣れた部屋、何も特徴のないところだ。 場所は不確かだが、とにかく部屋だけはここになって、ずっとこの部屋で暮らしているのだ。 なんでこんなことを言っているかというと、吾輩の部屋が消えて、別…

    続いてT4 GPUで実行してみました。
    4–5秒で以下のテキストが生成されました。

    途中で、Do you wish to run the custom code? [y/N] が表示されたら、y を押してEnterキーで入力してください(環境によるようです)。

    GPUのメモリ(GPU RAM / VRAM)は7.7GBと、標準的なゲーミングPC2搭載されている8GB以下でも動きそうです。

    Setting `pad_token_id` to `eos_token_id`:100257 for open-end generation.というワーニングが表示されますが、これは このあたりの 情報を見ながら実際の設定を作っていくと良さそうです。

    GUIでチャットボットを試したい方は Instruct版を試してみよう!

    時同じくして、アドボケーター仲間のDELLさんが Japanese Stable LM 2 Instruct 1.6B の Google Colab版コードを公開してくれています。

    Gradioインタフェースで日本語チャットを楽しめます!

    まとめ

    以上、Stability AIが公開した最新の日本語大規模言語モデル「Japanese Stable LM 2 1.6B」をGoogle Colabのシークレット機能で短いコードを書いてみました。Google Colabでの環境も今回のシークレット機能の他にもTransoformersが標準搭載になったりしていますので、いきなりローカル環境で試すよりも良いことがいっぱいありそうですね!

    AICU mediaでは日本語LLMについての実験的な話題も増やしていきたいと思います。ぜひフィードバックやシェア、X(Twitter)でのコメントなどいただければ幸いです。
    腕だめしをしたいライターさんや学生インターンも引き続き募集中です。


    Originally published at https://note.com on May 9, 2024.