新規事業のつくり方

新しいことを学ぶことが好きです。今は機械学習や自然言語処理に興味があります。

※本小説は、生成AI(GPT-4o, o1)で執筆しています

 夜明け前の静寂が、薄暗い部屋に漂っている。カーテンの隙間から差し込む微かな光が、壁に淡い影を映し出していた。その静けさを破るように、目覚ましの音が優しく耳に届く。「おはようございます、今日も最高の一日をお過ごしください。」その声はどこか人工的でありながらも、心地よい温かみを感じさせる。まるで長年の友人がそばで囁いているかのようだ。

 僕はゆっくりと瞼を開け、天井を見上げた。白い天井に映る微かな光の揺らめきが、新しい一日の始まりを告げている。ベッドから身体を起こし、伸びをしながら深呼吸をする。新鮮な空気が肺に満ち、眠気が少しずつ薄れていくのを感じる。

 枕元に置かれたAI端末が、柔らかな光を放っている。その光は温かく、心を落ち着かせる効果があるようだ。僕は端末に手を伸ばし、画面に表示されたメッセージを確認する。「本日のスケジュールをお伝えします。午前9時に顧客とのミーティング、午後2時にプロジェクトチームとの打ち合わせがあります。」端末は僕の一日の予定を完璧に把握している。スケジュールだけでなく、食事の栄養バランス、未読のメール、昨夜の睡眠状態までも細かく管理されている。

続きを読む

30代後半にもなってくると、会社から管理職の声がかかる人も出てくるだろう。管理職になるべきか、それとも現場で技術を磨き続けるべきか、多くのAIエンジニアが迷う時期でもある。
本記事では、その迷いを解消するための参考材料を提示する。

1. 自分の「管理職としての力量・適性」を客観的に評価する

管理職の仕事を一言で言うと、「大きな仕事を分解し、与えられたリソースを元に、他者と協力して成果を出すこと」と言える。

管理職には大きな目標が降ってくるため、担当者レベルの粒度に分解し、それぞれできそうな部下に仕事を振る。もし、部下が忙しかったり、スキルが足りなかったり、リスクが大きすぎる場合は、お金を払って別会社や他部署に依頼をする。そして、依頼した仕事をモニタリングして、問題があれば適切に指示する。

もしあなたが、このようなタスク管理、リスク判断、他者への指示ができる人で、かつ仕事内容に面白みを感じるならば、管理職適性は高いだろう。マネジメントスキルは、経験でしか身に付かないため、40代以降の仕事としては筋が良い。また、転職時でも、よほど企業規模が異なる場合を除き、非管理職から管理職の転職は難しい。そのため、自社で管理職になれる機会があるならばなっておくという考え方もできる。
続きを読む

機械学習界隈で、最強アルゴリズムの一角を占めていたランダムフォレスト。ディープラーニングが登場した後急速に存在感をなくすものの、その利便性と強力さから多くのデータサイエンティストが現役利用中。

scikit-learnでのランダムフォレスト、分類モデルと重要度評価の実装方法まとめました。

決定木の問題点

決定木は、上から順に条件分岐を作って分類モデルを作る手法です。ルールが可視化できる、正規化や標準化などのデータ加工が不要など、素晴らしいアルゴリズムです。
しかし、決定木は過学習を起こしやすいという問題点がありました。

前の記事:Pythonの決定木分析できのこ派とたけのこ派を予測する続きを読む

WSL2のUbuntuで独自の証明書を登録する方法をまとめました。

WSL2のインストール

WSL2は、Widows上でLinuxを動作させるための実行環境です。Windows Subsystem for Linux 2の略称になります。WSL1もありますが、基本はWSL2を選んでおけば大丈夫です。

インストール方法は、PowerShellを管理者として実行し、以下のコマンドを叩くだけです。
wsl --install

後は、PCを再起動し、ユーザ名とパスワードを設定すれば完了です。

続きを読む

生成AIは、時々間違った情報を作り出してしまうことがあります。これを「ハルシネーション」と呼びます。この記事では、ハルシネーションがどうして起こるのか、そしてそれを防ぐ方法を説明します。

ハルシネーションが起こる理由

ハルシネーションは、大きく3つの原因で起こります。

1. LLMの学習データが原因

LLMの学習データが、ハルシネーションの大きな原因になります。

誤情報の含有: LLMが学習するデータに古い情報や誤った情報が含まれている場合、モデルはその情報を学習し、誤った答えを生成することがあります。LLMはデータ内のパターンを学習するため、誤情報であってもそれを再現してしまう可能性があります。

知識の限界: LLMが学習するデータに特定分野の知識が十分に含まれていない場合、正確な答えを出せないことがあります。この場合、モデルは他の類似した情報に基づいて推測するため、誤った情報を生成するリスクが高まります。
続きを読む

