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

インターンシップ体験記:LLMを用いた行動予測シミュレーション

こんにちは!NTTドコモ R&D戦略部の青栁です。
普段の業務では、ドコモデータやLLM(大規模言語モデル)を活用したマーケティング技術の研究開発をしています。

弊社では、2025/8/25 ~ 9/5に現場受け入れ型インターンシップを実施しました。

私が所属するチームでは2名の学生さんを受け入れ、トレーナーとして約2週間サポートさせて頂きました。

↓ポストの詳細はこちら information.nttdocomo-fresh.jp

今回は、インターンシップに参加された竹内さんと吹田さんにそれぞれ体験記を書いて頂いたのでご紹介したいと思います。

この記事の主な想定読者(1つでも当てはまった方はぜひご覧ください!)

  • 現在就活中で、ドコモへの就職やインターンシップ参加を検討している方
  • データサイエンティストやAIエンジニアとしてのキャリアを希望している方
  • LLMã‚„GRPOといった最先端技術のビジネス応用事例に興味がある方

竹内さん

🚀 インターン参加目的

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

① 大学と企業の研究開発の違いを学ぶ

大学では比較的小規模なデータを用いたLLMの研究を行っており、研究開発の業務に携わりたいと考えていました。しかし大学と企業の研究開発では大きな違いがあり、大学の研究では理論的な正しさや新規性が重視されますが、企業では「実際に使える」ことが最も重要だと聞いておりました。そこで研究成果をどのように実用化し、お客様に価値を提供するサービスに変換するのかを実際の現場で習得したいと思い、インターンシップへと応募しました。

② 社風や人柄を知る

技術的な学びだけでなく、NTTドコモという日本を代表する通信企業がどのような雰囲気で、どのような人々が働いているのかを知りたいとも考えていました。大学の研究室とは異なる企業の開発チームでは、どのようにコミュニケーションを取り、プロジェクトを進めているのか、実際に社員の方々と一緒に働くことで体感することを楽しみにしていました。

💻 業務体験の概要

背景

近年、市場の多様化と変化の加速により、迅速かつ正確な顧客理解に基づいたマーケティング戦略の重要性が増しています。しかし、従来の市場調査(アンケート、インタビュー等)やABテストは、多大な時間とコストを要するという課題を抱えています。

そこで、匿名、統計化された企業固有データを基にLLMを学習させ、多様な仮想のユーザモデルを生成することを試みます。このユーザモデルに対し、市場調査をシミュレーション上で実施可能にすることで、調査プロセスの抜本的な高速化と低コスト化を実現し、企業の迅速な意思決定を支援することを目的とします。

今回の業務体験では、実際のドコモ固有情報の分布を再現した擬似データを使用し、あるサービスをユーザが利用するかの予測とその理由を出力させるLLMモデルの構築に取り組みました。

GRPO(Group Relative Policy Optimization)

本研究では、ユーザモデルの回答を再現するLLMのチューニング手法としてGRPOを採用しました。

GRPOは、中国発のLLM「DeepSeek-R1」 で有名になった強化学習手法の一種であり、従来手法のPPOと比較して効率的に学習ができ、数学問題や推論タスクで高い回答精度が得られている手法です。

arxiv.org

LLMの強化学習では、報酬関数を定義し、正しい回答に報酬を与えて学習しますが、本研究のタスクにおいては、生成されるユーザモデルに「よりそれらしい」「より設定に忠実な」といった微妙なニュアンスが求められます。 GRPOを用いることで、複数の回答の中からより優れたものを学習させ、よりリアルで多様なユーザモデルを生成する能力の獲得を目指します。

業務内容

本研究の第一段階として、まずは準備したデータをもとに、GRPOを用いてベースとなるLLMのチューニングを実施しました。

しかし、このモデルによる生成結果を評価したところ、一貫性のある応答を生成できず、推論プロセスに論理的な破綻が見られるケースが多数確認されました。さらに、応答の精度を評価するF1スコアを測定した結果、チューニング前のベースモデルの数値を下回るという性能の低下が認められました。これは、GRPOが特定の応答パターンを学習する一方で、モデルが本来持つ汎用的な推論能力を損なってしまったことが原因と考えられます。

上記の課題を解決するため、次はモデルの報酬関数に「LLM-as-a-Judge」 の手法を採用しました。これは、別の高性能なLLMを「評価者(Judge)」として利用し、生成された応答が論理的に正しいか、一貫性があるか、指示に忠実かといった複数の基準で評価・フィードバックを行う仕組みです。

具体的には、チューニング対象のモデルが生成した応答を評価者LLMが採点し、そのフィードバックを基にモデルの学習を進めました。このプロセスを繰り返すことで、単に正解データに近づけるだけでなく、応答の品質(論理性、一貫性など)そのものを向上させることを目指しました。

上記の方法で再度チューニングを行った結果、モデルの性能は大幅に改善しました。生成される応答は、初期実験で見られた論理的な破綻がなくなり、文脈に沿った一貫性のある出力となりました。

また、性能評価指標であるF1スコアも顕著に向上し、GRPO適用後のスコアだけでなく、チューニング前のベースモデルのスコアをも上回る結果が得られました。このことから、ユーザモデル生成のような複雑なタスクにおいては、LLM-as-a-Judgeによるフィードバックが極めて有効であることが示唆されました。

✨ 感想

今回のインターンシップでは、参加前からの目標であった「大学と企業における研究開発の違い」を、実践の場を通して明確に理解することができました。また、業務に携わる中で、NTTドコモ様の先進的な社風や、温かくご指導くださる社員の皆様の人柄に直に触れることができ、大変魅力的に感じました。

