2024年6月12日水曜日

WWDC 2024: Apple Intelligenceで未来が現実に!驚異の新機能と開発者へのインパクト

タイトル: WWDC 2024: Apple Intelligenceで未来が現実に!驚異の新機能と開発者へのインパクト


1. はじめに

こんにちは!今回はWWDC 2024で発表されたAppleの最新技術、「Apple Intelligence」についてお話しします。今年のWWDCは驚きの連続で、特にApple Intelligenceが注目を集めました。この新技術がどのように未来を変えるのか、一緒に見ていきましょう!

2. Apple Intelligenceの概要

Apple Intelligenceは、iPhone、iPad、Macで利用できる強力な生成モデルを統合した技術です。主な機能として、テキスト編集をサポートする「Writing Tools」、遊び心のある画像を作成する「Image Playground」、そしてカスタム絵文字を作成する「Genmoji」があります。これらのツールを使うことで、ユーザーはより直感的で楽しい体験を得ることができます。

3. APIの詳細

◆Core ML
Core MLは、機械学習モデルをアプリに統合するためのフレームワークです。モデルをデバイス上で実行することで、ネットワーク接続を必要とせず、プライバシーを保護しつつ高いパフォーマンスを実現します。新しいMLTensor型と重み圧縮技術により、モデルの効率的な実行が可能になりました。

◆Vision Framework
Vision Frameworkは、画像や動画の分析を行うためのAPIです。テキスト認識や顔検出、全身ポーズ検出などの新機能が追加され、より高度な画像処理が可能です。特に、イメージ美学の評価機能は注目されています。

◆Natural Language Framework
Natural Language Frameworkは、テキストの処理と分析をサポートします。言語識別や感情分析、固有表現抽出など、多言語対応の拡張が行われました。これにより、より自然なテキスト理解が可能です。

◆Speech Framework
Speech Frameworkは、音声認識と分析を行うためのAPIです。リアルタイムで高精度な音声認識が可能になり、ユーザーインタラクションの幅が広がります。

◆Create ML
Create MLは、コードなしでモデルを作成・トレーニングできるツールです。オブジェクトトラッキングやタイムシリーズモデルの作成が簡単に行え、開発者の負担を大幅に軽減します。

4. 開発者向け新機能とツール

Apple Intelligenceには、新しいAPIやツールが多数追加されました。特に、SiriとSpotlightの強化は注目ポイントです。新しいアクションと統合により、ユーザーエクスペリエンスがさらに向上します。また、Xcodeの統合により、モデルのプレビューやパフォーマンスレポートが簡単に行えるようになりました。これにより、開発者はよりシームレスな開発体験を得ることができます。

5. 実用例と応用

Apple Intelligenceを活用したアプリの具体例をいくつか紹介します。例えば、テキスト認識機能を使ったスキャンアプリや、ポーズ検出を活用したフィットネスアプリなどがあります。これらのアプリは、Apple Intelligenceの新機能をフルに活用しており、ユーザーに新しい価値を提供しています。

6. 開発者への影響と展望

Apple Intelligenceは、開発プロセスに大きな影響を与えます。新しいツールやAPIを活用することで、開発効率が向上し、より高度なアプリケーションが可能になります。今後の技術進化により、開発者にはさらなる可能性が広がることでしょう。Appleのビジョンとともに、未来のアプリケーション開発がどのように進化していくのか、非常に楽しみです。

7. まとめ

WWDC 2024で発表されたApple Intelligenceは、未来の技術を現実のものとしました。この技術がもたらす新しい可能性と驚異の機能により、開発者はより高いレベルのアプリケーションを提供できるようになります。これからのApple Intelligenceの進化に、ぜひ注目してください!

8. 付録

リソースとリンク

著者情報
このブログ記事を書いたのは、技術愛好家のChatGPT4oです。最新の技術トレンドを追いかけることが大好きで、特にAppleの新技術に注目しています。質問やフィードバックがあれば、ぜひコメント欄にお寄せください!



という事で、みなさんご無沙汰しています。横井です。

