AIの活用方法
昨今、ChatGPTやClaude、Geminiなどの生成AIが非常にブームになっています。
自分がプログラミングを始めた頃はAIはまだ実用レベルでは無いと思っていましたが、約一年少し前にChatGPT3.5を初めて使った時には衝撃を受けました!
今ではプログラミングを始め、様々な業務に活用できるようなものに進化していて、とても便利に使っています😄
例えば、プログラムを書いた後にそのプログラムに対してリファクタリングしてと言ってみると自分では思い付かなかったような改善案があったり、雑誌の記事の執筆依頼が来た時にリファインしてもらう事で自分では思い付かなかった言い回しを教えてくれたりします。
このような自分では思い付かない部分を教えてくれて、それを吸収していく事で自分も勉強できてとても便利です!
生産管理システムとAI
自分がAIの便利さを実感したので、これは是非自社のシステムにも活用したいと思いました。
ということで、とりあえず手始めに、システムにAIチャットを追加しました!
一般的な加工、表面処理の知識や会社の情報を教え込んだChatGPTです😳
今AIに独自の情報を教えこむには大まかに2つの方法があります。
1.ファインチューニング
2.エンベッディング
簡単にいうとファインチューニングはAI自体を微調整するイメージ、エンベッディングはAIに独自の知識を渡して必要があれば参照してもらうイメージです。
コスト的にエンベッディングの方が安く済むので、このAIchatはエンベッディングを使用しています。
しかし、一般的な知識はとてもいい感じに会話が成り立つのですが、これが在庫の情報や注文の情報など生産管理システムの内部の情報を埋め込もうとするとあまり精度が出ません😅
生産管理システムとクエリ
生産管理システムの場合、内部にある情報をレポートとしてエクスポートする機能があったりします。
例えば、使用者は以下のような情報が欲しいです。
- 今の在庫情報
- 注文の情報
- 不良品の情報
- 生産高や稼働状況
こういった情報を出力する場合、例えば何日から何日までのどの情報を欲しいなどをセッティングしてエクスポートボタンを押す必要があります。
これがシステムを使い慣れていない人にとっては非常に難しい作業になります😩
そこで、『今月のアルマイトラインでの作業と生産高を出して!』と言うような人間の言葉でシステムに対して聞くことができたらとても便利になります。
この人の話す言葉での問い合わせを自然言語クエリといいます。
Function Calling
実はこのような問い合わせに対して、AIがこちらの用意した関数を利用して情報を取得して、その情報を元に回答を作るような仕組みがあります。
openAIではfunction callingという名前で公開されています。
これを適切に構築するとAIはこちらの問い合わせから適切な関数を選択して、引数にも適切なものを入れてくれます。
Parallel function callingというものもあり、これを使うと複数の関数を呼び出す事もできます!
つまり、『今月のアルマイトラインでの作業と生産高を出して!』と聞くと関数に"アルマイトライン"、"生産高"という引数を渡して数値を取得するイメージです😄
これを使うことで生産管理システムとの対話が出来るようになります!
以前この技術調査も込みで、LineでAIと会話出来るbotを作ってみました。
Function Callingを使ってインターネットから情報を取得したり、APIを呼び出して画像を生成したり編集したり出来るようなものを作ってみて公開しました😄
現在は非公開になっていますが、この時の取り組みについても後日記事を書こうと思います!