メルマガ読むならアプリが便利
アプリで開く

週刊Life is beautiful 2023年8月1日号: Magnificent Seven、七技神

週刊 Life is beautiful
今週のざっくばらん Magnificent Seven、「七技神」 ウォール・ストリートの投資家達は、テック業界を代表する企業のことを、GAFAM(Google, Amazon, Faceboo, Amazon, Microsoft)やFAANG(Facebook, Amazon, Apple, Netflix, Google)などと呼んで来ましたが、最近は、NvidiaとTeslaを加えて、「Magnificent Seven」と呼ぶようになりました。 この7社の、過去4年間の、株価総額の推移をグラフにしたのが下の画像です。 こうやってグラフにすると、AppleとMicrosftの強さが良く分かりますが、Teslaの株価が際立って乱高下していること、Nvidiaの株価が急速に伸びていること、などが良く分かります。Googleの株価が最近低迷しているのは、ChatGPTの誕生により、Googleの稼ぎ頭である検索サービスの価値が相対的に下がったことが原因だと言えます。Metaの株価は、「Metaverse戦略」のために低迷していましたが、Llamaをオープンソースとして公開したこと、Threadsと言うTwitterクローンをローンチしたことが評価されて上昇に転じました。 ちなみに、このグラフは、SlashGPTの"jupyter"というエージェントを使って作りました。まずは、yfinance(米国Yahooが提供するAPI)を使って、各社の株価をグラフにしてもらいましたが、株価だと相対的な比較しか出来ないので、株価総額(market cap)をグラフにするようにリクエストしたところ、各社の株の発行数を調べた上で、そこから株価総額を計算してこのグラフを描いてくれました。 どんな質問を書いてこのグラフに辿り着いたのかが分かるように、Jupyter notebookの形でSlashGPTプロジェクトの notebook フォルダーに入れておいたので、興味のある方は参照してください(SlashGPT/notebooks/magnificent7.ipynb)。ちなみに、株価総額を厳密に計算するには、それぞれの日付の株の総数(shares outstanding)を知る必要がありますが、その数字を得ることは出来なかったので、最新の株数を全期間に当てはめて計算しています。そのため、「自社株買い」などによる株の総数の変化がグラフには反映されていないので、注意してください。 この「Magnificent Seven」とは、1960年にスティーブ・マックイーン、ユル・ブリナーなどを主人公にした映画「Magnificent Seven」(邦題:荒野の七人)から来ています。しばしば盗賊達に襲われる農村が、凄腕の七人を用心棒に雇うというストーリーの映画で、大ヒットしたことで良く知られています。 この映画の内容が、日本の黒澤明監督の「七人の侍(Seven Samurai)」(1954年)をベースにしていることは良く知られており、黒沢が米国の映画業界で高く評価された証拠の一つになっています。 【追記】"Magnificent Seven"の日本語訳をどうしたら良いかの意見をTwitterで募集したところ、今は「凄い人」のことを「神」と呼ぶので、「七神」が良いのではとか、いっそのこと「七福神」が良いのではないかという意見が寄せられて、なるほどと思いました。 「七福神」は「福」をもたらす神なので、IT企業にふさわしい文字を見つけてそこを入れ替えるのが良いのではないかと思いました。計算機、情報、技術などから文字をとって、七計神、七算神、七機神、七情神などと書いてみたところ、「七技神」が最もしっくり来るように感じます。 LlaMA2でcode interpreter Metaから、オープンソースのLLM、LlaMA2がリリースされたので、性能を調べるべく、SlashGPT上に作ったGPT3.5向けの code interpreter、"jupyter" を LlaMA2 上に移植してみました。 LlaMA2は、重みデータも公開されているので、ローカルで走らせることも可能ですが、まずは、クラウド・サービスを使って試すことにしました。LlaMA2が公開されてから数日後には、replicate.com からクラウド・サービスとして提供されていたので、これを使います。 ちなみに、replicate.com は A16Z と Sequoia の両方のVCから資金提供を受けたシリコン・バレーのベンチャー企業で、さまざまなオープンソースなAIを、AI as a service として提供するベンチャーです。ここは当然、Microsoft や Amazon との戦いになりますが、オープンソースなAIに特化することで差別化を図ろうとしているのだと思います。 エージェント名は、"jupyter2" として作り始めましたが、結構苦労しました。GPT3.5のように"function call"の機能がないため、promptでPythonでコードを書くように指示した上で、出力されたテキストの中からコードを抜き出す必要があります。 難しかったのは、function call の結果の渡し方です。GPT3.5の場合は、roleを"function"としてチャット・メッセージとして渡せば、それをfunctionの戻り値として理解してくれるので、問題ありませんが、LlaMA2にはそんな機能がないので、functionの戻り値をそのままユーザーからのメッセージとして渡すと、勘違いをしてさらにコードを書いて無限ループに陥ってしまうのです。 仕方がないので、"jupyter2"の場合には、functionの結果をチャット・メッセージとして追加した後、一度ユーザーの入力を待つ、という実装でこの問題を回避することにしました。 テストを繰り返していると、LlaMA2はしばしばバグがあるコードを書くので、最初は「GPT3.5よりもコードを書く能力が大きく劣る」と感じていました。しかし、そうしているうちに、replicate.comから新たな「チャット向けのfine tuningをしたLlaMA2」がリリースされ、そこで初めて、最初に試していたLlaMA2は、パラメータ数が7billionのものであり、新たにリリースされた方が70 billionのパラメータを持つモデルであることを知り、そちらに切り替えたところ、とても良好な結果が出始めました。 とは言え、このモデルの実行にはとても時間がかかるため(30秒以上)、使い物にならないと感じています。LlaMA2に関しては、さらに色々と試す必要があるので、ローカルで動かすことも含めて、色々とやってみようと思います。 ちなみに、LlaMA2版のcode interpreterが動くのであれば、(Google が提供する)Palm2版の code interpreter も動くはずだと思い、試したところ、あっさりと動きました。function call がない欠点は、LlaMA2と同じですが、生成するコードのクオリティは、GPT3.5やGPT4に勝るとも劣りません。PaLM2の唯一の欠点は、必要以上に「安全装置」が働いて、コードの生成に失敗してしまう点です。Googleとしては、悪用されないように、と必要以上に厳しくしているのでしょうが、少しやりすぎです。 Jupyter Notebookでアーキテクチャ・ダイアグラムを描く実験 先週、一緒に働いている仲間から、SlashGPTのアーキテクチャ・ダイアグラムを描いて欲しいというリクエストがありました。通常であれば、Keynote(Apple純正のプレゼン・ソフト)あたりを使って描くのですが、それだと、アーキテクチャに変更を加えるたびに、描いたダイアグラムを変更するのに手間がかかるし、Githubとも相性が良くありません。 そこで思い出したのが、少し前でここでも紹介した、Andrej Karpathyによるバック・プロパゲーションの解説ビデオ(The spelled-out intro to neural networks and backpropagation: building micrograd)です。このビデオの中で、Karpathy氏は、Pythonコードを使ってダイアグラムを自動生成していたのが、とても便利そうだったので、時間を見つけて勉強しようと考えていたのです。

この続きを見るには

この記事は約 NaN 分で読めます( NaN 文字 / 画像 NaN 枚)
これはバックナンバーです
  • シェアする
まぐまぐリーダーアプリ ダウンロードはこちら
  • 週刊 Life is beautiful
  • 「エンジニアのための経営学講座」を中心としたゼミ形式のメルマガ。世界に通用するエンジニアになるためには、今、何を勉強すべきか、どんな時間の過ごし方をすべきか。毎週火曜日発行。連載:菅首相に会って来た/米国で起業する時に知っておかねばならないこと。
  • 880円 / 月(税込)
  • 毎週 火曜日(年末年始を除く)