ChatGPTに代表されるGenerative AIが一大トレンドになっています(2023年3月20日現在)。当オフィスではいわゆるDXの一環である業務効率化や自動化をサポートする観点から、Generative AIをどのように活用できるのかを、このブログを通じて考察してみたいと思います。
なお、このブログの最後に、ChatGPT APIをGoogle SpreadSheet内の関数として動かしたサンプルのスプレッドシートをお配りしています!ご興味のある方は、ぜひご活用ください。
目次
Generative AIとは何か
さて、まずGenerative AIとは何でしょうか。後述もしますが、試しにNotion AIを使ってGenerative AIとは何かを説明してもらいました(この記事を書いている最中、ちょうどChatGPTはサービスダウンしていました)
Generative AIとは、大量のデータから学習したAIモデルが新しいデータ(文章、画像、音声など)を自動生成する技術のことです。AIが学習データからパターンを見つけて、そのパターンに基づいて新しいデータを作り出すのです。代表的なGenerative AIモデルにGPT-3などがあります。
もっともらしい回答が返ってきましたね!比較のために、Google検索で見つけた産総研マガジンに記載されていた「ジェネレーティブAI」とは?の記述も確認してみましょう。
Gartner社が2022年の「戦略的テクノロジーのトップ・トレンド」として発表したキーワード「ジェネレーティブAI」。ジェネレーティブAIとは、「コンテンツやモノについてデータから学習し、それを使用して創造的かつ現実的な、まったく新しいアウトプットを生み出す機械学習手法」と言われています。データ駆動型のAIが得意とする「データがたくさんある世界」だけで活躍する技術ではなく、少ない情報から新しいことを生み出せるなど、データが十分でない領域に踏み出す技術、という点で「次世代のAI技術」のひとつとして注目されています。
Generative AI自体の定義に幅はありそうですが、これら2つの結果を簡単にまとめると、大量のデータモデルを予め学習させた上で、新しいコンテンツ(文章、画像、音声など。今後は動画や3Dモデルも容易になりそう)を、大量に生成していくことができる、ということになりそうです。筆者はAIや機械学習の専門家ではありませんが、様々な記事やメディアで得た知識を元に総合的に主観で判断する限り、NotionAIの回答は問題ないレベルなのではないかと思われます。
Generative AIに関する最近のニュースのまとめ
このブログを書いているそばから、日々矢継ぎ早に新しい発表があるため、この段落を設けました。以下は最近発表のあったニュースやプレスリリースのまとめです。BIG Tech系の目立ったニュースしか載せてませんが、当然これらにも多種多様な発表やAPI使った新しいサービスが雨後の筍のように出てきているような状況です。正直ChatGPTがサービスダウンしている状況に少しホッとしていたりします。
- 2023年3月24日
- ChatGPT pluginsがリリース
- 2023年3月23日
- MicrosoftがNotion対抗アプリLoopのパブリックプレビュー開始
- 2023年3月22日
- GoogleがBardの提供を開始(米国・英国のみ)
- Microsoft BingでAI画像生成サービスをローンチ
- 2023年3月17日
- Microsoft 365 Copilot を発表
- 2023年3月15日
- GoogleがWorkspaceにもAI提供を開始
- 2023年 3月14日
- Open APIによるGPT-4の発表
- GoogleによるLLM「PaLM」のAPI提供発表
AIと社会における考察について(Getting AI Right:Introductory Notes on AI & Societyより)
さて、ここでGenerative AIに関する詳細なサービス事例や使い方の説明に入っていく前に、現在のAIと社会における動向を確認するための文献を紹介したいと思います。AIが現在までにどのように発展し、現在どのような状況にあり、これからどのような方向性に向かっていくかを把握することで、現在のGenerative AIの特徴や限界を知った上でサービス開発や利用を行うことができると考えるためです。
その文献とはJames Manyika氏(が2022年5月1日に発表したGetting AI Right: Introductory Notes on AI & Society になります。なおJames Manyika氏はマッキンゼー・アンド・カンパニーの名誉シニアパートナーであり、マッキンゼー・グローバル・インスティテュート(MGI)の会長兼名誉ディレクターでもあり、Googleの Technology and Society部門(?)のシニアヴァイスプレジデントでもあります。
本ブログの筆者は機械学習やAIの専門家ではないため込み入った解説はできませんが、以下では筆者が気になった部分を抜粋します(以降、日本語訳はDeepLを用います)。この文献の中には、1)AI開発は現段階でどこまで到達しているのか、2)AIは社会に対してどのようなメリットと課題を投げかけているのか、3)AIについて本当に人間のためであるのはどの程度か、といった議論を展開しており、非常に興味深いものとなっています。
音声認識と自然言語処理もまた、急速な進歩を遂げ、大きな話題を呼んでいる。最も印象的なのは、人間のような出力を生成できる大規模な言語モデルが最近出現してきたことです。人間の知能、推論、理解という概念において、言語が果たす役割を考えると、言語の進歩は特に重要である。
Speech recognition and natural language processing have also seen rapid and headline-grabbing advances. Most impressive has been the emergence recently of large language models capable of generating human-like outputs. Progress in language is of particular significance given the role language has always played in human notions of intelligence, reasoning, and understanding.
AIとその関連技術は、多くの人が思っている以上に、すでに存在し、私たちの日常生活に浸透しています。例えば、推薦システム、検索、今や100言語以上をカバーする言語翻訳機、顔認識、音声合成、デジタルアシスタント、顧客サービス用チャットボット、詐欺検出、意思決定支援システム、エネルギー管理システム、科学研究用ツールなど、数え切れないほどです。これらの例やその他の例では、AI関連技術は、現実世界の雑多な入力から学習し、推論、予測、場合によっては行動に取り込むための方法として、他のソフトウェアやハードウェアシステムの構成要素になっています。オックスフォード大学のFuture of Humanity Instituteのディレクターであるニック・ボストロムは、2006年にこう述べています。「最先端のAIの多くは、一般的なアプリケーションに浸透しており、これらはAIとは呼ばれていない。なぜなら一度便利になり広まってしまうとAIと分類されなくなるからだ。
While the headlines tend to feature results and demonstrations of a future to come, AI and its associated technologies are already here and pervade our daily lives more than many realize. Examples include recommendation systems, search, language translators–now covering more than one hundred languages–facial recognition, speech to text (and back), digital assistants, chatbots for customer service, fraud detection, decision support systems, energy management systems, and tools for scientific research, to name a few. In all these examples and others, AI-related techniques have become components of other software and hardware systems as methods for learning from and incorporating messy real-world inputs into inferences, predictions, and, in some cases, actions. As director of the Future of Humanity Institute at the University of Oxford, Nick Bostrom noted back in 2006, “A lot of cutting-edge AI has filtered into general applications, often without being called AI because once something becomes useful enough and common enough it’s not labeled AI anymore.
AIには、一般的に2種類の定義が与えられている。1つ目は、知的存在(通常は人間)ができることを人工的に行う能力であるとするものである。例えば、人工知能とは デジタルコンピューターやコンピューター制御のロボットが、一般的に知的な存在に関連するタスクを実行する能力。 このような定義で呼び出される人間の能力には、視覚認識、音声認識、推論、問題解決、意味の発見、一般化、経験から学習する能力などが含まれます。この種の定義は、何をもって知能とするかという人間中心主義や、AI開発の成功基準において限界があると考える人もいる(これについては後述)。第二の定義は、人間中心主義から脱却しようとするもので、知的エージェントやシステムを、その起源、構成、方法が何であれ、次のように定義する: 環境を認識し、目標達成の可能性を最大化するような行動をとるシステム。 このタイプの定義はまた、目標の追求を示唆するものであり、それはシステムに与えられたもの、自ら生み出したもの、あるいは学習されたものである。 Two types of definitions are typically given for AI. The first are those that suggest that it is the ability to artificially do what intelligent beings, usually human, can do. For example, artificial intelligence is: the ability of a digital computer or computer-controlled robot to perform tasks commonly associated with intelligent beings. The human abilities invoked in such definitions include visual perception, speech recognition, the capacity to reason, solve problems, discover meaning, generalize, and learn from experience. Definitions of this type are considered by some to be limiting in their human-centricity as to what counts as intelligence and in the benchmarks for success they set for the development of AI (more on this later). The second type of definitions try to be free of human-centricity and define an intelligent agent or system, whatever its origin, makeup, or method, as: Any system that perceives its environment and takes actions that maximize its chance of achieving its goals. This type of definition also suggests the pursuit of goals, which could be given to the system, self-generated, or learned That both types of definitions are employed throughout this volume yields insights of its own.
現在のアプローチで十分かどうかという議論は、人工的な一般知能が実現できるかどうか、実現できるとすれば、いつ、どのように実現するかという問題と密接に関連している。人工知能(AGI)は、狭義のAIと呼ばれるもの、つまりチェスをするような特定のタスクや目標のために開発され、微調整されたAIとは区別して定義されています。一方、AGIの開発は、より強力なAI、少なくとも人間と同程度の強力なAIを目指すもので、あらゆる問題や状況に一般的に適用でき、ある概念では、自ら進化・改善し、目標や好みを設定・進化させる能力を含むとされます。AGIが実現するかどうか、どのように実現するか、いつ実現するかは議論の余地があるが、『2001年宇宙の旅』や『ターミネーター』などの人気書籍や映画でしばしば描かれているように、その実現が人類にとって有益かつ懸念されるような重大な意味を持つであろうことは、多くの人が認めている。 マトリックス』から『エクス・マキナ』、そして『her』へ。それが迫っているかどうかは別として、AI研究の最前線では、安全性や制御、人間との連携や互換性、そのガバナンスや利用、複数の種類のAGIが出現する可能性などについて、強力なAGIの出現に備えておくべきで、AGIの開発への取り組み方にこれらの考慮事項を織り込むべきであるという意見が多くなってきているのです。
今日のAIへの投資、研究開発、商業活動のほとんどは、狭義のAIであり、その形態も様々である。これは、有用かつ商業的なアプリケーションの範囲と、経済の複数のセクターにおける経済的利益の可能性を考えれば、驚くには値しない。しかし、AGIの開発を主要な目標としている組織は少数である。その中でも最もよく知られているのはDeepMindとOpenAIで汎用性を増やすという成果を実証しているが、AGIへの道のりはまだ遠い。
The debate about the sufficiency of the current approaches is closely associated with the question of whether artificial general intelligence can be achieved, and if so, how and when. Artificial general intelligence (AGI) is defined in distinction to what is sometimes called narrow AI: that is, AI developed and fine-tuned for specific tasks and goals, such as playing chess. The development of AGI, on the other hand, aims for more powerful AI–at least as powerful as humans–that is generally applicable to any problem or situation and, in some conceptions, includes the capacity to evolve and improve itself, as well as set and evolve its own goals and preferences. Though the question of whether, how, and when AGI will be achieved is a matter for debate, most agree that its achievement would have profound implications–beneficial and worrisome–for humanity, as is often depicted in popular books38 and films such as 2001: A Space Odyssey through Terminator and The Matrix to Ex Machina and Her. Whether it is imminent or not, there is growing agreement among many at the frontier of AI research that we should prepare for the possibility of powerful AGI with respect to safety and control, alignment and compatibility with humans, its governance and use, and the possibility that multiple varieties of AGI could emerge, and that we should factor these considerations into how we approach the development of AGI. Most of the investment, research and development, and commercial activity in AI today is of the narrow AI variety and in its numerous forms: what Nigel Shadbolt terms the speciation of AI. This is hardly surprising given the scope for useful and commercial applications and the potential for economic gains in multiple sectors of the economy. However, a few organizations have made the development of AGI their primary goal. Among the most well-known of these are DeepMind and OpenAI, each of which has demonstrated results of increasing generality, though still a long way from AGI
知的であること、創造的であること、もっと一般的に言えば、どういうことなのでしょう、 私たちが自分自身の特性を定義してきた方法の多くが、ますます模倣されるようになり、将来的には機械によってより良く、あるいはより良く行われるようになるとしたら、認知的に人間であると言えるでしょうか。人間であることのどれだけが、その仕組みがわからないという謎を必要とし、それを模倣したり人工的に複製したりすることができないことに依存しているのでしょうか。これが変わるとどうなるのでしょうか。人間の能力に縛られたXの概念(Xは知性、創造性、共感、人間関係など)は、Xを補完する他の形態の可能性をどの程度制限しているのだろうか。それとも人類にもっと貢献するのか?私たちは、社会経済システムや制度、社会インフラ、社会政策の根幹にあるもの、正義や代表、包摂といった概念をどこまで見直し、それらが本当はどうなのか(そしてこれまでどうだったのか)、AIの時代にどうあるべきかを直視しなければならないのか。
What does it mean to be intelligent, creative, or, more generally, cognitively human when many of the ways we have defined these characteristics of ourselves increasingly can be imitated or even, in the future, done better or better done by machines? How much of being human needs the mystery of not knowing how it works, or relies on our inability to mimic it or replicate it artificially? What happens when this changes? To what extent do our human ability– bounded conceptions of X (where X could be intelligence, creativity, empathy, relations, and so on) limit the possibility of other forms of X that may complement or serve humanity better? To what extent must we reexamine our socioeconomic systems and institutions, our social infrastructure, what lies at the heart of our social policies, at our notions of justice, representation, and inclusion, and face up to what they really are (and have been) and what they will need to be in the age of AI?
その欠点はともかく、大規模な言語モデルの出現と、人間のような出力を生成するその能力は、トビアス・リーズが言うように、能力がますます向上する機械の時代における我々に関する疑問を探求する、ある種の「実験室」となる。私たちは、デネットが1988年のエッセイの最後に示唆した、「AIはまだ古代の謎を解いてはいない。しかし、AIは、哲学的な想像力を鍛え、拡張する新しい方法を提供してくれている。ムラティは、機械が人間のような創造性に近いアウトプットを生み出すことができるようになったとき、人間がどのように機械と関わり、機械とともに働くことができるかを探っています。ムラティは、OpenAIの大規模言語モデルであるGPT-3が生成した例を用いて、このことを説明しています。私たち人間は、仕事やその他の創造的な活動との関係を考え直さなければならないかもしれないのです。 Their shortcomings notwithstanding, the emergence of large language models and their ability to generate human-like outputs provides a “laboratory” of sorts, as Tobias Rees calls it, to explore questions about us in an era of increasingly capable machines. We may have finally arrived at what Dennett suggests at the end of his 1988 essay, that “AI has not yet solved any of our ancient riddles . . . but it has provided us with new ways of disciplining and extending philosophical imagination that we have only just begun to exploit.” Murati explores how humans could relate to and work alongside machines when machines can generate outputs approaching human-like creativity. She illustrates this with examples generated by GPT-3, OpenAI’s large language model. The possibilities she describes echo what Scott suggests: that we humans may have to rethink our relation to work and other creative activities.
AIの歴史を通して、私たちは「今、どの程度優れているのか」と問いかけてきました。この質問は、チェスや囲碁をプレイすることから、物事を知ること、手術をすること、車を運転すること、小説を書くこと、芸術作品を作ること、数学的推測や科学的発見を独自に行うこと、単にベッドサイドマナーとして優れていることなど、あらゆる用途について聞かれてきました。この問いかけには、「何と比較して」という問いかけも有効でしょう。社会への影響を考慮すれば、AIをそれぞれの活動で最も得意とする人間と比較することができるかもしれません。最も優れた」人間がAIよりも優れた能力を発揮する活動はたくさんありますし、今後もそうでしょう。また、その活動に従事している、あるいはその活動を許可されている平均的な人間や、無作為に選ばれた人間など、他のサンプルの人間と比較することもできるだろう。そして、AIがより高性能になるにつれて、社会的な影響がより複雑になってきます。例えば、安全上重要な活動を行う人間の許可基準を、機械の能力に合わせて引き上げるのか。同様に、AIが十分な能力を発揮するタイミングは何によって決まるのでしょうか?3つ目の比較は、前述のサイモンとニューウェルが考えていたように、AIの能力が人間の能力とどの程度共存するようになるかという点です。この点で、AIがどれだけ優秀になれば、先に述べたような新しい時代の幕開けを予感させることができるだろう。しかし、最も重要なのは、私たちがAIを何に使うか、AIが社会に貢献するために何を必要とするかという点での比較であろう。このような比較では、AIをどのように設計し、開発し、導入するかということと同様に、社会的な影響は、当然の結論ではなく、私たち次第の選択であるように思われます。 Throughout the history of AI, we have asked: how good is it now? This question has been asked about every application from playing chess or Go, to knowing things, performing surgery, driving a car, writing a novel, creating art, independently making mathematical conjectures or scientific discoveries, or simply having a good bedside manner. In asking the question, it may be useful also to ask: compared to what? With an eye toward implications for society, one might compare AI with the humans best at the respective activity. There remain plenty of activities in which the “best” humans perform better than AI–as they likely will for the foreseeable future–and society is well served by these humans performing these activities. One might also compare with other samplings of humanity, such as the average person employed in or permitted to conduct that activity, or a randomly selected human. And here, as AI becomes more capable, is where the societal implications get more complicated. For example, do we raise permission standards for humans performing safety-critical activities to keep up with machine capabilities? Similarly, what determines when AI is good enough? A third comparison might be with respect to how co-extensive the range of AI capabilities become with those of humans–what Simon and Newell, as mentioned earlier, thought would eventually come to pass. How good AI systems become in this respect would likely herald the beginning of a new era for us and for society of the sort discussed previously. But perhaps the most important comparison is with respect to what we choose to use AI for and what we need AI to be capable of in order to benefit society. It would seem that in any such comparisons, along with how we design, develop, and deploy AI, the societal implications are not foregone conclusions, but choices that are up to us.
自民党AIの進化と実装に関するプロジェクトチームにおけるスライドから
続いて、自民党AIの進化と実装に関するプロジェクトチームにある資料の中から気になるものをピックアップしたいと思います。このnote、随時更新されているようで大変興味深いです。
松尾豊(東京大学教授)の「AIの進化と日本の戦略」
松尾豊(東京大学教授)の「AIの進化と日本の戦略」の中から、気になるスライドをピックアップしてみました。中でも自然言語におけるユースケースは今後のGenerativeAIの基本的な使い方を考える上でとても参考になりそうです。
既にGPT-4が登場しているため、今となっては今更感があるかもしれませんが、何が衝撃的かというのが3つの事例としてさすがに分かりやすく感じました。
松尾研のスライドでは、どうChatGPTを活用していくかという点では、ここが革新のように感じました。Google検索のような調べ物をしたりという使い方とはやはり違うのですよね。またノーコードやローコードを活用したワークフローを改善・効率化するというのともまた違う印象になります。端的に言うと何かを書くという行為のとっかかりを楽にしてくれるということになるでしょうか。
学校での対応についても言及がありました。教育分野でどのようにChatGPT(AI)と向き合うかは、The Wharton SchoolのAssociate ProfessorであるEthan Mollickによるブログ私のクラスではAIが必須でした。今まで学んだことをまとめます(My class required AI. Here’s what I’ve learned so far.))も詳しいです。こちらによると1.少ない情報量でAIに任せる場合、2.制限を加えつつユーザーの知識を与える場合、3.共同編集していく場合、の3パターンだと共同編集的なアプローチが一番結果が良かったようです。
最初のアプローチでは、非常に平凡な結果が得られ、この種のプロンプトを使用した学生は、しばしばその結果を「薄っぺらい」と表現しました。2つ目のアプローチはかなり良い結果でしたが、プロンプト全体を試行錯誤していたため、結果はよりバラツキがありました。そのため、良いエッセイを微調整するのは難しく、このアプローチを使用した学生は、AIの出力に対してあまりコントロールできていないと感じることが多いと述べています。最も優れたエッセイと最も感動的な学生を生み出したのは、共同編集というアプローチでした。このアプローチでは、AIの出力に注意深く集中する必要があり、それが生徒の学習にも非常に役立ちました。ホワイトペーパーで述べたように、AIにエッセイの改良を教えることは、新しい洞察を生み出すことができる教育的手法です。AIエッセイを授業に取り入れるつもりなら、この方向で学生を後押しすることを強くお勧めします。 The first approach yielded very mediocre results and students with these types of prompts often described the results as feeling rather vapid. The second approach was significantly better, but the results were more variable, as students were engaging in trial-and-error with entire prompts. That made fine-tuning a good essay hard, and students using this approach often remarked that they felt they did not have a lot of control over the outputs of the AI. By far the best approach, which led to both the best essays and the most impressed students, happened when people took the co-editing approach. The approach required a lot of careful focus on the AI output, which also made it very useful for student learning. As we discussed in our whitepaper, teaching an AI to improve an essay is a pedagogical method that can produce new insights. I would strongly suggest that you push students in this direction, if you intend to incorporate AI essays into your classes.
氏の別の投稿であるAIを使って何かをするための実践ガイド(The practical guide to using AI to do stuff)はAIを活用する文脈でどんなツールがベストなのかなど、よくまとまっています。
ホワイトカラーの仕事ほぼ全てに影響が出る可能性が高いということですが、ちょうどLLM chatbotが人類にもたらすのは、絶望なのか希望なのかが面白かったので抜粋させていただきます。
もっとも、あえてここでLLMに様々な仕事が代替されると仮定して、どんな仕事が超長期的には求められていくかを考えるのは面白いことだと思います。僕個人の考えでは、以下のようなポイントが大事になってくるのではないかと考えています。 1. オペレーション要員の必要性は下がっていく 2. ストラテジストの重要性が相対的に増す 3. 「答え」をLLMが出すようになればなるほど「適切な問いを立てられること」の重要性が増す 4. Hallucinationそして「不正確さの谷」を潰す作業は依然としてヒトの仕事のまま 5. LLMの学習データに「まだ含まれない」ような新規性かつオリジナリティのある仕事を手掛ける (中略) ……で、こういう話をしていてそれっぽいなと思った喩えが「LLMは『駆け出しで時々ミスすることもあるが何でも出来る部下』であり、これを巧みな指示とマネジメントでうまく使いこなす『管理職』的な立場をヒトが担うべき」というものです。このように考えれば、全ての人類に「部下」を与えてくれるのがLLM chatbotだと見ることもできそうです。となれば、そんな「誰もが自由に使える部下にどう上手く仕事をさせるか」が問われる時代が今後やってくる、とも言えるのかもしれません。
「駆け出しで時々ミスすることもあるが何でも出来る部下」というのは確かに納得感がありますね。先程のEthan Mollick氏のブログで共同編集のやり方がよいという話と通じるものがありそうです。Microsoft Office製品のCopilot(副操縦士)という名称もこうしたことを意識してのことなのだろうと思います。そもそも何をしたいのか何を目指すのかといった点は人間が考え、AIと共に何を創り上げるのかを適切に問い立てをしながらアウトプットを求め、新しい何かをつくっていくという方向性でしょうか。山本五十六の「やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ。 話し合い、耳を傾け、承認し、任せてやらねば、人は育たず。 やっている、姿を感謝で見守って、信頼せねば、人は実らず。」をChatGPTに対してしてあげればいいのかもしれません。
元々が自民党内での勉強会(?)の場でのスライドで日本の戦略まで語られていますね。個人としては(スタートアップ創業者やIT系経営者・CTOでもない限り)1は難しく、2や3を地道にがんばっていく感じになるでしょうか。
日本マイクロソフト:「ChatGPT:OpenAIとMicrosoft」
ある種直近の大本命でもあるMicrosoft社によるChatGPTおよびOpenAIとMicrosoftに関する資料です。営業資料のようなノリですが、まとまりがよいです。
人工知能→(41年)→機械学習→(20年)→ディープラーニング→(4年)→ジェネレーティブAIと、AI人工知能のエポックメイキング的な進化の間隔がどんどん狭まっているのが印象的です(もちろんどのように歴史を切り取るかによるでしょうが)。
本ブログの別箇所でもChatGPTについてはまとめたいと思っていたのですが、スライドに説明がありMicrosoft社の公式ということで引用させていただきました。GPT-4では資格試験など答えがきまっているような分野ではそうとうに能力が高いということがいえそうです。
私自身もGPT-3からその存在を知り始めたため、GPT-1,2についても知ることができました。GPT-3ではテキストの性能が進化し、GPT-4ではテキスト性能の他、マルチモーダルにも対応可能になったという点が大きな進化といえるでしょうか。
基本的にはインターネット上やその他公開されているデータから学習したということが言えそうです。このあたり、Googleの方がデータ量が多いのではと素人ながらに思ってしまいますので、Bardの性能向上については今後期待したいところです。インターネットが広まった約30年ほどの公開されている人類の知識を一気に圧縮して対話形式で使えるようになったと考えると中々感慨深いものがあります。
機密情報を含む他社との議事録の要約なんかはChatGPTでやっちゃっていいの?というのは気になっていた点なので、このスライドで少し明確になった気がします。エンタープライズ向けにはMicrofost Azure OpenAI Service使いましょうね、ということになるでしょうか。Google Workspaceなども同様になりそうですね。
このあたりは松尾研のスライドで述べられていた内容と重複しそうです。
サービス事例:ChatGPT
「ChatGPTとは何か」「ChatGPTで出来ること」といったあたりは、前述の「ChatGPT:OpenAIとMicrosoft」のスライドにありましたため、一部重複しますが記載をしていきます。
ChatGPTとは何か
ChatGPTはOpenAIが開発した会話AIモデルです。対話システムとしてトレーニングされており、人間の会話の流れを理解し自然な応答ができるように設計されています。ユーザーがChatGPTに入力すると、その入力に基づいて適切な応答を生成します。
ChatGPTはOpenAIのGPTモデルファミリーの一部であり、非常に大規模なトレーニングデータと強力な機械学習技術に基づいて構築されています。 ChatGPTは会話AIとして非常に興味深い可能性を秘めており、今後さらに応用範囲が広がると期待されています。
なお、OpenAIはDeepMindと並んでこの分野の最先端を行く研究機関であることが、このブログの冒頭でご紹介したJames Manyika氏の論文でも言及されていました。。
ChatGPTで出来ること
ChatGPTできることのうち代表的なものを列挙してみたいと思います。もちろん、下記に挙げた以外のことですとか、より細かい粒度の事柄でできることは大量にあると思います。
まず、先程あげた日本マイクロソフト:「ChatGPT:OpenAIとMicrosoft」のスライドになるべく沿う形で詳細を記載します。
- 文章を生成する
- ユーザーがトピックやキーワードを入力すると、ChatGPTはそれに関連する文章を生成できます。これは、文章要約、自動翻訳、文書生成、文章のパロディー生成などに使用することができます
- 知識・文章の要約を行う
- ChatGPTは、長い文章を短くまとめることができます。これは、記事要約、要約記事の生成、自動抄録、重要な情報の抽出などに使用することができます。
- 調べ物をする
- 他の項目と重複もしますが、情報検索の補助(Webサイトのリンクを取得するなど)や翻訳、学習サポート、クイックレファレンス(特定の用語や概念の簡単な定義を提供)、会話型検索などを行うことができます。
- 作業、プログラミングをサポートする
- プログラミングに関する質問を行うとその回答やコードの生成や検証、テストスイートの作成を行ってくれます。ソフトウェア開発に必要な要件定義書やフロー図の作成についても役立てることもできます。
- ブレストおよびロールプレイングを行う
- 前提条件を与えた上で新しいアイデアを列挙してもらう(新製品開発のアイデアを得るなど)、ChatGPTをロールプレイングの仮想の相手になってもらい会話を行うなど(英語学習での対話相手になってもらうなど)といった活用方法が考えられます。
- クロスレビュー、改善レビュー、危険度チェックに役立てる
- 複数のレビューをまとめたり、顧客のフィードバックを収集し改善点を抽出したり、過去のデータから学び、今後の事故やトラブルを防ぐための改善案を提供することができます。
スライドにはなかったもの以外に、以下のようなこうとも出来ます。
- 質問に答える
- ChatGPTは様々なトピックに関する一般知識を持っており、ユーザーからの質問に答えることができる。これは、FAQシステム、チャットボット、カスタマーサポートなどに使用することができます。
- 物語を生成する
- ChatGPTにストーリーの始まりを入力すると、そのストーリーを続けて文章を生成してくれる。
- 詩や歌詞を作る
- ChatGPTはリズムとリライムを意識しながら詩や歌詞を生成することができる。
- 人間と自然な会話を行う
- ChatGPTは人間の会話を理解し、それに応じて適切な応答を生成できます。これは、チャットボット、仮想アシスタント、音声対話システムなどに使用することができます。
- 機械翻訳を行う
- ChatGPTは、多言語の文章を自動的に翻訳することができます。これは、Webページの自動翻訳、翻訳エージェント、グローバルマーケティングなどに使用することができます。
以上は基本的にGPT-3を前提とした内容ですが、GPT-4以降、今後マルチモーダル化が進むため、できることは更に増えていくと予想されます。画像や動画を生成するですとか、画像や動画にあるテキストを読み取って何かをしていくなどでしょうか。
ChatGPTの使い方(プロンプトデザイン)
例えば調べ物をするシーンでは、今までGoogleで検索を使うのが基本でした。例えばGoogle Apps Scriptの始め方について調べたいなと思ったら「Google Apps Script 始め方」のようにGoogle検索するみたいな感じです。このように思いつく単語を列挙していくだけで検索結果が表示され、その中から自分のニーズにあいそうなサイトにいって該当する事項を探していくというのが従来のやり方でした。
ChatGPT プロンプトデザイン 命令編
まずはGoogle検索からのアンラーニングをしていくところから始めましょう。思いつく限り、まずは以下のような事柄を「命令(依頼)」していくと、とりあえずの回答は得られます。
- 命令文法
- (メールやその他の文章)を作成して
- (Pythonコード)を書いて
- (一連の文書に)ついての質問に答えて
- (会話型エージェント)を作成して
- (ソフトウェアに自然言語インターフェース)を提供して
- さまざまな科目の指導を行って(教えて)
- (言語)を翻訳して
- (ビデオゲームやその他のためのキャラクター)をシミュレートして
ChatGPT プロンプトデザイン 条件編
命令編に書いたことに加えて、細かな条件を指定することで、より正確な回答が得られる場合があります。
- (XXXについて)簡潔に(書いて/作成して/etc…)
- (XXXについて)箇条書きで10個(書いて/作成して/etc…)
- (XXXについて)詳しく(書いて/作成して/etc…)
- (XXXについて)プロフェッショナルに(書いて/作成して/etc…)
ChatGPT プロンプトデザイン 前提条件編
条件編の応用のようでもありますが、予めChatGPTから得たい情報の前提となる条件を付与しておくことで、より正確な回答が得られる場合があるようです。
- あなたはXXX(例:SEOおよびWebマーケティング)のプロフェッショナルです。
- (以下、「「Google Apps Script 始め方」というキーワードで検索10以内を狙うブログタイトルを提案して」のように続けます)
- XXX(例:Vue3とVuetify)を用いてXXX(例:「氏名」「住所」「お問い合わせ内容」の3つの項目)からなるXXX(例:お問い合わせフォーム)を作ります。
- (以下、「このコードを書いてください」のように続けます)
ChatGPT プロンプトデザイン 追加情報編
ChatGPTに依頼をしていると、途中で出力結果が止まる場合があります。その場合は、
- 続けて(ください)
といえば、出力を再開してくれます。筆者の経験では、小説やエッセイ・ブログのような長い文章の生成であったり、配列的なリストの出力で止まる場合がありましたので、上記の命令で出力を再開してもらっていたりします。
ChatGPT プロンプトデザイン 情報訂正編
ChatGPTと会話を続けていると、回答に満足できない(意図した出力結果とは異なる)場合や、そもそもの思考過程が異なっているのではないかと思うような結果に出くわします。以下のように情報の訂正や削除を依頼すると、望んだ回答に近づけます。(参考:ChatGPTを賢くする呪文)
- (コード作成を依頼して出力された結果の一部の訂正を依頼したい場合など)XXXとXXXの部分に私の期待する結果とは異なる部分があります。XXX(求める結果を指定する)のようにコードを修正してください。このとき、XXXという条件も考慮してください。
- (出力された結果/依頼内容に対して)一歩(ステップバイステップで)ずつ考えてください。
- (出力された結果/依頼内容に対して)論理的に考えてください
- (出力された結果/依頼内容に対して)この問題を段階を分けて解いてください
ChatGPT プロンプトデザイン 情報削除編
それまでの会話内容を考慮した回答が返ってきて、これはこれで便利なのですが、、一度やり直したい場合やそもそも話題を変えたい場合は、それまでの会話を忘れてもらう必要があります。
- 先程の質問を忘れてください
- これまでの条件は一度全て忘れてください
- 一つ前の質問の条件で実行してください
この他にも深津式汎用プロンプトのようなかなり凝った作りのプロンプトも有効なようです(今回のブログではこのレベルまで取り上げません)。
サービス事例:Notion AI
Notion AIとは何か
Notion AIは(正式リリース当初)GPT-3をベースにしたNotion内でLLMの恩恵を受けられるサービスです。
NotionAIを触って衝撃を受けたのは、そのシームレスさでした。アウトプット自体はリリース当初GPT-3でしたので、ChatGPTよりも少しだけ見劣りするかな(例えばブログのアウトラインを書いてというような場合、満足いく回答がでてくるのはChatGPTという印象)でしたが、ドキュメント作成でどちらを使いたいかと言われれば、圧倒的にNotionAIでした。
JasperというAIライティングサービスを少し前から試しに使っていたのですがもうそれは解約してしまいました。なぜなら使ってみてNotionAI の方が圧倒的に便利だったからです。
ChatGPTやJasperの場合、ライティング作業をそのサービスで行ってからアウトプットを、WordPressやドキュメントアプリにコピペする、みたいなことが必要になりますが、そもそものドキュメントアプリに組み込まれていれば、それらが必要ありません。
別で書いたように、ドキュメント作成におけるGenerativeAIの役割を作業はじめのとっかかりの障壁を減らすという文脈で考えると、最終的なアウトプット先でとりあえず出力してもらい、とりあえずドラフトを出してもらうのはとても効率よく感じますね。
LLMがなぜ大事なのか?経営者の視点で考える波の待ち受け方:こちらのブログでもNotionAIについて言及があり、非常に共感しました。
どれだけ優れたAIでも、プロダクトとシームレスに繋がっていないと体験を損ないます。私もBingやNotionAIをさわり実感しました。 ChatGPTがどれだけ優れていようが、毎回毎回ChatGPTの画面に遷移してPromptを入れるのは大変です。
Microsoft はCopilotという位置づけでOffice製品内でChatGPTを利用できるようにしていますし、GoogleもWorkspaceのオDocsやGmailなどフィススイーツ内でLLMを利用できるようにしていくようです。Notion AIは洗練された事例として先駆けてでてきたイメージです。少しすればこのように各アプリ内でLLMをシームレスにサポート機能として使うという風景は日常的なものとなってきそうです。
Notion AIで出来ること
Notion AI でできることのイメージはまさに本家サイトにまとまっているわけですが、例えば
- 議事録(テキスト)を選択したあとAIに
- アクションアイテム化してもらう
- 要約してもらう(簡潔な文章にまとめる)
- 議事録から重要なポイントをピックアップ(箇条書き化)してもらう
といったことがスムーズに行えます。
また、少し事例としては古いのですが、NotionAIでの10の活用事例を以下に挙げてみます。Youtube動画であるNOTION AI IS HERE – 10 Mind-Blowing Examples!の引用になります。
- ブログ投稿のドラフト(草案)を書いてもらう
- アイデアリストを生成する
- 比較表を作ってもらう
- 選択した文章の続きを書いてもらう
- 文法やスペルを修正してもらう
- 複数言語に翻訳してもらう
- プログラムのコードを書いてもらう
- 数学の計算を解いてもらう
- テキストを要約してもらう
- 質問に答えてもらう
ChatGPT API × Google SpreadSheet
ここではOpenAIのChatGPT APIをGoogle Apps Script内で呼び出し、Google Spreadsheetの関数として活用できるようにしたものをご紹介します。数ヶ月もしたら(しないうちに?)Google Spreadsheet内でBardなどが普通に組み込まれてくるのだとは思いますが、実際にものを作る・使う過程で筆者・読者のGenerative AI活用の知見を深めていければと思います。
できあがったものの紹介
今回、ChatGPT APIとして利用できる、GPT-3ベースのtext-davinci-003モデルとGPT3.5であるgpt-3.5-turboモデルを利用して、それぞれスプレッドシートスプレッドシート内で関数を作成しました。作成にあたってはHow to: Connect Open AI (GPT-3) to Google Sheets およびabi/gpt3-in-your-sheets.jsを参考にさせていただきました。
以下は、実際にスプレッドシート内で関数を利用してみた例になります。
GPT30およびGPT35という関数をGASで作りました。数式内にChatGPT APIに応答してほしい内容(prompt)を入力することで、回答を返してくれます。画像の例では「日本の代表的な企業を10社リストアップしてください」というプロンプトをそれぞれの関数で実行して比較した結果になります。
text-davinci-003ですと社名のみですが、gpt-3.5-turboだと株式会社まで含めてくれますね。このようにモデルによって性能差があることが確認できます。
GPT30関数
GPT30関数はGPT-3ベースのtext-davinci-003モデルです。第一引数にprompt、第二引数にtemperature、第三引数にmodelを指定できます。
promptにはChatGPT APIに質問したい内容を””で囲って質問してください。スプレッドシートなので、数式を用いることができます。
temperatureは0〜1を指定できます。低ければより厳密に、高ければ多様性があるものの不正確だったり一般的な回答になっていきます。デフォルトは0.3にしています。
modelですが、デフォルトはtext-davinci-003です。ここはtext-curie-001、text-babbage-001、text-ada-001といった他のモデルも指定することができます。
なお、max_tokens(APIが生成するテキストの長さを指定するためのパラメータ。おおよその文字数)は200文字にGAS内で設定しています。
GPT35関数
GPT35関数はgpt-3.5-turboモデルを使っています。第一引数にprompt、第二引数にmax_tokens、第三引数にtemperature、第四引数にmodelを指定できます。
promptにはChatGPT APIに質問したい内容を””で囲って質問してください。スプレッドシートなので、数式を用いることができます。
max_tokensはデフォルト4096文字ですが値を指定することができます。
実際に使ってみた事例
ドキュメント作成
スプレッドシートを有効活用してみようということで、マトリックス上に結果を出力してもらうことを試しました。ソフトウェア開発の各工程における各担当者の役割やタスクを書き出してもらいました。
工程は6工程(要件定義、設計、実装、テスト、リリース、メンテナンス)とし、役割は7役割(プロジェクトマネージャー、システムアーキテクト、システム開発者、テスト担当者、UI/UXデザイナー、データベースエンジニア、サポート担当者)なので42項目となります。
さすがに出力は一瞬とはいえませんが、しばらく待つとそれなりの回答が返ってくるなという印象です。とりあえず新人さんに埋めてもらったものを後から自分で編集していくという感覚で使えばよいかなという印象です。
実際にこんなドキュメントを仕事で求められるかは不明ですが、何か大量にアウトプットが必要というような場合に、仮でもいいのでデータがあるとだいぶ作業効率は違ってくるかなという感覚は得られました。
食事管理(ダイエット記録)
次に試したのは、食事管理・ダイエット記録です。以前に「あすけん」のようなダイエット記録アプリを使っていた時期もあったのですが、いちいち食事内容を項目ごとに書き出すのが面倒だったので続けなくなっていました。ChatGPTで適当に文章を投げてその内容を分解して記録してくれたら便利じゃないかなと思ったので試してみました。
内容ですが、B列に食べたものとそのグラムなどを入力し、C列に出力値としてカロリーとPFCスコア(タンパク質、脂質、炭水化物)を出し、D〜G列で数値を抽出しようとしてみました。最後にH列では脂質を20%カットするような食事の内容を提案してもらうことにしました。ChatGPT APIを使っているのはCとH列で、あとはスプレッドシート内で値や数式を入力するといった構成です。
さて、画像内にもあるのですが、B列の内容によって出力値の結果が安定せずに、その後のD〜G列の結果がエラーになったり意図した結果がでないといった結果になりました。また、各食品やトータルのカロリー計算が正確ではない印象があり、数値をそのまま信じていいものかかなり疑わしい結果になりました。
その他、同じ食べたものをGPT35関数に入れても結果が異なるなどの現象が発生しました。
計算能力そのものがやや怪しそうというのと、集めてきたトレーニングデータの問題というのはありそうです。
前者について、どうやら計算はあまり得意ではなく、エクセルやスプレッドシートでGPT-3や4におまかせする、というのは個人的には現時点ではあまり良さそうに思えない印象でした。
それよりも、自分が作成した計算方法の問題点を指摘してもらうとかテストケースを作ってもらうとか問題そのものを解くより問題を解く際の幅を広げたり深さを出してもらうのを手伝ってもらうのがよさそうです。
後者については、専用のトレーニングデータを充実させていけばある程度の向上はのぞめるのかもしれませんね。
出力値についてはプロンプトデザインを工夫することである程度改善できる部分などはあるかもしれません。
いずれにせよ所謂スプレッドシートっぽい使い方に落とし込んでいくには、かなり工夫が必要なのではないかという印象です。
ChatGPTに得意なことを任せる
以上の事例から、ChatGPT×SpreadSheetの現在の活用方法を考えてみます。結論としては、得意なことを任せていくというのがよいのではないかと考えます。再掲になりますが、松尾研の以下のスライドがここでもヒントになるのではと思います。
ChatGPT×SpreadSheetの現在の活用方法
以下、思いつく限り列挙していきます。SpreadSheetなので、行列を有効活用してマトリックス上に大量に文章を生成してもらうみたいな方向性がよさそうですね。
壁打ち、ブレスト
- 「〜〜」という考えのうち抜けている点を指摘して
- 「XXX」について、良い点と悪い点を列挙して
- 「XXX」について、改善点をみつけて
リサーチ、論点の洗い出し
- 「XXX」について要点をまとめて
- 「XXX」の競合製品を教えて
- 「XXX」についてディベート風に論点を洗い出して
- 「XXX」について比較項目を作って
アイデアの提案
- 「XXX」についてSEO対策したタイトルを作って
- 「XXX」についてSEO対策したキーワードを作って
- 「XXX」についてのアウトラインを作成して
- 「XXX」という広告文をより刺激的にして
- 「XXX」について人気の出るブログの内容案の提案をして
- 「XXX」になりきって答えて
- 「XXX」について例題や乱数を生成して
リストアップする
- XXXについて、100個、列挙して(リストアップして)
- リストアップしたものを、個別にセル入力できるようにカスタマイズする
表(テーブル)を埋める
- 行列で項目を作成し、その中身を埋める
- 会社情報のリサーチ
- ソフトウェア開発のフローをまとめる(フローと役割)
- 比較表を作る
- 良い点、悪い点
業務効率化/自動化におけるGenerative AIとGASの棲み分け
ここまで見てきたように、Generative AIはまだAGI(汎用的人工知能)ではないため、あらゆる面で万能というわけではないかと思います。ですので、ある程度の限界や得意不得意を理解した上で、活用していけるとよさそうです。
当ブログではGoogle Apps Script等を中心とした業務効率化/自動化をテーマとしていますが、その中でGenerative AIをどのように活用していくかを考えると、スプレッドシートやGAS、その他プログラミング全般については定量的業務アシスタントを、Generative AIには定性的業務のアシスタントを積極的に担ってもらえるとよいのではないかと考えます。
定量的業務のアシスタントとは、大量に計算が必要なものや繰り返し実行し自動化できるようなものでしょうか。定性的業務のアシスタントは壁打ち・ブレスト、論点洗い出し・要約、アイデア提案などです。また、思考・視野のスコープを広げる、気づけない点を探るといったことや、大量に文章を書いていくということにも使えるのではないかと思います。
ChatGPT API×SpreadSheetを使うには
上記で紹介したChatGPT API×SpreadSheetのGoogleスプレッドシートをご利用になれたい方は、以下のメルマガ登録をお願いいたします。メルマガ登録特典としてファイルをシェアいたします!
ChatGPT API×SpreadSheetの設定方法
設定のステップ
上記の特典からスプレッドシートをご自身のGoogleドライブにコピーができたましたら、GASでOpenAIのAPIキーを設定して頂く必要があります。大まかな流れは以下の通りです。
- OpenAIのアカウント取得
- OpenAIのAPI Keyを取得
- Google Apps Script(GAS)でOpenAIのAPI Keyをセット
OpenAIのアカウント取得
まずOpenAIのアカウントの取得をお願いします。
OpenAI API のページに行き「Sign up」からアカウント作成画面に行き、流れにそってアカウント作成を行ってください。
ログイン後に、右上のアカウント部分クリック後に表示される一覧からView API keysを選択します。
API keys画面にあるCreate new secret keyを実行し、secret keyをコピーしてください。
次に、特典で取得したスプレッドシートを開き、「メニュー>拡張機能>Apps Script」でスクリプトエディタを開きます。
最初の1行目にある「ENTER YOUR SECRET KEY HERE」の部分を、先程取得したOpenAI APIのkeyで書き換えてください。
以上で設定は終了です。あとは前述したGPT30およびGPT35関数をスプレッドシート内の数式で実行することで、利用することができます。
なお、APIの利用で料金がかかってくるかと思います。Usageの画面で利用状況を確認しながらご利用していただくことをオススメいたします。