FUJILOG

見た、聴いた、触れたこと。 動かしたもの、書いたもの。 ウェブとリアルの備忘録です。

StableDiffusion WebUI をWindows環境にインストールする

やったこと

  • Githubからコードをダウンロード
  • webui.batを実行してインストール
  • webui-user.batを実行してプログラム起動

PC環境

以下ファイルの該当箇所に、引数 "--skip-torch-cuda-test" を追加したらインストールできた。

stable-diffusion-webui\modules\paths_internal.py

修正前

commandline_args = os.environ.get('COMMANDLINE_ARGS', "")

修正後

commandline_args = os.environ.get('COMMANDLINE_ARGS', "--skip-torch-cuda-test")

バッチ起動後、ローカルホストにアクセスするとコンソールが開く。

Running on local URL: http://127.0.0.1:7860

今回はインストールまでで、モデル選定などはまた後日。

参考記事

original-game.com

UXリサーチャーによる生成AIサービス開発の論文メモ

気になるツイートがあり後で役立ちそうだったので、備忘として記録します。

論文PDFリンク

翻訳からの要約↓

この研究は、医師と患者の相談の音声録音から自動的に医療ノートを生成するシステムのユーザー主導の研究について述べています。

1. 導入: 電子健康記録(EHR)の導入により、クリニシャンは各患者との対話について詳細な記録を保持する必要があります。しかし、行政業務の負担がクリニシャンのバーンアウトに大きな影響を与えています。スピーチ認識を使用して医療相談の音声を転写し、その転写を要約して診察ノートにするというアプローチが提案されています。
2. 関連研究: 自動的に診察ノートを生成するタスクは、医療情報処理の重要な部分であり、特に音声認識と自然言語生成(NLG)の組み合わせは、興味深い挑戦を提供します。
3. ユーザーリサーチと設計: この研究では、次の3つのステージでユーザーリサーチと設計が行われました。
3-1 現在のノート取りの発見:ユーザーの要件と初期の印象を収集します。
3-2 初期のユーザーインターフェース(UI)テスト:クリニシャンに3つの潜在的なデザインオプションのビデオモックアップを示し、フィードバックを提供してもらいます。
3-3 モックコンサルテーション:クリニシャンは、他のクリニシャンが自動システムとして動作するウィザード・オブ・オズのプロトタイプと対話します。
4. ノート生成システムのライブテスト: ユーザースタディに基づいてノート生成システムを開発し、5人のクリニシャンがシステムを使用して各診療のノートを作成するライブテストを行いました。これは3週間続き、その間に300以上の診察がシステムと共に行われました。
5. 考察: ユーザーリサーチと設計の重要性が強調され、特に5つの異なるノート取り行動の出現と、ノート生成システムが診察中にリアルタイムで出力を生成する必要性が明らかになりました。また、患者の不正直さ、複数の主訴、クリニシャンの非言語的観察といった、自動ノート生成システムにとって困難を伴う可能性がある臨床使用事例をいくつか特定しました。

全体的に、この研究は、ユーザー(クリニシャン)のニーズとフィードバックを取り入れた医療ノート生成システムの設計と開発が、システムが臨床現場で実際に使用され、価値を提供するためには不可欠であることを強調しています。また、自動ノート生成が完全には達成できない可能性のある特定の臨床的なシナリオについても考慮し、そのような場合には人間の介入が必要であることを認識しています。

専門職の生成系システムを開発するためのTipsでした。

学びは以下の4つの箇所。

  • モックUIを3種類用意して、現場業務利用者にフィードバックをもらったこと
  • WoZ(システムのふりをして人間が動作する)で、現実的なシステムに近づけるアプローチをしたこと
  • 5人の有識者が3週間にわたって300件の現場投入テストを行ったこと
  • フィードバックのなかから、現場で使うにはリアルタイム出力機能が必要だと事前に判明したこと

UXリサーチャーの観点から、AIサービス開発における試作と本製品の間の溝を埋めるための検証成果が言及されていました。

