Gradio ホントよくできてる


Gradio ホントよくできてる
(AIモデル+設定 を試せるデモアプリをサクッと作れるやつ)

「デモアプリが作れるやつ」「UIはいかにもGradioだよね」って認識の人が多いけど、使い方次第ではプロダクトにも導入できるし、個人的にそれが現時点では最高の方法の一つに見える。ホント良い

https://gradio.app

Gradio.app
Build & Share Delightful Machine Learning Apps

まず、プログラミング得意じゃない人でも数行のコード書けばあとは無限にブラウザ上でぽちぽちテストできるの強い
モデルを切り替えてモデル + ファインチューニング + 固定プロンプトを試したり、色々できる
これまで実装したいくつかのAI系プロダクトでは、コストかけてモデルの精度あげるより、ファインチューニングや固定プロンプトでアウトプットのコントロールする方がコスパ良いシーンがあった

また、多くのプロダクトでは予算の都合で自前モデルは作れなかったり、自前モデルなしでフィジビリティチェックすることになる

アウトプットの品質についても、ビジネス上のポイントとなる品質理解をしている人のほとんどは非dev系人材なので、 gradio で色々試せる環境作った上でその人に「これで最適なパラメータの組み合わせ出してください」ってやってもらうと、非常に良いものが出てくる
出力がファジーな生成AIだからこそ非dev系人材は重要に思えるし、エンジニアが無理にそこを頑張る必要ないなと思った。少なくとも自分はそこを頑張りたくない

Gradioは「あくまでデモ用でしょ」って認識されること多いけど、APIモードにすれば気に入った挙動をそのまま他のアプリやバッチから呼び出すことができるから、プロダクトのバックエンドとして使うのも個人的には十分実用的に見える
実際、一つのプロダクトで8ヶ月ほど運用しているけど、Gradio固有の問題にはぶつかっていない
Apache2.0ライセンスで使い勝手良いし、負荷も余程の大規模サービスでもなきゃ無視できるレベル

Gradioで環境作って、biz系人材にその環境で試行錯誤千錯万綜していただいて、出来上がった良いリクエストをそのままAPIモードのGradioに投げるアプリを作れば、多くのケースで現時点での平均点以上の「生成AI系プロジェクト」になるんじゃないかな

という肌感

Gradio、マジで良い


アルジェリア旅行について


アルジェリアに行きました

珍しい機会なので、役立ちそうな情報を残します

  1. スマホ+SIM
  2. お金
  3. 移動(タクシー)
  4. 移動(電車)

とはいえVISA取得のハードルが非常に高くそれこそが最大の障壁なので、そこに関するアドバイスが何も出来ない私の戯言は、黄身のない目玉焼きのような感じです。。。

続きを読む アルジェリア旅行について

AI生成文章の「不気味の谷」と、対応策4つ


生成AIでの画像作成・文書作成をしていて思った。文章にも不気味の谷があって、結構想定外に生成AI組み込んだシステムの使用感を下げてしまう

なので、その概要と小手先での対応を書いた

不気味の谷とは

※「不気味の谷」とは、人間ぽいけど人間じゃないものに対して感じる気持ち悪さを表す言葉。雑に書いた似顔絵よりも、精密だけど微妙にオカシイ絵の方がキモさ怖さ感じたりするやつ

対策した

で、この不気味の谷をクリアする方法として小手先での対応方法をいくつかやってみたので、割とアリかも?というのをまとめた

1. 箇条書きや構造化テキストにする
これが鉄板かも。人間らしさを排除すれば気持ち悪さを抑えられる

2. AIにキャラ付けする: 語尾と喋り方を個性的にする
文体を漫画やアニメのキャラみたいにすると、おかしくてもまぁ許せる

3. AIにキャラ付けする: 視覚で伝える
なんかキャラの画像に喋らせる感じで常に視覚で伝え続けると、気持ち悪さが緩和される

4. 人間が校正する
良くなる
けど、生成AI使うメリット (低コスト・オンデマンド・ノーメンテ・迅速) が消える

小手先なんだけどね

4 以外は「人が作った物にどれだけ近いか」のスコアを下げる対応だし、4は生成AIの良さを殺すし、サンプル数は 3 の主観100%でお届けという、小手先対応なのだけど、現実問題困ってたらすがる藁くらいにはなるかも

本格対応は、めちゃ頭いい人やお金が無限にある企業様がやってくださる!でしょう!


【解決】 WireGuard + Nginx での通信エラー


結論

現象
WireGuard server で インターネットアクセスを受け、WireGuard clientに nginxリバースプロキシする構成で、POST通信だけが失敗しました

解決策
WireGuard のMTUを下げることで解決しました

適切なMTUはネットワーク環境毎に異なります。タイミングによって経路が変わりMTUも変わりうるというのが個人的なドハマりポイントでした

送信するネットワーク環境毎の適切なMTUを調べるには以下コマンドが有用です

ping -M do -s "MTUとして試したい数値" -c 3 "送信先サーバ"

イーサネットのMTUサイズを超えていたら “Message too long” が出ます
環境によっては serverのMTUを下げた方が良いケースもあるはずです

ただ、経路によってMTUは変わるため、何度か時間を変えて試す必要がありました
良い方法ある方教えて下さいませ

(原因は WireGuardのMTUであり、nginx, POST などは直接関係なかったのですが、ngrok的なことやりたい人は同じ現象でハマるケースあると思うので、googlability を考えて記載しています)

