Slide 1

Slide 1 text

ChatGPTなどの言語モデルは どのようにシステムで使えるか LINE Fukuoka きしだ なおき 2023/6/14 Fukuoka Integration X

Slide 2

Slide 2 text

2023/06/14 2 自己紹介 ● きしだ なおき ● LINE Fukuoka ● twitter: @kis ● 「プロになるJava」という Java入門書を書いてます

Slide 3

Slide 3 text

ChatGPTとは ● サービスとして ● Webやアプリでチャットを行う ● APIとして ● プログラムからChatGPTを呼び出す ● 言語モデルとして ● ChatGPTの基盤になるTransformerをベースにした言語モデル ● 文章のどこが大事か注目する ● 実際には2つのモデル ● gpt-4 ● gpt-3.5-turbo(サービスとしては無償で利用可能)

Slide 4

Slide 4 text

ChatGPTによって「AI」開発が活発に ● 研究者から技術者へ ● 日本でも独自モデルを作ろうという動き ● 富岳での言語モデル開発 ● 日本語特化モデルの相次ぐ発表

Slide 5

Slide 5 text

リスクの議論も始まる ● 著作権 ● 日本の著作権ではモデル作成がやりやすい ● 利用時は人間の手による創作と変わらない基準 ● ただし量が多い ● 個人情報 ● 利用時の問い合わせに個人情報を含めてしまう ● 意図せずモデル作成に使われる ● 有害情報 ● モデル作成時の偏り ● 思いがけない出力

Slide 6

Slide 6 text

ChatGPTの使いかた ● サービスとして使う ● APIとして使う

Slide 7

Slide 7 text

ChatGPTの利用方法 ● 「言語の計算機」 ● 文章の変換 ● 文章の解析 ● 一般知識の解説 ● テキスト生成(プログラムを含む)

Slide 8

Slide 8 text

文章の変換 ● 箇条書きからメール文 ● 要約 ● 文体の変換 ● 翻訳

Slide 9

Slide 9 text

文章の解析 ● 文章の妥当性のチェック ● 特性の判断 ● プログラムの解説

Slide 10

Slide 10 text

特性判断の例 ● ブログ著者のプロファイリング

Slide 11

Slide 11 text

プログラムの解説 ● よくわからないプログラムを解説してくれる

Slide 12

Slide 12 text

一般知識の解説 ● 検索がわり ● 業務フローなどの解説

Slide 13

Slide 13 text

文章の生成 ● 物語 ● 詩 ● プログラム

Slide 14

Slide 14 text

プロンプトの技術 ● プロンプトエンジニアリング ● Chain Of Thought(CoT) ● Zero Shot CoT

Slide 15

Slide 15 text

Chain Of Thought(CoT) ● 考え方を提示すると正しい答えが出やすくなる

Slide 16

Slide 16 text

Zero Shot CoT ● 「Let’s Think Step by Step」をつけるだけでいい

Slide 17

Slide 17 text

システムからの利用 ● APIを利用 ● 関数定義が可能になった ● 文章から適切な機能呼び出しの抽出 ● プラグイン ● ChatGPTのサービスから自分たちのサービスを呼び出す ● Embedding(埋め込み) ● 文章をベクトル化 ● 近い文章を見つける

Slide 18

Slide 18 text

Embedding(埋め込み) ● 文章の特徴をあらわすベクトルに変換 ● 方向が近いベクトルは似た文章 ● 文章検索に利用できる

Slide 19

Slide 19 text

ChatGPT以外の言語モデル ● Google ● PaLM2 ● Bardで使われる ● Meta ● LLaMA ● OPT ●

Slide 20

Slide 20 text

日本語特化LLM(発表順) ● B=10億 ● ChatGPTのGPT-3.5が355Bと言われている 提供元 名称 パラメータ数 オープン利用 LINE, Naver ワークスモバイルジャパン HyperCLOVA 39B, 82B開発中 オルツ LHTM-2 160B ABEJA ABEJA LLM 13B Open版ABEJA LLM 2.7B 〇 CyberAgent 極予測AI 13B OpenCALM 6.8B 〇 Rinna Rinna 3.6B 〇 AI Inside PolyShere-1 140B

Slide 21

Slide 21 text

必要なメモリ ● 32bit Floatだとパラメータ数の4倍 ● 16bit Floatだとパラメータ数の2倍 ● Rinna 3.6Bは8GB程度のGPUメモリが必要

Slide 22

Slide 22 text

使いやすくする ● 小さいメモリで動かす ● Int8 ● パラメータ数と同じ量のメモリ ● 4bit量子化 ● パラメータ数の半分のメモリ ● Rinna 3.6Bだと2GB ● CPUで動かす ● llama.cpp ● スマホで動かせる

Slide 23

Slide 23 text

ローカルLLMのメリット ● 実験がやりやすい ● LLMの動きを体感しやすい ● 独自の学習ができる ● Fine Tuning

Slide 24

Slide 24 text

FineTuningとプロンプトの違い ● プロンプトは台本 ● シナリオに沿った応答をしてくれるけど、「素」がでる ● Fine Tuningは教育 ● 「素」を変える

Slide 25

Slide 25 text

Fine Tuningの技術 ● Fine Tuningを素直にやると大量のメモリが必要 ● LoRA ● Low Rank Adaptation ● 少ないメモリでFine Tuneできる

Slide 26

Slide 26 text

Fine Tuningにはデータセットが必要 ● データセットはプロンプトの集合体 ● プロンプトエンジニアリングのスケールアップ

Slide 27

Slide 27 text

まとめ ● 現状は実験段階 ● ChatGPTが出て半年で多くのサービス ● つまり半年で実装できる ● プログラミング的には難しくない ● 現状は「思ったより使える」 ● 「使える」になるにはもうしばらくかかる ● 実験して、何ができるか、どのような制約があるか体感するのが 大切