クラウドエンジニアがChatGPTに最近のAIアプリ開発事情を聴いてみた(2023年7月時点)

ChatGPTにふわっとした質問を投げながらAIアプリ開発の情報収集してみた。

進歩が早くて、どのクラウドサービスで構築するのが良いか見通しがつけづらかったため。

使用したツールは「ChatGPT May 24 Version」「Link Reader Plugin」。

早速本題↓

Q: あなたはプロフェッショナルなAIエンジニアです。LangChainとMicrosoft Guidanceの違いについて、Webエンジニアにわかるように解説してください。

A: もちろんです。以下に、LangChainとMicrosoft Guidanceの主な特徴と優位性を表形式でまとめてみました。

特徴 LangChain Microsoft Guidance
推論 LLMをガイドして文脈に基づいた推論や決定を行う能力があります。 条件文を使用してモデルの推論プロセスをガイドすることができ、selectコマンドを提供して一連のオプションから選択する能力を持っています。
自己批判と自己改善 モデルが自身のレスポンスを評価し、改善する機能はあるものの、実装が複雑でストレージアダプタが必要です。 モデルが自身のレスポンスを評価し、改善する能力があり、プロンプトキャッシングをサポートしています。これにより、モデルが過去のプロンプトとレスポンスから学習することが可能です。
思考の連鎖 言語チェーンモデルを使用して会話の文脈を追跡し、一貫した思考の連鎖を維持します。 一貫した思考の連鎖を維持する能力がありますが、LangChainの構文を実装するのはそれほど簡単ではないかもしれません。
マルチターン対話の管理 マルチターン対話の管理は可能ですが、より複雑なプログラムの作成には苦労するかもしれません。 マルチターン対話を管理できるより複雑なプログラムの作成をサポートしており、一貫した推論を維持する能力が強化されます。

これらの特徴を考慮に入れて、あなたのプロジェクトやニーズに最適なツールを選択してください。

Q: Azure OpenAIでWebアプリを開発する場合はどちらのが優位でしょうか?

A: 
Azure OpenAIでWebアプリを開発する場合、どちらが優れているかは、具体的な要件や目標によります。しかし、以下の観点から考えると、Microsoft Guidanceが優位な点がいくつかあります。

1. **統合性**: Microsoft GuidanceはMicrosoftが開発したものであり、Azureとの統合がスムーズである可能性が高いです。これにより、開発プロセスが簡素化され、問題が発生した場合のサポートも容易になるでしょう。
2. **自己改善と自己批判**: Microsoft Guidanceはプロンプトキャッシングをサポートしており、モデルが過去のプロンプトとレスポンスから学習することが可能です。これは、モデルが自身のレスポンスを評価し、改善する能力を強化します。
3. **複雑な対話の管理**: Microsoft Guidanceはマルチターン対話を管理できるより複雑なプログラムの作成をサポートしています。これにより、一貫した推論を維持する能力が強化され、ユーザーとの対話がより自然で一貫したものになります。

それでも、LangChainも一部のユースケースでは優れている可能性があります。例えば、LangChainは言語チェーンモデルを使用して会話の文脈を追跡し、一貫した思考の連鎖を維持します。これは、特にマルチターンの対話で有用です。
したがって、具体的な要件や目標に基づいて最適なツールを選択することが重要です。

Q: アプリ開発において、OpenAI APIを使用しない場合はどうすればいいですか?

A: OpenAI APIを使用しない場合でも、自分自身のAIモデルを訓練し、それをWebアプリケーションに統合することは可能です。ただし、これはかなりの時間とリソースを必要とします。以下に、その大まかな手順を示します。

