生成AIエンジニアLab

生成AIの最新技術を、ハンズオンで解き明かす実践ラボです。
次の一歩を描きながらAI時代のキャリアを模索する羅針盤を目指します。

DeepSeek-R1-Distill(ローカルLLM)を用いたRAGの実装方法を解説します。

参考書籍:


3つの基礎知識

ローカルLLMとは

ローカル LLMとは、クラウド環境ではなく、PCなどのローカル環境で稼働するLLMを指します。
推論時のインターネット接続が不要で、外部への情報漏洩リスクが少なく、API使用料がありません。小型モデルの場合、GPUと一定以上のメモリを持つPC(もしくはColab環境)を利用すれば無料で動かせます。
動作に必要なメモリ量は、7Bパラメータで8GB、14Bパラメータで16GBがざっくりの目安です。
続きを読む

DeepSeek-R1は、中国のAI企業DeepSeekが開発した大規模言語モデルです。オープンソースですが、数学やコーディングのタスクで、OpenAI-o1と同等の性能を達成しています。

DeepSeek-R1には、蒸留された小型モデルがいくつか提供されてます。サイバーエージェントやLightblue社が、それぞれ日本語でファインチューニングを行い、Hugging Faceで公開してくれています。

今回は日本語でファインチューニングされたDeepSeek-R1の蒸留モデルのうち、パラメータ数が7B・14B・32Bのモデルについて、日本語の出力を比較しました。

利用環境:Google Colab(Python3, A100 GPU)

①7Bモデル(DeepSeek-R1-Distill-Qwen-7B-Japanese)

モデル概要

続きを読む

ブラウザ上で、ずんだもんとテキスト&音声で会話できるチャットアプリを作ります。

このアプリは、Ollama (gemma3)が回答文を生成し、VOICEVOX(ずんだもん)が即座にその返答を音声化します。ユーザーはブラウザ上でずんだもんの立ち絵を見ながら、発話と同時に再生される音声付きの会話を楽しめます。

関連記事:Ollama×Streamlit×VoiceVoxで作るローカルLLM音声対話アプリ【完全ハンズオン】

技術スタック

Streamlit:Webアプリを作るためのライブラリ。
Ollama:ローカルLLMを動かすための実行環境。
Gemma3:Google が開発した 軽量で高性能なLLM。今回は40億パラメータを利用。
VOICEVOX:オープンソースの音声合成エンジン。テキストを音声に変換。

続きを読む

Google Colab上でStreamlitを使って簡単なWebアプリを作成し、ngrokを利用して外部に公開する方法を解説します。 

1. 事前知識

1.1 streamlitとは

Streamlitは、PythonコードのみでシンプルなWebアプリを作成できるライブラリです。環境変数の設定が不要で、HTMLなしでUI画面を作成できます。素早くデモアプリを試作する時に便利です。

1.2 ngrokとは

_- visual selection
続きを読む

OpenAIのRAG(Retrieval Augmented Generation、検索拡張生成)を紹介します。
RAGの手法により、企業の社内文書や最新ニュースなど、GPTが学習していない独自の知識を元に、回答することが可能です。

RAG(Retrieval Augmented Generation)とは

質問文に対し、検索した参考情報(Context)を付けてLLMに質問する仕組みがRAGです。RAGは質問タスクを、Contextの検索タスクに変換していると言えます。

RAGの典型的な処理の流れは、以下の通りです。
①外部データ準備:社内文書などの外部データを収集、前処理する。
②インデックス作成:収集した外部データを、チャンク分割、ベクトル化して検索システム(ベクトルDB)に登録する。
③検索:質問文をベクトル化して、類似度等で検索処理を行う。
④回答生成:検索結果と質問文を生成AIのプロンプトとしてに与えて、LLMに回答文書を生成させる。
続きを読む

OpenAI APIのParallel function Callingを解説します。

Parallel function callingとは

Function Callingとは、事前に関数のメタデータを定義(どのような時に使うか、引数は何か)して、Chat Completions APIをリクエストすると、OpenAI APIが関数を実行すると判断した場合、レスポンスに「関数名と引数」を含めたJSONオブジェクトが返却される機能です。

ユーザーの入力に応じて、必要な関数を自律的に判断できます。Chat Completions APIのtool_choice="auto"に設定すると、関数の呼び出しが不要とOpenAI APIが判断した場合、通常のGPTの回答が出力されます。

2023年11月に、Parallel function callingとしてバージョンアップし、OpenAI APIが複数の関数の呼び出しを返却することができるようになりました。

続きを読む

はじめに

クラウドエンジニアは、現代のIT業界で需要が高い職種の一つです。その中でも、Microsoft AzureとAmazon Web Services(AWS)は、世界的に広く使われているクラウドプラットフォームであり、多くの企業が採用しています。この記事では、AzureとAWSの特徴を比較しながら、初心者がどちらを学ぶべきかを考える際のポイントや、キャリアの方向性に応じた選択肢を解説します。


AzureとAWSの違い

1. 市場シェアと成長

  • AWSはクラウド市場で最大のシェアを持ち、特にスタートアップやテクノロジー企業で広く採用されています。

  • Azureは、エンタープライズ市場や大企業、金融業界で急速に成長しており、Microsoft製品との統合が強みです。

ざっくりですが、AWSは7割、Azureは3割程度の求人比率であり、AWSのほうが市場全体ではやや優勢ですが、Azureも、生成AI周りなど特定の業界で高い需要があります。

続きを読む

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

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

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

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

続きを読む

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

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

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

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

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

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

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

決定木の問題点

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

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

↑このページのトップヘ