NTTドコモR&Dの技術ブログです。

インターンシップ体験記:自然言語処理モデルの改善

こんにちは!NTTドコモ サービスイノベーション部の川原田です。

普段は、語学教育に関する研究開発業務に従事しています。 NTTドコモでは、2023年2月に現場受け入れ型インターンシップを実施しました。今回のインターンシップは、初日と最終日以外はリモートによる実施となり、参加者はチームに配属された後、2週間の業務体験をしていただきました。私が所属するチームでも受け入れを行い、トレーナーの一人としてサポートさせて頂きました。 今回は、インターンシップに参加された藤田さんに感想を書いて頂いたのでご紹介したいと思います。

はじめに

この度、現場受け入れ型インターンシップに参加させていただいた静岡大学大学院修士1年の藤田真伎と申します。 NTTドコモ サービスイノベーション部で語学教育に関する業務に取り組んだため、実施内容や感想を記載させていただきます。

参加目的

私がインターンシップに参加した目的は、大きく分けて3つありました。

1.企業における研究開発について理解を深めるため

私は研究で自然言語処理を扱っており、社会に出てからも自然言語処理や機械学習に関する業務に携わりたいと考えています。一方で、企業での研究開発がどのように行われているか、研究室で行う研究との違いについての理解は不十分でした。そこで、今回の現場受け入れ型インターンシップで具体的に業務を体験し、自分の志向性とマッチしているか、企業と研究室の違いについて学びたいと思いました。

2.普段の研究以外のタスクへの理解を深めるため

大学における研究では、一つのテーマを深く追求できる一方で、専門外のタスクへ気軽に触れる機会はあまりありません。今回のように、2週間という期間で普段と違ったタスクに挑戦し、知見を広げたいと考えました。

3.企業理解を深めるため

就活の中で、就業型インターンシップでは説明会などからは見えてこない、企業の雰囲気や人柄などを知ることが重要であるということを学びました。そこで、ドコモの社風や社員の人柄、部署の雰囲気を知り、会社への理解を更に深めたいと考えました。

業務について

概要

主に既存のシステムの理解・新規手法の提案・実験と評価の3つを行いました。既存のシステムの理解では、商用のシステムがどのように動いているか、どのような部分に改善点があるかを社員の方とコミュニケーションを取りながら理解を深めていきました。新規手法の提案では、論文調査を行った後、今回実装する手法について検討を行いました。最後に、実験設定・評価方法を検討し、実際に実験を行いました。

背景

エヌ・ティ・ティ・コミュニケーションズが提供するEnglish 4skillsという中高生向け英語学習サービスがあり、サービスイノベーション部ではサービスに含まれるAI採点機能を開発しています。 e4skills.com

このAI採点機能には、和文英訳問題の添削・フィードバック機能を持つAIライティングと呼ばれるものと、面接試験のための自動採点機能を持つAIスピーキングと呼ばれるものがあり、今回はAIライティングの改善を行いました。

テーマ

AIライティングでは、ユーザーが書いた英文をリアルタイムで添削を行い、模範解答を出力します。この際に重要になるのは、ユーザーの回答をなるべく残しつつ模範回答を作成することです。これによって、ユーザーはシステムのフィードバックを生かしつつ英語学習を進めることができます。

AIライティングでは、TransformerをベースとしたEncoder-Decoderを使って実現しています。

まず、ユーザー回答に対して、採点モデルを用いて採点を行い、誤っている単語をマスク文字(*)に置き替えます(STEP1)。その後、Encoder部分に日本語の問題文を、Decoder部分にマスク後のユーザーの回答入力することで、ユーザー回答に近い模範解答を出力します(STEP2)。

このシステムの課題として、Decoder部分に入力する系列が長いため、並列計算ができず推論時に時間がかかってしまうことが挙げられます。実際の運用ではモデルの推論時間の短縮が重要となるため、モデルや入力方法を工夫し、推論時間を短縮する方法を検討しました。

結果

既存のシステムに対して、模範回答生成の精度を維持しつつ、計算時間が短縮できることを明らかにしました。また、モデルの訓練で重要となる学習データの作成方法を工夫することで学習効率が向上することを明らかにしました。

インターンシップを振り返って

参加した感想

社員の方がこちらの参加目的に合わせて業務内容やスケジュールを設定してくださっており、参加目的について深く知り大きく成長できた貴重な体験となりました。

大学の研究と異なり、既存のシステムをベースに考える必要があるため、既存システムを考慮しながら検討する部分が多く難しかったです。 一方で、課題が解決できた際のユーザーへの影響が明らかであるため、やりがいを持って業務に取り組めました。

参加目的を果たせたか

とても学びの多い貴重な2週間を過ごすことができました。参加目的のそれぞれの項目に対する学びを記載していきます。

1.企業における研究開発について理解を深める

企業と研究室の研究の大きな違いは、研究結果をどのようにビジネスに応用するか検討する点だと考えました。研究は精度を高いモデルを作ることなどが目的となりますが、企業では、そのモデルをどのように利益やUXの向上に結び付けるか、運用やセキュリティの観点で問題はないかまでを考える必要がありました。そして、そこが難しさであり、やりがいでもあるということを知ることができました。

2.普段の研究以外のタスクへの理解を深める

普段避けていたライブラリや技術に触れることで、新しい発見やより具体性を持った知識を身につけることができました。特に、Encoder-Decoderモデルは知識としては知っているつもりでしたが、自分で実装してみると、理解が不十分な点や見落としていた点に気づくことができ、実際に自分で経験することで知見を深めることができました。

3.企業理解を深める

企業理解についても色々な発見があり、人柄や雰囲気については特に印象的でした。温かい方や他人を尊重している方が多く、安心して作業ができる一方で、勉強会や意見交換などが積極的に行われており、成長環境という部分でも魅力を感じることができました。また、ワークライフバランスなどについても身をもって体験することができ、自分の企業へのイメージに対し確信を持てるようになりました。

最後に

まず、手厚くサポートしてくださった社員の方々にお礼を申し上げます。とても充実した2週間を過ごすことができました。 現場受け入れ型インターンシップは、ドコモや興味のある部署について学べる最適な機会でした。NTTドコモはWILLコースでの募集も行っており、ポスト確約型で入社すると希望のポストで活躍でき、インターンシップで興味を持ったポストへ安心感を持って入社することができます。 就活の際の2週間はとても貴重ですが、それに見合った価値のあるインターンシップだと思います。興味を持った人は、ぜひ参加してみてください。

トレーナーからのコメント

藤田さん、2週間お疲れ様でした!

藤田さんには、インターンシップ用に用意した業務ではなく、私たちが普段行っている業務をそのまま体験していただきました。2週間の内、ほとんどの日程はリモートからの参加という形式で、慣れない環境で大変なこともあったかと思いますが、意欲的に取り組んでいただきました。インターンシップの成果としても、商用エンジンに組み込むことも視野に入る結果が得られており、素晴らしいと思います。

今後の就活や研究において、このインターンシップで得られた学びが役立つことを願っています。