去る2023年4月28日(金)に虎ノ門の KDDI Digital Gateで開催された「ChatGPT Meetup Tokyo #0」
もともと会場側スタッフとして参加する予定だったんですが、先約があり参加できなかったため、Youtubeのアーカイブを通じて追っかけ視聴してみました。
オンライン/オフラインともに、参加された人たちが口を揃えて
「ヤバすぎる」
「我々はどのくらい周回遅れしているのか」
「エンジニアとして危機感を感じた」
と語られていたので身構えながら挑みましたが、それは本当でした。
自分がどれだけこの分野についての知見が浅かったのか、上辺だけの情報しか見てなかったのか思い知らされることになりました。
このブログ記事は、タイトルにあるとおりLLMに関して本当に何も知らない私が私なりに残したメモと所感をセッションごとに並べてみたものになります。 決して識者や経験者によるまとめページではありませんので、先行されている皆様にはきっと役に立ちません。
すべてのスタート地点はここだった、という記録のために残します。
※セッションタイトルのすぐ下にYouTubeの該当箇所へ飛べるリンクを貼っておきます。
- オープニング/新井田晃史
- コミュニティのキックオフによせて / ChatGPTとLangChainでサービスつくった話 / 吉田真吾
- 東京都の大学院 (AIIT) で24時質問対応してくれるTeaching Assistant (ChatGPT) を用意してわかったこと / 安川要平
- ChatGPTとおしゃべりできるAlexa Skillをリリースしました / 村本雄太
- 自分だけのAITuberを作ろう! / Saldra
- をプリフィックスでつけると、さくらにひろわれないコメントも打てる
オープニング/新井田晃史
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=0s
もういきなりオープニングから知らない用語だらけで、ミゾオチをナイフで抉られるような気分を味わいました。 そもそもこれが理解できていない人は参加の資格すらない、、、、と理解したので、冷静に調べて行きます。
❏Embeddings技術:
自然言語処理におけるEmbedding(埋め込み)とは、「文や単語、文字など自然言語の構成要素に対して、何らかの空間におけるベクトルを与えること」を指す。
例えば、Word Embedddingでは、各単語に対して固有のベクトルを与えることを指している。
よくわからないけど特徴量に対してのベクトルを数値として与えるということか。
調査してる中で見つけたこの資料がめちゃくちゃにわかりやすかったです
コーパスだとかアンサンブル学習だとかさらに色んな用語がでてきたけど、いったん現時点ではメモだけ残していったん忘れる。
参考にしたサイト
結局、Embeddingって何者? - Qiita
https://qiita.com/sakabe/items/5f14999ded1de087c9b5
Embeddingについてまとめた。 - For Your ISHIO Blog
https://ishitonton.hatenablog.com/entry/2018/11/25/200332
単語の埋め込み - Wikipedia
https://ja.wikipedia.org/wiki/%E5%8D%98%E8%AA%9E%E3%81%AE%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BF
❏LlamaIndex(旧GPT Index)
LlamaIndexはユーザーが用意したデータを読みこんでインデックスファイルを作成、そのインデックスファイルの情報を参照して質問に> 答えてくれる仕組みを実現できます。
GPTのようなLLMにプライベートなデータを補強するために、in-context learningという枠組みがあり、これを行うには
・データの取り込み
・ インデックス化が必要
ということです。そこで、このデータの取り込み、インデックス化、またそのインデックスを利用して質問(クエリ)に回答するところまでの機能を一気通貫で提供してくれるのがLlamaIndex、となります。
独自データからインデックスファイルを生成して、そのファイルを元にQAに答えてくれるチャットボットのエンジンを作れるものと理解した。
対象となるデータはテキストだけでなく、Llama Hubというサイトにデータコネクタがあり、たとえばYouTubeのトランスクリプトを読み込んでインデクス化し、そこへのQAを行うこともできるとのこと。これはヤバい。
参考にしたサイト
ChatGPTで独自データを利用できるLlamaIndexはどんな仕組みで動いているのか?調べてみました | DevelopersIO
https://dev.classmethod.jp/articles/llamaindex-overview/
LlamaIndex クイックスタートガイド|npaka|note
https://note.com/npaka/n/n8c3867a55837
❏LangChain
ChatGPTなどの大規模言語モデル(LLM)を使ったサービスの開発を支援するためのライブラリです。LangChainを使用することで、LLM単独ではできないような他の計算や知識のソースと組み合わせたより高度なアプリケーションを開発することができます。
LangChainには以下のような機能がある。
LLMs
Prompt Template
Document Loaders
Indexes
Chains
Agent
Memory
Chats
解説を読んだ感じだと、Document LoadersとIndexesでLlamaIndexと同じことができそう(独自テキストデータを読みこめる) あと他のChainsやAgentもかなり面白い。これだけで人力でネット徘徊を行う必要がなくなりそう。 自分の代理でいろんな情報を引き込んでくるボットを生成できる気がする。
参考にしたサイト
LangChainとは | Hakky Handbook
https://book.st-hakky.com/docs/langcain-intro/
ChatGPTの機能を拡張するLangChainを試してみた - NRIネットコムBlog
https://tech.nri-net.com/entry/tried_langchain_to_extend_chatgpt
❏Hugging Face
結論から言ってしまうと、サービスとしてのHugging FaceはAI・機械学習に特化したGitHubと、クラウド実行環境が合わさったようなものだ。企業としても、Hugging Faceは時価総額20億ドルを超えるなど急成長中のユニコーン企業だ。
GitHubに比べて1ファイルのサイズ上限が無い?(超デカイ?) Spacesというクラウド実行環境サービスがある
参考にしたサイト
画像AIを調べると必ず出てくる謎のサイト「Hugging Face」ってナニモノ? 正体は急成長中の“ユニコーン”(1/3 ページ) - ITmedia NEWS
https://www.itmedia.co.jp/news/articles/2302/23/news080.html
❏Azure OpenAI
AzureがCoginitive Serviceに統合したOpenAIのモデルへのアクセスをWebAPIとして利用できるサービス。 学習の元になるデータは良いとして、そこからEmbeddingsを生成する処理や、そこから生成したインデクス情報はどこに置かれるのだろう?
Azure Cognitive Serviceをうたっているので、おそらく機能だけは直接OpenAIのモデルをインスタンシングして自分のプライベート環境で実行できるのではないかと思われるが、その間のデータの流れがよくわからない。もう少し手を動かして学習が必要だ。
参考にしたサイト
Azure OpenAI Service を使い始める
https://zenn.dev/microsoft/articles/1a15305021cd01
コミュニティのキックオフによせて / ChatGPTとLangChainでサービスつくった話 / 吉田真吾
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=859s speakerdeck.com
- ChatGPTに1on1をしてもらってる
- なぜコミュニティをやるべきか?→情報過多&置いてけぼり感から「すべて投げ出したくなった」→落ち着いて前を向きたい
- AI/ML,アプリエンジニアのみならず、ドメインエキスパートも対象にしている
- サービス開発した話→先々週の時点ではLangChainが何かも知らなかった
- そこから2日x6日で作って取締役会で説明して採用に至った。実質2日だった
- 自社のFAQにChatGPTで回答に利用するアプリ
- 取り組んだ2人ともにまったくわからない状態でペアプロ開始。公式ドキュメントとにらめっこ。ツールはGitHubとかに公開されてるものでも抽象度が低い方=中身や使い方が明確なものを選ぶ。
- LangChaingのJS版はPython版よりアップデートが遅い
- とにかく公式ドキュメントを読め
- 作ったのはサンプルであり商用に出すには10倍はやることがある。ここからが大変。
- プロンプトエンジニアリング超大事
- ハルシネーション対策もいるよね
超絶スピードでサービスを作った、という話もすごいのだけど、2週間前にはLangChainが何かも知らなかった状態からここまで持ってこれるのやっぱすごいです。
それと、「すべて投げ出したくなった」感覚、もうほんソレです。今の私状態。ChatGPTの発展スピードを知ってしまってから毎晩悪夢ばかり見ているワタシ。
落ち着いて前を向きたいです。
❏ハルシネーション
チャットAIなどで、もっともらしいウソ(=事実とは異なる内容や、文脈と無関係な内容)の出力が生成されることを指す。
ハルシネーション(Hallucination)とは?:AI・機械学習の用語辞典 - @IT https://atmarkit.itmedia.co.jp/ait/articles/2303/30/news027.html
東京都の大学院 (AIIT) で24時質問対応してくれるTeaching Assistant (ChatGPT) を用意してわかったこと / 安川要平
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=2290s speakerdeck.com
- Teaching Assinstant(TA)を作ってみて、学生に使ってもらった話
- AIxプログラミング学習
- 殆どの学生が1週間に数回使って評判も上場
- ハルシネーション対策をやりすぎない
- 講義がはじまって1ヶ月弱、質問は来たのか?これまでが3ヶ月で17件から5件だったのに、123件も来てる
- むしろ質問が多いのはとても良いこと。データ貯まるフィードバック回せる。
TAにAIを使うことで、教師が本質的な部分=生徒を成長させることへと集中できるのは素晴らしいことだと思った。 どこでもそうだけど人材不足の業界においてはGenAIは福音になるのかも?
ChatGPTとおしゃべりできるAlexa Skillをリリースしました / 村本雄太
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=2928s https://www.canva.com/design/DAFhY54d3gU/DXCxl-iQoA-3wCEXdoWobQ/view
- helloGPTというAlexa Skillをプライベートで作ってる
- 人の話し相手として良いのでは?という反響がある
- 英会話対応できるようにする予定
ChatGPTの英語学習活用は、実は個人的に一番期待している部分だったりします。 人と話すのももちろん良いのだけど、恥ずかしい云々の前に意思疎通できる気がしないので基礎練習をしたい。 じゃあオンライン英会話すればいいじゃん、なんだけど、どのサービスでも時間が限られているし、お気に入りの先生がいつもつかまるわけでもない。このためにChatGPTが使えれば、まじでどのタイミング、どの瞬間でもいつでも英会話練習できる。
自分だけのAITuberを作ろう! / Saldra
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=3667s www.docswell.com
- AIチューバー(あいちゅーばー)=配信中の発言やコメントをAIが行う。コメントも学習する(マジか!)
- 性格をカスタマイズできる
- 自分で自分の推しを作ってYouTube上で育てていく感覚。新しい。
- コメントへの返信をChatGPTが使えるようになったことでAITuber界隈がざわついている
- OpenAIを使わずローカルLLMを使ってる理由は、ひねくれた回答をしてくれないから
をプリフィックスでつけると、さくらにひろわれないコメントも打てる
これは面白い。既存のカルチャーにChatGPTが入り込んでいったイメージ。 VTuberに近いが、創ってる人間が応答してるんじゃなく、AIそのものが回答してるのが凄い。
確かに「育てる」という感覚になるだろうね。そんで自分で育てた推しに人気が出てくるとなれば、 親=技術者としては堪らないと思うw
ローカルLMMは使えるか?~性能、展望、ホスティングと費用 / 乾夏衣
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=4252s torpid-stem-c48.notion.site
- 個人的にGPUが好き♪ファンがかわいい(え?
- ローカルLLM vicuna-13b
- 13bってGPUの数?スペック?
- Alpaca?というローカルLLMもある
- GPT-3やGPT-4はめちゃくちゃに安い
このセッションについては、メモを取ろうにも語られている数字と文字や用語がまったく分からなかったので、殆どの内容について意図を図りきれませんでした。ごめんなさい。 Nnnbのbって何だろう?
スキル育成に生かすLlamaIndexの活用 / 大瀧隆太
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=5348s speakerdeck.com
- DevelopersIO BASE CAMPにChatGPTが使えるのでは?
- LlamaIndexの中にある機能で「インデクス作成」と「クエリ」を使う
- Discord上にいるBotとして生成。仕組みとしてはS3+Fargate。
メチャクチャシンプルな活用方法だけど、たぶん一番身近な例かもしれない。 たとえばうちの場合は社内情報はすべてConfluence上に纏められているのだけど、いつもそこから情報を探してくるのが面倒。 サイトをクロールしてインデクス更新してSlack Botで社内情報を質問できるようになると超便利。 そのうち乱雑にならんだページをきれいに整理してくれたりもするんだろうか。
ChatGPTとWatson Discoveryでサイト内検索を進化させてみた / 江頭貴史
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=6338s speakerdeck.com
- サイト内検索をChatGPTでやる
- 検索者と提供者のニーズがマッチしてないのがサイト内検索の実状
- この間にChatGPTを挟んだら解決できるのでは?
- IBM Watson Discoveryは大量のテキストデータから有用な情報を取得するサービス
- 企業内にしかないサービスを拾える
- ここからお客様の質問内容にたいして検索結果にマッチングさせるのをChatGPTにやらせる
- embedding→Vector 検索の部分をWatsonにおまかせしちゃう方式
- 利用者側の知りたいことだけ教えろというニーズと、企業側のこれも知ってほしい、の壁を超えられる?
- セキュリティ面のクリアはAzure OpenAIを活用することで色々クリアできる
こちらも社内あるいはお客様向けのサービスとしていち早く提供できる可能性がある。 特にWatsonを使うことと、Azureを使うアーキテクチャは、エンプラ向け活用に対してかなり有用な情報。 あとは、製品やサービスをとりあえず入れて解決したいと考えがちなお客様に、精度を上げ続けるサイクルを回す部隊をどう作れるか?が勝負。やっぱり最後は人と組織に行き着くな。
医療系スタートアップでのLLM PoCの共有と今後の取組 / 上野彰大
https://www.youtube.com/watch?v=K0X6zkSxWzs&t=7133s ※スライドあれば教えて下さい!
- PharmaXさんは、薬局のオンライン化をやっているスタートアップ
- 処方箋の中に記載されている内容に間違いが散見される。特に多いのは処方量
- この間違いの指摘をChatGPTを活用して無人で実施する。
- 処方箋からテキストデータを抜き出し、処方情報を抽出。
- PMDAという処方に関する添付文書を公開しているサイトから医薬品の添付文書を抜き出してDBに保存
- この2つを突き合わせて、間違いを指摘
- 殆どの場合で正しく間違いを指摘することができ、ブレを許容した制限事項もその旨を返答できた。
- 非構造化データを正しく高度に扱うことができるのがLLMの凄さ
いわゆるヒューマンエラーの抑止であったり、余計な作業の軽減のためにChatGPTを使う王道の方法。 正直ここまでの精度の回答を人間が出すのは難しいのだとすると、命にかかわるような医療系の情報に ChatGPTを使うのはとても有効的な方法かもしれない。
最後に
メモと所感を一気に書いてみましたが、正直わかったようで何も分かってない、と自分でも感じています。 これは「手を動かしていないから」がその最も大きな原因。断言してもいいです。
本業でも時間がないなかで、完全に私的な学習としてどこまで自分で追いかけられるか、非常に不安ではあります。が、これに追随できなければ自分の将来のほうがもっと不安です。
どこまでついていけるかわからないですが、やれる範囲で学びを続けて行きたいと思います。