RAG (Retrieval Augmented Generation) システムの設計における失敗ポイントと、ケーススタディから得られた教訓を報告されている論文を紹介します。

タイトル:Seven Failure Points When Engineering a Retrieval Augmented Generation System

RAGシステムが失敗する理由

一般的にRAGシステムの精度が低い原因は、検索に起因する部分が大きいと言われています。RAGは、ユーザーのクエリから検索するわけですが、クエリが曖昧だと解釈が難しいですし、一方複雑なクエリも、それはそれで正確に回答するのは難しいです。

また、参照するドキュメントも様々な落とし穴があります。ドキュメントが章ごとに分かれており、内容が正しく、明確な文章で記載されていれば問題ありません。しかし、情報が古かったり、ドキュメントの形式がばらばらだったり、ページ構成が複雑だと、検索で引っ掛けるのが難しくなります。
続きを読む

AIエンジニアは、最も将来性が高い職業の一つでしょう。データを使って科学する仕事は楽しいです。しかし、現役のAIエンジニアにも様々な悩みがあったりします。

「優秀な人材と働きたい」「最適化手法の研究をしたい」「自分の専門分野を深めたい」などです。

組織の論理から脱却し、自分のキャリアをコントロール性をどうすれば高めることができるのか、現役のAIエンジニアが検討してみました。
続きを読む

SQLiteの環境構築から使い方までを解説します。

RDBMSとは

RDBMSは、リレーショナルデータベース管理システム (Relational Database Management System) の略称です。リレーショナルデータベースを管理するためのソフトウェアのことを指します。代表的なRDBMSには、Oracle Database、MySQL、PostgreSQL、SQLiteなどがあります。

RDBMSの特徴は以下になります。
1. データを表形式で管理し、テーブル間の関連性(リレーション)を定義できる。
2. SQL言語を使用してデータの操作や検索が行える。
3. データの整合性を保つために、トランザクション管理機能やACID特性(原子性、一貫性、独立性、耐久性)を備えている。
4. データの同時アクセスを制御し、不整合を防ぐためのロック機構を持つ。
5. バックアップやリカバリ機能により、データの安全性と可用性を確保できる。

続きを読む

これからAzureの環境構築する人に向けて、Azure独自のネットワーク関連の用語をまとめました。

分類 サービス名 説明
仮想ネットワークの基本コンポーネント 仮想ネットワーク(Vnet) Azure 上で論理的に分離されたネットワーク環境。主に、仮想マシン同士の通信で利用。Azure Portalで、「アドレス空間」と「サブネット」を定義する。また、内部的に DHCP サーバーやサブネット間の自動的なルーティング機能を保持。
サブネット 仮想ネットワークを小さなセグメントに分割し、ネットワークの構成を管理しやすくします。
ネットワークインターフェース(NIC) プライベートIPアドレスとパブリックIPアドレスの両方を仮想マシンに割り当てる。
仮想マシン どの仮想ネットワーク、どのサブネットに配置するかを設定する。
IP アドレス パブリックIPアドレス インターネットから直接アクセスできる IP アドレス。
プライベートIPアドレス 仮想ネットワーク内でのみ使用される IP アドレス。
ネットワークセキュリティ ネットワークセキュリティグループ(NSG) Azureの仮想ネットワーク上のファイアウォール。仮想マシンのネットワークインターフェースや仮想ネットワークのサブネットに適用し、IPアドレス・Service Tagの送受信の制御、トラフィックの許可や拒否といったルールを設定する。
外部接続 Private Link グローバル IP アドレスを使わずに、プライベートエンドポイントに割り当てられたプライベート IP アドレスを経由して、仮想ネットワークから Azure PaaSにアクセスする。
プライベートエンドポイント 仮想ネットワーク内のAzure PaaSのプライベート IP アドレスに接続するネットワークインターフェース。
サービスエンドポイント プライベート IP アドレスのままで Azure PaaSのパブリック IP アドレスに接続するネットワークインターフェース。
DNS プライベートDNSゾーン 仮想ネットワーク内の名前解決サービス。
続きを読む

Fast APIの基本的な使い方を解説します。

Fast APIとは

Fast APIは、Python向けのWebアプリケーションフレームワークです。高速で、非同期処理が可能で、コードからSwagger UIが自動生成できます。

FastAPIは、リクエストとレスポンスのスキーマを定義することになります。これによって、フロントエンドエンジニアが実装の際に利用するドキュメントを簡単に自動生成でき、さらに実際にリクエストパラメータを変更してAPIの呼び出しを試すこともできます。

なお、FastAPIのディレクトリ構造は、api ディレクトリの下に schemas, routers, models, cruds の4つのディレクトリを切るのが一般的のようです。本記事では、パスオペレーション関数(記事後半で説明)を定義するrouters配下のコードのみ実装します。
続きを読む

↑このページのトップヘ