鹿色のIT雑記

エンジニアの鹿色がIT技術を追いかけていくブログです

KaggleのLLMコンペに触れてみた

お久しぶりです。

いやはや、ブログ記事を継続的に書くのは難しいものですね。

久々に記事を書くモチベーションが湧いてきたので、今回はKaggleのLLMコンペに触れてみた内容を書いています。

 

 

Kaggleって?

言わずと知れているかもしれませんが、Kaggleとは、

Kaggle is the world’s largest data science community with powerful tools and resources to help you achieve your data science goals.

とあるように、データサイエンスの目標を達成するための世界最大級のデータサイエンスのコミュニティです。

www.kaggle.com

 

と言ってもどういうこと?という感じですが、賞金付きのコンペなどがあり、参加者からより精度の高いモデルやソースコードを集めることで、「データサイエンスの目標を達成する」ことができるようになっているようです。

ちなみに、2017年から運営元がGoogleになっています。

 

LLMって?

LLMとはLarge Language Modelの略で、大規模に言語を学習したモデルです。

得意分野は言語で、確率的に次に来る単語や文字を予測して結果を出力するため、データをそのまま読み込ませて分析することはあまり得意ではないようです。

GPT-4oのようにテキストと画像をマルチモーダルに学習するようなものも出てきているので、そのうちデータをそのまま読み込ませることもできるようになりそうですが、現時点ではそのデータを分析するためのソースコードを出力させるのが良さそうです。

どんなことをやったの?

以下の、LLMを利用して絵を描くコンペに触れてみました。

www.kaggle.com

 

はじめにやったこと

以下のようにOverviewで公式のノートブックが提供されていることがわかったので、それを利用して一歩目を踏み出しました。

と思ったものの、Gemma2を利用するノートブックがなぜかライブラリのimportエラーで動きませんでした。

困ってコメントを見に行くと、そのものズバリの回答がありました。

Drawing with LLMs - Getting Started with Gemma 2 | Kaggleによると、先頭のコメントにあるように、一度ネットワーク接続機能をオンにして、パッケージをダウンロードした後でネットワーク接続機能をオフにする必要があるとのことでした。

単に実行できるノートブックであれば楽なのですが、どうもそうはいかないようですね…

ひとまず、以下のような形で画像が生成されているのを確認できました。

次にやったこと

無事に動かせたので、次はモデルを変更してみようと思っていますが、ここが入力形式が異なるので、少し難航中です…

 

まとめ

ひとまず触れてみました。

昔はモデルを作成して予測結果を提出していたような気がしますが、現在はソースコードを提出することになっているのですね。

プラットフォーム上でLLMも利用できるので、学習にはもってこいの環境になっているように思います。

引き続きやってみようと思います。

RSSリーダーを探し直してみた

皆様はRSSリーダーを利用されていますでしょうか?

巡回せずとも色々なサイトの更新状況を確認できたり、記事のタイトルから興味のあるものを横断的に検索できて便利ですよね。

RSSリーダーの中では、feedlyfeederが有名と思いますが、自分はOPERARSSリーダを利用していました。

ただ、OPERAが買収されてブラウザを変えた際に、RSSリーダーを移行していませんでした。

そして、VIVALDIが誕生したので再度乗り換えたのですが、ここで少し問題がありました。

デスクトップ版VIVALDIにはRSSリーダー機能がついているのですが、モバイル版VIVALDIにはRSSリーダー機能が付いていないです(これはOPERAでも一緒のはずですが)。

2019年からforumでも議論されているようなのですが、未だに機能が追加されることはないようです…

forum.vivaldi.net

 

最近、色々なところから情報を集めたい意欲が高まっているので、改めてRSSリーダーを探し直していきたいと思います。

 

 

どんなRSSリーダーが欲しい?

今回探す条件としては、以下のようなものになります。

  • デスクトップ、モバイルで同期できる
  • カテゴリ分けがしやすい
  • 無料

というわけで早速探していきます。

 

探ってみたRSSリーダー

feedly

まずは有名どころを探ってみることにします。

Stay ahead of the curve with Feedly AIに価格表があるのですが、下の方に無料アカウントについての記載があります。

Need a free plain reader?
No worries! Feedly offers a free plan on the web and on mobile that allows you to follow up to 100 feeds and organize them into 3 folders. Happy reading!

これを見るに、アプリを入れずともwebで同期されたものを見れば良いので問題なさそうですね。

あとはカテゴリ分けについては、3フォルダに分けられるようなので問題なさそうです。

 

feeder

続いてこちらも有名どころのfeederです。

