NTT DATA

DATA INSIGHT

NTT DATAの「知見」と「先見」を社会へ届けるメディア

キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
 トレンドを知る 生成AIを使ったNTTデータ流「新時代のシステム開発」とは
2023.11.16業界トレンド/展望

生成AIを使ったNTTデータ流「新時代のシステム開発」とは
~グローバルで商用への適用実績拡大中!レガシー資産を高品質・高生産性でモダナイズ~

生成AIの活用をグローバルで推進する『Global Generative AI LAB』を設立し、最新のAI技術を安心安全、迅速に活用する体制を整備するNTT DATA。ソフトウエア開発でも、要件定義からテスト工程までシステム開発の全フェーズで生成AIの適用を推進している。すでに海外を中心にPoCだけでなく商用利用での適用実績が積み上がっており、ある案件の製造工程では7割の合理化によって工期を短縮。生産性を約3倍向上させた例もあるという。10月には日本の金融や法人のお客様においてマイグレーションのPoCを始めている。本稿では、NTT DATA 技術革新統括本部 システム技術本部 ADM技術部の村上功修部長の話から、高品質を担保しながら生成AIを導入するNTT DATA独自の取り組みに迫った。

目次

要件定義、設計、製造、テストの工程全てで生成AIを活用

生成AIを活用したソフトウエア開発では、一般的に製造工程における利用が取り沙汰されている。一方、NTT DATAが見据えているのは、上流工程である要件定義を含め、設計工程、製造工程、テスト工程という一連の流れ、全てにおける活用だ。

図1:NTTデータは生成AIをシステム開発の全工程に活用する

図1:NTTデータは生成AIをシステム開発の全工程に活用する

要件定義工程における生成AIの活用について、村上部長は「お客さま要件の洗い出し・アイディエーションや抽象的な要件の言語化等が一例です。要件定義や設計書をもとにリスクや見積もりの妥当性を判断するチェックにも生成AIを活用する想定です」と語る。

設計工程では、ソースコードから設計情報を作成するリバースエンジニアリングにおいて生成AIを活用する。特にNTT DATAが注力するのが、『COBOL』や『PL/1』といったレガシー資産である。村上部長は人力によるリバースエンジニアリングの課題を「COBOLやPL/1等メインフレームのシステムは、何十年も昔のソースコードで動いているケースが多い。すでに、ソースコードの仕様を理解している人間はリタイアしており、情報が共有されていないことも多い」と指摘する。

「そういった状況で設計情報を生成AIに落とし込み、リバースエンジニアリングへとつなげることは、価値があると考えています。もちろん、有識者がいれば人手でもやれないことはない。しかし、生成AIを使えば、より効率的、かつ、高品質な設計情報を網羅的に抽出することが可能です。実際、金融機関のお客さまなどは、この手法に興味を持たれています」(村上部長)

製造工程における生成AIの活用は新規ソースコード生成が一般的だ。NTT DATAはそれだけでなく大量の古いプログラム言語を新しいプログラム言語に書き換える所謂「モダナイゼーション」に積極的に活用していくという。さらに先も見据えており、生成AIを使って既存のソースコードから設計情報に落とし込み、その設計情報に基づき再度生成AIを使って別のプログラム言語に変換する仕組みも考えているという。いわば、設計書とソースコードをセットでつくるイメージだ。村上部長は、「開発段階でどのソースコードを使うかが決まっていないプロジェクトでも、ソースコードに囚われずに、一旦、設計情報に落とし込んで工程を進められるメリットがあります」と期待を寄せる。

テスト工程においては、従来の自動化に加え、過去の設計書と試験項目表、試験記録等プロジェクト固有の情報とセットで設計書、仕様書などを生成AIに読み込ませ、テスト項目を自動で抽出できるようにするという。

生成AIの導入で約3倍の生産性向上を実現した案件も

要件定義、設計、製造、テスト、全てにおいて生成AIを活用するNTT DATAだが、やはり、現時点でのメインは製造工程、テスト工程における取り組みだ。特に製造工程では、マイグレーション案件で生成AIの適用と関連アセットの整備が進んでおり、欧州の大規模金融機関や電力会社など海外のお客さまを中心に古いプログラム言語からモダンなプログラム言語へのモダナイゼーションに関するPoCで実績を積み重ねている。

「電力会社の案件では、高い生産性を実現した結果も見えてきました。OracleDBから PostgreSQLへのデータベース移行では、5割の工期短縮に成功。別の案件でXSLからJSPへとプログラム言語を書き換えた際には、7割の合理化で約3倍の生産性向上を実現しました。7割という数字は特定案件の効果で、プログラムの複雑さや言語モデルによっても結果は異なり一律の保証はできませんが、一定の成果が生まれています」(村上部長)

引き合いは海外だけに留まらず、日本でも同様の案件適用に向けて、さまざまな業界から50件以上の問い合わせがきている。特にCOBOLからのモダナイゼーションや古いJavaのバージョンアップ等に対する関心が高いという。

「NTTグループでは、現在NTT研究所が主体となりNTT独自のLLM(大規模言語モデル)を開発しています。その生成AIを活用して、NTT DATAが保有する大量のCOBOL資産を活用し、COBOLに特化したファインチューニングを行った生成AIをNTT DATAが独自で作成・適用する検証を始めようとしています」(村上部長)

独自アセットで進めるマイグレーションでの生成AI活用

NTT DATAが独自に開発するアセットの特徴は、お客様独自の関数定義や各種規約・ルールなどプロジェクト固有の情報を、プロンプト機能としてプロジェクト共通で持たせることを可能にした点だ。村上部長はこのように説明する。

図2:NTT DATA独自のアセットを使ったマイグレーションのイメージ