1. データセットの準備: AIモデルを訓練するためには、大量のデータが必要です。このデータは、モデルが学習するための「教科書」のようなものです。ChatGPTのようなモデルを訓練するためには、大量のテキストデータが必要です。
2. モデルの訓練: 次に、選択したAIフレームワーク(TensorFlow、PyTorchなど)を使用してモデルを訓練します。これは、モデルにデータセットを「読ませ」、それから学習させるプロセスです。
3. モデルの評価と調整: モデルが訓練されたら、そのパフォーマンスを評価します。これは通常、訓練データセットの一部を「テストセット」として保持し、そのテストセットを使用して行います。モデルのパフォーマンスが不十分な場合、パラメータを調整して再度訓練を行います。
4. Webアプリケーションの開発: 一方で、Webアプリケーションを開発します。ユーザーの入力を受け取り、それをモデルに送信し、モデルの出力をユーザーに表示する機能が必要です。
5. モデルの統合: WebアプリケーションとAIモデルを統合します。これは、Webアプリケーションがモデルの予測をリクエストし、結果を受け取るためのAPIを作成することを含む可能性があります。
6. アプリケーションのデプロイ: 最後に、WebアプリケーションをWebサーバーにデプロイします。

このプロセスは、OpenAI APIを使用する場合と比較して、はるかに時間とリソースを必要とします。また、自分自身でモデルを訓練する場合、そのモデルが適切に動作するようにする責任があることを忘れないでください。これには、モデルが不適切な出力を生成しないようにするための適切なセーフガードの実装が含まれます。

Q: AzureでChatGPTと同等機能のアプリケーションを作成する方法を教えてください。 ただし、OpenAIのAPIは使わないものとしてください。

A: 
OpenAIのAPIを使用せずに、AzureでChatGPTと同等の機能を持つアプリケーションを作成するには、Microsoft AzureのAIサービスを使用することができます。具体的には、Azure Bot ServiceとAzure Cognitive ServicesのLanguage Understanding (LUIS)を使用することで、自然言語理解と対話管理の能力を持つチャットボットを作成することができます。

以下に、その大まかな手順を示します。

1. **Azureアカウントの作成**: まず、Azureアカウントを作成します。すでにアカウントを持っている場合は、このステップをスキップできます。
2. **Azure Bot Serviceの設定**: Azureポータルで新しいBot Serviceリソースを作成します。これにより、ユーザーとの対話を管理するためのボットが作成されます。
3. **LUISアプリの作成**: 次に、LUISポータルで新しいアプリを作成します。このアプリは、ユーザーの入力を理解し、意図とエンティティを抽出するために使用されます。
4. **意図とエンティティの設定**: LUISアプリで、ボットが理解する必要がある各種の意図とエンティティを設定します。例えば、"greeting"という意図には、"hello", "hi", "good morning"などのフレーズを追加します。
5. **LUISアプリの訓練と発行**: 意図とエンティティを設定したら、LUISアプリを訓練し、発行します。これにより、ボットがユーザーの入力を理解するためのモデルが作成されます。
6. **ボットとLUISアプリの統合**: Azure Bot Serviceで作成したボットと、LUISアプリを統合します。これにより、ボットはユーザーの入力をLUISアプリに送信し、返された意図に基づいて適切な応答を生成することができます。
7. **Webアプリケーションの開発**: ボットとLUISアプリが準備できたら、これらを統合するWebアプリケーションを開発します。ユーザーの入力をボットに送信し、ボットの応答を表示する機能が必要です。
8. **アプリケーションのデプロイ**: 最後に、WebアプリケーションをWebサーバーにデプロイします。Azure App ServiceなどのAzureのホスティングサービスを使用することができます。

このプロセスは、ボットがユーザーの入力を理解し、適切な応答を生成する能力を持つWebアプリケーションを作成するための基本的な手順です。しかし、ChatGPTのような高度な自然言語生成能力を持つボットを作成するには、追加の訓練とチューニングが必要になる可能性があります。

Q: Microsoft AzureのAIサービスでも、PowerPoint資料を生成するアプリケーションは作成できますか?

