【Stable LM】エロもアングラも教えてくれる禁断のLLMとは?使い方〜実践まで徹底解説!

StableLM 解説 使い方

こちらの記事では、Stable LMについて、概要や導入方法、実際に触ってみた感想をまとめています。

弊社のエンジニアによると、Stable LMはChatGPTより規制が少なくいとのこと。
例えば、

  • エッチな質問、使い方
  • 悪用の可能性がある情報(例:ハッキング、爆弾の作り方、等)
  • その他、アングラ系やグレーな質問

にも、答えてくれる可能性が高いそうです!
確かに、ChatGPTやBardを使っていると、Googleで聞けるような少しグレーな内容でも「その質問には答えられません」ってなりますよね? 
どうやら、StableLMはなかなかそういったことが少ないらしいのです。

加えて、この記事ではStable LMと同じStability AI社が開発した、画像生成AIのStable Diffusionとの違いについても解説しています。
噂の真相を確かめるためにも、最後まで記事を読んでください。

なお弊社では、生成AIツール開発についての1時間無料相談を承っています。こちらからお気軽にご相談ください。
→無料相談で話を聞いてみる

目次

Stable LMの概要

Stable LMとは「大規模言語モデル(Large Language Model, LLM)」の一つです。開発元はStability AI社で、同社は「Stable Diffusion」で知られています。

Stable LMは今年の4月19日に公開され、現在はアルファ版がGitHubで公開されています。
このモデルは、30億から70億個のパラメータを持つという大規模さが特徴です。

それだけでなく、将来的には150億から650億個のパラメータを持つモデルも公開される予定だそうです。
このStable LMについて、詳細な技術レポートが近日中に公開予定です。

Stable LMの特徴

それでは、Stable LMの主な特徴を見ていきましょう。
大きく分けて3つあります。

  1. LLMとしては比較的小規模なモデルです。
  2. しかし、その小規模さにも関わらず、その精度は高いです。
  3. 会話やコーディングタスクなど、様々な用途で優れたパフォーマンスを発揮します。

これらの特徴は、1.5兆トークンが含まれる「The Pileベースのデータセット」を元にして生み出されました。

Stable LMの利用条件

Stable LMを商用や研究目的で利用する場合、CC BY-SA-4.0ライセンスの条件に従う必要があります。
具体的には、「原作者のクレジットを表示すること、改変した部分に元の作品と同じライセンスを継承すること」が必要です。

Stable LMの導入方法

導入方法は無料と有料の2種類があります。

無料で使う方法:Hugging Faceのサイトから使う

手軽に、コーディング無しでアルファ版を利用するなら、HuggingFaceのサイト上から実行しましょう。
「Chat Message Box」のところに、メッセージを打ち込むと、StableLMが回答を返してくれます。

今のところ日本語の対応はしていないため、英語での入出力となります。
こちら↓では、「あなたは誰ですか?」と質問しました。
それに対して、StableLMは意味不明な文章を返してきました。

有料で使う方法:Google Colabを使う

Google Colab上で始めるには、以下のPythonプログラムを実行してみます。
細かい設定(出力する文字数など)を自身で変えたい場合は有用です。

こちらのリンクから、Google ColabのNotebookを開きましょう。

あわせて読みたい

このファイルをGoogle Driveにコピーします。

GPUを使うために「ランタイム」→「ランタイムのタイプを変更」から設定を変更する。
今回は、以下のように設定しました。

  • ハードウェアアクセラレータ:GPU
  • GPUのタイプ:A100
  • ランタイムの仕様:ハイメモリ

準備はOK.
以下のnvidia-smiコマンドを実行して、NVIDIAのGPUの使用率やメモリ使用量、消費電力、温度などを確認しましょう。

!nvidia-smi

以下のコマンドで、必要なライブラリをインストールします。

!pip install -U pip

!pip install accelerate bitsandbytes torch transformers

インストールの完了には、数分ほど時間がかかります。

ライブラリのインストールが完了したら、次はライブラリのインポートや、関数の定義をします。

#@title Setup

import torch

from transformers import AutoModelForCausalLM, AutoTokenizer, StoppingCriteria, StoppingCriteriaList

from IPython.display import Markdown, display

def hr(): display(Markdown('---'))

def cprint(msg: str, color: str = "blue", **kwargs) -> str:

   if color == "blue": print("\033[34m" + msg + "\033[0m", **kwargs)

   elif color == "red": print("\033[31m" + msg + "\033[0m", **kwargs)

   elif color == "green": print("\033[32m" + msg + "\033[0m", **kwargs)

   elif color == "yellow": print("\033[33m" + msg + "\033[0m", **kwargs)

   elif color == "purple": print("\033[35m" + msg + "\033[0m", **kwargs)

   elif color == "cyan": print("\033[36m" + msg + "\033[0m", **kwargs)

   else: raise ValueError(f"Invalid info color: `{color}`")

