Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ChatGPTなどの言語モデルは どのようにシステムで使えるか / How to use LLM in System
Search
Naoki Kishida
June 14, 2023
Programming
4
1.4k
ChatGPTなどの言語モデルは どのようにシステムで使えるか / How to use LLM in System
2023/6/14に開催されたFukuoka Integration Xでの登壇資料です
https://fix.connpass.com/event/283871/
Naoki Kishida
June 14, 2023
Tweet
Share
More Decks by Naoki Kishida
See All by Naoki Kishida
Java 22 Overview
kishida
1
200
Is Object-Oriented nessesary?
kishida
0
43
オブジェクト指向は必要なのか / Is object-oriented needed?
kishida
31
22k
AI時代を乗り切る実装力をつけよう / Get avility of implementation beyond AI era
kishida
2
4.6k
AI時代を生き抜くために処理をちゃんと書けるようになろう / write a executable process for AI era
kishida
23
12k
Javaは今どうなっているの? / how about java now
kishida
14
19k
動くコードを書こう / let's code a process
kishida
24
7.2k
Java 21の概要 / outline of Java 21
kishida
10
6.1k
エンジニアはLLMとどう付き合うか / How engineer get along with LLM
kishida
19
14k
Other Decks in Programming
See All in Programming
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
950
Micro Frontends for Java Microservices - Utah JUG 2024
mraible
PRO
1
110
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
920
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
700
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
440
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
680
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
4
1k
SIMD Parallel Programming with the Vector API
josepaumard
0
240
Webアプリをできるだけコードを手書きしないで作ってみる
tomokusaba
2
190
Ruby Function Composition
bkuhlmann
1
340
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
470
Featured
See All Featured
A Philosophy of Restraint
colly
197
16k
BBQ
matthewcrist
80
8.8k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Become a Pro
speakerdeck
PRO
13
4.6k
Typedesign – Prime Four
hannesfritz
36
2.1k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Teambox: Starting and Learning
jrom
128
8.4k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
The Invisible Customer
myddelton
114
12k
Building Applications with DynamoDB
mza
88
5.6k
Navigating Team Friction
lara
179
13k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Transcript
ChatGPTなどの言語モデルは どのようにシステムで使えるか LINE Fukuoka きしだ なおき 2023/6/14 Fukuoka Integration X
2023/06/14 2 自己紹介 • きしだ なおき • LINE Fukuoka •
twitter: @kis • 「プロになるJava」という Java入門書を書いてます
ChatGPTとは • サービスとして • Webやアプリでチャットを行う • APIとして • プログラムからChatGPTを呼び出す •
言語モデルとして • ChatGPTの基盤になるTransformerをベースにした言語モデル • 文章のどこが大事か注目する • 実際には2つのモデル • gpt-4 • gpt-3.5-turbo(サービスとしては無償で利用可能)
ChatGPTによって「AI」開発が活発に • 研究者から技術者へ • 日本でも独自モデルを作ろうという動き • 富岳での言語モデル開発 • 日本語特化モデルの相次ぐ発表
リスクの議論も始まる • 著作権 • 日本の著作権ではモデル作成がやりやすい • 利用時は人間の手による創作と変わらない基準 • ただし量が多い •
個人情報 • 利用時の問い合わせに個人情報を含めてしまう • 意図せずモデル作成に使われる • 有害情報 • モデル作成時の偏り • 思いがけない出力
ChatGPTの使いかた • サービスとして使う • APIとして使う
ChatGPTの利用方法 • 「言語の計算機」 • 文章の変換 • 文章の解析 • 一般知識の解説 •
テキスト生成(プログラムを含む)
文章の変換 • 箇条書きからメール文 • 要約 • 文体の変換 • 翻訳
文章の解析 • 文章の妥当性のチェック • 特性の判断 • プログラムの解説
特性判断の例 • ブログ著者のプロファイリング
プログラムの解説 • よくわからないプログラムを解説してくれる
一般知識の解説 • 検索がわり • 業務フローなどの解説
文章の生成 • 物語 • 詩 • プログラム
プロンプトの技術 • プロンプトエンジニアリング • Chain Of Thought(CoT) • Zero Shot
CoT
Chain Of Thought(CoT) • 考え方を提示すると正しい答えが出やすくなる
Zero Shot CoT • 「Let’s Think Step by Step」をつけるだけでいい
システムからの利用 • APIを利用 • 関数定義が可能になった • 文章から適切な機能呼び出しの抽出 • プラグイン •
ChatGPTのサービスから自分たちのサービスを呼び出す • Embedding(埋め込み) • 文章をベクトル化 • 近い文章を見つける
Embedding(埋め込み) • 文章の特徴をあらわすベクトルに変換 • 方向が近いベクトルは似た文章 • 文章検索に利用できる
ChatGPT以外の言語モデル • Google • PaLM2 • Bardで使われる • Meta •
LLaMA • OPT •
日本語特化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
必要なメモリ • 32bit Floatだとパラメータ数の4倍 • 16bit Floatだとパラメータ数の2倍 • Rinna 3.6Bは8GB程度のGPUメモリが必要
使いやすくする • 小さいメモリで動かす • Int8 • パラメータ数と同じ量のメモリ • 4bit量子化 •
パラメータ数の半分のメモリ • Rinna 3.6Bだと2GB • CPUで動かす • llama.cpp • スマホで動かせる
ローカルLLMのメリット • 実験がやりやすい • LLMの動きを体感しやすい • 独自の学習ができる • Fine Tuning
FineTuningとプロンプトの違い • プロンプトは台本 • シナリオに沿った応答をしてくれるけど、「素」がでる • Fine Tuningは教育 • 「素」を変える
Fine Tuningの技術 • Fine Tuningを素直にやると大量のメモリが必要 • LoRA • Low Rank
Adaptation • 少ないメモリでFine Tuneできる
Fine Tuningにはデータセットが必要 • データセットはプロンプトの集合体 • プロンプトエンジニアリングのスケールアップ
まとめ • 現状は実験段階 • ChatGPTが出て半年で多くのサービス • つまり半年で実装できる • プログラミング的には難しくない •
現状は「思ったより使える」 • 「使える」になるにはもうしばらくかかる • 実験して、何ができるか、どのような制約があるか体感するのが 大切