A: 
はい、Microsoft AzureのAIサービスを使用して、PowerPoint資料を生成するアプリケーションを作成することは可能です。具体的には、AzureのCognitive Servicesの一部であるText Analytics APIやLanguage Understanding (LUIS)を使用して、ユーザーの指示を理解し、それに基づいて資料の内容を生成することができます。
しかし、PowerPoint資料自体の生成、つまりPowerPointファイル(.pptx)の作成や編集は、AzureのAIサービスだけでは実現できません。これには、Microsoft Officeのオートメーションを行うためのライブラリ(例えば、Pythonの`python-pptx`など)や、Microsoft Graph APIのようなツールを使用する必要があります。
したがって、PowerPoint資料を生成するアプリケーションを作成するには、以下のようなステップが必要になります:

1. ユーザーの入力を受け取ります(例えば、「3ページのPowerPoint資料を作成してください。内容はAIの未来についてでお願いします」)。
2. AzureのCognitive Services(Text Analytics APIやLUIS)を使用して、この入力を解析し、ユーザーの要求(資料のページ数、内容のテーマなど)を理解します。
3. この解析結果に基づいて、資料の内容を生成します。これには、AIモデルを使用してテキストを生成することも含まれます。
4. 最後に、生成した内容を元に、PowerPointファイルを作成または編集します。これには、Microsoft Officeのオートメーションを行うためのライブラリやMicrosoft Graph APIを使用します。

このように、AzureのAIサービスと他のツールを組み合わせることで、PowerPoint資料を生成するアプリケーションを作成することが可能です。ただし、これには相応のプログラミングスキルと知識が必要です。

Q: GoogleCloudのAIサービスで、"CHatGTP Code Interpreter"のようなスライド資料を生成するアプリケーションを作成できますか?

A: 
Google CloudのAIサービスを使用して、"ChatGPT Code Interpreter"のようなスライド資料を生成するアプリケーションを作成することは可能です。具体的には、Google CloudのNatural Language APIやDialogflowを使用して、ユーザーの指示を理解し、それに基づいて資料の内容を生成することができます。
しかし、スライド資料自体の生成、つまりPowerPointファイル(.pptx)やGoogle Slidesの作成や編集は、Google CloudのAIサービスだけでは実現できません。これには、Google Slides APIのようなツールを使用する必要があります。
したがって、スライド資料を生成するアプリケーションを作成するには、以下のようなステップが必要になります:

1. ユーザーの入力を受け取ります(例えば、「3ページのスライド資料を作成してください。内容はAIの未来についてでお願いします」)。
2. Google CloudのNatural Language APIやDialogflowを使用して、この入力を解析し、ユーザーの要求(資料のページ数、内容のテーマなど)を理解します。
3. この解析結果に基づいて、資料の内容を生成します。これには、AIモデルを使用してテキストを生成することも含まれます。
4. 最後に、生成した内容を元に、Google Slidesを作成または編集します。これには、Google Slides APIを使用します。

このように、Google CloudのAIサービスと他のツールを組み合わせることで、スライド資料を生成するアプリケーションを作成することが可能です。ただし、これには相応のプログラミングスキルと知識が必要です。

ここまで所要時間は30分ほど。

作るまでには別途調査が必要としても、それぞれのクラウドAPIのキーワードを教えてもらえただけでも収穫だった。

ChatGPTからウェブPDF文章を要約してGmailで送信する

この記事でやったこと

  1. ChatGPTで依頼文(PDFのリンクを指定とその要約を依頼する)を用意する
  2. Zapierで連携設定する
  3. 指定したアドレス宛にメールが送信される

前提

  • ChatGPTが有料版契約(プラグイン利用にはVersion4が必要のため)となっていること
  • ChatGPTにプラグイン「Link Reader」をインストール済なこと
  • Zapier連携用のアカウント(GoogleアカウントでOK)を持っていること

手順

ChatGPTで依頼文を入力する

Zapierでアカウントを紐づけ設定する

プライバシーポリシーに同意

Googleアカウントに連携して、Zapierアクションを登録する

ChatGPTに設定完了を伝える

Zap確認したけれども、Zapが作成されていない…

その場合は、ChatGPTの命令を新規作成してやり直し

Zapierの画面でメール内容を確認して、「Run」押下

メール到着確認

