生成AI・LLMによる影響とITエンジニアに今、そして今後求められること

# 1.はじめに
この記事はNTTテクノクロス Advent Calendar 2024 シリーズ2の6日目の記事です。

こんにちは、NTTテクノクロス 山口です。
普段はネットワーク関連システム関連の業務を行っていますが、最近は生成AI、特にLLM(大規模言語モデル)に関する業務にも携わっています。
当社にはChatTXと呼ばれるLLM活用基盤があり、普段の業務でも活用できる他、私自身の業務ではモデルの評価、RAGの活用、ファインチューニング等を行っています。

:::note info
**<ins>[参考]</ins>**
- **ChatTX**とは：https://www.ntt-tx.co.jp/whatsnew/2024/241008.html
- **RAG**とは：LLMモデルに質問する前に外部から必要な情報を取得し、回答精度を高める手法
- **ファインチューニング**とは：モデルに対し、目的に応じたデータを与えて再訓練を実施し、目的のタスクの精度向上を目指す手法
:::

これらの経験を経て感じる事、ITエンジニアは今後どのようなスキルが重視されるのか思ったことを書いていきたいと思います。
なお、LLMの精度はモデルによってかわりますので、以降で触れるLLMのモデルはOpenAI社のGPT-4oといった高い精度を持つものとお考え下さい。

# 2.LLMによる影響
LLMにはハルシネーション（誤回答）や学習・利用にコストがかかる点等、課題もありますが、（望む・望まないに限らず）ITエンジニアの業務が生成AI・LLMの影響を受ける事は確実である、と言う点はまず言える事でしょう。
生成AIサービスを使ったことがある方などは強く感じるところなのではないでしょうか。
これは、まるで人と会話しているような高い精度を出せる点もありますが、従来の業務特化AIと比較し、「聞きたい事を自由に聞ける」柔軟性・広範囲のタスクへの適用可能性がある事、また「なぜそう判断したのか」もあわせて回答させることや聞き返しで「説明可能性」や「AIと活用者の双方向のやり取り」が可能である点も大きい要因と考えます。

誰しもやったことがないものに挑戦する際は「新人」スタートですが、代表的なモデルであれば聞きたい分野で新人以上の回答をしてくれます。
最近ではKaggleのようなエンジニア向けイベントでも、機械学習初心者がLLMを活用する事で成果を出す事ができた、という例も増えてきています。

