こんにちは、てつすけです!8月中旬から12月末の間、株式会社クリエーションラインにて長期インターンシップに参加させていただいています。
本記事では、長期インターンシップを通じて学んだことや感じたことを書いていきます。
クリエーションラインについて
株式会社クリエーションラインは、「IT技術によるイノベーションにより顧客と共に社会の進化を実現する」をビジョンに掲げている会社です。より詳しく説明されている記事があるので気になった方は見てください。
インターンに参加した理由
学生コミュニティでのチーム開発や、システム開発のアルバイトを通じて、フィードバックをもらえる環境で実務経験を積みたいと強く思うようになりました。
そんな中、在学中の高専の先生に相談したところ、「教え子にアジャイル開発の会社でCTOを務めている 荒井康宏さん という方がいる」と教えていただき、そのご縁でクリエーションラインを知ることになりました。
はじめは、Web開発に携わるつもりで応募しましたが、カジュアル面談の中で生成AIの研究開発に参加できると伺い、このチャンスを逃すわけにはいかないと感じ、インターンシップに参加することを決めました。
生成AIについて理解を深める
ChatGPTやGitHub Copilotを使ったことはありましたが、生成AIについてあまりは知りませんでした。
SITUATIONAL AWARENESS
これまでとこれからのAIについて理解を深めるために、OpenAIの元研究者Leopold Aschenbrenner氏が書いたエッセイを読み、その要約から始めました。
このエッセイを通じて、スケール則によってLLMが賢くなったこと、エージェントとして活用するために必要な要素、そしてLLMのこれからの発展について大まかに学ぶことができました。
ただ、読み進める中で書いてある内容をそのまま鵜呑みせず、自分なりの視点を持つことの重要性を改めて感じました。
Dify.AIでLLMの基本に触れる
ノーコードでチャットボットやコンテンツ生成ができるDifyを使用して、検索ワークフローやTwitter投稿の要約ワークフローを作成するこで、LLMの基本に触れました。
ノーコードで実装できることから学習コストが低く、LLM入門としては良いサービスだと感じました。しかし、複雑な処理を実装するのが難しいため、慣れてくるとコードで実装したいと思うようになりました。
最前線で実践
インターンシップというと、自社プロダクトや社内システムの開発をイメージしがちですが、今回は顧客先の新規プロジェクトに参加させていただき、とても印象に残りました。お客様に近い場所で実務を経験できたことは、貴重な学びになりました。
新たに学んだ技術
LangGraph (+ LangChain)
ワークフロー形式とエージェント形式どちらとも実装する必要があったので、LangGraphを利用しました。ステートマシンを用いて構築できるため、構造を理解しやすいと感じました。
LangFuse
プロンプトのバージョン管理や、トレースを管理できるOSSのLLM Engineering Platformです。LangFuseを使うことで、LLMアプリケーションには欠かせない機能の実装工数を減らすことができました。
AI駆動開発 (AI-Driven Development)
VS CodeにAIを組み込んだCursorや、プロトタイピングツールのBolt.newを、積極的に利用して開発工数を減らしました。
Cursor Composer
Cursor Proプランを契約して、APIにAnthropic Claude 3.5 Sonnetを利用しました。
実際にCursor ComposerとGitHub Copilot Editsを試したところ、現時点ではCursor Composerの方が開発者体験において優れていると感じました。その理由は、Cursor Composerは、既存のReactコンポーネントを明示的にコンテキストに入れなくても、コードベース全体を把握して再利用していたからです。
Bolt.new
StackBlitz社が提供するサービスで、 AIエージェントと共に、ブラウザから直接フルスタックアプリケーションを構築・デプロイができます。自然言語でイメージしたUI/UXをすぐに構築できる点が、Bolt.newの強みだと感じます。
Bolt.newでUI/UXを作成した後は、Cursorを活用してバックエンドの実装やリファクタリングを行い、仕上げていきました。
早い段階でお客様に動くものを見せることで、認識ズレを解消できるため、Bolt.newは非常に役立ちました。
この画面は、Bolt.newのトライアルとして20分ほどで作成した勤怠管理アプリです。
(本プロジェクトとは関係ありません。)
インターンシップのサポート体制
定例ミーティングやCTO、人事の方との1on1など、充実したサポート体制が整っていました。
初めての経験も多く、当初はプレッシャーを感じることもありましたが、1on1で相談しながら現状を整理することで、気持ちがかなり楽になりました。
意識したこと
限られた時間を有効に活用するために、WeeklyとDailyの目標設定を意識して取り組みました。
それぞれの目標を設定することで、タスクの優先順位を明確にし、モチベーションを高く維持することができました。
おわりに
クリエーションラインの長期インターンシップに参加して、非常に貴重な体験を得ることができました!
コンフォートゾーンを抜け出すのは大変ですが、その分、大きく成長できたと感じています!