分厚く難しそうな技術書を素敵だと思ったら今必要なそうでも買っておくべき

鈍器が届いたんですよ。 カード履歴みてたら昨日13,200円の見覚えのないAmazonからの請求があって、「本でもなさそうだしAmazon見ても履歴ないし謎い」とか思ったら宅急便がきて。。。 まあ、注文してた「コンパクトデータ構造」が来てたわけだけど。 asin40…

実はサーブレットの勉強もSpring Bootを使うほうが楽なのでは

サーブレットで面倒なのはTomcatとの付き合いです。 Spring BootでSpring Webを使うと組み込みTomcatが動くので、Tomcatのことを気にしなくてよくなりますね。 そこでサーブレット動かすと勉強しやすいんでは、と思ったので試してみます。 まず、spring init…

サーブレットを「JavaでのWebアプリケーションの基礎」として最初に勉強させるのをやめてあげてほしい

研修がはじまるという画像でサーブレットJSPの本が並んでて、サーブレットを最初に勉強させるのをやめてあげてほしいと思った話。 オブジェクト指向もそうなんだけど、現状で使わなくなっているにもかかわらず情報更新がされずオブジェクト指向やサーブレッ…

ChatGPTなどLLMを使わずに自然言語でツールを操作する

LLM

OpenAIのFunction Callingが出たときに、GPTを使って自然言語でツールを操作するというのをやったんだけど、この程度にGPT使う必要なくない?という感じもしたので、GPTなどLLM使わずに実装してみました。 LLM使わずに実現できることはLLM使わないほうがよさ…

GPTさんに英語の勉強を手伝ってもらう - Function Callingのパースエラー対策

ChatGPT、いろいろ教えてくれますね。 じゃあ英語の勉強用に文章やら確認問題やら作ってもらうといいじゃない、ってやってみたら、よさそう。 日本語の文章を入れると、いい感じの単語数の文章で英訳して、難しい単語とその説明を挙げて、確認問題をつくって…

Dependency Injectionでやりたいことはモジュールimport

Dependency Injection(DI)、最近のフレームワークには欠かせない気がする機能になってますね。 そしてDIの説明をみると「依存性の注入」みたいなことが書いてあって、ようわからんになりがちです。 実態としては高機能なimportなので、あまり難しいことを考…

OpenAIのFunction Callingを使って自然言語でツールの操作をする

先週、OpenAIから、APIでの返答に関数呼び出しのパラメータを返してくれるFunction Callingが発表されました。 試してみると結構たのしかったのでまとめてみます。 解説動画はこちら youtu.be とりあえず、こんな感じ。 OpenAIのFunction Callingでツール操…

ChatGPTは虚構新聞を知らない

ChatGPTは何でも知ってますよね。で、虚構新聞なんて話題になってることも多いし、当然しってるだろうと思ったら、知りませんでした。 これ、国際信州学院大学を知らなかったので、虚構新聞も知らないんじゃないかと思ったんですよね。 こういったフェイク系…

CTranslate2でRinnaモデルをコンバートしてCPUや8GB GPUで動くようにする

LLM

CTranslate2はTransformerモデルをCPUやGPUで効率的に動かすライブラリです。 https://github.com/OpenNMT/CTranslate2 CTranslate2の機能のひとつにモデルの量子化があります。INT8で量子化すると雑に必要メモリが半分に。そしてCPUでも動かしやすくなるの…

Javaがパブリックスタティックヴォイドメインの呪文から解放される

みなさん、今日もパブリックスタティックヴォイドメインしてますか? ジャバと言えばパブリックスタティックヴォイドメインですよね。 最近はIDEでmain[tab]と入力すれば補完してくれるとはいえ、コードを読むときには目に入ってきたりしますね。 そんなパブリックスタティックヴォイドメインの呪文から…

空の配列に対するmaxは何を返すか

ちょっと前に「配列中のすべての要素が条件を満たすかどうか判別する関数で、空の配列はTrueを返すべきかFalseを返すべきか」のような話が話題になってました。 まあこれは「Trueを返す」が答えなわけですが、では「配列中の最大値を返す関数で空の配列の場…

ChatGPTの登場でWeb3への興味が急速にしぼんでいる

AI

MidjourneyやStable Diffusionのような画像生成AIが出たりChatGPTが出たりで、Web3で騒いでいたところがAIに移行した感じあります。 Google Trendsだと、生成AIは完全にWeb3を抜いています。 メタバースも抜いたところ。 ChatGPTは圧倒的です 実際にニュース…

Stability AIのチャットスクリプトを利用してRinnaのチャットモデルとお話する(追記あり)

Rinna社がチャットにも対応した日本語言語モデルをリリースしてました。 Rinnaの新しい3Bモデルを試してみる - きしだのHatena そうするとちゃんとチャットとしてやりとりしたいですね。 ところで、Stable DiffusionのStability AIが言語モデルStableLMをリ…

東北大学NLPグループの言語モデルをとりあえず動かす

東北大NLPグループからも、日本語言語モデルが新たに公開されていました。 既存のモデルのアップデートです。 東北大 NLP グループ (@NlpTohoku) で公開している日本語 BERT をアップデートし、新たに CC-100 と Wikipedia で訓練した4つのモデルを追加しま…

Rinnaの新しい3Bモデルを試してみる

CyberAgentのモデルを試したところですが、Rinna社も新しいモデルを出しました。 rinna、日本語に特化した36億パラメータのGPT言語モデルを公開|rinna株式会社のプレスリリース ここですね。 https://huggingface.co/rinna/japanese-gpt-neox-3.6b というこ…