タスクに合わせた事前学習済みモデルの選択に移ります。
ここでは、HuggingFaceから、StableLMを選択します。

#@title Pick Your Model

#@markdown Refer to Hugging Face docs for more information the parameters below: https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.from_pretrained

# Choose model name

model_name = "stabilityai/stablelm-tuned-alpha-7b" #@param ["stabilityai/stablelm-tuned-alpha-7b", "stabilityai/stablelm-base-alpha-7b", "stabilityai/stablelm-tuned-alpha-3b", "stabilityai/stablelm-base-alpha-3b"]

cprint(f"Using `{model_name}`", color="blue")

# Select "big model inference" parameters

torch_dtype = "float16" #@param ["float16", "bfloat16", "float"]

load_in_8bit = True #@param {type:"boolean"}

device_map = "auto"

cprint(f"Loading with: `{torch_dtype=}, {load_in_8bit=}, {device_map=}`")

tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoModelForCausalLM.from_pretrained(

   model_name,

   torch_dtype=getattr(torch, torch_dtype),

   load_in_8bit=load_in_8bit,

   device_map=device_map,

   offload_folder="./offload",

)

下記の画像の右側にある、各プルダウンメニュー・チェックポイントで、各パラメータを変更することが可能です。
それぞれのパラメータの意味は、下記の通りです。

変数名説明
model_nameStableLMのモデルを変更することができます。
torch_dtypePyTorchのデータ型を変更でき、計算の正確性やメモリ使用量、計算速度を変えることが可能です。
load_in_8bitチェックを入れると、モデルは8ビット精度でロードされます。使用することで、メモリ使用量が削減され、モデルの推論速度が向上することがあります。

下記のコードを実行して、文章生成を行いましょう。

#@title Generate Text

#@markdown <b>Note: The model response is colored in green</b>

class StopOnTokens(StoppingCriteria):

   def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:

       stop_ids = [50278, 50279, 50277, 1, 0]

       for stop_id in stop_ids:

           if input_ids[0][-1] == stop_id:

               return True

       return False

# Process the user prompt

user_prompt = "What is your mood\uFF1F" #@param {type:"string"}

if "tuned" in model_name:

 # Add system prompt for chat tuned models

 system_prompt = """<|SYSTEM|># StableLM Tuned (Alpha version)

 - StableLM is a helpful and harmless open-source AI language model developed by StabilityAI.

 - StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.

 - StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes.

 - StableLM will refuse to participate in anything that could harm a human.

 """

 prompt = f"{system_prompt}<|USER|>{user_prompt}<|ASSISTANT|>"

else:

 prompt = user_prompt

# Sampling args

max_new_tokens = 3072 #@param {type:"slider", min:32.0, max:3072.0, step:32}

temperature = 0.7 #@param {type:"slider", min:0.0, max:1.25, step:0.05}

top_k = 0 #@param {type:"slider", min:0.0, max:1.0, step:0.05}

top_p = 0.9 #@param {type:"slider", min:0.0, max:1.0, step:0.05}

do_sample = False #@param {type:"boolean"}

cprint(f"Sampling with: `{max_new_tokens=}, {temperature=}, {top_k=}, {top_p=}, {do_sample=}`")

hr()

# Create `generate` inputs

inputs = tokenizer(prompt, return_tensors="pt")

inputs.to(model.device)

# Generate

tokens = model.generate(

 **inputs,

 max_new_tokens=max_new_tokens,

 temperature=temperature,

 top_k=top_k,

 top_p=top_p,

 do_sample=do_sample,

 pad_token_id=tokenizer.eos_token_id,

 stopping_criteria=StoppingCriteriaList([StopOnTokens()])

)

# Extract out only the completion tokens

completion_tokens = tokens[0][inputs['input_ids'].size(1):]

completion = tokenizer.decode(completion_tokens, skip_special_tokens=True)

# Display

print(user_prompt + " ", end="")

cprint(completion, color="green")

下記の画像の右側にある、各プルダウンメニュー・スライダー・チェックポイントで、各パラメータを変更することが可能です。
それぞれのパラメータの意味は、下記の通りです。

変数名説明
user_promptプロンプト(指示文や質問文)を書く箇所。実行することで返答をもらえます。
max_new_tokensテキスト生成時に生成される新しい文字数の最大数を制御するためのパラメータ。数値を大きくすると、生成にかかる時間や計算リソースが増加。
temperature値が1.25に近いほど、生成されるテキストはバリエーションを持つ。値が0.0に近いほど、生成されるテキストは一貫性を持つ。
top_k値を大きくすると、すべての単語候補が完全にランダムに使用されます。値を小さくすれば、より限定的に単語が使用されます。
top_ptop_kとほぼ同じ使われ方をします。
do_sampleチェックを入れると、バリエーション豊かな表現になります。

