フューチャー技術ブログ

Engineer Camp 2024 参加記:自然言語処理の研究開発で大崎から長崎へ

はじめに

こんにちは。フューチャーのサマーインターン2024 Engineer Campに参加した、羽根田です。

インターンに参加した経緯・実際に取り組んだ内容・学会参加の後日談を、インターン体験記としてまとめます。

概要

ここからは、私のインターン参加記を時系列順にまとめていきます。

私は就活の一環として本インターンに応募し、自身の研究における専門性を活かすために「自然言語処理に関する研究開発」というテーマで参加しました。業務としてはサーベイから実験といった基礎研究に取り組み、最終的にインターンの成果を国内学会で発表することができました。

詳細はそれぞれの章にまとめていきますので、気になるところだけでも読んでいただければと思います。

IMG_7896.jpg

応募から参加まで

大学院修士1年の夏、私はこのインターンに参加しました。

大学院生としての研究生活には少しづつ慣れてきたものの、多くのM1の方と同じように、私もまた迫りくる「就活」の二文字に背中を焼かれているような状況でした。しかし、2年後の春にはどこかの企業で働いているということの想像があまりにもつかず、とにかくこのあたりのイメージを固めたいという気持ちからインターンを探し始めました。

こういった経緯もあり私はEngineer Campだけでなく、様々なインターンに乱れ撃つように応募をしていました。

私の中でのインターン先の条件としては次の2つがありました。

  • 自分の自然言語処理分野へのスキルや興味を活かせること
  • 2週間以上の、ある程度長期間取り組めるものであること

1つ目は私が自然言語処理の研究室に所属しており、せっかくならそこで培ったスキルがどの程度活かせるのか試してみたいという気持ちから。2つ目に関しては、比較的長期間腰を据えて参加できるものの方が自分の今後の成長につながるのではないか、という考えからです。

とはいえこの2つを満たせるインターンはそう多くありません。

さて次はどの企業のインターンに応募しようかと考えていたころ、ふと、春先に参加した言語処理学会にて「フューチャー」という企業がポスター発表をしていたことを思い出しました。この発表が面白かったこともあり、「ITコンサルも言語処理をやっているんだなあ」という意外さとともに私のなかで印象に残っていました。

早速調べてみるとフューチャーのサマーインターン募集ページを発見。

20種類近い、かなり幅広い分野のテーマで実施しており、その中には私の希望する自然言語処理分野のテーマもありました。

大規模言語モデル(LLM)を含む自然言語処理 (NLP) 技術を活用した様々な問題の解決に、メンターとなる社員と共に挑戦していただきます。国際会議を含めた論文出版、特許取得を狙う基礎研究寄りのタスクから、実社会のデータを活用したモデル構築、実際に多くの方に使われるシステム開発まで幅広いプロセスに携わっていただきます。実際に取り組むタスクについてはご本人の希望・適性に応じて相談の上で決定します。

という若干ふわっとした概要に一抹の不安を抱きながらも、とりあえず応募してみることにしました。

インターン本番

無事に選考を通過し、晴れてインターンに参加できることとなりました。

1ヵ月の長期インターンということもあり、不安な気持ちもありましたが、当初の希望通り「自然言語処理に関する研究開発」での参加ということで、かなり前向きな気持ちで臨むことができていました。

ここからは実際の業務内容をメインに、1ヵ月間の具体的な過ごし方をまとめていきたいと思います。

初日

Engineer Campは基本的にはリモートで行われたのですが、顔合わせや手続きのために初日と最終日は大崎のオフィスに出社しました。緊張で目を回しそうな私を、いかにも”TOKYO”といった雰囲気の洒落たエントランスがお出迎え。ここから4週間のインターン生活がスタートしました。

初日はまず全体説明からはじまりました。業務で用いるパソコンのセットアップや業務内容・契約の確認などを済ませているうちにあっという間にお昼休憩の時間となりました。ランチタイムでは自分以外のインターン生や社員の方とも交流しました。