図2:NTT DATA独自のアセットを使ったマイグレーションのイメージ

「一般的に、生成AIを活用する際には、正しい結果を得られるように人間が一定の付加情報(プロンプト)を与える必要があります。これはソフトウエア開発での利用においても同様で、お客様が持つコーディング規約や独自に作成されている関数等、生成AIが知らないお客さま独自の情報をセットで与える必要があります。一方でこれらの情報の与え方を一定にしないと、生成されるコードの品質にばらつきが発生します。そのため、生成AIを活用するエンジニアは、生成AIの特性を理解し正しく付加情報を与えるために一定の生成AIの知識を有する必要があります。」(村上部長)

この課題を解決したのが、前述したNTT DATA独自のアセットだ。

「変換前のソース、例えば、古いJavaから新しいJavaに変換するとき、ソースコードの変換に合わせて、お客様のコーディング規約や独自関数といった情報を開発者が毎回生成AIに与えるのではなく、プロンプト機能をプロジェクト単位で共通で持たせます。開発者は変換前のソースコードを入力するだけで、コーディング規約や独自関数といったプロジェクト固有の情報をあらかじめ標準化したプロンプトと内部で結合し、生成AIがプログラム言語の変換を行います。」(村上部長)

「より平易な表現にすると、プロンプトエンジニアがプロンプトを作ってしまえば、開発者は生成AIにどんな命令や指示をセットで与えるのかを全く意識することなく変換ができるわけです。この仕組みこそ、NTT DATAが独自で作り込んだ強みになります。」(村上部長)

もちろんプロジェクト固有の情報以外の情報、製品や言語固有の非互換情報(例えば、OracleDBからPostgreSQLへデータベースを移行する場合に必要な書換要素等)は、これまでNTT DATAが数多く手掛けたプロジェクトで積み重ねてきた知見やPoCを通して、標準雛形化を進めている。「類似パターンのプログラム言語変換なら、最初の段階から比較的、高い精度での変換を実現できるます。これも、NTT DATAが生成AIを使ってマイグレーションする際の大きな強みです」(村上部長)

生成AIで生産を上げるために必要な3つのポイント

生成AIを活用したソフトウエア開発が進んでいく中、人がやるべきことは必ず残ってくる。前述したマイグレーションにおける生成AI活用でも、プロンプトエンジニアの役割があってこそ、生成AIによるプログラム言語の変換精度が向上することからもわかるだろう。生成AIと人によるチェックなどを交え、全体として生産性を上げていくことが肝心となる。そのためのポイントが、『標準化』、『お客様のニーズに則ったAI適用』、『ガバナンスの強化』の3点である。

一つ目の『標準化』では、生成AIを活用したソフトウエア開発及び管理プロセスの整備をグローバル標準で進めている。生成AIを使う手法を全エンジニアに習得させるのはもとより、『Global Generative AI LAB』を設立するなどして、全社員19万5000人が業務においてAIを活用できる環境を目指す。

二つ目の『お客様のニーズに則ったAI適用』では、アジャイル開発、ウォーターフォール開発に合わせて、適切に生成AIを活用することが求められる。村上部長は「NTT DATAの生成AI活用は、まず、モダナイゼーションや更改案件から取り組むことが前提」と前置きし、アジャイル開発、ウォーターフォール開発における生成AIの事例をこう話す。

「前述したマイグレーションおける生成AI活用では、意にそぐわないプロンプトが出てきたときには、プロンプトエンジニアが修正して精度を上げると説明しました。例えば、1MStep程度の案件のモダナイゼーション案件においては、フェーズ1ではまず100K程度を抽出して変換をかけます。そこで意にそぐわない変換が行われた場合には、その内容をプロンプトに反映をして精度を上げます。同じように、フェーズ2では400K、フェーズ3では500Kといった形で、複数フェーズに分けて進めます。要は、イテレーション的に回していくことで、フェーズが進むごとにプロンプトが成熟されて精度が上がっていくわけです。

イテレーションという言葉を使うとアジャイル開発を想起しますが、アジャイル開発に対応できるのはもちろん、ウォーターフォール開発でも、徐々にプロンプトを修正していきながら自動で変換できる範囲を増やして効率が上がっていく。つまり、アジャイル開発とウォーターフォール開発のどちらにも対応ができるということです」(村上部長)

NTT DATAは、既にある『TERASOLUNA』(開発標準・開発環境(フレームワーク、開発支援ツール)・サポートを一体とした、システム開発の総合ソリューション)に加え、「生成AIネイティブな開発・管理プロセス」の整備も進めている。

三つ目の『ガバナンス』に関しては、お客さまに安心・信頼できるAIソリューションを提供するために、AIガバナンス室主導でAIアドバイザリーボードを設置した。生成AIの活用を推進する組織とは別にすることで、AIの研究、開発、運用、利活用に関わるガバナンスを強化している。

生成系AIの最新動向と法的懸念点
https://www.nttdata.com/jp/ja/data-insight/2023/0421

生成AIを活用したシステム開発は始まったばかりだ。今後、方向性の策定や人間の役割など、改めて最適解を探る必要があるだろう。その状況において、村上部長が見据えるこれからの方向性に触れて、この記事を締めたいと思う。

「ソフトウエア開発における生成AIの活用が進むと、より効率的にソフトウエア開発ができるようになります。そのため我々はこれまで以上にお客様と一緒になって、お客様のビジネス拡大や課題解決を考え、そのために必要なシステム開発を効率的に行うことでお客様の実現を後押しする存在にならなくてはいけません。そして、それは作業量ではなく、最終的に生み出した価値に対して対価を頂くということにつながります。今は、システム開発の考え方自体が変わる分水嶺だと思います」(村上部長)

お問い合わせ