規定の枠組みや固定概念をなくし自由な発想でソフトウェア開発に取り組んでいる株式会社オフグリッドです!
今回は弊社で開発中のAIエンジン「Puppet(パペット)」について進捗を含めて神野さんにインタビューを行いました。
現在の役職と業務内容を教えてください。
役職は主にプログラマーで、バックエンドの処理をPython/Flaskで実装してコードを書いています。
ファストテキストを用いた言語の単語予測であったり、LLMの学習やチューニングを行っています。
プロジェクトの概要を簡単に教えてください。
ユーザーが自由に設定したシナリオを設定して、チャットボットをカスタマイズして作れる、そういったものになります。
Puppetを活用することでどのような課題解決ができますか
チャットボットによって、人件費の削減、人手不足の解消であったり、問い合わせがあった際に質問に至る前に、チャットボットで事前情報をお客様からいただくことで、より短時間で適切な対応をすることができます。
通話においてより高いサービスを提供できるようになると思います。
開発環境を教えてください。
こちらが開発環境です。
フロントエンド
言語:Vue.js、TypeScript
バックエンド
言語:python
ライブラリ:flask,fasttext(単語予測),LLM学習(transformers,peft)
アジャイルに近い形で開発を行っており、私はバックエンドでPythonのFlaskAPIを用いての開発を担当しています。
フロントエンドとバックエンドでチームが分かれており、基本的には在宅で作業を行っているのでTeamsでチャットを小まめにしながらコミュニケーションをとっています。
単語の分類では、fasttextというライブラリを使用して学習データを作成したり、学習データをもとに分類の処理を行っています。
llmではtransformersとpeftででモデルなどを読み込み、ファインチューニングを行っています。
チーム構成や開発プロセス(アジャイル/スクラム/CI/CD など)についても教えてください。
アジャイルに近い形で開発を行っており、マイクロサービスの形でpuppetの各機能をそれぞれの担当者が実装する形です。
連携が必要な部分に関しては、swaggerなどのドキュメントを作成して連携しています。
AIエンジンならではの設計思想やアーキテクチャの特徴はありますか
主にローカルで動かせるものを現在使っていて、ローカルですと、そのパソコンのスペックによりますが、軽いものでも1時間で、重いものだと半日~4日ほど学習に時間がかかります。
学習をする動作と、それを使用して予測すること、そしてその学習したデータを使って実際に動かす処理をすべて分けて実装しています。
以上がPuppetの設計の特徴かなと思います。
プロジェクトに関わる上で、どんな時にやりがいを感じますか。
Puppetはローカルで開発しており、限られた中で処理を行うので、そのための工夫を探して、見つけられた時にすごい面白いなと感じます。
また、AIエンジン開発においてチューニングっていうのが結構根気がいる作業ですが、正解のパラメーターを見つけられたときに感動します。
最近の進捗について教えてください。
llmの応答速度が上がったことです。
llmの仕様を理解が進んだことと、学習方法や予測動作の方法を検討したことにより速度改善しました。
後取り組みたい機能や技術領域ありますか。
画像認識のaiですかね。画像の認識の機能をつけて、そこからその画像から読み取った情報をllmにさらに渡して画像から文章を生成するようなものを実装したいです。
できると面白いかなと思います。
最後に求職者向けに何か一言あればお願いします。
AIエンジン開発は根気のいる作業も多いですが、成し遂げた時の達成感も大きいです。
興味がある方はぜひ挑戦していただきたいと思います。
ここまでお読みいただき、ありがとうございました!株式会社オフグリッドでは言語問わず業務経験があるエンジニアの採用活動を積極的に行っています。