はじめに
初めまして!京都大学理学部3年の田本と申します。
去年の5月にプログラミングを学び始め、そろそろ1年が経とうとしています。
これまでの総括と自己紹介を兼ねて、プログラミングを1年間本気で学んでできたことをここでアウトプットしていこうと思います。
この記事を読んで、プログラミングに少しでも興味を持つ人が増えれば幸いです。
きっかけ
僕は大学2年までは決して優秀な学生とは言えませんでした。
大学へは平均週2コマ程度しか出席せず、期末テストのみ受けて取れる単位を取り、それ以外の時間はほとんどゲームに費やしていました。
そんな中、ゲームで知り合った元エンジニア・経営者の溝口さんという方に「プログラミングやってみない?」とTwitterのDMで誘われたことがきっかけで、プログラミングを勉強することになります。
溝口さんは以前にもいくつか会社を経営しており、簡単に言うと20代で10億稼いだめちゃくちゃすごい人です。
彼からは技術だけでなく、人間的に成長するために必要なことを沢山教わりました。今の僕がいるのは彼のおかげです。
さて、当時は時間に余裕があり、プログラミングにも興味があったため、生活のほとんどの時間をプログラミングの勉強に費やすようになりました。
初めはスクレイピングを学んだり、大学のポータルサイトのAPIとLINEのMessagingAPIを組み合わせて課題を通知してくれるLINEbotを作ったりと、自分の興味の赴くままに色々なものを作っていました。
ここで溝口さんが興味を伸ばす方針をとってくれたおかげで、僕はさらにプログラミングにのめり込むようになります。
起業
そうこうしているうちに、溝口さんの知り合いや、僕の知り合い数人なども集めて「鉄血会」という小さい勉強コミュニティができました。名前が渋いですね。
僕の知り合いの一人は大学同期の南という男で、彼は僕が声をかける前から数学系のYoutubeチャンネルを自分で始めていて、すでに月100万円程度を稼いでいました。すごい男です。
もう一人は高校同期の辻野という男で、彼は浪人時代の戦友です。辻野は東大工学部に進学し、学科で成績トップ、五月祭でリーダーとしてクラスを優勝に導いていました。めちゃくちゃ賢いです。
また、南の高校同期で名古屋大学工学部の政岡という男もメンバーに加わりました。後述するサービス「ChuChu」の宣伝用TikTok動画では、彼が撮影した動画は最大で300万再生を超え、ChuChuの拡大に大きく貢献しました。イケメンで行動力あるって最強ですね。
ここには書ききれませんが、その他にもすごい方々が加わり、組織が大きくなっていくことにワクワクしたことを覚えています。
その後法人登録をして、共同創業者として株式会社KYOLABを立ち上げました。
初めてのプロダクト「ChuChu」リリース
先述したメンバーなどを集めて、東京の西日暮里で共同生活をし、集中的にプロダクトを開発するようになりました。
そして、初めてのプロダクトとなるStableDiffusionを用いて自撮りを加工するLINEアプリChuChuをリリースしました。
ChuChuはリリースから1日でユーザー5000人を突破し、破竹の勢いで伸びていきました。
当初はサーバーの負荷などが半端なくて、溝口さんの知り合いの北島さんというエンジニアの方に協力していただきながら、なんとかサービスを維持していました。
また、この頃から溝口さん繋がりでpixiv創業者の片桐さんにも協力していただけることになりました。
片桐さんは当たり前に凄すぎる人で関われるだけでも奇跡のような存在なのですが、非常に多くのことを学びました。めちゃくちゃ尊敬しています。
ChuChuユーザー10万人突破
ChuChuは順調に伸び、さらなる飛躍を目指して試行錯誤します。
この頃から宣伝用のTikTok動画の作成をはじめました。
日本一のサウナメディアを運営している、SNSマーケティングのプロフェッショナルである吉田さんの協力もあり、TikTok動画もめちゃくちゃバズりました。彼の手腕は本物です。
そして、2023年10月に遂にChuChuのユーザーが10万人を突破しました。
この規模のサービスを運営するには多くの知見が必要で、技術的にも大きく成長することができました。
初めての論文
同じ時期に、仕事で知り合った明治大学 宮下研究室の彭(ほう)さんという方に共同研究で論文を書くお誘いをいただき、「LLMベースのエージェントに人間の記憶プロセスを模倣したシステムを実装する」というコンセプトの研究をスタートしました。
彭さんは学部時代から多くの研究成果を挙げていて、研究や実装のことなど多くのことを教わりました。あとめちゃくちゃ可愛いです。
論文なんて今まで書いたことがなかったのですが、ここで研究についても学ぶことが出来たのは幸運でした。
初めての論文はWISS 2023という学会で発表し、これも非常にいい経験になりました。
論文がACMトップカンファレンスCHIに採択
先述した研究の続きとして、アーキテクチャを進化させ、実験結果なども追加した内容の論文をCHIという学会に投稿しました。
arXiv版の論文をこちらに掲載しています。
CHIはACM系のトップカンファレンスで、HCI分野のトップ研究者が世界中から集まるすごい学会です。
自分にとっては2本目の論文で、こんなすごい学会に通るものなのかと思っていましたが、査読の結果、5点満点中4点という想像よりも高すぎる評価をいただいて採択されました。
これは彭さんが今まで培ってきた論文作成の技術や研究力のおかげだと思っています。
僕たちは5/15のLBWでLLM分野のセッションで発表します。周りの発表者を見るとGoogleをはじめとした大企業やStanford, Harverdなどの世界トップ大学が大半を占めており、今から楽しみで仕方ありません。
オープンソースプロジェクト「FaceFusion」の開発メンバーに参加
2024年の年始あたりからDeepFakeの分野に興味を持ち、この分野で最も有名なオープンソースプロジェクトであるFaceFusionの実装を見て、自分でAPI機能を実装したりしていました。
実装を読んでいるうちに、顔検出モデルの精度が十分でないことに気付きました。そこで、YOLOv8という高性能なモデルをFaceFusionに実装し、それをDiscordのコミュニティに投稿してみました。
すると、作者のhenryからYOLOv8の実装をコミットしてくれないかという返信があり、ここで初めてOSSにコントリビュートすることになりました。
彼の的確なコードレビューのおかげで、「綺麗なコードを書く」とはどういうことかを学ぶことができました。
その後、開発者メンバーに加わってほしいとの打診を受け、developerとしてしばらく活動することとなりました。
オープンソースプロジェクト「Mimix」リリース
先述したFaceFusionの実装を理解するうちに、これを自分でも作ってみたいと思い、オブジェクト指向で書いたプロジェクトMimixをリリースしました。
現状ではFaceFusionと機能的にはさほど変わらず、最適化して速度を上げた程度ですが、これから独自のモデルを作成してどんどんアップデートしていきたいと思っています。
余談ですが、DeepFakeの実装についてまとめた記事を執筆しましたのでチェックしてみてください。
プログラミング勉強コミュニティ「CodeNest」設立
これはとても最近のことなのですが、ゼロからプログラミングを勉強するコミュニティCodeNestを設立しました。
僕自身がプログラミングで人生が変わった経験から、プログラミングをもっと色々な人に広げたいという思いでこのコミュニティを作りました。
プログラミングに興味があっても独学だと勉強の仕方が分からなかったり、一緒に勉強する仲間がいないとモチベーションの維持が難しかったりすると思います。
そういった人たち向けに、最短でweb開発ができるロードマップを作成し、細かくアウトプットをしてもらうことでモチベーションの維持をして確実にコードが書けるように育成するのが目標です。
まだ設立から5日ほどしか経っていませんが、既にLINEbotを作れるようになった人も数人出てきています。
もし興味があればぜひ参加してみてください。
これからやりたいこと
まず鉄血会としてChuChuを超える次なるプロダクトを作りたいです。これは現在開発中ですが、必ず成功させてみせます。
個人レベルでは、DeepFakeの分野で世界初のアジア人に特化したモデルを作ることが目標です。現状でもSDを組み合わせた独自の手法でかなりの精度を出すことに成功していますが、生成に時間がかかるのでここをどうやって改善していくかが鍵です。
また、研究の方では既にCHIに投稿した論文の続きを書いています。こちらも前回よりも遥かに進化した理論を構築していて、次は機械学習分野のトップカンファレンスに採択されることを目標としています。
CodeNestの方もこれからどんどん人を入れていって、大きなコミュニティを作りたいと思っています。
おわりに
僕にとってこの1年間は間違いなく人生で最も濃く、成長した1年だったと思います。
ここまでの経験ができたのは、溝口さんをはじめとした様々な方との関わりや、僕の活動を理解し、応援してくれた家族のおかげです。
全ての人々に感謝し、次の1年はさらに飛躍したものにします。
ここまで読んでくださってありがとうございました!