あとの細かな運用はZapを調整

所感

今回は45ページほどのPDFを500字に要約してもらうのをChatGPTに依頼しました。

ChatGPTを認識した2~3ヶ月前は、ウェブリンク先を読み込むのはできなかったので、便利さが増したのを実感。

次は画像生成系操作もやってみたい。

その他

データ利活用を効率化してくれる「Code Interpreter」というプラグインが気になっているものの、まだウェイティングリスト状態なのでこれが使えるのを心待ちにしています。

データ分析の効率が10倍上がるデータサイエンティストのためのChatGPTの活用術 - Qiita

Microsoftの開発キット2023を買った話し

商品名が「開発キット」ってアップデートパッチ名なんだろうかというのが第一印象。

ノートタイプを探していたので悩んだものの、そのスペックと価格感に惹かれて買ってしまう。 www.microsoft.com

メモリ32GBでGPUもついていて、¥99,880 (税込)なり。 同スペックでWindowsマシンのSurfaceを買おうとしたら28万円もするのに。。

  • メモリ(32GB)
  • GPU

セットアップの注意点

開封後、MiniDPケーブルを繋いでセットアップ始めるも、セットアップ画面が表示されない…。

ケーブル交換やら試した結果、セットアップで必要になったのは以下製品。

・TypeCケーブル(※ディスプレイ側はHDMI接続の場合)

・有線キーボード(※セットアップ時のみのため安価なもの)

ちなみにMiniDPはBIOS起動に必要とのこと。

使用感はまた後日。

追記

Docker desktopが使えないのでWSLから↓ Windows開発キット2023をゲットしました

ChatGPTにChatGPTの使い方を聴いてみた

最近SNSではAIネタを見ない日はないくらいこのテーマが賑わってます。

とりわけ、その手軽さと性能で注目を集めるのがChatGPT。

SNS登場時点で沸騰のトリガーとなったVersion3.5。凄いと言われてまもなくVersion4が現れた速度感も圧倒的。

このタイミングで書かないと忘れてしまうだろうので使用感と感想を残します。

以下本題。

Q:ChatGPTの優れた使い方の例を教えてください

A:ChatGPTは多くの方法で役立ちます。以下にいくつかの優れた使い方の例を挙げます: 1. 質問への回答: あらゆるトピックに関する質問に対して、専門的な知識や一般的な情報を提供します。 2. アイデアの生成: ブレインストーミングや新しいアイデアを探求する際に、さまざまな提案やインスピレーションを提供します。 3. 作文や編集: 文章の作成や編集をサポートし、文法や表現の改善を提案します。 4. 言語学習: 異なる言語での会話練習や、単語や表現の翻訳を手助けします。 5. プログラミングヘルプ: コードの例を提供したり、エラーの特定や解決策を提案します。 6. スケジュール管理: 予定やリマインダーを設定し、タスク管理を助けます。 7. ゲームやクイズ: エンターテイメントや教育目的で、ゲームやクイズを提供します。 8. 情報検索: ニュース、歴史、科学などのトピックに関する情報を提供します。

ランダムで問いを投げてみたところ、事前の想定とは大きく変わらないものの、APIを連携させたら面白そうでアプリ開発のアイディアが膨らみます。

複数人のスケジュール調整や、旅行を企画したときの旅程の提案なんかもしてくれるなら、オンライン・オフラインによらず、先行サービスの存在を脅かしかねないなとも。

Q:もっと多くの事例を追加してください。