今年も早いもので半分が過ぎようとしています。このGeneXusブログも新年のご挨拶を投稿したのが最後で、現業の忙しさにかまけて半年投稿をサボっていました。
忙しさに変わりはないのですが、サボりっぱなしもまずいので、先日スタートしましたAppleの開発者向けイベント、WWDC2024での注目のトピックをChatGPT先生に記事に纏めてもらいました。

以前、ChatGTPに関する記事を投稿したのが一年前になります。この一年でGenerative AI界隈も色々と進化がありました。特に最近リリースされたGPT4oはマルチモーダルにも対応したので、以前の様なプラグインを使わなくても、URLでも、PDFでも、写真でも、INPUTに放り込めば簡単に解析をしてくれます。

という事で、今回の投稿をどうしたかというと、
①WWDCのApple IntelligenceのURLを入力。
 https://developer.apple.com/apple-intelligence/
 →これだけでまず要約をしてくれます。
②続いて以下を入力します。
 「AppleのWWDCを見て、Apple Intelligenceに関するブログの記事を書きたいと思います。 どんな記事がいいか、構成案を考えてもらえますか。 出力は日本語でお願いします」
 →これでタイトルと構成を出力してくれます。
③最後に以下を入力します。
 「フィードバックします。OKです。いい感じです。 では、この構成をもとに、それぞれの文章を書いてもらえますか、 初心者にも分かりやすいフレンドリーな口調で書いてください。」
 →これで出力された内容が上記の記事でした。


閑話休題
Apple Intelligenceですが、さすがはAppleだと思ったのは決して「Generatie AI」や「AI スマホ」とは言いませんでしたね。他社とは違うのだという強い意志を感じました。

そしてこのApple IntelligenceがOSレベルでサポートするので、様々なアプリでもシームレスに機能として組み込まれていくのが、UXを重視するAppleらしい所だと思います。この辺りは別な投稿で。

では。

2024年1月4日木曜日

2024 : 新年のご挨拶

新年が明けました。今年は元旦から能登半島地震、2日には航空機の事故と、心痛む事が立て続けに起きてしまいました。被災された方々にはお見舞いを申し上げると共に、地震・事故で亡くなった方には心よりお悔やみ申し上げます。

まだ救出を待つ方や、避難生活をされている方が大勢居る状況ですが、自分が出来る事を行って行きたいと思います。


2024年初日の出(小金井市の野川沿いにて)
 

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


2023年12月31日日曜日

2023年の振り返り

2023年も残すところあと一日になりました。

年々、時間の経過が早く感じられますが、コロナ禍明けの今年は特に早く感じられました。そんな今年の振り返りです。

・Generative AIの普及

 今年一番のトピックはなんと言ってもGenerative AIでしょう。今更説明する必要も無いくらい、ChatGPTの出現は驚きでしたし、瞬く間に普及、そしてWindows Copilotを始めとする一般製品にも組み込まれていきました。このままでは人の仕事が無くなるとか、楽して仕事が出来る。みたいな事も言われましたが、逆にプロンプトエンジニアといった新しい考え方・テクニックも出てきましたが、でもその本質は「相手に仕事の指示を的確に判りやすく伝える」という「人としてのコミュニケーション技術」だったというのも、皮肉な感じがしました。

・リアルイベント開催の復活

 コロナ禍が明けたと実感できるのは、今までオンラインで開催されていたイベントがリアル開催されるようになり、久しぶりに大勢の集まりに参加したり、フェイスtoフェイスで会話が出来るなど、元の世界が戻ってきた喜びがありました。

・GX30 : GeneXusインターナショナルミーティング

 イベントといえば、GeneXusインターナショナルミーティングもリアル開催となりました。私も久しぶりにウルグアイに渡航し、参加してきました。目玉としては、りそな銀行・NTTデータソフィアの方々も一緒にイベントに参加していただき、講演も行いました。





2024年はどんな年になるでしょうか。私は世界が平和になるように願ってやみません。

皆さんにとって良い一年になりますように。







2023年12月11日月曜日

4年ぶりリアル開催のGeneXusインターナショナルミーティング : GX 30に参加して

 みなさん、こんにちは。暫くぶりの投稿です。

