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年初頭に話題になったサービス。モデルがオープンソースで公開されている。 |
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