Feeder Pricing | Feeder – RSS Feed Readerに価格表があり、こちらはわかりやすく左側に無料プランの説明がありますね。

200件までフィードを保存できるようですが、気になるのは30分に1度のアップデート?のように書いてあることですね。

おそらくアプリのPUSH通知の間隔が最短30分ということなのでしょうが、個人的にはここは自分が見たくなったタイミングで開くから良いのですが、即時反応が必要なほどウォッチしておきたいような用途には向かないのかもしれませんね。

あとは、広告が無い。というところは嬉しいポイントですね。

 

slack

専用アプリではありませんが、Slackを使うという手段もありそうです。

Slack に RSS フィードを追加する | Slack に書いてある通り、プライベートチャンネルを作成してそこにRSSを登録すれば自分用のRSSリーダーとして利用できます。

ただ、既読の管理ができなかったり、無料プランのワークスペースだと90日で消えてしまうので、過去に遡って見ることができないのは痛いポイントですね。

 

feederを試してみる

ひとまず、広告が無いということで、feederを試してみようと思います。

Googleアカウントで簡単に登録すると、以下のような画面が出てきます。

ダッシュボードやルール機能は有料版でしか利用できないようですが、ライブラリ機能は利用できるようです。

フォルダは無制限に切ることができるようですので、細かく分けたい場合は便利かもしれません。

コレクションも作ることはできるようですが、中身を見るとほぼ有料版の機能を利用しないと使えないように見えます。

RSSフィードだけでなく、Googleニュースなども追加できるようです。

Googleニュースから「ai」というキーワードで検索するようなアイテムを追加しました。

なお、アップデート速度を30分よりも短いものに設定しようとすると、以下のようにアップグレードを促す画面が表示されます。

 

追加できるフィードが200分のいくつになっているかですが、左下のアカウントボタンから検索できます。

ひとまず普通に使う分には問題なさそうですね。

 

感想

色々RSSリーダーはありますが、ひとまず定番どころを使ってみようというところで、feederをしばらく利用していこうと思います。

正直、AIで要約してくれる機能を利用できるRSSリーダーがあればそれを利用したいですが、無料では流石に難しいと思うので、自作するか、信頼できるところで機能が提供されれば使ってみたいと思います。

 

当ブログのRSSリンクについて

https://shikairo.hatenablog.com/feed となっております。

よろしければご登録ください。

更新フィード - はてなブログ ヘルプ より、はてなブログの他のサイトも同様に/feedのパスにアクセスすればRSSフィードのリンクを取得できますのでご参考まで。

ARM版macで、UTMのUbuntu22.04でWineを使ってみられなかった

お久しぶりです。

今回は、Windows向けのアプリを動かせるWineを仮想環境で動かそうという試みです。

そもそもホストマシンにWineを入れればいいのでは。

 

 

単純にWineをインストールしてみる

環境

ホスト側のアーキテクチャと合わせて、aarch64版のubuntuを利用して進めます。

$ uname -a
Linux shikairo 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:30:28 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux

インストール(失敗)

arm版は書いてある通り、素直にUbuntu公式が提供しているパッケージをインストールしましょう。

The WineHQ repository only offers packages for AMD64 and i386. If you need the ARM version, you can use the Ubuntu packages.

公式パッケージは以下のものになります。

sudo apt install wine

インストールが完了して、wineを起動しようとすると以下のようなエラーメッセージが出ます。

it looks like wine32 is missing, you should install it.

wiki.winehq.org

 

エラーメッセージに従って、wine32をインストールしようにもパッケージが提供されていないようで、うまくいきません。

Package wine32 is not available, but is referred to by another package.

困りました…

 

qemuを利用して仮想環境の中でさらにx86環境をエミュレーションする

qemuを利用してエミュレーションする方法もあるようなので試してみます。

$ sudo apt-get install qemu qemu-user qemu-user-static binfmt-support debootstrap binutils

$ qemu-i386-static --version
qemu-i386 version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.22)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers

 

が、wineがarm用のバイナリなのでうまくいかず…

$ qemu-i386-static /usr/bin/wine-stable 
Error while loading /usr/bin/wine-stable: Exec format error

 

いずれにせよ、仮想環境の中でもう一段階仮想化するのは効率が悪いので避けたいですね。

 

UTMをemulateモードで動かして、Ubuntuをx64版で動かしてみようとした(失敗)

と言っておきながら、環境そのものを仮想化するという手段を検討してみます。

国内のミラー(Ubuntu Releases)からx64版のisoをダウンロードして、同じく公式の手順で進めてみます。