2023年11月28日から3日間、ウルグアイにてGeneXusインターナショナルミーティング GX 30が開催されました。


前回が2019年になるので4年ぶりのリアル開催でした。本当に久しぶりに世界中から集まった面々に会えてとても懐かしく、嬉しく思いました。

オープニングキーノートスピーチをするニコラス・ホダールCEO


さて、イベントを通じてのレポートを幾つか。

イベントの参加人数は少なめでした。以前はメインホール(BallRoom)が一杯で立ち見で溢れるほどでしたが、今回は空席もチラホラ。GeneXus社の人に聞いたら、オンライン参加者が多いとの事。イベント参加もパンデミック後の新様式でした

GeneXus 社の講演ではやはりAI関連が目立っていました。GeneXus Next と、GeneXus Enterprise AI の二つです。それぞれをざっくり説明します。

・GeneXus Next は以前の投稿でも紹介しましたが、Webベースのノーコード開発ツールです。自然言語で記述した業務要件をAIが解析し、トランザクションオブジェクトを定義、WorkWithPlusパターンとデザインシステムを適用する事でメンテナンスのUIまで自動生成してくれます。「業務要件を記述」というと、どのレベルまで書くとどんな内容まで実装してくれるの?と気になる所ですが、今時点では

・トランザクションストラクチャの出力

・ビジネスプロセスダイアグラムの出力

でした。これも機能的には追加されていくものと思われます。

既存のGeneXusとの関係が気になりますが、講演の中では「ノーコードでモデリング」と言っていましたので、GeneXus を置き換えるものではなく、要件定義時のモデリングツール的な使い方をイメージしているのではないでしょうか?また、Nextで実装した技術をGeneXusにも実装していくと言っていましたので、AI機能の実験場であるのかもしれません。

あとはマルチプラットフォーム IDE という言い方も(Web版とは別に)していました。こちらはVS Code のプラグインで提供されるのかもしれません。



・GeneXus Enterprise AI は、LLMに対するコネクタ製品との事。自分で開発したアプリ(ナレッジベース)から、Enterprise AI のインターフェース経由でLLMに接続できます。なぜアプリから直接LLMに接続しないのか?いというと、一つは接続先となるLLMは固定ではなくサポートしているものであれば(OpenAI、GoogleBird、etc)共通のインターフェースで接続できます。もう一つは、Enterprise tAIにはエンベディングが含まれているとの事で、いわゆるベクトルデータベースを使ってLLMに対する情報付加が出来るようになります。

既にGeneXus Wiki はGeneXus Enterprise AIを使用しているバージョンにアップデートされています。



AI 系の講演で全般的に共通していたのが、コンセプチュアルな説明が多く、具体的なデモが少なかったです。これは今時点ではテクニカルプレビューの意味合いが強く、具体的な価格やライセンス体系も含めた製品としての出荷は来年以降になるからと思われます。

(具体的な情報は何もないので、この記事を見たからといって、ジェネクサス・ジャパンへ問い合わせるのはお控えください)


AI の次にGeneXus社が力を入れていたのがSuperApp/Mini App でした。これはネイティブモバイルジェネレーター(スマホアプリ)の新機能になるのですが、中国のWeChat、日本ではLineやPayPayをイメージしてもらうと判りやすいです。SuperAppがいわゆる親アプリ(プラットフォームアプリ)で、MiniAppが抜き差し可能な子アプリになります。

またスーパーアップにはプラットフォーマーとしての決済インターフェイスが用意されているので、eコマース的なミニアプリからスーパアプリの決済を使う事も出来ます。デモではイタオ銀行のスーパーアプリ上で、カフェや映画のチケットを購入できるミニアプリが動作していました。

そして、MiniAppを管理するアプリがMini App センターです。ミニアプリのアップロード、申請、承認、公開といった、アプリストアとしてのワークフローを備えた運用支援ツールになっています。



この3つの構成でエコシステムを構築する事ができます。(もちろん、ビジネスモデル・スキームは必要ですが)

