TOP
arrow_forward_ios
INFOMATION

ロボらんてくん開発秘話

2023-06-30

こんにちは。
今回は先日リリースを行ったロボらんてくんについて、開発者にインタビューを行ってきました。どういったところを工夫したのか、開発に苦労した部分はどこだったのか、今後の展望など様々なことを聞いてきたのでぜひお楽しみください!

‐ロボらんてくんのリリースが7月に行われるとのことですが

そうです。現在完成を目指して調整を行っているところです。UIなども調整中なので、受講生のみなさんが使いやすい形でリリースし、たくさん使用してもらえればと思っています。
LLM(大規模言語モデル)の部分については、日本語での情報が少なく手探りな部分も多かったのでかなりチャレンジングでした。
実は元々RUNTEQで使用しているカリキュラムで登場したらんてくんのロボが発祥なんですよ。それもあり以前から実現したい構想の一つでもありました。

‐工夫したところを教えてください。

質問への回答の待ち時間のストレスをなくしたところです。
OpenAI APIの仕様上、どうしても回答が遅くなることがあったので、ストリーミングでレスポンスする形式にすることでChatGPTのように1文字ずつ回答されるように工夫しました。
やはり会話できている感覚がある方がユーザビリティが高いと思ったので実装したのですが、今回使ったツールが未対応のツールだったので半分無理やりやらせたようなものです(笑)
質問を検索するAWS lambdaと、実際にOpenAI APIにリクエストする箇所を分けてストリーミング形式に対応したところが、工夫した点でもあり苦労した点でもありますね。

‐なるほどですね。他にも苦労したところなどはありますか?

単純にOpenAIのAIを使うだけではなく、RUNTEQの持っているデータベースを組み合わせて使わなければならなかったところでしょうか。自社の学習データを使用する際は、fine-tuningかin-context learningという2つの手法を用いるのが一般的ですが、今回はin-context learningを用いました。
簡単に言うと、ユーザーから質問が来たときに、それに対していい感じの回答を何個か引っ張ってきて「これがいい回答です」ということをOpenAI APIに質問と一緒にリクエストするという手法です。

様々な分野でAIを使用した取り組みが始まっていますが、まだドキュメントとしてきちんとまとまったものが少ないというのも苦労した点かもしれません。公式から出てはいるのですが、やはりユーザー目線で書かれているものがあればわかりやすいので。
今回はLlamaIndexを組み合わせて使用したのですが、Discordのコミュニティに入って色々な情報を収集しましたね。





‐実装してみていかがでしたか?

ツールの精度がとてもいいので、一回実装してしまえばRUNTEQ運営と同じものを回答できるようになるところはとてもいいと思いました。プレスリリースにもありましたが、営業時間や質問の難易度などを気にすることなく気軽に質問ができるので、かなり学習体験が向上すると思います。今後更にデータベースを整備していくので、どんどん良くなっていきますし、積極的に活用してもらいたいですね。

‐ユーザビリティの話がありましたが、ロボらんてくんの特徴を教えてください

まずは24時間対応なところでしょうか。今まではRUNTEQの講師陣という人間が対応していたので、どうしても真夜中や早朝などの対応が難しくなってしまっていました。
また、適宜ミーティングで回答事例や質問事例などの共有は講師陣内で行っていましたが、複数人いることで即時の反映は物理的に行うことは不可能でした。その点、ロボらんてくんは一人なので質問への回答経験値がすぐに溜まっていくのも利点ですね。
ここからは一般論になってしまうのですが、人間はどうしても情報の授受において無意識に偏りが発生してしまいがちです。その点AIを使用すると、一般的なプログラミングの正解を教えてくれますし、前提となる知識はもちろんスタンダードな書き方やセキュリティリスクなども合わせて教えてくれるので、情報の粒度を揃えることが容易です。
人間が不得意とする分野を補完してくれるという意味で、AIはかなり優秀だなと思いますね。

また受講生の皆さんにとっても、人間に聞きにくい質問をしやすくなったのではないでしょうか。こんな簡単な質問をしてもいいのだろうかという悩みや、聞き方がわからないという部分にもプロンプトのフォーマットを用意して質問しやすくしてくれているので、更に理解が深まると思います。
ロボらんてくんの実装により、運営側としてもさらに受講生のためになる、割くべきところに人員を割けるようになったので、ますますRUNTEQがパワーアップすると考えています。

‐質問するためのプロンプトはどのように設定したのでしょうか

講師陣でミーティングを重ねて作成しました。やはり傾向として受講生が詰まりがちなパターンや陥りがちなミスがあるので、そこを分析してその傾向から質問を人力で作成しています。
講師が作成したからというわけではないと思いますが、作っていくうちにエンジニアに必要な質問に近くなっていたという感じになりました。いま実際に活躍している現役Webエンジニアの質問を見られるという観点で見てみても、プログラミングのスキルが鍛えられると思います。

‐質問したデータはすぐに回答に反映されるんですか?

リアルタイムに反映されるわけではありません。実はデータをいつどうやって集約し蓄積していくかというところが、LLM(大規模言語モデル)に社内データを組み込む上で一番肝になるところでもあります。
この部分は今後どんどん改善を重ねていきたいところでもありますし、社内で横断的に協力して開発を行っていきたい部分でもあります。今回は私が所属しているRUNTEQ事業本部内での開発でしたが、今後はスタートアップスタジオ事業本部の協力も仰ぎ、スタテクの全員で作っていくことができればと思っています。

‐今後ロボらんてくんをこうしていきたいなどはありますか?

とにかく最初のうちはたくさん使ってほしいですね。わからないところをググって調べるという体験がかなり変化すると思います。
その体験の積み重ねで、ロボらんてくんは更に便利に進化していくと思います。

中身の話でいうと、現在はLlmaindexを使用しているのですが、別のものもどんどん試していきたいですね。今は日進月歩で新しいものができているので、日々更新を重ねて使いやすいものにしていきたいと思います。

また、RUNTEQはMattermost以外にもDiscordやtwitterなどさまざまな受講生のコミュニティがあります。現在ロボらんてくんはMattermostとRailsのアプリ上にありますが、それぞれ別のものを参照している状態です。それらのコミュニティの全てで、統合した一つのロボらんてくんを使用できるようにしたいですね。
プラットフォームが大きくなればなるほどAIは賢くなることができますし、プラットフォーム的に使用できるAIにできればと思っています。

RUNTEQ自体も、今後AIを使用したプログラミングという部分にもフォーカスを置いていきたいと考えています。これからAIを使用してプログラミングを行うというのが一般的になると思いますし、その際に講師陣の一人として受講生の見本となることができればなと思っています。





ありがとうございました!今後ますます改良されていくことで、ロボらんてくんの成長が非常に楽しみですね。いつか私も使ってみることができればなと思います。
RUNTEQとしてもAIを使用したプログラミングという部分にもフォーカスを当てるということで、これからのRUNTEQからますます目が離せなくなると感じました。

今後もAI関連の記事をどんどん出していきたいと考えています。
ぜひ楽しみにしていてください!

最新記事

今日から使えるSlack小技!前半戦
2024-04-26
今日から使えるSlack小技!前半戦
スタテクレポート vol.3(2023年8月~2024年1月)
2024-03-25
スタテクレポート vol.3(2023年8月~2024年1月)
【イベントレポ】Findy × RUNTEQ合同主催『受託開発におけるエンジニア組織づくり』
2024-03-21
【イベントレポ】Findy × RUNTEQ合同主催『受託開発におけるエンジニア組織づくり』