午後はセキュリティ講習から業務再開となり、その後受け入れ先の自然言語処理チームのメンターの方との顔合わせがありました。メンターの方々は温厚な雰囲気で話しやすく、ほっとしたことをよく覚えています。その後、オフィス内の見学やパソコンのセットアップの続きをしているうちにあっという間に終業となりました。

余談ですがオフィス内にはカフェスペースやボルダリングスペース(なぜ?)などがあり、かなり面白かったです。

第1週

1週目は基本的に、今後の活動の方針決めや環境構築などをして過ごしました。

私の参加したテーマは「自然言語処理に関する研究開発」であり、かなり研究寄りの業務でした。そのためまずはメンターの方々から提示された研究アイデアをもとに、この1か月間取り組むテーマを決定しました。

テーマに関しては、基本的には提示されたものの中から選ぶ形でしたが、あくまでインターン生の興味関心が重視されていました。メンターの方と一緒にアイデアを形にしていく感覚が強く、インターンとしては特徴的な進め方だったと思います。

話し合いの結果、私は「LLMを用いた文字数カウント・文字数制御」というテーマに取り組むこととなりました。

第2週

2週目はまず、既存研究のサーベイをすることから始まりました。

私のチームはインターン生1人に対しメインメンターが1人付くという形で業務を進めることになっており、学生とメンターが3組、計6名で構成されていました。基本的にはメインメンターの方と密にやり取りをしつつ、時々チーム全体での報告会をしながら、各々の研究を進めていきます。

そのため毎朝メインメンターの方とミーティングをする機会がありました。朝のミーティングでは、前日の進捗報告→次にやることを決定するというサポートを丁寧にしていただけるため、手が止まってしまうことや何をすればいいかわからなくなってしまうということはほとんどありませんでした。

万が一そうなってしまった場合でも、Slackを通じてメンターの方とはいつでもコミュニケーションが取れるため、すぐに救助を要請することができました。

また、毎日の朝会では、業務の話以外に雑談をすることもありました。雑談は普段のコミュニケーションがより円滑になるだけでなく、社員の方の生の声が聞けるため、就職先選びという文脈においても貴重な話を聞くチャンスでした。

サーベイ結果のまとめ方のフィードバックや、研究のアイデア出しなどをもらいながら、2週目の段階で簡単な予備実験まで進めることができました。

この時期には私もかなりインターン生活に慣れており、大きなトラブルなどもなく、業務を進めることができていました。始業10分前まで布団に入っているほど慣れてしまっていたときもあるほどでした。

第3週

3週目ではいよいよ本格的に実験を進めることになりました。

基本的にはPythonでコードを書き、結果をメンターの方に共有しつつ、次の実験に向けて調整していくという流れで業務が進行していきました。2週目のサーベイからこの週の実験に至るまでは特に「研究」という色が濃かったと思います。個人的には一番熱中して作業に取り組むことができた期間でした。

一方で、ただ実験をしていればよい、というわけではありませんでした。最終週にインターン参加者とメンターの参加する成果発表会が控えていたためです。そのため、インターンの研究として明確にゴールを見据えて作業することが求められていました。

当然、1ヵ月という限られた期間での研究業務であるため、ある程度結果を出しつつ、最終の着地点を調整することは容易でありませんでした。しかしメンターの方と密にやり取りをしながら計画的に作業を進めることができたため、全体を通じて見通し良く作業ができたように思います。

最終週の発表会に向けてスライド作成を始めながら、この週の業務を終えました。

第4週

最終週は発表会への準備とインターンの締め作業とで慌ただしく過ぎていきました。

発表会用のスライドに関しても、メンターの方のフィードバックをもらいながら作業に取り組みました。フューチャーは会社の文化としてプレゼン能力を重視していることもあり、スライド作成についても多くの学びを得ることができました。

発表会当日は他のインターン参加者の発表も聞くことができました。改めてバラエティ豊かなテーマ展開だなと感じつつ、他のインターン生の発表ぶりはかなり良い刺激になりました。

最終日は大崎のオフィスに出社し、振り返りや後片付けなどを行い、私のインターンとしての研究業務は終了となりました。

その他