ちなみに、独自のミニアプリストアで公開するミニアプリですが、Apple app store 、Google Play store の審査は必要ないのか?とGeneXus社の担当者に聞いてみたところ、それは問題ないとの事でした。コロナ過中にウルグアイではGeneXus社がコロナ対応アプリをいち早くリリースしていましたが、その頃にApple、Google各社に問い合わせていて、問題ないと回答をもらっているそうです。

スーパーアプリに関しては既存のスクラッチアプリにミニアップレンダーというスーパーアップ用のインターフェースを組み込む方法(いわゆるマイグレーション)と、GeneXusで一から開発する方法の二種類を用意しているようです。これにより、速やかな市場展開が出来ます。

という、ことで簡単にと言いながら結構長くなってしまいましたが、4年ぶりのGXインターナショナルミーティングのレポートを終わります。

それぞれ詳細な情報を入手したら記事にしようと思います。

では。


2023年7月25日火曜日

ChatGPT Plugin : 他のプラグインはどうなっているのか?

 前回、ベクトルデータベース検索を使ったChatGPT Pluginを作ってみましたが、思ったようには動作しませんでした。

そこで今回は、他のChatGPT Pluginがどういう動作になっているのか? 検証したいと思います。検証といっても、普通にPluginを使うだけです。前回のブログを見て貰うと判りますが、Pluginを実行した時の挙動(APIに対するリクエストデータとレスポンスデータ)は簡単に見る事が出来るますので、どういう呼び出し方をしていて、どういうデータが返ってくるかを確認できればAPIの仕様が判るという訳です。

1.メルカリ Plugin

こちらはつい先日公開されたメルカリのプラグインです。


ブラグインの挙動はこうなっていました。




試しにもう一つ


プラグインの挙動はこちら


API自体は割と普通なキーワード検索っぽいですね。ChatGPT側が自然言語で処理してくれていますが、入力した内容から検索キーワードを抽出してくれています。APIはあくまでも渡されたパラメータを元にDBで検索を行い、結果を返しているようです。


2.Kakaku.com 旅行・トラベル


プラグインの挙動はこちらです


Kakaku.comもキーワード検索ですね。プロンプトとしては色々と条件を付けてみたつもりでしたが、実際にAPIに渡されたのは場所情報だけでした。(食事の美味しい高級旅館はどこへ行った?)

最近、ChatGPT Pluginがかなり増えている状況ですが、APIの処理としてはこういった普通のキーワード検索が多いのでしょうか?  自分としては何かもうひとひねりしたプラグインが出来ないか? と思いあぐねています。

では。

2023年7月18日火曜日

ChatGPT Plugin : ベクトルデータベースに挑戦 その3

前回の続きです。

作成したAPIをChatGPT Pluginとして使ってみましょう。

プラグインデベロッパーアカウントでは、自分で作成したプラグインをインストール可能です。Plugin storeの画面から「Develop your own plugin」をクリックします。


今回のAPIはサーバーへデプロイはしておらず、ローカルPCで動作していますので「localhost:5003」と入力します。

マニフェストファイルとYamlファイルが正しく認識されるとPluginがインストール可能になります。



早速、使ってみましょう。


質問 : データベースを定義する方法を教えて下さい。GeneXus wikiで調べてください。

回答 : 以下に、GeneXusのデータベース定義に関連する情報を提供します。

1.Commit on Exit property : この記事では、GeneXusが各トランザクションと各手続きに対して提供するプロパティについて説明しています。これは、生成されたプログラムが自動的にCOMMITを実行するかどうかを定義するためのものです。

2.For in command : この記事では、配列やコレクションを走査するためのFor inコマンドについて説明しています。

3.Extended Table : この記事では、Extended Tableという概念について説明しています。Extended Tableは、特定のBase Tableに位置しているときに、複数のテーブルへのアクセスを簡素化するためのものです。

これらの記事は、データベースを定義する方法に関する一般的な情報を提供しますが、具体的な手順や例については、GeneXusのドキュメンテーションやチュートリアルを参照してください。


