🤖

私の2023年を振り返る🔍

2023/12/31に公開

はじめに

この記事は著者の 2023 年の活動を振り返って、その年の技術的なトピックだったり自分の活動履歴等を振り返るための備忘録です。(昨年も振り返りしています)

自己紹介

  • ゲーム業界に身を置くサーバーサイドエンジニア
    • Kotlin/Go/PHP
  • サービス開発が大好きで趣味
  • 作るものに合わせて技術を学ぶスタイル
  • SNS が大好きで X (Twitter) クライアントを作っていた

今年の活動

X ➤ Bluesky

X (Twitter) の API が使えなくなったのが今年初めの出来事 で、Twitter クライアントを作っていた私にとってはかなり心苦しい年のスタートでした。とはいえ、かねてから度々言われていたことでもあり、覚悟はできていたので実際に使えなくなったときは、静かに眠れと祈るような落ち着いた気持ちでした。とはいえ、思うことがなかった訳ではなく、その課程についてはとても誠実とは程遠い内容だったので、かなり憤慨した覚えはあります。

https://note.com/uakihir0/n/n3fccb85c41e4

自分の今年のメインの活動はなんといっても Bluesky だったと思います。 Bluesky は X の移行先として有力候補の一つに上げられている Social Media の一つで、SNS 大好きマンの自分としては当然興味の対象で、日本勢の中でもかなり速い参戦だったと思います。Bluesky の良い点はなんといってもオープンソースで開発が進められている点や、開発体制がしっかりしている点、で個人の遊び場として完全に終了してしまった X から移行する形で、様々なエンジニアが色々なツール等を作成しています。自分も Bluesky を Java で操作することができる [bsky4j] や、それを用いて SNS を透過的に扱うことができる SocialHub に Bluesky 対応を組み込んだりなどを行いました。

Zenn 上では Bluesky がエンジニアにとってこんなに楽しい場所なんですよ、ということを伝えるために記事を書いたりもしました。Bluesky でエンジニアの皆さんに出会えることを楽しみにしています。(今も Bluesky は招待制ですが、気になる方は X のアカウントにリプか DM を投げて貰えれば招待コードを渡せると思います。自分は X と Bluesky をメインの SNS に据えて活動しています)

https://zenn.dev/uakihir0/articles/230603-socialhub-bluesky

AI

今年は生成 AI 元年と言って過言ではない程に、生成 AI が盛り上がった一年だったと思います。 AI については専門ではないが興味はかなり強く、年末の AWS re:Invent 等で発表された生成 AI セッションを聞きまくったりなど、世間的な技術トレンドに必死に追っていった一年でもありました。

イラスト生成

去年から引き続きイラスト生成は進化を続けていて、今年のメイントピックは Stable Diffusion XL (以下 SDXL) と、LCM Lora - 記事 の登場だと思います。ざっくり紹介すると、SDXL はより高精細・高精度に生成イラストを生成できるようになる仕組みで、LCM Lora はその生成を劇的に高速化する仕組みです。それによって、年末にはリアルタイムイラスト生成という新たな道も見えてきており、更に様々な分野での使用が期待できます。また、イラスト生成サービスの一つである Nijijourney 進化は凄まじく、イラストのパターンにやや限界は感じるものの、一つ頭飛び抜けたクオリティーでイラストを生成することが可能で、現在も愛用しているユーザーは少なくありません。

https://note.com/uakihir0/n/n4bee03c8ee5f

大規模言語モデル

イラスト生成もさることながら、今年のメイントピックといえば、ChatGPT を代表する大規模言語モデル (以下 LLM) とその活用 だと思います。とはいえ、自分はあまりサーバー API を用いた大規模言語モデルには興味があまりなく、多く語ることはないです。理由は簡単で個人でサービスを作ろうと思うと持続不可能なレベルでのコストがかかるからです。(年末にかけて Google が Gemini を期間限定無料で API を公開したりなどと、価格競争が行われそうな気配があるので気にはなってる) なので、エッジ (オンデバイス) での LLM 動作についてその可能性を模索していました。 実際にパラメーター数が少ない LLM の場合は iPhone で動作させることが可能であり、自分は実際に LINE の LLM を手元の端末で動作させることに成功しました。

https://zenn.dev/uakihir0/articles/231014-line-llm-on-iphone

