AIにアプリ制作手伝ってもらった話 * 3

詳細情報

集会名 個人開発集会
日時 2024年07月18日 22:00 - 22:30
テーマ AIにアプリ制作手伝ってもらった話 * 3
発表者 夜鍋ヨナ
発表資料 ファイル

発表のハイライト

  • AI技術の進化は凄まじく、特に生成AIの進化速度は驚異的である
  • AIを活用したアプリ開発では、開発者はAIを使役する立場になり、設計や指示が重要となる
  • AIはデバッグをしてくれないので、開発者の役割は依然として重要

AI界隈の現状と生成AIサービス

夜鍋ヨナさんは、2024年7月18日にVRChatで開催された「個人開発集会」にて、「AIにアプリ制作手伝ってもらった話 * 4 + α」というテーマで発表を行いました。

夜鍋ヨナさんはまず、AI界隈の現状について「成長速度が速すぎる」と述べています。特に、2023年から2024年にかけて、生成AI関連のアップデートが非常に多く、半年で12回もの大型・中型アップデートがあったとのことです。

続いて、生成AIサービスの種類について解説がありました。 - 文字生成: チャットやコーディングなど、マルチモーダルにより音声・動画を見て回答するもの。 - 画像生成: 線画の着色や清書、特定の絵柄の模倣など、様々な用途に利用可能。 - 動画生成: 1枚のイラストから動画を生成したり、文章から動画を生成することも可能。 - 音声生成: 音楽やボイスなど、音声コンテンツの生成が可能。

AIの理解を深める用語解説

生成AIを理解する上で重要な用語とその解説は以下の通りです。

  • Transformer: 自然言語処理のアーキテクチャの一種で、「Attention Is All you Need」という論文で提唱されたもの。
  • LLM (Large Language Model): 大規模言語モデルの略で、大量のテキストデータを学習し、自然言語の入力に対して自然言語で出力する機械学習モデル。
  • パラメータ: モデル内部のネットワークの重みなどの値。大きければファイル容量も大きくなり、より高度な処理が可能になる。
  • 推論: 入力に対して、続く単語を予測すること。LLMの計算や出力そのものを指す。
  • ハルシネーション: LLMの出力に、デタラメや嘘が混ざること。事実と異なる情報を出力してしまう場合がある一方で、創造性として積極的に活用することもできる。
  • トークン: テキストデータを解釈するためのLLMのための単位。文節、単語、文字単位など、様々な区切り方がある。
  • 入力トークン/出力トークン: LLMとの会話において、ユーザーからの入力とLLMからの出力それぞれを指す。
  • コンテキストウィンドウ: LLMが認識できるコンテキスト(過去の会話)の長さ。過去の会話をどれだけ覚えているかに相当し、長さが足りない場合は過去の文脈を考慮できなくなってしまう。
  • fine-tuning: 事前学習済みのモデルに対して、特定のタスク・領域のデータで追加学習させることで、回答の正答率を上げる技術。チャットボットの調教など。
  • RAG (Retrieval Augmented Generation): 検索拡張生成の略。外部情報の検索結果も入力することで、回答の正答率を上げる技術。ChatGPTのWEB検索やPerplexityなどで利用されている。
  • Fill-In-the-Middle タスク: 中間が欠損したテキストに対して、その欠損を適切に補完するタスク。GitHub Copilotなどのプログラミングアシスタントで利用されている。

代表的なAIチャットサービスとLLM

夜鍋ヨナさんは、代表的なAIチャットサービスと、そこで使用されているLLMについて、特徴を交えながら紹介しました。

企業名 LLM サービスの特徴
ChatGPT GPT3.5 / 4 3.5は無制限、4oは80回/3時間制限。Code InterpreterやGPTsで様々な処理が可能。作成したファイルのダウンロードも可能。
Anthropic Claude 3 指示を汲み取る能力が高く、Artifact機能が優秀。出力が8kトークンになった(APIのみ、7/17時点)。
Cohere CommandR 2024年初頭に話題になったサービス。モデルがオープンソースで公開されている。
Google Gemini / Gemma チャットもAPIも無料で利用可能。Gemini1.5Proは2Mトークンで長時間の会話が可能で、コンテキストウィンドウも1Mと大きい。
Groq オリジナル (無し) 処理速度が非常に速く、未だ無料。コンテキストウィンドウは少し小さい。
Perplexity Sonner 検索結果をまとめてくれる。Wikiページ生成機能も搭載。

夜鍋ヨナさんがAIを使って開発したアプリ

夜鍋ヨナさんは、AIを活用して以下のアプリを開発したそうです。

graphical PDF editor

PDFにノートを付与できるアプリ。2ペイン構成で、左側にPDF、右側にノートを表示する仕様。モックを作成した段階で満足してしまい、開発は頓挫している。

書籍管理システム with Spreadsheet

書籍のISBNをバーコードリーダーで読み取り、データベースと照合して書籍情報を管理するシステム。バックエンドの選定が難航し、Spreadsheetを使った簡易的なシステムに落ち着いてしまった。α版として公開後、開発は頓挫している。

論文ポッドキャストのYouTubeチャンネル

arXivから論文をダウンロードし、要約して音声合成し、YouTubeにアップロードするシステム。作業量が多すぎて断念。

arXiv to Notion

arXivから論文をダウンロードし、Geminiで要約してNotionに保存するシステム。α版が完成し、AiStudioでの開発を継続する予定。

AIアプリ開発における苦労と学び

AIを活用したアプリ開発を通じて、夜鍋ヨナさんは以下の苦労と学びがあったそうです。

  • 苦労

    • 最初はローコードツール「Dify」を使おうとしたが、結局はコードを書く必要があり断念。
    • AiStudioが自動保存に対応しておらず、作業が詰みかけることがあった。
    • AIはデバッグをしてくれないため、デバッグ作業は自身で行う必要があった。
    • ブラウザとエディタを行き来する作業が面倒だった。
  • 学び

    • 設計が得意なLLMとコーディングが得意なLLMを使い分けることが重要。
    • ClaudeのArtifact機能は設計図やサンプルコードを生成してくれるため非常に便利。
    • 要件定義が曖昧だと、AIも曖昧な実装をしてしまう。
    • 完成像を明確にイメージできることが重要。
    • モックの作成はAIで容易にできるため、積極的に活用すべき。

まとめ:AI時代における設計と開発

夜鍋ヨナさんは、AIは「恐ろしいもの」ではなく「めちゃくちゃいい相棒」と表現しています。AIは開発者の仕事を奪うものではなく、むしろ開発者を支援してくれる強力なツールと言えるでしょう。

AIを活用した開発では、開発者はAIを使役する立場となり、設計者としての役割がより重要になります。AIに的確な指示を出すためには、要件定義をしっかりと行い、完成像を明確にイメージすることが求められます。

また、AIはデバッグ動作確認といった作業は行ってくれません。これらの作業は依然として開発者の重要な役割であり、責任を持って行う必要があります。

AI技術の進化は目覚ましく、今後も新たなサービスや技術が登場するでしょう。開発者はAI技術の進化を常に追いかけ、積極的に活用することで、より効率的かつ創造的な開発を進めることができるでしょう。

夜鍋ヨナさんの発表資料はこちらです: https://data.vrc-ta-hub.com/slide/code-with-gemini.pdf