2024年2月29日木曜日

日本語LLM うんこもれちゃう

ローカルで会話形式のAIが欲しい。

huggingfaceでgemma-7b-itを使っていたら、WEBインターフェースからだとバグって動かなくなってしもた。

APIならなぜか動くんだが・・・


chat_with_RTXでは文脈無視される事は試した。

なのでOllamaでさくっとgemma-7b-itを触ってみたが、日本語微妙だったので、

東工大のswallowを使ってみた。


https://ollama.com/

https://huggingface.co/TheBloke/Swallow-7B-Instruct-GGUF/blob/main/README.md



#Modelfile

FROM ./swallow-7b-instruct.Q5_K_M.gguf


#ollamaへ導入

ollama create swallow7b-inst -f Modelfile


#実行

ollama run swallow7b-inst


gemmi-7b-itの方がインストラクトモデルらしい動作をしてくれたのだが、

<start_of_turn>

<end_of_turn>

を書かなくてもそれっぽい挙動をした。


swallow7b-instはなんか生成を主に行ってしまう。。。

書き方が悪いのか使い物にならない・・・



swallowだと掲示板っぽいのを生成してしまう。


#聞き方を変えるとまともに動作した

>>> 以下に、あるタスクを説明する指示があり、それに付随する入力が更なる文脈を提供しています。リクエストを適切に完了するための回答を記述してください。### 指示:\n\n以下のトピックに関する詳細な情報を提供してください。\n\n###

...  入力:うんこもれちゃう\n\n### 応答:

大丈夫、心配ないよ。


あなたは傍若無人のキチガイ野郎です。次の会話に応答してください。入力:うんこもれちゃう。応答:



PALOのデモを触ってみたが、一応指示を聞いてくれるっぽいので、使える可能性がある。

若干おかしい時あるけど・・・

https://palo.mbzuai-oryx.ngrok.app/



qarasuの方がswallowよりマシな可能性が高い。

https://huggingface.co/mmnga/lightblue-qarasu-14B-chat-plus-unleashed-gguf/tree/main


2024年2月28日水曜日

2024年時点で、不適切な画像かどうかを検知する仕組みを、安く作るにはどうするべきか?

NSFW画像

nsfwは「Not Safe for Work」の頭文字をとったもので、日本語では「仕事に安全ではない」といった意味合いがあります。 つまり、一般的にはアダルトコンテンツや卑猥な内容、暴力的な映像、残酷な表現を含む画像や動画など、職場環境で視聴や閲覧が適切でないとされるコンテンツを指す


google cloud vision apiなんぞ使っていたら破産する。

自前で用意する。


現時点でどの方法がいいのか検討する。



結論を先に書く:

さくっと行うには下記が良かった。軽いし。

https://github.com/platelminto/NudeNetClassifier?tab=readme-ov-file







トレーニング済みモデルを使う場合

https://github.com/yahoo/open_nsfw



以下は代表的なモデル

https://huggingface.co/google/vit-base-patch16-224-in21k

https://huggingface.co/facebook/deit-base-distilled-patch16-224

https://huggingface.co/facebook/convnext-base-224-22k


以下は代表的なモデル

https://www.kaggle.com/code/ggsri123/implementing-resnet18-for-image-classification

https://medium.com/@nina95dan/simple-image-classification-with-resnet-50-334366e7311a

https://keras.io/examples/vision/image_classification_efficientnet_fine_tuning/



AIがやたら2012を押してくる。なんで?

名称 枚数 カテゴリ数

ImageNet ILSVRC 2012 約128万枚 1,000

open_nsfw 約580万枚 80



open_nsfwは古いので、最近の手法で作られたオープンソースはないのですか?
ChatGPT
ChatGPT

最近のオープンソースの画像モデレーションツールとして、いくつかの選択肢があります。

  1. NudeNet: TensorFlow.js と NodeJS を使用した NSFW オブジェクト検出ツールです。これは open_nsfw と比較して、現代の技術を利用しており、JavaScript ベースで開発されています​​。

  2. AI Playground: これは Node.js、OpenCV、React を用いた実験的なセットアップで、ユーザー生成画像の自動モデレーションを目的としています。このプロジェクトは Yahoo の Open NSFW モデル (Caffe) と Inception5h (TensorFlow) を使用して画像をスコアリングおよび分類します​​。

  3. NSFW JS: クライアントのブラウザ上で動作する、シンプルな JavaScript ライブラリです。このツールは、不適切な画像を迅速に識別するのに役立ちます​​。

これらのツールは、open_nsfw に代わる現代的な代替品として利用することができます。それぞれのツールは、異なる技術スタックやアプローチを取っているため、ご自身のニーズに合わせて選択することが重要です。また、これらのツールを使用する際は、適切な法的および倫理的ガイドラインに従うことも忘れないでください。









2024年2月25日日曜日

playwright pythonのdockerでブラウザが落ちるのを解決

ブラウザが落ちる問題。

Target page, context or browser has been closed


例えば以下の構造で同期版を使ったとき


from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    ~省略~
    page.goto(url_search,  wait_until="load")

with sync_playwright() as playwright:
    run(playwright)



wait_until="load"があると謎のブラウザ落ちが発生する。
ブラウザログを見たが全く分からなかった。
wait_until="domcontentloaded"も同様に死ぬ。

たぶん、非同期版なら正常動作するのかもしれない。
試してない。