A:もちろん、さらに多くのChatGPTの使い方を以下に示します。

  1. 教育サポート: 教科書や授業資料の要約、概念の説明、学習者へのフィードバックを提供します。
  2. プレゼンテーションの作成: スライドのコンテンツやデザインのアイデアを提案し、プレゼンテーションの質を向上させます。
  3. レシピの提案: 食材や料理の好みに応じて、新しいレシピを提案します。
  4. 旅行計画: 旅行先の情報や観光スポット、宿泊施設、レストランの提案を行います。
  5. 感情サポート: 人間が抱える悩みやストレスに対し、励ましやリラクセーションの方法を提案します。
  6. 商品やサービスの比較: 様々なオプションを比較し、購入決定をサポートします。
  7. ソーシャルメディア管理: コンテンツのアイデアやキャプションの提案、投稿のスケジューリングを行います。
  8. データ分析: データの解釈やビジュアル化の方法を提案し、分析の質を向上させます。
  9. ミーティングのサポート: 議題の整理や議事録の作成、アクションアイテムの追跡を行います。
  10. 芸術やデザイン: 絵画、デザイン、写真などの創作活動において、インスピレーションやアドバイスを提供します。
  11. フィットネスや健康: エクササイズや栄養のアドバイス、運動プログラムの提案を行います。
  12. 趣味やスキルの学習: 新しい趣味やスキルの学習に関するリソースやアドバイスを提供します。

これらの例は、ChatGPTがどのように役立つかを示していますが、実際の応用範囲はもっと広いです。

とのこと。さらに100個アイディアを出してと続けたら、回答が止まってしまったので一旦打ち止め。 ※(追記)回答が止まったら「続けて」というと100個出してくれました。 ただ、その内容が家庭菜園?とかオリジナルTシャツデザイン?などが出てきたので、良質な回答が欲しいのならより正確にインプット情報を渡す必要あり。

前提としてその内容を人間が判断するというのは必須としても、検索をより効率よく得られるとなると行動習慣が変わりそう。

また、問いかけのフォーマット(Prompt)の精度を上げるとさらに具体的な情報も提供してもらえるようで、Prompt生成に対処する「PromptEngineering」という技法も現れているようでした。

soysoftware.sakura.ne.jp

エンジニア観点では、専門性と初期投資とでAI開発へのチャレンジの敷居が高かった時代を経て、AIに期待していてできたら良いなの領域が、一気に現実味を帯びてきました。

各社AIプロダクト(MicrosoftのBing、GooglePaLM APIなど)も提供され始め、この先にAIがコモディティとなる時代が来る。

qiita.com

2023年の上半期はそんなターニング・ポイントだったのだなと、後から振り返るのかもしれないですね。

2022年の振り返り

今年の残るところあと少し。世界情勢をみても激動の一年でしたね。。

  • 宇露戦争
  • 政治と宗教
  • 32年ぶりの円安
  • MidjourneyやChatGPTのような高度AI出現

思いつくだけでも歴史の教科書に載るような出来事だらけ。。

それは一旦さておき、年末恒例の振り返りまとめ。会社は2期目でした。

時期 会社イベント プライベート コメント
1月 採用加速 - GreenやWantedlyで採用注力していた
2月 採用加速 - 同上
3月 採用加速 - 婚約や挙式準備とプライベートイベントも並行
4月 - 挙式 このまま採用上手くいって成長していくと良いなとぼんやり考えていた頃
5月 採用減速 - ・社員退職が続いてしまった

・秋頃に学校指導の提案をもらった(データ利活用講座)
6月 - 新婚旅行 新婚旅行
7月 データ案件 - 大きめのデータ基盤構築案件を受注して参画した
8月 データ案件 - 社員みんなを巻き込んでのリファラル採用計画をどうしようかと思案していた
9月 データ案件 - ・案件稼働高め

・10月講義開講に向けて、業務並行しながら教育コンテンツを作成していた
10月 リファラル採用 - ・初めてのリファラル採用決まって良かった(※ただこれは8月計画とは別件)

・大学生向けにデータ利活用カリキュラムの指導実施
11月 データ案件 第一子誕生 ・来年からのOKR導入に向けて動き始めた

・業務は引き継ぎさせてもらって感謝です

・夜泣きで慢性的に睡眠不足が続く
12月 来期計画 - 23年の動き方を思案中…

30代最後に婚約・挙式・出産と、プライベートのほうもイベント盛りだくさんでした。 家族仲良く過ごせるようこれからもがんばります。

来年もよろしくお願いします。