:::note info
**<ins>[参考]</ins>**
[Geminiを使ったらKaggle初挑戦、参加期間10日間でも5位入賞できたので手法をすべて書く](https://qiita.com/yukky_memo/items/6e1c7fa08b9b91278886)
:::

また、込み入った内容となると誤回答をしてしまう点は人間も同じであり、最もコストがかかるのが人の労務費という点を鑑みるとLLMを活用することで生産性が向上するのであれば結果OKと考える企業も多いでしょう。

このようにAIとの共存はもはや確定事項と言えるかと思います。

# 3.今、そして今後ITエンジニアに求められること
前置きが長くなりましたが、ではこのような状況で今、また今後にITエンジニアに求められることはなんでしょうか。
最も重要なのは「AIとの共存に慣れ、活用術を身につける」事と考えます。
その上で「ヒューマンスキル」「テクニカルスキル」それぞれの観点で、共存とあわせて意識したい点を述べていきたいと思います。

## (1).AI活用術を身につける
LLMの使い方（プロンプト手法やRAG等の構成機能）は今やネットに多くの情報があります。
一方でそれらがコピペして使えば常に最良になるかというと異なります。
ユースケースごとに向いている聞き方や必要な機能も変わってくるかと思います。
より上手く活用することに「経験値」が活きる事は間違いありません。

個人的にはLLMは武士にとっての刀のようなものだと思っています。
持っていれば誰でも使えるものですが、上手く使いこなすには練習が必要と考えます。

前述の通り、望む・望まないに限らずもはやAI・LLMとの共存の時代に突入しています。
自身や自社が使わなくても、周りのライバルたちはこれを使用し、人手不足の改善や生産性を向上させていくでしょう。
これは競争力の差となり得ます。
競争力がなくなった組織や個人はいずれ淘汰されていくでしょう。

また、少しずつ知見をためている人と、全く触れていない人ではいずれ大きな差が生まれます。
組織的な観点でも「人の育成」も絡む為、超短期的に長年知見をためた組織に追いつく、というのも至難の業かと考えます。
例えば「人の育成」や「組織文化」という観点で、LLMを活用できる仕組みだけ用意しても、広く受け入れられて、多くの人が使う事が当たり前となるまでには時間を要する可能性があります。
![図2_ハードル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2980980/c39f6984-d4db-dca3-849d-ecd6fe38b9c4.png)

AI、LLMやRAG等は日進月歩であり、新しい手法や技術も多く生まれている流れの早い分野ですが、それでもある程度使っている場合とそうでない場合ではモノの理解に差が生まれるとも考えます。


これらの事から少しずつでも良いので、まずLLMに触れる、と言う事が重要と考えます。
ITエンジニアに真に必要なスキルは「ググり力」と言われることもありますが、それすらも代替するレベルで「AI活用術」が重要になると考えています（※）。

:::note info
**Perplexity**や**Genspark**、**Felo**等、既に検索するという観点に特化したAIサービスも登場しています。無料でできるものもあるので、ぜひ活用してみましょう。
:::

なお、活用をする際には最低限のリテラシーは必要ですので、使い始める前に「不安だな」という方は調べてみましょう。

:::note info
**<ins>[補足] 少子化による労働人口減少の影響について</ins>**
競争力がなくなった個人は淘汰される、という点について、「でも日本は労働人口減ってるし大丈夫なのでは」と思う方もいるかもしれません。
現在の日本でもITエンジニアの不足はよく聞くところかと思います。
ただ、この状況が今後もずっと続くかというとそうではないかと考えます。

大前提、人の確保は景気の良し悪しに左右されますし、近年は通信業も含めたITサービスも進化しており、今後はますますグローバル化が進むのではないか、と思います。
例えば通信・ネットワーク観点ではIOWN APNにより遠距離でも大幅に遅延が減り（2024/8に日本-台湾間のIOWN国際間APNが開通したことは記憶に新しいかと思います）、ITサービス観点ではほぼほぼリアルタイムに翻訳ができるようなものも登場してきています。
いずれ大きな遅延なく、
このような背景からますますグローバル化が進むと、人の確保も日本内だけで、という企業も減っていくかと思います。

何が言いたいかというと「労働人口が減っているから競争力が低くても淘汰されることはないだろう」という考えは今後より通用しなくなっていく可能性が高いと言う事です。

:::

## (2).ヒューマンスキルについて
高い精度を持つLLMの登場で、テクニカルスキルよりもヒューマンスキルのほうが重要となってきた印象を受けています。
ここではLLMと共存する上で価値の高いヒューマンスキルを3つ記載します。

#### Ⅰ.言語化能力(ライティング力)
LLMを使う上で、どのようなユースケースでも共通して重要なのが「やりたい事を文字として定義する」力（言語化能力、日本語力）です。
やりたい事や聞きたい事を正しく確認するには、その前提や求める事を過不足なく表現する事がポイントとなります。
また、箇条書きにする等、わかりやすく書く力も重要です。

日本語力は推論(質問)を実行する場合だけでなく、ファインチューニングといったLLMモデルのチューニングでも重要です。
正しい日本語を与える事はチューニング後のモデルの精度に大きく影響を与えます。

:::note info
**<ins>[補足] 英語力について</ins>**
なお、GPT-4oのように巨大なモデル（複数言語扱えるモデル）では英語で質問をした方が、精度が上がりやすいと言われています。
これはモデル構築時で日本語の学習データより、英語の学習データの方が多い事に起因します。
また、英語を使う事で使用するトークン数も削減できる傾向にあります。

LLMを「使い倒す」という点では日本語だけでなく、英語力も重要です。
:::

#### Ⅱ.マネジメント力
LLMにより、既に製造や単体テスト等は一部が代替されてきています。

:::note info
ChatGPTでも対応はできますが、より特化したものに**v0**や**Bolt**、**Replit Agent**、**Cline**など様々なものがあります。できる事が異なるものもある為、気になる方は調べてみてください。また、これらも無料でできるものもあるので、気になったら触ってみると良いでしょう。
:::

将来的には議事録をAIがとり、重要なポイントを抽出した上でシステムの製造・試験もAIが作り上げる、という未来になるかもしれません。

一方でAIが進んでも、プロジェクトは「人」が進める、という原則は変わらないのではないか、と考えます。
なぜならAIに精度100%を出す事は難しく、何かあった時に責任も取れないですし、全てAIに判断させるのは危険とも考えられる為です。
よってプロジェクトを適切に管理する「マネジメント力」が今後ますます重要となっていくのではないか、と考えます。

最近ではマネジメント支援にも活用できる生成AIサービスも登場してきていますが、支援の域を出ていません。

:::note info
例えばNotion AIによるタスク管理や各タスクの状況要約、計画変更に関する提案などがあげられます。
:::

その点でマネジメントも楽にはなるかと考えますが、最終的に判断・管理するのがプロジェクトを運営する人間な点は変わっていません。

また判断をした上で、必要があれば他チームなどと調整するのも人と考えます。
その点ではコミュニケーション力も引き続き重要と考えます。

#### Ⅲ.論理的思考力
LLMに質問をした（プロンプトする）際に、上手く聞きたい事が回答されない場合には「なぜそうなってしまうのか？」原因を推測し、改善案を試していくかと思います。
プロンプトだけでなく、ファインチューニングでも同様です。
RAGやファインチューニングも、使えば、あるいは行えば常に精度が上がるわけではなく、時に精度が落ちる事もあります。
そういった際になぜ精度が落ちたのか、次どのような事を試すと精度があげられそうなのか、というPDCAのような流れが行われます。

![図1_プロンプトPDCA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2980980/0d7e7ca3-47b9-fa82-06b1-eb2181e95698.png)

上記の図は簡単な例ですが、実際に活用する際には、より複雑な内容で実施していくことになるかと思います。
例えば要件定義や設計フェーズでは「どのような課題があり」「どのように解決させるのか」考えていくかと思いますが、このようなタスクでもLLMにアイデアを質問する(壁打ちする)事は可能です。
LLMは聞きたい事にそれらしく回答するかもしれませんが、最初は入力した条件が足りておらず、成果に向けた精度・確度が低いかもしれません。
そこで、自身で考えた上で更に条件を追加した質問や深堀りをし、精度・確度を上げていけるかは、LLMを扱う人の力に大きく依存します。
このような「論理的思考力・課題解決力」は今後もITエンジニアに必要と考えます。

## (3).テクニカルスキルについて
これまでヒューマンスキルについて触れてきましたが、テクニカルスキルはどうでしょうか。
モデルにもよりますが、一般的な技術であれば、ある程度は精度よく回答できている印象です。
その為、初心者～中級レベルのスキルであるとLLMに代替可能となってしまいます。

ところが「あまり情報がない技術（ニッチな技術）」や、一般的であっても極めて深い理解が必要となるものには誤りが混じる事が多いです。
例えば筆者は前者についてはDPDKやNoSQL関連で、後者はPostgreSQLに関する点でこの事象に出会っています。
また間違っていた場合には聞き方を変えても（正解を教えた場合以外は）同じ誤った回答を返してくる事が極めて多く、事象の解決にはLLMだけでは至れない事が多かったです。

この事から「テックリード」のような役割も今後は残るのではないかと考えます。
ただしLLM以上の精度が求められる為、技術に関する深い知識が必要となる事は言うまでもありません。

# 4.おわりに
GPT-4o等の精度良いLLMモデルの登場によって、これまで以上にITエンジニアにはヒューマンスキルが求められる事が多くなる印象を受けます。
とはいえ、テクニカルスキルが全く不要かというとそれも異なり、LLMで回答できないニッチな技術の対応や複雑なデバッグ処理（ITエンジニアにとっての総合格闘技）に対応できるテクニカルスキルを持ち合わせたエンジニアは今後も重宝されると思いますし、そこまで突き抜けなくてもLLMの回答を自身で評価できるレベルのテクニカルスキルを保有することが重要と考えます。
個人的な印象の話になりますが、参考になれば幸いです。

なお、当社は当社ブログ([情報畑でつかまえて](https://www.ntt-tx.co.jp/column/))でも情報発信を行っています。
もしよければそちらもぜひご覧ください。

それでは引き続き、NTTテクノクロス Advent Calendar 2024 を(シリーズ1も2も！)お楽しみください。