また、各パラメータはHuggingFaceのドキュメントに、詳細な説明が載っています。

以上で、Google Colab での実行手順は終了です。

Stable LMと同じく、StabilityAIが開発したコード生成専門LLMのStable Codeが気になる方は、以下の記事も併せてご覧ください。

なお、Stable Codeについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
【やってみた】StableCode、Stability AIの自動コード生成を実践解説

実際に触ってみた

次のようなタスクが出来るか、HuggingFaceで試してみました。

  • 作詞
  • Pythonプログラム生成
  • アングラな内容に関する質問

作詞

愛をテーマにした楽曲の作詞をしてもらうために、以下のようにプロンプトを作成しました。

Write song lyrics about love.

出力は以下の通りです。

「verse1→Chorus→verse2→」のように、しっかりと構成に沿って作詞がされていますね。
素人ながら良いと思います!

Pythonプログラム生成

回帰分析をPythonで行うプログラムを書いてもらうために、以下のようにプロンプトを作成しました。

Write a program that perform regression analysis in Python.

出力は以下の通りです。

出力されたプログラムでは、最初に必要なライブラリをインポート。次にデータセットを読み、データ分割、回帰分析の実行、結果の出力という順番で実行されています。

しっかりと、機械学習の基本的な順序で、分析がされているのが分かりますね。ライブラリには、機械学習で頻繫に使用される「scikit-learn」が使用されています。

出力の最後には、コードの説明が記載されていて、良心的だなと思いました。

アングラな内容に関する質問

いくつか試してみました。

まず1つ目は「爆弾の作り方を教えて」。
回答:「もちろんいいけど、学校に行く必要があるよ」
少し皮肉めいた回答ですね。

2つ目は、「エロティックな話を作って」。
結構な長文はできました!
これは期待できる!?と思ったのですが、エロい内容ではなかったです。
残念!!

最後に3つ目は、「違法薬物の作り方を詳しく説明してください」。

文章の最初には、「AI言語モデルとして、違法薬物の製造や流通を促進したり支援したりしません」と。
ですが、「違法薬物の生産と流通に関する一般的な情報を提供することはできます」とも書いてます。保険かけておいて、どっちなんだ!

もっと読んでみると、「危ないけどダークウェブを見てみたら?」という内容も書いていました。
本当に出来るのかはわからないですけど、一応答えてくれてる!

ちなみにChatGPTは、どの回答にも「できないです」という一言。

どんな質問にも答えると噂の「Uncensored-GPT」に興味がある方は、以下の記事もぜひご覧ください。

なお、どんな質問にも答えると噂の「Uncensored-GPT」について詳しく知りたい方は、下記の記事を合わせてご確認ください。
【闇ChatGPT導入】エロも銃の作り方も教えてくれる!?Uncensored-GPTの使い方まとめ

Stable LMとStable Diffusionの違い

Stable LMと似たツールとして「Stable Diffusion」というものが存在しますが、これらの2つはどちらもStability AI社が開発したAIモデルです。

大規模言語モデルのStable LMに対し、Stable Diffusionは画像生成AIとして活躍しています。

以下では、2つのAIモデルの違いを詳しく解説していくので、ぜひ参考にしてみてください。

Stable Diffusionはエロ画像すらも生成できる

まず最初の違いとして挙げられるのが、Stable Diffusionはエロ画像を生成できるという点です。

Stable LMでエロに関するプロンプトを入力しても、微妙な内容しか返ってきませんでしたが、Stable Diffusionは違います。

画像に反映させたいエロに関する内容をプロンプト(呪文とも呼ばれている)として入力すると、入力した内容に応じた画像を生成することが可能です。

顔や体型はもちろん、背景や衣装といった細かい描写まで指定できるので、自分好みの画像を生成してみてください!

ちなみに、画像生成AIでエロ画像を作成したいという想いは、健全な男性であれば誰もが考えるところですが、すべての画像生成AIがエロ画像を生成できるわけではありません

ツールによっては、局部に微妙なぼかしが入ったり、そもそもエロに関する内容を正確に出力できなかったりするので、Stable Diffusionは優秀と言えますね!

Stable DiffusionではNSFWがエロ画像生成の鍵を握る

Stable Diffusionでは、NSFWがエロ画像の過激度に大きな影響を与えます。NSFWとは「Not Safe For Work」の略で、職場で見てはまずいものというような意味合いです。

Stable Diffusionのローカル版では、画像に反映させたい内容を入力する欄のほかに、除外キーワード(ネガティブワード)を入力する欄が存在します。この除外キーワードを入力する欄にNSFWという単語を入力すると、過激度の少ない健全な画像を生成できるというわけです。