う~ん、ちょっとイマイチな回答ですね。いまいちというか、全然当たっていないですね。プラグインの挙動を確認してみます。プラグインが動作表示している右端をクリックして展開してみると、リクエストに対してレスポンスは返ってきています。
リクエストの内容もちゃんと英語に翻訳されています。
ただ、レスポンスであるベクトル検索の結果が
・Commit on Exit property
・For in command
・Extended Table
となっていて、ChatGPTの回答はAPIレスポンスをそのまま回答に使っている事が判ります。




他にもいくつか試してみした。





どれもイマイチですね。ベクトル検索の精度が悪くてChatGPTも取得した文章をそのまま表示しているだけですね。
素人がいきなり精度を出せるわけ無いか。。どうやったら精度が上げられるかちょっと考えてみます。
では。







2023年7月12日水曜日

ChatGPT Plugin : ベクトルデータベースに挑戦 その2

前回の続きです。

作成したベクトルデータベース(Cosmos DB)の中身はこんな感じです。


1レコードの内容がまるっとテキストデータでJSON形式で格納しています。「embedding」項目の値として小数値が配列となっています。これが文章をベクトル化した結果です。

では、このデータベースを使って検索するプログラムを作成します。

検索処理ですが、通常のRDBのようにDB側で検索するのでは無く、一旦DBからベクトル値を全レコード分抽出した配列と、質問文章をベクトル化したものを、比較=コサイン類似性(Cosine Similarity)計算します。


以下はデバッグで出力した計算結果の配列値です。データベースには70(文書)レコード登録してあるので計算結果も問合せ文章と70レコードを比較した70個の数値配列になります。
値の大きい方(1に近い方)がベクトルとして同じ方向(=文脈が近い)にあり、小さい方(-1に近い方)がベクトルとして逆方向(=文脈が遠い)にあります。
この計算結果を昇順にソートし、上位から必要なレコードを取得します。

以下、検索処理のPythonコードをChatGPTに解説して貰った内容です。

このPythonコードは、Azure Cosmos DBに保存された文書データを検索するWeb APIを提供します。具体的には、OpenAIのEmbedding APIを使用してクエリと文書のベクトル化を行い、それらのコサイン類似度を計算して最も類似度が高い文書を返す機能を持っています。以下に、コードの主要な部分を段階的に解説します。

  1. 環境変数の設定: .env ファイルから環境変数を読み込み、OpenAI APIキーとAzure Cosmos DBのURLとキーを設定します。
  2. WikiDocumentクラス: このクラスには、テキストを指定したトークン数に分割するsplit_textメソッドと、指定したクエリに最も類似した文書を検索するsearch_documentメソッドが含まれています。
  3. Web APIの定義: Quartとquart_corsを使用してWeb APIを定義します。/gxwiki/search/<string:query>エンドポイントは、指定したクエリに最も類似した文書を検索し、その結果をJSON形式で返します。また、/.well-known/ai-plugin.jsonと/openapi.yamlエンドポイントは、それぞれAIプラグインのマニフェストとOpenAPI仕様を返します。
  4. main関数: この関数では、Azure Cosmos DBから全ての文書を読み込み、それらのベクトルを_docs_vectorsリストに保存します。その後、Webアプリケーションを起動します。
  5. エントリーポイント: ファイルが直接実行された場合、main関数が呼び出されます。


検索処理はChatGPT Pluginsとして呼び出されますので、Webサービスとして動作するように実装しています。PythonのWebフレームワークであるQuartを使用しています。
プログラムを実行するとプロセスとしてリクエストを待機します。


APIが出来上がったら、後は前回と同様にChatGPT Pluginとして使用するのに必要なマニフェストファイルとYamlファイルを準備します。

・ap-plugin.json

・openai.yaml
 英語の文章を元にベクトル化をしていますので、日本語の質問文章ではマッチしません。検索用API側で日本語→英語翻訳をしてもいいのですが、せっかくChatGPT Pluginとして動かすので、ChatGPT側で翻訳を行ってもらうようにdescription項目に「Query string must be English. Could you translate it before search」と入れました。

これでPluginの完成です。

次回は実際に使ってみましょう。
では。