実際の業務体験では、理論で学んだ知識を実践的な課題に応用する面白さと難しさの両方を痛感しました。特に、大規模なデータを適切に処理しLLMが解釈できる形に変換する工程には多くの試行錯誤がありましたが、その分、モデルの精度が向上した時の喜びは格別でした。

また、強く印象に残っていることとして、メンターをはじめとする社員の方々の技術力の高さと私たち学生に真摯に向き合ってくださる姿勢があります。技術的な壁にぶつかった際には的確なアドバイスをくださり、チーム一丸となって課題解決に取り組む文化を体験できたことは、私にとって大きな財産となりました。この貴重な経験を、今後の研究活動やキャリアにしっかりと活かしていきたいと思います。

最後に、2週間のインターンシップ期間中、温かく、そして熱心にご指導くださった社員の皆様に、心より感謝申し上げます。皆様の手厚いサポートのおかげで、一日一日が学びと発見の連続であり、非常に充実した時間を過ごすことができました。


吹田さん

🚀 インターン参加目的

大学では、LLMを活用した対話システムの研究に取り組んでいます。LLMは非常に強力なツールですが、その一方で、生成する応答に意図しないバイアスや不適切な内容が含まれてしまうという課題があります。研究を進めるほど、この「LLMにおける出力の制御」という根深い問題の重要性を痛感していました。 この課題への解決策を模索する中で、LLMの社会実装に向けて、特にバイアス制御の研究開発に先進的に取り組むドコモのポストがあることを知りました。LLMの出力の制御に課題意識を持っていた私にとって、まさに絶好の機会でした。また、実際の業務において、これまで自身が研究で培ってきたデータ分析のスキルを武器に、実社会のデータと向き合えるのか挑戦したいという思いもあり、本インターンシップに参加したいと考えました。

💻 業務体験の概要

私も竹内さんと同様、あるサービスのユーザ利用予測を行うLLMモデルの精度向上を目指し、強化学習アルゴリズム「GRPO」と、機械学習の代表的なアルゴリズムである「ランダムフォレスト」の比較検証を行いました。双方のアルゴリズムに対してチューニングを行い、精度を高めることを目標に、業務に取り組みました。その過程で直面した「データの不均衡」という課題と、それを乗り越える試行錯誤の道のりを簡単にご紹介します。

1. 初期モデルの評価と課題の発見

まず、ベースラインを把握するために、GRPOとランダムフォレストそれぞれでモデルを構築し、正解率(Accuracy)を測定しました。すると、両モデルとも一見すると高い精度を示しており、順調な滑り出しに見えました。しかし、結果を詳しく分析すると、その数値が「データの不均衡」に起因する見せかけの高さであることに気がつきました。これは、モデルがデータの大半を占める多数派のクラスを予測するだけで、高い正解率を達成してしまっている状態でした。

2. ランダムフォレスト改善へのアプローチ

この課題を解決するため、まずはランダムフォレストの改善から着手しました。不均衡データを扱う際の定石である、クラスの重み付けや様々なサンプリング手法(オーバーサンプリング、アンダーサンプリングなど)を次々と試しましたが、満足のいく結果には至りませんでした。

試行錯誤の末、私たちは評価指標そのものに着目しました。予測の閾値を、正解率(Accuracy)ではなくF1スコアが最大となるように動的に調整する処理を組み込んだところ、モデルは少数派のクラスを的確に捉えられるようになり、ついに実用的な精度を達成することができました。

3. GRPO改善への挑戦

GRPOの改善は、一緒に業務に取り組んでいた竹内さんと共に進めました。私たちは、モデルの挙動を左右する報酬関数の設計や、プロンプトで与える変数の調整、入力データの前処理など、考えうるあらゆる改善策を議論しながら試しました。

その中で、学習の際の評価尺度を「利用する」「利用しない」の2段階ではなく、よりグラデーションをつけた7段階で学習させたところ、LLMの出力が改善することが確認できました。

✨ 感想

この2週間、自分の興味関心がある技術に対して試行錯誤を繰り返し、自分で解決できない課題に対しては社員の方々が親身にアドバイスをくださるという非常に恵まれた環境で過ごすことができました。

今回のインターンシップで得た特に大きな収穫は、2つあります。

一つは、普段の研究では決して触れることのできない、事業レベルの膨大なデータを扱えたことです。その規模の大きさはもちろん、収集しているデータの種類・内容を知ることができたことも新たな発見や学びにつながる貴重な経験になりました。

もう一つは、ビジネスの最前線で活躍されている専門性を持った社員の方々から、多くのアドバイスを直接いただけたことです。理論や知識だけでなく、課題へ取り組む際に必要な思考を始めとした実践的な視点は、社会人として働く前から役立つ視点であり、大きな学びとなりました。

この貴重な機会を通じて、データ分析・LLMのチューニングの面白さと、それが社会に与える価値の大きさを改めて知ることができました。この経験を糧に、今後さらに学びを深めていきたいと思います。本当にありがとうございました。


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

竹内さん、吹田さん、2週間お疲れ様でした!

今回お2人には、仮想ユーザモデルを生成するためのLLMチューニングという、私たちが普段行っている業務レベルのテーマに取り組んでいただきました。難しいテーマにも関わらず、粘り強く仮説検証を繰り返し、課題を徐々に克服していく姿は非常に素晴らしかったです!

ドコモのインターンシップの魅力は、1億規模の会員基盤データを含む大規模なアセットを使い、最先端かつリアルな社会課題に挑めることです。

  • 企業レベルのビッグデータを活用したチャレンジがしたい
  • 最新技術を取り入れたサービスを開発し、社会実装まで行いたい
  • エンジニアとしての自らの可能性を試したい

など、熱い想いを持つ方からのご応募を、心よりお待ちしています!

information.nttdocomo-fresh.jp