コンピューター分野には、初めて聞くと難しそうに感じる用語がたくさんあります。しかし平易な言葉に置き換えると、日常のとても単純な動作を指していることが多いです。
たとえば AI が話せることは TTS、AI が人の話を聞けることは STT と呼ばれます。複雑なシステムに見えますが、分解すると「文字を読み上げる」と「音声を書き起こす」です。
参考リンク:https://www.zhihu.com/question/267978646/answer/2035405228460201515
この記事では、その視点からよくある用語をつなげて説明します。用語自体は残しつつ、意味を平易に言い換えます。
TTS と STT:文字と音声の相互変換
TTS は Text-to-Speech、つまりテキストを音声に変換することです。文字を入力すると、システムがそれを音として再生できる形にします。ナビの音声案内、電子書籍の読み上げ、AI カスタマーサポートの音声、音声アシスタントなどで使われます。
STT は Speech-to-Text、つまり音声をテキストに変換することです。スマートフォンに話しかけると、まず音声が文字に変換され、その後のプログラムに渡されます。音声入力、会議の文字起こし、自動字幕、スマートスピーカーには欠かせません。
多くの音声 AI 製品は、実際には次の流れです。
STT:あなたの発話を文字に変換する。LLM:その文字から回答を生成する。TTS:回答を音声として読み上げる。
自然に会話しているように見えても、内部では複数のモジュールが順番に処理しています。
OCR:画像から文字を写し取る
OCR は Optical Character Recognition、日本語では光学文字認識です。
平易に言えば、画像の中の文字を抜き出すことです。請求書を撮影する、本のページをスキャンする、身分証の名前や番号を読む、といった処理はすべて OCR です。
昔の OCR は「文字の形から推測する」ものに近かったですが、現在は深層学習を組み合わせ、複雑な背景、傾いた文字、手書き文字、低解像度画像にも強くなっています。それでも本質的な問いはシンプルです。画像の中にどんな文字があるのか、です。
NLP と LLM:機械に人間の言葉を扱わせる
NLP は Natural Language Processing、自然言語処理です。分かち書き、翻訳、要約、感情分析、質問応答、分類など、人間の言葉を扱います。
LLM は Large Language Model、大規模言語モデルです。テキストを理解し生成できるため、現在では多くの NLP タスクが LLM によって処理されています。
平易に言うと:
NLP:人が話したり書いたりする言葉を機械に処理させる。LLM:多くの言語タスクを受け止められる大きなテキストモデル。
AI に記事を要約させる、メールを書かせる、タイトルを直させる、コードを説明させる、といったことはすべてこの方向に含まれます。
API と SDK:一方は窓口、一方は道具箱
API は Application Programming Interface です。
平易に言えば、相手が機能を呼び出すための入口を用意してくれている、ということです。天気 API は都市を渡すと天気を返し、決済 API は注文情報を渡すと決済結果を返します。
SDK は Software Development Kit です。
平易に言えば、API を呼び出しやすくするために、公式がよく使うコード、型、サンプル、ツールをまとめたものです。API がレストランの窓口なら、SDK は注文アプリのようなものです。窓口に直接伝えることもできますし、アプリを使えばより楽に注文できます。
CRUD:作成、読み取り、更新、削除
CRUD は Create、Read、Update、Delete の略です。
平易に言えば、追加、表示、編集、削除です。
多くの管理画面、業務システム、データベース操作は CRUD を中心に回っています。ユーザー管理、記事管理、注文管理、在庫管理は業務としては違って見えますが、内部ではフォームと CRUD の組み合わせであることがよくあります。
プログラマーが「また CRUD を書いた」と言うのは、それが本当に頻出するからです。
Cache:よく使うものを手元に置く
Cache はキャッシュです。
平易に言えば、よく使うものを手元に置いておき、次回は探し直したり計算し直したり問い合わせ直したりしない、ということです。
Web ページでは画像やスクリプトをキャッシュできます。遅いデータベースクエリでは人気の結果を Redis に置けます。モデル推論が高価な場合は、同じ質問への回答をキャッシュできます。
キャッシュの難しさは「コピーを置くこと」ではなく、「いつ更新するか」です。データが変わってもキャッシュが変わらなければ、古い情報が表示されます。多くのキャッシュ問題はそこから生まれます。
Queue:タスクを並べて順番に処理する
Queue はキューです。
平易に言えば、やることが多すぎるので、いったん並べて一つずつ処理することです。
たとえばユーザーが動画をアップロードしても、変換がすぐ終わるとは限りません。システムはタスクをキューに入れ、バックグラウンドサービスで後から処理できます。SMS 送信、メール送信、レポート生成、注文コールバック処理にもよく使われます。
キューが解決するのは、すべての重い処理を現在のリクエスト内で待たせないことです。ユーザーには先に応答し、時間のかかる処理は後ろで行います。
Index:データベースに目次を作る
Index はインデックスです。
データベースのインデックスは、本の目次のようなものです。目次がなければ最初のページから最後まで探す必要がありますが、目次があれば目的の場所に早くたどり着けます。
ただしインデックスは多ければよいわけではありません。検索は速くなりますが、書き込みや更新は遅くなることがあります。データが変わるとインデックスもメンテナンスする必要があるからです。
そのためデータベース最適化では「遅いクエリはまずインデックスを見る」と言われます。ただし実際に作るときは、検索条件、ソート項目、データ量、書き込み頻度も見る必要があります。
RPC、REST、Webhook:システム同士の話し方
RPC は Remote Procedure Call、リモート手続き呼び出しです。
平易に言えば、ローカル関数を呼ぶように、別のマシン上の関数を呼ぶことです。
REST は Web API でよく使われます。URL と HTTP メソッドでリソース操作を表します。たとえば GET /users はユーザー取得、POST /orders は注文作成です。
Webhook は逆方向の通知です。こちらが「終わった?」と何度も聞くのではなく、相手が処理完了後にこちらの URL へ通知します。
簡単に覚えるなら:
RPC:遠隔の関数を呼ぶ。REST:HTTP でリソースを管理する。Webhook:出来事が起きたら相手から知らせてもらう。
CDN と Load Balancing:近くに置く、負荷を分ける
CDN は Content Delivery Network、コンテンツ配信ネットワークです。
平易に言えば、静的リソースをユーザーに近いノードへ置くことです。画像、動画、CSS、JS にアクセスするとき、毎回オリジンサーバーまで行く必要がなくなります。
Load Balancing は負荷分散です。
平易に言えば、アクセスが多すぎるときに一台のサーバーだけに背負わせず、複数のマシンへリクエストを分けることです。
一方は「ユーザーに近づける」、もう一方は「一台を疲れさせない」ための仕組みです。大規模サイトでは通常どちらも使われます。
Docker、Container、Kubernetes:パッケージ化、実行、配置
Docker は代表的なコンテナツールで、Container はコンテナです。
平易に言えば、プログラムと依存環境をまとめてパッケージ化し、別のマシンでもできるだけ同じように動かす仕組みです。「自分の PC では動くのにサーバーでは動かない」問題を減らします。
Kubernetes はよく K8s と書かれる、コンテナオーケストレーションシステムです。
平易に言えば、コンテナがたくさんあるときに、どこで動かすか、落ちたらどう再起動するか、トラフィックをどう分けるか、バージョンをどう更新するかを管理します。
小さなサービスが一つだけなら Docker で十分なこともあります。多くのサービス、マシン、レプリカがある場合に K8s の価値が出ます。
CI/CD:自動ビルド、自動リリース
CI は Continuous Integration、継続的インテグレーションです。
平易に言えば、コードがコミットされると、システムが自動でコードを取得し、テストし、ビルドして、早めに問題を見つけることです。
CD は Continuous Delivery または Continuous Deployment を指します。
平易に言えば、ビルドが通った後、コードをより安定して自動的にテスト環境や本番環境へ届けることです。
これは「コードを書く」問題ではなく、「書いた後にどう少ないミスでリリースするか」の問題を解決します。
Serialization:オブジェクトを送れる形式に詰める
Serialization はシリアライズです。
平易に言えば、プログラム内のオブジェクトを保存・送信できる形式に変えることです。JSON、XML、Protobuf などが例です。
逆に Deserialization は、それらの形式をプログラムで使えるオブジェクトに戻すことです。
フロントエンドとバックエンドが JSON をやり取りするとき、サービス同士が Protobuf を使うとき、どちらもシリアライズが関わっています。
Token、Embedding、Vector DB:文字をモデルが扱える形にする
大規模モデルにおける Token は、テキストを分割した基本単位を指します。必ずしも漢字一文字や英単語一つではなく、モデル内部でテキストを処理する粒度のようなものです。
Embedding は埋め込みベクトルです。
平易に言えば、文字、画像、その他の内容を数字の列に変換し、モデルが類似度を比較できるようにすることです。
Vector DB はベクトルデータベースです。
平易に言えば、それらのベクトルを保存し、「意味が近い」内容を素早く探せるデータベースです。
たとえば「ルーターをリセットする方法」と聞くと、システムはベクトルデータベースから「工場出荷状態に戻す」「Wi-Fi パスワードを忘れた」「管理画面にログインできない」といった近い内容を探し、モデルに参考資料として渡します。
RAG:先に資料を調べてから答える
RAG は Retrieval-Augmented Generation、検索拡張生成です。
平易に言えば、モデルが答える前に、まず資料庫から関連内容を探し、その資料を持って回答することです。
これは大規模モデルが記憶だけで適当に答えてしまう問題を和らげます。企業文書、ナレッジベース、製品マニュアル、コード片をつなぐことで、モデルは学習時の記憶だけでなく、あなたが与えた最新資料を参照できます。
典型的な流れは:
- ユーザーが質問する。
- システムが質問を
Embeddingに変換する。 Vector DBから関連文書を探す。- 文書片と質問を一緒に
LLMへ渡す。 - モデルが回答を生成する。
つまり RAG は難しそうに聞こえますが、本質は「先に資料を調べてから、言葉を組み立てる」です。
Agent:タスクを分解できる自動化フロー
AI 文脈での Agent は、しばしばエージェントや智能体と呼ばれます。
平易に言えば、単に一文を返すだけでなく、目標をステップに分け、ツールを呼び出し、結果を観察し、次の行動を決められるものです。
たとえば「このリポジトリのテストが失敗する理由を分析して」と頼むと、通常のチャットモデルは助言だけを返すかもしれません。Agent なら、ファイルを読み、テストを実行し、エラーを確認し、コードを修正し、再度テストを走らせる可能性があります。
もちろん Agent は必ず信頼できるという意味ではありません。実態は「モデル + ツール呼び出し + 状態ループ」です。使いやすさは、ツール権限、タスク境界、エラー処理、人間の確認設計に左右されます。
まとめ
多くのコンピューター用語が難しそうに見えるのは、英語の略語、アーキテクチャ図、製品文言に包まれているからです。分解すると、多くは素朴な動作を表しています。
TTS:文字を読み上げる。STT:音声を書き起こす。OCR:画像から文字を写す。API:呼び出し口を公開する。SDK:呼び出し用の道具をまとめる。CRUD:作成、読み取り、更新、削除。Cache:よく使う結果を保存する。Queue:タスクを並べて後で処理する。Index:データに目次を作る。CDN:コンテンツをユーザーに近づける。Load Balancing:リクエストを分散する。Docker:実行環境をパッケージ化する。CI/CD:テストとリリースを自動化する。Embedding:内容を数値ベクトルにする。RAG:先に資料を調べてから答える。Agent:モデルにツールを使わせて段階的に作業させる。
用語は検索、コミュニケーション、ドキュメント参照に便利なので残すべきです。ただし理解するときに怖がる必要はありません。まず平易な言葉に訳し、それから技術的な細部へ戻ると、多くの概念はずっと分かりやすくなります。