と思ったのですがGUIで動かすには重すぎて、全く進められませんでした。

コマンドは以下のものを実行すれば良いと思っています。

sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources

sudo apt update

sudo apt install --install-recommends winehq-stable 

 

感想

時間がかかった割に実りが少ない作業になってしまいました…

趣味でなければシンプルにホストマシンにWineを入れるか、Windowsを仮想化して動かす方が良さそうです。

OSS版のVOICEVOXで遊んでみた

皆様は、Youtubeの動画は見られますでしょうか?

僕は良くずんだもんがゲーム実況したり、何かしらを解説してくれる動画を観ているのですが、自分でも喋らせてみようと思い、触ってみることにしました。

 

単純に動画を作るだけなら、以前触れたNoLangを使うのが近道だと思いますが、今回は自力で色々と試すことを目的としてやってみます。

動画作成を検討されている方は、以下の記事も併せて参照してください。

shikairo.hatenablog.com

 

 

VOICEVOXとは?

VOICEVOXとは、「無料」で使える音声合成ソフトウェアです。

詳細は以下の公式ページを参照してください。

voicevox.hiroshiba.jp

 

何をして遊ぶ?

VOICEVOXには公式サイトで公開されているパッケージ版に加えて、Githubで公開されているOSS版があるようです。

今回は、こちらのOSS版を利用して環境を構築し、APIを利用して音声を合成してみようと思います。

 

github.com

 

OSS版のVOICEVOXを使う

環境構築

OSS版からの引用ですが、以下の3つのモジュールで構成されているようです。

VOICEVOX は役割に応じた 3 つのモジュール「エディター」「エンジン」「コア」で構成されています。VOICEVOX ソフトウェアはこの 3 つのモジュールを組み合わせて構成されていて、エディターはエンジンを参照し、エンジンはコアを参照しています。

今回は、このモジュールのうち、コアとエンジンを利用してみようと思います。

コアのインストール(失敗)

コアは音声合成をするために必要な部分のようです。

記事執筆時点では、mainブランチ(0.15系?)が工事中と書いてありますが、Readmeには最新のリリースを利用せよとの記載があるので、0.15.4を利用して進めていきます。

GitHub - VOICEVOX/voicevox_core: 無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア

 

まずは、以下のコマンドを利用してダウンローダーをダウンロードし、実行します。

arm版Macを利用しているので、binaryはdownload-osx-arm64としています。

binary=download-osx-arm64 curl -sSfL https://github.com/VOICEVOX/voicevox_core/releases/latest/download/${binary} -o download
chmod +x download
./download

が、ダウンロード時に以下のようなエラーが発生してしまったため、ダウンローダーの実行がタイムアウトしているような気もするのですが、ファイルを都度ダウンロードしに行くように見えるので、今回は0.14.6にバージョンを下げて実行してみます。 

Error: HTTP Error: request or response body error: error reading a body from connection: stream error received: unspecific protocol error detected

0.14.6のダウンローダを利用しても結局、最新版を取得しに行くようですね。

 INFO 対象OS: osx
 INFO 対象CPUアーキテクチャ: arm64
 INFO ダウンロードデバイスタイプ: cpu
 INFO ダウンロードvoicevox_coreバージョン: 0.15.4

この場合も同様にうまく動かなかったので、「Downloader を使わない場合」の手順で進めます。

以下のファイルをダウンロードしようとしました。

が、coreのダウンロードが中断してしまうようです…

ダウンロードがうまくいかないので、諦めてエンジンの方に進めていきます。

 

エンジンのインストール

先ほどはコアでダウンロードに失敗したので、諦めてDockerイメージが提供されているエンジンを利用します。

以下のリポジトリにアクセスして、書いてある通り実行するだけです。

読み上げのテキスト部分だけ変更して実行してみました。

このくらいの文字数ならおおよそ1秒程度で出力されるので、実用的ですね。

docker pull voicevox/voicevox_engine:cpu-ubuntu20.04-latest
docker run --rm -p '127.0.0.1:50021:50021' voicevox/voicevox_engine:cpu-ubuntu20.04-latest

 

echo -n "しかいろのブログへようこそ" >text.txt

curl -s \
    -X POST \
    "127.0.0.1:50021/audio_query?speaker=1"\
    --get --data-urlencode text@text.txt \
    > query.json

curl -s \
    -H "Content-Type: application/json" \
    -X POST \
    -d @query.json \
    "127.0.0.1:50021/synthesis?speaker=1" \
    > audio.wav

github.com

感想