とはいえ、この実験は本当に実験の枠を出ておらず、かなり応答が怪しく実用に耐えられるレベルではないように思いました。(ちゃんとプロンプトで結果を誘導させて上げられれば、有名な英語モデルについてはギリギリ実用できるかもしれない) iPhone にモデルを載せて動作させる都合上、RAM が足りないためモデルの量子化をしなければならず、そこでどうしても性能劣化が起こってしまいます。もちろんエッジ端末で LLM を動作させたいのは自分だけではなく、Apple や Google などスマートフォン向けの OS を作っている IT 企業は当たり前のように研究を進めており、この年末に幾つか成果が報告されています。恐らく来年以降はこのエッジ AI は大きなトピックになると思います。

https://japan.googleblog.com/2023/12/feature-drop-december-2023.html

Kotlin Multiplatform

Kotlin Multiplatform (以下 KMP) が今年の 11 月に安定版になり本番対応が正式にできるようになりました。 KMP は Kotlin を使って様々なプラットフォーム向けに動くものを作ることができるフレームワークで、非常に精力的に更新が行われています。自分は似たような技術として、J2ObjC を用いて Java のコードを Objective-C にトランスパイルして iOS アプリで使用していましたが、かなり運用に限界を感じており、この KMP は安定版になったこともあり乗り換えることを決意しました。

https://blog.jetbrains.com/ja/kotlin/2023/11/kotlin-multiplatform-stable/

実際にこの年末にかけて、iOS アプリ SocialHub で使用していた Java ライブラリを徐々に Kotlin に置き換えています。Java を Kotlin に置き換える場合、intelliJ の機能を使えばある程度簡単に変換は可能なのですが、Kotlin Multiplatform を使用する場合、Java の標準ライブラリやそれを用いたライブラリを使用することができません。 そのため、標準ライブラリ相当

ブログ記事

https://www.uakihir0.com/blog/

個人的に影響を受けたエンタメなどについては、その熱量を忘れないために記録を残すべき と自分の中で去年判断し初めた。ぶっちゃけかなり書くのに時間を要する場合が殆どで、映画の場合、映画見てる時間よりもブログ書く時間の方が長かったりする。自分自身、インプットは大切だと常々思っていて、良いモノは良いモノを理解している人間からしか生まれない と本気で思っているので、ブログを書く時間はこれはなぜ良いのか? みないなのを深掘りしていくような感覚になれてとても有意義だったと思っている。記事があまり書けなかったのも一個の反省。来年からはもう少し記事を書くことを意識して、インプットを大切にしていこうと思う。

コミケ初参加

https://twitter.com/uakihir0/status/1740903819226321202

今年初めに、知り合いと食事をした際に、その仲間内でコミケでも出てみたいね! という話をしてどうせ通らないんだし試しに応募してみようぜ! となって初めたコミケ参加。参加が通って慌てふためき参加した初めての夏コミは、音楽 DTM サークルのデザイン担当として、CD ジャケット等のデザインを行いました。人生も折り返しみたいな時期にコミケ初参加というのは少し恥ずかしいのですが、熱量渦巻くコミケというものに触れて改めて日本のサブカルの素晴らしさや、そこに関わっていきたいという気持ちが湧きました。昨日も同様に冬コミに参加し、その際はイラスト本加えて頒布したのですが、夏よりも多くの人にブースに来ていただくことができて、非常に嬉しい気持ちになりました。

2024 年の目標

自分が取り組んでいるプロジェクトに SocialHub (Library) という、様々な SNS を透過的に操作できる Social Media ライブラリが存在するのですが、それを Kotlin Multiplatform に置き換えるプロジェクトがこの Planetlink になります。この書き換えは一筋縄ではいかない非常に大変な作業になると思いますが、既に SocialHub (Library)で使用している先程紹介した [bsky4j] の移植である [kbsky] がある程度動くようになってきており、進み具合としては順調なんじゃないかと思います。 SocialHub (Library)は J2ObjC 対応のため癖があり、あまり他の人に使われるライブラリではなかったのですが、Planetlink では色んな人に使ってもらえうようなライブラリを目指したいと思っています。

おわりに

正直 X で流れてくるエンジニア振り返り記事見ていると、自分は年を食っているだけの残念野郎だなと感じる時が多く、もっと頑張らないと感じるばかりです。来年は非常に様々な事が控えていて、見えているだけでも凄く公私共に忙しそうな気配が既に漂っていて、今のうちから体力を付けておかないと危機感を覚えています。毎年同じ締めになりますが、 今年も様々なエンジニアさんのアウトプットに支えられてエンジニア活動が出来たと感じています。 本当にありがとうございます。

Discussion