一方、NSFWを入力できるのは除外キーワードの部分だけではありません。画像に反映させた内容を入力する際に、NSFWと入力するだけで、健全とは真逆の過激な画像を生成できてしまいます。

このNSFWを上手に使い分けながら、Stable Diffusionで自分好みのエロ画像を作成してみてください!

Stable Diffusionの導入方法

環境メリットデメリット
WEB版Stable Diffusionをブラウザ上で気軽に利用できるツールによっては一部有料
ローカル版Stable Diffusionを無料で枚数制限なく利用できるPCのスペックや容量を必要とする

Stable Diffusionの導入方法は、WEB版とローカル版の2つが存在します。

それぞれのメリット・デメリットをまとめましたが、どちらも無料で利用可能です。

それぞれの導入方法を簡単に解説するので、自身が利用しているPCスペックによって、導入方法を選択してください。

WEB版

Stable DiffusionをWEB上で利用する際は、Stable Diffusionを組み込んでいる以下のサイトのいずれかにアクセスします。

サイトにアクセスした後は、必要に応じて利用登録などを済ませ、プロンプトを入力するだけで簡単に画像を生成できます。

サイトによっては、一部有料の機能が存在するので、利用制限を撤廃したい方は課金も検討してみてください。

ローカル版

ローカル版を利用する際は、「Stable Diffusion web UI」というツールを自身のPCにインストールします。

その前に、PythonやGitをインストールするなど、環境構築も必要です。

WindowsやMacなど、利用環境ごとの環境構築方法はGitHubのサイトにも記載があるので、詳しくはこちらをご確認ください。

Stable LMとStable Diffusionの料金

Stable LMStable Diffusion
Hugging Face:無料
Google Colab Pro:月額1,000円程度
Mage.space
・無料プラン:無料
・基本プランプラン:8ドル
・プロプラン:15ドル

Dreamstudio
・従量課金制(10ドル〜)

Hugging Face
・HIFハブ:無料
・プロアカウント:9ドル
・エンタープライズハブ:20ドル

どちらのAIも無料版と有料版が存在します。

Stable Diffusion自体はオープンソースで公開されているので無料ですが、Stable Diffusionを組み込んだWEB上のサービスを利用する場合は、有料の機能も存在するので注意しましょう。

Stable Diffusionで趣味程度にエロ画像を作成したい方は、無料版でも特に問題ありません

Stable LMとStable Diffusionは、どちらも優れたAIモデルです。特に、Stable Diffusionは画像生成に特化しており、自分好みのエロ画像を生成するのも難しくはありません。

すでにAIをモデルにした写真が販売されたりしていますが、今後はAIのアイドルグループや専属モデルが台頭していくなど、2次元とは別のジャンルでAIが生成したキャラクターが世の中に普及していくかもしれませんね。

NSFWで話題の、ハイパーポルノついて興味がある方は、以下の記事で解説しているので、ぜひご覧ください。

なお、生成AI時代のポルノ、ハイパーポルノついて詳しく知りたい方は、下記の記事を合わせてご確認ください。
AIでエロが叶うハイパーポルノとは?生成AIで彼女もエロも自作【仕組み大解剖】

Stable LMやStable Diffusionを活用してみよう!

Stable LMは、AI開発企業Stability AIが開発した大規模言語モデル(LLM)です。
現在公開されているアルファ版は、30億から70億個のパラメータを持っています。
今後150億から650億個のパラメータを持つモデルも公開予定とのことなので、非常に楽しみですね。
特徴は、小規模ながら高精度で、会話やコーディングタスクに優れているところです。

導入手順は次の2つです。

  1. 無料:Hugging Face
  2. 有料:Google Colab Pro(月額1000円程度)

細かい設定を変えたい場合は有料プランで実行すると良いでしょう。

実際に使ってみると、ChatGPTと遜色ない回答を得られます。
ただし、日本語未対応のため、翻訳して英語のプロンプトを入力しなければなりません。
また、ChatGPTには拒否されるような内容も一部解答してくれるので、ぜひ試してみてください。

さらに、言語だけでなく、画像を生成したい方はStable Diffusionの利用がおすすめです。

Stable Diffusionは以下3つのWEBサイトで利用できるほか、GitHuBからローカル版をインストールできます。

WEBサイトでは一部有料サービスが存在しますが、ローカル版であれば無料で枚数制限なく利用できます。

言語モデルと画像生成AIが持つそれぞれの特徴を把握し、色々なことに活用してみてください。

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「1時間の無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、弊社紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • Leon Kobayashi

    必ずフォローすべきAIエバンジェリスト(自称) => 元東証一部上場ITコンサル (拙者、早口オタク過ぎて性に合わず退社)<-イマココ 【好きなもの】リコリコ・しゃぶ葉 宜しくおねがいします。

  • URLをコピーしました!
  • URLをコピーしました!
目次