コアを使う合成はどこかでリベンジできればと思います。

Docker越しでも、それなりの速度で音声合成はできるので、ひとまず準備としてはOKかなと思います。

パッケージ版でもエンジンは起動するようなので、ややこしいことは抜きにしてやるならパッケージ版を入れるのが手っ取り早いですね。

LINEのトークフォルダ機能がとても便利

皆さんはLINEを使っていますか?

色々とありましたがなんだかんだ便利ですよね。

そんなLINEでとても便利な機能を見つけたのでシェアします。

LINEラボとは

今回の機能はこのLINEラボで提供されています。

LINEラボは、リリース前のLINEの機能を試用できるものになります。

特に利用申請などは不要で、設定を変更するだけです。

詳細は以下の公式ページを参照ください。

guide.line.me

トークフォルダ機能を使ってみる

さて、今回の本題となるトークフォルダ機能についてです。

トークフォルダ機能は「友だち」「グループ」「公式アカウント」「オープンチャット」の4つのカテゴリーにトークが整理されるものです。

 

設定方法は以下のリンクを参照してください。

guide.line.me

 

公式アカウントからのメッセージなどがかなり鬱陶しかったのですが、友達からのメッセージに絞ることができてかなり見やすくなりました。

この機能はラボに留めず、ぜひリリースしてほしいですね!

天秤AIを触ってみた

色々と自然災害が多くなっていて、恐ろしいですね。

我が家も備蓄を見直しているところです。

日々の備えの大切さを改めて感じますね。

消防庁 地震防災マニュアルによると3日分の水や食料が必要ということですが、具体的にどんなものが良いのだろうというのを考えるために、AIを活用してみようと思います。

中でも、少し前にXでも見かけていて試せていなかったAI自体の出力を比較できる天秤AIを使って、いろいろな角度から出力してもらおうと思っています。

※あくまで個人的な備蓄品の検討目的です。万人が備蓄すべきものとは限りませんのでご注意ください。

天秤AIとは?

GMOが提供するChatGPTやGeminiなどの生成AIに送るプロンプト(指示文)の日本語ポータルサイトのようです。

oshiete.ai

GMOといえば、レンタルサーバを提供していたり、あおぞら銀行をやっていたりと、手広くやっているイメージですが、AIのサービスも始めたんですね。

天秤AIは、教えてAI byGMOのアカウントを登録することで無料で利用できるようです。

Googleアカウントなどのソーシャルアカウントでのアカウント登録も可能で、ワンクリックで簡単にアカウント登録できます。

この記事の執筆時点では、ChatGPTだとGPT4oまで利用できるようです。

天秤AIにGPT4o Miniを実装しました|Gemini 1.5 pro、Claude3.5 Sonnetも使えるAI同時実行サービス – 教えてAI byGMO サポートページ

 

早速使ってみる

ログインするとプロンプトの入力画面が表示されるので、左側のタブからいくつかプロンプトを入力したいAIを選択して、下側の入力欄にプロンプトを入力することで一括で表示してくれるようです。

 

入力例は以下のようになります。

あなたは防災に関するプロフェッショナルです。
注意深く考え、以下の質問に回答してください。

大人1人分の災害の備蓄にはどのようなものを用意すれば良いでしょうか?
箇条書きでリストアップしてください。

 

これは便利ですね!

出力内容をコピーすることができるし、入力も1万文字までできるようなので、この3つのAIの出力結果をさらに3つのAIに要約してもらいましょう。

まとめの入力例です。

ありがとうございます。

専門家3名から、それぞれ以下のような箇条書きの意見があるのですが、これらをまとめて、必要なものを再度箇条書きしてください。
3名からの意見は、それぞれ```で囲んでいます。

```

GPT4-oの出力結果

```

```

Gemini1.5Proの出力結果

```

```

Claude 3.5 Sonnet

