フリーレンでいうところの「魔法史の本」に該当します。
時系列順に魔法学を学ぶことで得られる知見もある。
参考資料
Qiitaで編集する都合上、先頭にある方が参照しやすいのでまとめます。
- 元木大介@生成AI塾&魔法Zoltraak創造中(@ai_syacho)さん / X
- dai-motoki/zoltraak
- zoltraak チュートリアル web版※名称不明
- dai-motoki/niwatoko
- niwatoko チュートリアル web版※名称不明
2024年5月10日コメント
XのコミュニティやDiscordなどもあるのですが、取り急ぎXとGithub(Zoltraak)から情報を編纂しているので私よりも早いペースでキャッチアップしたい方は探してみてね
前書き
Zoltraak(ゾルトラーク)という「自然言語プログラミング」言語が2024年4月に生まれました。
生まれて程なくして、Zoltraakは「自然言語フレームワーク」、「自然言語プログラミング」はNiwatokoという棲み分けが進みます。
この両者はセットで扱います。
つまりZoltraakを追いかけても、Niwatokoを追いかけても、辿り着くところは一緒です。
さて、自然言語プログラミングとは何でしょう?
今までの機械語、中間言語、高級言語とは何が違うのか?
言葉通り受け取るならば、自然言語プログラミングとは、日本語でコンピュータに指示を出すと動いてくれる……というイメージが湧いてきますね。
学生の頃コンピュータに抱いていた幻想を思い起こさせます。
これはある種「魔法」なのでは?そう思い、Zoltraakを徹底的に使うことを決意し、ここに記録を残します。
余談ですが、私の夢は魔法使いです。
「魔法」とはいくつかのニュアンスを含んだ、曖昧な言葉です。
- 人々の心を揺さぶる術
- 手品
- 演劇
- 映画
- 絵画
- パフォーマンス
- 超上級者の生み出した技術体系
- メタプログラミング
- 自然言語プログラミングZoltraak
- 古武術
- 未知のもの全般
- 神
- 精霊
- 言霊
- 超科学
- 理解の及ばない(不勉強な)概念
- 現出する物理法則を無視したとしか思えない表現
- 超能力
- ファンタジー
- ファイヤーボルト
- サンダガ
- ゾルトラーク
- 呪い(まじない)
- 魔法陣
- 錬金術
- 呪術
- 祈り
- 降霊術
- イデア的な表現
- 万能薬
- 賢者の石
- アカシックレコード
魔法が使えるようになりたくて、魔法の定義が自分の中で曖昧な頃から色々とやってきました。
習得済み魔法リスト
- プログラミング(初学者)
- HADO(中級者)
- 熱意を伝える(=マインド)
- パラレルキャリア
今回学ぶ魔法「Zoltraak」は超上級者の生み出した技術体系だと思っています。
認知することも難しいし、理解することも難しいし、体得することも難しい。
しかしやがて、形を変えて(Zoltraak由来のプロダクトが何かしらの市場を握る)普及していくと思われます。
今習得すれば魔法使いですよ皆さん!
ここからZoltraakのキャッチアップが始まります。
時系列順なので長くなりますがご容赦ください。
2024年4月11日
ゾルトラークという言葉自体は葬送のフリーレンから来ております。
やっぱ生成AIってゾルトラーク、どーん、みたいな強さあるけど、細々とした細々した攻撃の魔力検知的な所は弱くてそのためのシステム構築は必須。
Xより引用
かの大魔法使いもインスパイアされました。
アニメや小説はよく読め、皆の衆!
葬送のフリーレンはそこまで作中で魔法学を深堀するわけではないのですが、魔法が学問として積み重なっているコンテキストが作中のいたるところでにじみ出ており、非常に興味深い作品です。
魔法の体系化と生成AI活用の体系化は近しいものがあるのかもしれませんね。
後述しますが他の作品からもインスパイアされることになります。
2024年4月12日
自然言語プログラミングという発想が形になり始めた
ドキュメントプログラミングしていて思ったんだけど、これ抽象度高いからそのままAIに対するプロンプトとして使ったらいいんじゃない?
具体的なプログラムをプロンプトに入れると、それに引きずられて変なコードになるんだよね。
これが解消できる。
Xより引用
ドキュメントプログラミングというか、自然言語プログラミングだわ。
Xより引用
当初はドキュメントプログラミングという仮名だったみたいで、以下のワークフローを仮説検証していました。
非常に再現性が高いらしく、のちに生まれるZoltraakの中核を為す考え方となります。
2024年4月14日
Zoltraakの中間生成物がPython、となった
Pythonファイルは自然言語のドキュメントをシステムに実行してもらうための「中間生成物」になってしまった。
この時代の早さよ。。
Xより引用
実情はもっと早くからこうなっていたのでしょうが、確信を持ったのがこの日なのでしょうね。
名称が自然言語プログラミングで統一された2024年4月15日
自然言語プログラミングアーキテクチャ案
- 喋る → 文字起こし
- 文字起こし → ドキュメント(自然言語プログラム)
- ドキュメント → 高級言語(pythonなど色々)
- 高級言語 → システム実行
- 1 ,2 にFB、Cursor等で部分修正
開発時に意識するのは1,2,5のみになる。
Xより引用①
アンケートが取られ(忘れました)、名称が統一され、15日当たりから本格的に使われるようになりました。
2024年4月16日
Zoltraakのアーキテクチャが改良された
- ゴールから設計書生成(ゴールシークはこの1つ)
- 設計書からプログラム生成
- プログラム実行をPDCA
- 成功したプログラムを詳細設計書化。次回以降詳細設計書を利用
- ゴールをクラス、設計書内の関数が詳細設計書となる。
これでいっしょ上がり。
Xより引用
設計書の作成だけでなく、プログラムの作成も行いたいわけですね。
現時点での実装度で利用を決めるか否かを判断するのは早計であり、とりあえず使い続けてみることで、かの大魔法使いが見ている世界を片鱗だけでも見ることが叶うのかもしれません。
2024年4月17日
自然言語プログラミングの名称がふわふわしている
まだZoltraakではなかったようです。
2024年4月19日
実行可能なコードをPDCAするためのワークフロー考案が進む
要件定義書を基にプログラムを書かせ(高級言語コンパイルと呼ばれる)たあとにほぼ確実に発生するシステムエラーをAIに脳筋修正してもらおうという方向性で進みそうです。
IT土方みたいなものですね。
私の場合ですが、AIを使ってシステムエラーを解消しようとしていたときに、エラーの内容をAIにコピペして質問していたりしました。
存外、ワークフローを自然言語で定義できそうです。
また、自然言語プログラミングmotokiという呼称で固まっていたのですが、その見直しが行われ始めた日でもあります。
2024年4月21日
Zoltraakが生まれた
今日がZoltraak記念日だ!
(余談:Xの検索機能を使いすぎてたまに表示順がバグります🥹)
2024年4月22日
自然言語プログラミングがOSS化しそうだな、という
この日のつぶやきは自然言語プログラミングに限ったことではない話かもしれませんが、結果としてZoltraakがOSSになっているんですよね。
元木氏自身も常識が何であり、非常識が何であるのか、常日頃からキャッチアップしています。
キャッチアップしながらも、Zoltraakの試運転・開発が爆速で続いています。
Zoltraak内からリクエストされるプロンプトはこの日、世に公開されました。
もうすぐだ、もうすぐZoltraakが世の中に出るぞ…!
2024年4月23日
名称が固まり、Zoltraakのビジョンの言語化が進む
また、Zoltraakに関する情報発信が爆発的に加速する日
プロンプトの暗号化が進んでいたり、
コンパイル形式が順次構造ベースになったり、
ゾルトラークが汎用的な自然言語プログラムを目指す構想となったり(≒バベルの塔)しました。
構想やプロトタイプは4月中頃からずっとある状態ですが、名は体を表すといいますし、Zoltraakでいこう!となったここ数日あたりからビジョンが洗練されていきましたね。
Zoltraakを始めとする自然言語プログラミングは、言霊を如何に扱うか次第で、「社会を再構築するための」魔法となる、というビジョンに続きます。
また、この時点でZoltaakは「自然言語フレームワーク」、改めて自然言語を用いたプログラミングはbabel(後のniwatoko)だということが図示されています。
ついでにZoltraakの名前の変遷も図示されました。
なぜZoltraakとBabel(Niwatoko)は切り分けられたのか、その理由も述べられました。
Babelが仮称であることも明記されます。
Zoltraakは数学、日本語、英語、プログラム全てを扱うことができる、とのことです。これまでの実験を経て、やはりZoltraakは統一言語足り得る。
今後、自然言語プログラミングでフレームワークや型(守破離のニュアンス)を作る際のアプローチがこちらに。
余談ですが、かの元木大魔法使いは #生成AIエンジニア塾 の熟成を不定期に募集しており、要チェックです(私は毎回見逃し三振しておりお恥ずかしい…)
※自然言語プログラミングを本格的に扱いたい方は、元木氏の会社へラブレターを送るのもひとつの手かもしれませんね。開発メンバーと積極的にディスカッションしているので。
2024年4月24日
使用するLLMの選定が行われる。また、zoltraakコマンドの公開(当時はGPLライセンス)
Claude Haikuとgroqのllama3で、Zoltraakに関する出力速度テストが行われました。
デフォルトの設定でClaude Haikuが入力されているのは、これがきっかけと言えそうですね。
vendorの限定も一時期検討されていましたが、ここはアップデートによって今後変わることでしょう。
また、元木大魔法使いがずっと強いビジョンを掲げて動く理由が言語化された日でもあります。
GitHubに公開される日はもう少し先ですが、コマンドとして公開されています(Xで公開している様子が確認できていないので調査中)
2024年4月25日
Zoltraakを使って作ったホームページをポン出し
フロントエンドを高いクオリティで作れてしまうらしい。
すごすぎる。
作り方も公開されてます(4月25日から現在まで、何度もバージョンアップされてるので参考程度に)
4月25日時点ではZoltraakは稀に要件定義書→プログラムのポン出しを一発で行なってくれるようです。
フォルダの自動生成もできます。
GitHubの最初に表示されるイラストもこの日、生まれました。
競合他社が今後出すプロダクトで爆死する可能性を憂いつつ、引き続き爆速爆進です。
統一言語の名前はBabelからKotodamaに代わりそう?
2024年4月26日
Zoltraakの信頼性を証明
https://x.com/ai_syacho/status/1783548203599819094
モジュールの呼び出しや変数の定義が行えていることを確認中。
その後の調整でシステムのディレクトリ生成に成功しました。
2024年5月11日時点で、Zoltraak上にはgrimoire(グリモワール)というマークダウンファイル置き場があるのですが、こちらは自然言語プログラムのパッケージ群=魔導書置き場、となります。
グリモワールからファイルを呼び出すことで、異なる目的の出力を行うことができるんです。
グリモワールの力を借りて生成した要件定義書を基に修正して、実行ファイルへとコンパイルさせることで、作りたい成果物を作れるようになる、というワークフローが読み取れます。
少し話がそれるのですが、高級言語の変数とZoltraakの変数の記憶領域は少し考え方が異なるようです。
多くのシステムが複雑に通信しあっている中で、どのシステムが記憶領域を確保しているのか、という考え方に見えます。
さて、グリモアールをファンタジーの世界になぞらえると、グリモアールの中に綴じこまれた精霊(パッケージ)を術式に編み込むことで、知の巨人たるLLMに対して良質なプロンプトを提供し、その結果出力を得られる。
ということで我々はよく働く精霊を作ることに注力していきましょう。
grimoireだけでなく、Zoltraakそのものも拡張することが可能です(これを読んで試したくなった方は先にバージョンアップされたNiwatoko,Zoltraakをそれぞれ試しましょう)
また、こちらのように使い方を解説している情報も参考にしてみましょう。
2024年4月27日。
First Commit
ここから歴史は動き出す。
まだソースはない。
2024年4月28日のCommit「最初の一歩」
ソースコードにはコメントが小まめに書かれています。
人によっては可読性が低いと捉えるかもしれませんがこれはコーディングにも生成AIが使われていることを示唆しています。
一方でコメントが書かれていない箇所についてはフレームワークなどによって自動生成されたか、難読化が行われたか、書かせるまでもなく自分で書けるものか。
つまりZoltraak自身も自然言語プログラミングに近い形態で開発されている様子ですね。
(当然生成されたソースコードは本人は理解している)
理解していないコードがあったとしても、生成AIにコピペして意味を聞き出せばいいわけです。
コーディングスキルは読める程度に求められる。
一方で設計能力、質問力、言語化能力が多分に求められる予感。
ドキュメントやアーキテクチャについては最新のバージョンを読んだ方が正確に理解できる(はずな)ので、キャッチアップにおいては全部無視しましょう。
書かれているソースコードよりも、ソースコードを生成するために埋め込まれたコメントの方が重要度高そうですね。
Zoltraakの要件を定義しているようなもの。
コメントを読んでいくと、「最初の一歩」の段階で、「要件定義書」「戦略コンサルタント納品ドキュメント」「講義資料」「講義で使う問題」「FAQページ」「ホームページ」「エージェント(コンシュルジュ
とり急ぎZoltraakを使いたい方は、ソースコードと公式のドキュメントを読めば1日で始められそうですね。
同日の別Commitにて、
Zoltraakは「呪文を高速・広範囲な術式展開と強大な魔法の発動を可能とする自然言語システム」と定義づけられました。
→ 他の魔法がすでに存在していて、それらを掛け合わせて汎用的かつ強力にPC作業をサポートしていくツールとなりそうです。ソースを見ているとClaudeへアクセスするためのAPIキーを求められそうな感じしますからね。
こちらのCommitでは、
Windowsに対応するために文字コードの修正、そもそもの多言語対応、プロンプトの検索機能などが実装されました。
Commitだけを見るとよくわからないのですが、詠唱→自然言語変換機のリストとして存在していたsettingsがgrimoires(グリモワールズ)にリネームされました。
言葉通りに捉えると、魔術の手引書集、ということになるので頭の片隅に置いておきましょう。
高速な開発が続いているZoltraakですが、少数精鋭のコアメンバーがいて、デザイナー担当、開発担当などしているようです。
スピナー(Now Loading的な表示)表示の実装など、デザイン面の実装が進み始めていきます。
2024年4月29日Commit「汎用言語魔法 -lの導入」
出力言語を指定できるようになったようです。英語で要件定義書を書いたり、英語のドキュメントを日本語化したりが楽にできるポテンシャルを感じますね。
こちらのコミットにて、外部からのPRが受け入れられ始めました。
Zoltraakではissuesの作成が歓迎されており、誰しもがOSSコミッターになるチャンスがあります。追加したい機能も、バグも大量にあるので、ひたすら勉強と実践あるのみ!
Zoltraakを開発している主要メンバーはMAC x Cursorなため、既に対応が始まっているWindows移植を始めとしたマルチプラットフォーム対応などにも大きな需要がありそうですね。
(直ぐに削除された項目なため、現在はもう対応が済んでいるのかも)
まとめ
まだZoltraakが全くわからない。キャッチアップが終わるまで延々と更新されます。
いいねやストックをして、更新通知見に来てくださいね。
Zoltraakの変遷が見れますよ。