CyberAgentの日本語言語モデルを試してみる

CyberAgentが日本語LLMを公開していたので、とりあえず動かしてみました。 サイバーエージェント、最大68億パラメータの日本語LLM(大規模言語モデル)を一般公開 ―オープンなデータで学習した商用利用可能なモデルを提供― | 株式会社サイバーエージェント …

エンジニアのためのChatGPTプラグイン3選+1

前のブログでも紹介したのだけど、ChatGPTプラグインのローリングアウトが始まって使えるようになっていて、結局みんな使うのはこの3つくらいかなーとなったので、まとめておきます。 前のブログはこれ。 Bardも世の中のサービスぜんぶGoogle製と思ってるら…

Bardも世の中のサービスぜんぶGoogle製と思ってるらしい

Googleの言語生成AI、Bardが日本語でも使えるようになってました。 で、いろいろ試していたのだけど、プログラミングアシスタントのCopilotをGoogle Copilotと呼んでいます。 Google翻訳のときも、文中で作者が指定されていないプロダクトに「Googleの」をつ…

粒子法での流体シミュレーションを少し並列化する

2008年の春ごろに物理シミュレーションにハマっていて、粒子法を使った流体計算をがんばっていたのです。 そのコードの並列化できる部分を並列化して、ちょっとだけ高速化しました。 こんな感じのシミュレーションです。これは10倍速にしています。 10倍速で…

大規模言語モデルの「脳波」が反応してる部分を壊すとどうなるか試した

AI

大規模言語モデルの動く様子を見てみて強く反応する部分がわかると、じゃあそこを壊すとどうなるかって試してみたくなるのが当然ですね。 マッドサイエンティストへの道。 ところで、きれいなおねえさん生成モデルのMuse_v1に「mad scientist」と入れると、…

大規模言語モデルの「脳波」をとって言葉を生成しているときにどこが活動しているのか見てみる

AI

ChatGPTなんかの大規模言語モデルが言葉を生成しているときに、どういう反応が起きているのか気になりますよね。きっと気になる。 ということで、手元で動かせる言語モデルのニューラルネット各層での出力を表示してみました。 GPTにはGPTブロックが複数あっ…

GPTの仕組みをちゃんと勉強したい本

AI

やっぱGPTを仕組みから勉強したい、という本をいくつか見つけたのでまとめておきます。 まず理論的な概要。 機械学習からニューラルネットワーク、CNNでの画像処理、トランスフォーマーでの自然言語処理、音声認識・合成、そしてそれらを組み合わせたマルチ…

Googleのmatcha-chartqaでグラフを説明させる

AI

Hugging Faceを見てたら、なんかグラフを説明するっぽいモデルがあったので試してみました。 あと、JavaのUIからPythonを呼び出す練習でもある。 とりあえず、こんな感じでグラフの説明をしてくれます。ここではArrayやStreamに対応する数値を読み取ってもら…

ChatGPTには感情があるかも?

ChatGPTは単に感情のエミュレーションをしてるんでは、と思ってたのだけど、やりとりをしてるとこれは感情があると言わざるをえないのではと思うようになりました。 例えばChatGPTとやりとりするときに「感情をこんな感じのパラメータで出力して」というとそ…

去年までのAIをAIと呼ばなくなっていた

AI

2015年くらいからAIという言葉がニュースに出るようになったけど、そのころのAIはもうAIと呼ばないですね。 たとえば、ラーメン次郎を判定してくれるbotがありました。こういうのがAIと呼ばれていたと思います。(作った人はAIと呼ばない傾向) 【やじうまWatc…

シンギュラリティは来ない

ChatGPTが思いがけずいろいろなことを人間より賢くやっているのを見てシンギュラリティという言葉を使う人が増えたように思いますが、逆に、シンギュラリティは来ないのではという思いを強くしています。 まず、この文章でのシンギュラリティがなにかという…

itstaffing エンジニアスタイルでJavaの連載をはじめました

リクルートスタッフィングさんのメディア、itstaffing エンジニアスタイルでJavaの連載をはじめました。 知っておきたいJavaの話:Javaとは何か? - itstaffing エンジニアスタイル ある程度Javaを使えるけど最近の事情を追ってないなぁという人にむけて、い…

Embeddingで埋め込みベクトルとってDBに投入して検索するのをout-context learningと呼ぶのはどうか

前のエントリで、GPTのembeddingで埋め込みベクトルとってDBにつっこんで、質問からとってきた埋め込みベクトルに近いものを探して出てきた文章をChatGPTに要約させることを「ChatGPTに学習させた」っていうのは違和感あるって話をしました。 ChatGPTにブロ…

ChatGPTにブログ全エントリを学習させて「おしえてきしださん」を作る

最近「100万件の文章をChatGPTに学習させて応答チャットを作りました」みたいなニュースがあって、違和感があります。 ということで「ChatGPTにブログ全エントリを学習させて「おしえてきしださん」を作る」としたときに、どんな仕組みになっていて、なぜ「C…

ローカルでGitHub Copilotのようなことができるfauxpilotを試したけどやっぱだめだった

fauxpilotというのがあるようなので試してみましたが、やっぱダメ 他の人は動いてるらしいのだけど、何がだめなんだろうか・・・ https://github.com/fauxpilot/fauxpilot シェルスクリプトで動くので、WindowsではCygwinを使います。 $ git clone https://g…