```

 

おおよそ似たような出力結果になっているような感じがします。

擬似的にブレインストーミングしてもらって、最終的に集約するという使い方は意外とうまくいくのかもしれませんね。

利用に際しての注意事項

注意事項の記載があるため、確認しておきましょう。

  • AIは間違いを犯すことがあります。出力結果はよく確認してご利用ください。
  • 多くのお客様にご利用いただくため、入力トークン数を制限しています。
  • ご利用状況により、1日あたりの実行数を制限する場合があります。
  • 入力されたプロンプトは学習には利用されませんが、天秤AI byGMOのサービスの品質維持のためモニタリングをしています。
  • 画像生成やファイルの入力が必要な場合は,各種AI提供元のサービスをご利用ください。
  • 古い履歴は自動的に非表示になります。

 

また、プライバシーポリシーについては、

Googleプライバシーポリシーと利用規約が適用されます。

とのことですので、気になる方は確認の後、ご利用を検討してください。

もしかしたら、Googleアカウント連携している場合に表示されるものかもしれませんので、適宜読み換えて確認してください。

画像は生成できる?

注意事項によると、画像の生成はAI提供元のサービスを利用する必要があるようです。

が、天秤AIからリンクされている、教えてAIのプロンプトの検索カテゴリに「画像生成」があるので、ここからMidJourneyなどを利用できるようです。

検索結果 | 教えてAI byGMO

 

一例として、こちらのプロンプトをお借りして、鹿のアイコンを出力してもらいました。

🦜超絶オシャレな折り紙アイコン🦜 ~SNSやプレゼンをかっこよく魅せよう~ | 教えてAI byGMO

おしゃれでいい感じですね!

元のプロンプトは見られないようなので、プロンプトを作って公開してもマネされなさそうなのもいいですね(マネして作ってみようと思いましたがアテが外れました笑)。

まとめ

無料でこれだけの種類のAIを利用できるのはすごく便利ですね。

クレジットカードの登録なども不要なので、かなり気軽に始められると思います。

個人的には思いつきでやってみた、複数のAIに投げた結果を集約する使い方はなかなか便利なやり方なのではないかと思っています。

みんな思いつきそうな気はしますが…

 

また、公開されている他のユーザのプロンプトからAIとの対話を始めることもできるようで、プロンプトが思いつかない時には使ってみるのもいいかもしれません。

NoLangに最近のAIの動向についてまとめ動画作ってもらった

最近はAIの動向が早くて恐ろしいですね。

その中でも、動画などのエンタメ領域はスピード感が早いのかなと思っています。

というわけで、話題になったのも少し前ですが、NoLangを使って、動画を作ってもらいました。

 

NoLangとは?

東京大学東京大学大学院を卒業した創業メンバー5人で構成されている、Marvericks社が開発したサービスです。

Nolang は、テキストで質問を入力すると、回答内容を自動で読み上げる動画を生成するサービスです。

画像生成はもちろん、text2video, text2speechなど様々なAIを同時に体感できる新感覚の高速生成体験を提供します。

というもののようです。

Products | Mavericks, Inc.

 

どんな動画が出来上がるの?

百聞は一見にしかずということで、動画を見てください。

https://no-lang.com/video/be2ea1be-b34d-40ba-9904-34ea8d447c5f?type=vod

ずんだもんがいい感じに読み上げてくれていますね!

レイアウトも綺麗ですし、面白いかどうかは置いておいて、オチもちゃんとつけてくれるので、解説動画をサクッと作るのには向いていそうですね。

人間が必要な部分がどんどんと減っていきますね…

どんな感じで作れるの?

作り方

簡単にテキストを入力するだけで動画が生成されます。

出力した内容を改善してほしい場合

上記の動画に追加で対話形式で入力することで、以下のような動画が生成されます。

https://no-lang.com/video/c7d61f92-1105-4401-87ee-359197c71840?type=vod

なお、追加で実施する場合もコストがかかるので注意してください。

アバターを追加する場合

公式の説明通りに実施していただければ良いのですが、設定画面からPSDをアップロードすることで、アバター付きの動画を生成することができます。

アバターを追加することで、コストが10倍にはなりますが、解説動画っぽくするにはこれが近道ですね。

さて、実際どのような動画になるのかは、以下を参照してください。

https://no-lang.com/video/42c29474-dbb1-4b4b-a376-3d4bbc237cf5?type=vod

制限

2024/07/15時点では、無料プランでもデフォルト設定なら毎月20本の動画を作成することができるようです。

30秒の動画であればコストは5なので、アバターなしなら、40本の短い動画が作れると思えば、無料でも十分かもしれませんね。

右上にNoLangのロゴはつきますが、広告料としては安いと思います。

ただし、縦型動画を作るためには、月額2,980円の有料プランを契約する必要があるため、ShortsやTikTokを主戦場にする場合は、有料プランへの加入が必要そうですね。

 

感想

本当にエンタメ領域は人間がやることが少なくなるんだなぁと。

おそらく、今時点では粗製濫造になりそうですが、もう少し発展したら人間が作るコンテンツよりも精度が高く、興味深い内容で溢れそうです。

君たちはどう生きるか。という問いかけがありましたが、本当にどう生きるか考えて生きていないと、価値を生み出すことが難しい時代になっていきますね。