毎週、通常の業務の他にいくつかイベントもありました。

1つ目は、人事の方との週次面談です。

インターン業務に関する相談をはじめ、就活全般のアドバイスをもらうことができます。やはりプロとは恐ろしいもので、私が進路についてフワフワとしか考えていなかったことは瞬時に見抜かれました。即席の自己分析会が開催され、そこで進路について一緒に考えてもらいました。

2つ目は社員の方による講義です。

スライドの作り方やプレゼンの仕方、プロジェクトの進め方といった講義が開かれました。社員の方ならではの貴重なお話が聞ける機会だったと思います。長期インターンであることに加えリモートでの作業であったため、どうしても慣れすぎてしまうタイミングはありました。ですが、こういったイベントがスパイスのように時折挟まれるため、全体としては業務がダレにくくなっていたように感じました。

1日のスケジュール

  • 10:00~11:00 メインメンターとの朝会
     進捗報告とネクストアクションの決定を行います。
  • 11:00~12:00 午前中の作業
     私の場合は、朝会の振り返りをしながら午後に取り組む作業をより明確に分割して整理したりしていました。
  • 12:00~13:00 お昼休憩
     お昼ご飯です。仮眠を取ったりした日もありました。また、休憩タイミングは任意に選べるので、休憩前の業務時間を長めに取る日もありました。
  • 13:00~18:30 午後の作業
     実験を回したりサーベイをしたりなど、午後は腰を据えて時間のかかる作業に取り組んでいました。
  • 18:30~19:00 整理など
     翌日の朝会に向けて資料や結果をまとめたり、日報を書いたりして過ごしました。勤務時間の申請をして退勤となります。

後日談:アルバイトとしての研究継続~学会まで

さて、ここからはインターンの後のお話をさせていただこうと思います。

インターン終了後、私はアルバイトとして契約し、インターン時のテーマに関して引き続き研究業務に取り組むこととなりました。インターン後にアルバイトとして雇用されることは珍しいケースではなく、私以外にも何人かの方が継続してフューチャーで仕事をしているようです。

アルバイトとしての業務ではインターンの際に取り組んだテーマをさらに深堀りつつ、3月に行われる言語処理学会年次大会での発表を目標に、論文の執筆に取り組みました。インターン期間中にしっかりと方向性を定めた実験ができていたこともあり、比較的スムーズに論文を完成させることができました。

image.png

学会では長崎でポスター発表を行い、インターンから始まった研究をきちんと締めることができたと感じています。

自分がフューチャーの存在を知ることになった学会発表を、今度は自分がフューチャーの一員として行うことができたというのも感慨深いものがありました。

インターンを通して

就職のイメージ固め、という理由から始まった私のインターン生活ですが、こうして振り返ってみると、とても多くのものを得られたように感じます。

まず普段の研究とは少し違ったコミュニケーションのスキルを学ぶことができました。メンターの方との認識の齟齬が生じないような伝え方の工夫や、非同期テキストコミュニケーションを効率的に活用することなど、適切な情報伝達の重要性を感じました。

また、個人的には「制限時間」の存在が作業の進め方に見通しを持たせてくれたとも感じています。

今回のインターンは1ヵ月という制限時間の中で結果をまとめる必要がありました。もちろん毎日の業務も規定された勤務時間内に行う必要があります。この制限時間によって、1ヵ月なら最終的なゴールはここにして…なら今週中にここまで進めたいから…それなら今日はここまで…と逆算して計画を立てるクセをつけられたと感じています。

他にもサーベイ→実験→まとめのサイクルといった研究的なスキルや、インターン生の友人やメンターの方といった人とのつながりなど、多くのものを得ることができました。

改めて全体を通して大きく成長できた期間だったと思います。

さいごに

今回は私が参加したフューチャーのEngineer Campについて、実際の業務内容や参加者としての感想などをまとめてみました。

改めて、今回受け入れていただいたメンターの皆さん、大変お世話になりました。

最後にこの記事がインターン先を考えている方にとって少しでも参考になるところがあれば嬉しく思います。

ここまで読んでいただき、ありがとうございました。