詳細

以下は備忘メモ
困ってググった人を拾うキーワードとなることを期待してるので、結論で満足した人は読まなくて良いです

続きを読む 【解決】 WireGuard + Nginx での通信エラー

着るVR !? Woojer Edge が届いた


音を感じるウェアリングスピーカー「Woojer Edge」
クラウドファウンディングで入金して半年、やっと手元に届きました

結論

✕ じっくり音楽聞く / ゲームのお供に => 微妙・むしろウザい

△ ゲーム => ゲームのBGMと効果音によりけり

◯ 音楽+ワークアウト / 音楽+ダンス / 音楽+家事 => 楽しい・テンション上がる

着るデュアルショック®」とでも言う感じで、そこまで音楽と振動とはシンクロしていません

雑に音楽で盛り上がるデバイスって感じでしょうか

例えば↑の紹介動画だと皆さんノリノリですが、これは体感して分かるけど全然大げさではなく、ノリのいい人は本当にテンション上がります

ただ、日本人の多くは愛想笑いを浮かべてしまいそう

カラオケでタンバリン叩きまくる陽キャ」にも似てて、ノレれば楽しいし、ノレなきゃ邪魔

音楽を体感できるってのは、聴覚障害者には多分超最高なので別記事でまとめたいです

以下、気になった人向けの詳細

続きを読む 着るVR !? Woojer Edge が届いた

チャイムで時間管理 ( RaspberryPi )


会社に行かなくなって生活のリズムが壊れた!
ランチを食べる時間を忘れてしまう!!

そんなあなたにおすすめなのが「学校風チャイム」

「キーンコーンカーンコーン♪」ちゃんと朝起きていた小学生時代のように生活リズムを整えましょう

簡単: ★★★★☆
便利: ★★★☆☆
材料: 
  RaspberryPi (Raspbianが入ってれば、多分どのモデルでも)
  スピーカー (高出力のほうが良い)

材料調達

RaspberryPi

皆様のお家に眠っているものでOKです!

音源

「キーンコーンカーンコーン」と鳴らしたかったので、こちらから調達しましょう
https://otologic.jp/free/se/school_bell01.html
OtoLogic様 – CCライセンスなので、職場で使いたい方は購入してください
500円とお安いです!

スピーカー

家に転がってる有線スピーカーを繋ぎましょう
なければ
Amazonだと1,500円くらい
ドンキとかで2,000円くらい
Aliexpressで1,000円くらい (USB Powered Speaker とかで検索)

開発時はイヤホン・ヘッドホンでもOKです

MP3を鳴らせるように

mpg123 というソフトウェアでRaspberryPiに保存したMP3ファイルを再生できます

$ sudo apt install mpg123

でインストール

チャイムを鳴らすプログラム

以下のようなスクリプトを作成します

#!/bin/bash
/usr/bin/mpg123 "ダウンロードしたMP3のパス"

試してみましょう

$ bash "作ったスクリプト"

「キーンコーンカーンコーン♪」
チャイムが鳴りました!

決まった時間に鳴らす

crontabを使ってスケジューリングしましょう

ホワイトな働き方の例

00 9,12,13,17 * * mon-fri /bin/bash "作ったスクリプトファイル"

09:00〜17:00が定時
12:00〜13:00が昼休み
土日休み

ブラックな働き方の例

30 7 * * * /bin/bash "作ったスクリプトファイル"
00 12 * * * /bin/bash "作ったスクリプトファイル"
15 12 * * * /bin/bash "作ったスクリプトファイル"
00 23 * * * /bin/bash "作ったスクリプトファイル"

07:30〜23:00が定時
12:00〜12:15が昼休み
週休0日

完成!

簡単にできて、生活が整いますね!

応用

朝起きる時間だけは「ジリリリリ!!」とうるさいベルにしたり
好きな音源をMP3化して使ったり


MacBook ProでUSBつながらない / HDMIつながらない / 充電できない


MacBook Pro

USBつながらない / HDMIつながらない / 充電できない ってケースの対処法

  • 電源落とす
  • shift(※) + control + option + 電源ボタン 10秒押す
    ※ T2チップは右shift / それ以外は左shift
  • 離す
  • 電源ボタン押す

これでSMCリセットされて直る(自分の場合は)

続きを読む MacBook ProでUSBつながらない / HDMIつながらない / 充電できない

きたがわ翔先生の原画展に行った


本日、きたがわ翔先生の原画展に行きました。

リベストギャラリー 創

20年前・中学生の時に「好き」になった物を、今日も「好きだった」ではなくて現役の「好き」でいさせて貰えるってのは凄いことで、ありがたいことだなーと思い、稚拙ですが感想文をば。

続きを読む きたがわ翔先生の原画展に行った

大学を卒業させられた話


珍しい経験なので書いておく。

留年確定

大学4年の時、ある必修の授業に全然出席せず、テストもブッチしていた。

結果、卒業者リストに自分の名前はなかった。

留年が確定した。

実は学生時代に自分が始めた事業が儲かっていた(学生にとっては)ので、『新卒カード残しておいて事業にチャレンジできる』と考えての留年だった。

……それはかっこよく言いすぎだ。そんなに意識は高くなかった。

『社会人大変そうだし、ダラダラ過ごして十分な金も入る今の生活を続けたい』が正しいな。

とにかく、留年しようと思っていた。

続きを読む 大学を卒業させられた話