cat /var/hw_serial_number
上記コマンドか、コントロールパネルの上段に表示されてますが、選択できないので、コピーは出来ない。
cat /var/hw_serial_number
上記コマンドか、コントロールパネルの上段に表示されてますが、選択できないので、コピーは出来ない。
以下は「Soraのローンチイベント」のまとめです。
Google Chromeの拡張機能は、各プラットフォームごとに異なるフォルダ内に格納されています。代表的な保存先は以下の通りです。
Windows (例: Windows 10/11)
C:\Users\<ユーザー名>\AppData\Local\Google\Chrome\User Data\Default\Extensions
macOS
/Users/<ユーザー名>/Library/Application Support/Google/Chrome/Default/Extensions/
Linux系OS (例: Ubuntu)
~/.config/google-chrome/Default/Extensions/
<ユーザー名>
の部分は、実際のユーザー名で置き換えてください。また、Chromeのプロファイルを複数使用している場合、Default
部分が Profile 1
、Profile 2
のように変わることがあります。
なお、これらのディレクトリ内では、拡張機能ごとにユニークなID(32文字前後の文字列)をフォルダ名として拡張機能データが保存されています。
AWSのセキュリティグループは、サーバー内部のパケットフィルタ(例えばiptables
)とは異なり、AWSインフラ側の仮想化レイヤーで動作する「仮想ファイアウォール」のようなものです。基本的にはインバウンド・アウトバウンドトラフィックを特定のポートやプロトコル、IPアドレスレンジに基づいて制御します。
3306
ポート(MySQL)へのアクセスをセキュリティグループで「特定のIPアドレスだけ許可」している場合、その指定したIPアドレス以外からの接続はAWSのネットワークレベルでブロックされ、外部からの不正アクセスやスキャンを直接受けることはありません。しかし、許可したIPアドレスからのアクセスは(そのIPが正規ユーザーである前提で通常は安全ですが)、もしそのIPが何らかの理由で攻撃者に制御されていたり、攻撃者がそのIPアドレス領域を利用できる状態であれば、そのIP経由でのブルートフォース攻撃やハッキング行為を行われる可能性は残ります。
要点としては、
BigQueryはSQLライクなインターフェースを提供していますが、MySQLとは使い方が若干異なります。データの管理方法や設計がBigQuery特有の仕組みに基づいており、データベースの構築やテーブルの管理の流れも少し異なります。以下に違いを詳しく説明します。
MySQLでは以下の順序で操作します:
CREATE DATABASE my_database;
CREATE TABLE my_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), created_at DATETIME );
INSERT INTO my_table (name, created_at) VALUES ('John', NOW());
SELECT * FROM my_table;
BigQueryでは、少し異なる概念でデータを管理します:
my_project.my_dataset
CREATE TABLE my_project.my_dataset.my_table ( id INT64, name STRING, created_at TIMESTAMP );
INSERT INTO my_project.my_dataset.my_table (id, name, created_at) VALUES (1, 'John', CURRENT_TIMESTAMP());
SELECT * FROM my_project.my_dataset.my_table;
項目 | MySQL | BigQuery |
---|---|---|
データベース | データベース(CREATE DATABASE で作成) | データセットがデータベースに相当 |
テーブル | テーブルを作成し、データを直接挿入 | テーブル作成後、データは主にバッチでインポート |
スキーマ変更 | 動的(ALTER TABLEが容易) | テーブル作成時にスキーマを固定(変更は非推奨) |
クエリ速度 | 単一ノードのパフォーマンス | 分散システムで大規模データを高速処理 |
データサイズ | 数十GB~数百GB程度が適している | 数百GB~ペタバイト規模でも高速処理可能 |
トランザクション | ACIDトランザクションをサポート | トランザクションは非対応(分析に特化) |
価格モデル | サーバー維持費(月額や時間課金) | ストレージ+クエリ従量課金(使った分だけ) |
小規模アプリケーションでトランザクションを必要とする場合はMySQL、大規模なデータ分析を必要とする場合はBigQueryが適しています。
AIにおける**RAG(Retrieval-Augmented Generation)とは、情報検索(Retrieval)と生成(Generation)の仕組みを組み合わせたAIアーキテクチャを指します。この手法は、特に自然言語処理(NLP)**の分野で注目されており、大規模言語モデル(LLM)をより有用で正確な形で活用するために設計されています。
RAGは、以下の2つの主要なコンポーネントから構成されます。
以下はPythonとHugging Faceを使ったRAGの基本例です。
from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
# モデルとトークナイザーの準備
tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", use_dummy_dataset=True)
model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", retriever=retriever)
# 入力クエリ
input_text = "What is AI?"
inputs = tokenizer(input_text, return_tensors="pt")
# 回答生成
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
特徴 | 従来のLLM | RAG |
---|---|---|
知識の範囲 | 事前学習時点までの情報 | 外部データベースを利用 |
記憶容量 | 固定(モデルサイズ依存) | 動的(外部検索で拡張) |
最新情報の反映 | 難しい | 可能 |
専門性の高い用途への対応 | 難しい | 簡単(知識ベース変更) |
RAGは、事前学習済みのモデルだけで不足する「最新性」や「専門性」を補い、より多様な用途で活用可能なAIシステムを実現する強力なアプローチです。
RAG(Retrieval-Augmented Generation)の仕組みを初心者にも分かりやすい事例で説明します。今回は、**「AIによる会社のFAQ応答システム」**を作るシナリオを例にします。
ある会社では、顧客からよく以下のような質問が寄せられます:
しかし、これらの質問にすべて人間が答えるのは大変です。そこで、AIを使って自動応答システムを構築したいと思いました。
通常のAI(大規模言語モデルなど)を使う場合:
RAGを使うと、次のような仕組みで問題を解決できます:
以下のような情報をデータベースに保存します:
AIは「保証期間」というキーワードに基づいてデータベースを検索します。
該当する文書: 「すべての製品に1年間の保証が付いています。」
AIは、検索した情報を自然な文章に変換して回答します。
AIの回答: 「当社のすべての製品には1年間の保証が付いていますのでご安心ください。」
以下は、PythonとHugging Faceのライブラリを使った簡単なRAG実装例です。
from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
# モデルの準備
tokenizer = RagTokenizer.from_pretrained("facebook/rag-sequence-nq")
retriever = RagRetriever.from_pretrained("facebook/rag-sequence-nq", use_dummy_dataset=True)
model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq", retriever=retriever)
# ユーザーの質問
question = "返品ポリシーについて教えてください。"
# 入力データをトークン化
inputs = tokenizer(question, return_tensors="pt")
# 回答生成
outputs = model.generate(**inputs)
answer = tokenizer.decode(outputs[0], skip_special_tokens=True)
print("AIの回答:", answer)
RAGは、「検索エンジン」と「言葉を作るAI」の組み合わせと考えると分かりやすいです。ユーザーの質問に対して必要な情報を探し出し、それを分かりやすく伝える力を持っています。この仕組みは、FAQ応答システムのようなリアルな課題解決にとても役立つ技術です!
AIにおけるファインチューニング(Fine-Tuning)は、既存の機械学習モデル(特に事前学習済みモデル)を、特定のタスクやデータに適応させるために再トレーニングするプロセスを指します。この手法は、ゼロからモデルを構築するよりも効率的で、トレーニングデータや計算リソースを節約できる利点があります。
import torch
from torchvision import models
from torch import nn, optim
# 事前学習済みモデルをロード
model = models.resnet50(pretrained=True)
# 出力層をタスク固有に置き換え
model.fc = nn.Linear(model.fc.in_features, num_classes)
# 最適化と損失関数の設定
optimizer = optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()
# 再トレーニング
for epoch in range(num_epochs):
for images, labels in dataloader:
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
ファインチューニングを適切に活用することで、既存のリソースを活かしつつ、特定のタスクに高性能なモデルを実現できます。
ファインチューニングの具体例を、初心者にも分かりやすい形で説明します。以下の例では、猫と犬を分類するAIモデルを作る場合を考えます。
あなたは、自分のスマホに猫と犬の写真を撮ったら、自動的に猫か犬かを判定してくれるアプリを作りたいと思っています。しかし、ゼロからAIモデルを作るのは大変です。そこで、すでに公開されている「犬や猫だけでなく、多くの動物を分類できるAIモデル」を利用します。このモデルを「猫 vs 犬」専用に仕立て直すのがファインチューニングです。
すでに研究者や企業が開発した「画像分類モデル」(例えばGoogleが作ったInceptionやResNet)が存在します。このモデルは、1,000種類以上の物体を分類する能力を持っています。
cats/
フォルダに猫の写真を保存。dogs/
フォルダに犬の写真を保存。事前学習済みモデルを使い、出力層(分類の部分)を「猫」か「犬」の2クラスだけに変更します。
以下のコードを実行するだけで、事前学習済みモデルを利用して猫と犬を分類するAIが作れます。
import torch
from torchvision import datasets, models, transforms
from torch import nn, optim
# 画像の前処理(リサイズ・正規化など)
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# データセットの準備
train_data = datasets.ImageFolder('path_to_training_data', transform=transform)
train_loader = torch.utils.data.DataLoader(train_data, batch_size=32, shuffle=True)
# 事前学習済みモデルのロード(ResNet50)
model = models.resnet50(pretrained=True)
# 出力層を置き換える(猫と犬の2クラス用)
model.fc = nn.Linear(model.fc.in_features, 2)
# 損失関数と最適化手法の設定
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
# モデルのトレーニング
num_epochs = 5
for epoch in range(num_epochs):
for images, labels in train_loader:
optimizer.zero_grad()
outputs = model(images)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
# 学習済みモデルを保存
torch.save(model.state_dict(), 'cat_dog_classifier.pth')
print("ファインチューニング完了!")
ファインチューニングは、すでに存在する賢いAIを少しだけ自分用にカスタマイズする方法です。この方法を使えば、少ないデータと簡単な調整で、猫と犬を判定する専用モデルを作ることができます!
O1モデルと強化学習ファインチューニングは、AIの可能性を広げ、より多くの課題解決に役立つツールとして進化を続けています。特に専門分野での活用において、その能力は大きな期待を集めています。
「Limited Liability Company」の略で「合同会社」を表す、2022年に新たに誕生した新gTLDです。
Llamaは、Meta社が提供する大規模言語モデル(LLM)で、さまざまな用途や要件に応じて使用可能です。
モデルは以下の種類に分かれています:
まず、Llama CLIをインストールします。以下のコマンドを実行してください:
pip install llama-stack
CLIが既にインストールされている場合は以下でアップデート:
pip install llama-stack -U
利用可能なモデルを確認するには以下のコマンドを実行します:
llama model list
古いモデルも含めてすべてを表示するには:
llama model list --show-all
希望するモデルのIDを指定してダウンロードします:
llama model download --source meta --model-id MODEL_ID
スクリプト実行中に「カスタムURL」を求められた場合、提供されたURL(例:https://llama3-2-lightweight.llamameta.net/...
)を入力します。
URLは48時間有効で、各モデルは最大5回までダウンロード可能です。このURLはメールでも送信されるため、期限内に利用するようにしてください。
モデルは用途やサイズ別に用意されています。
Llama-3.2-3B-Instruct
Llama-3.1-8B-Instruct
405Bモデルは非常に大規模で、使用には特別なリソースが必要です。
405Bモデルはストレージ750GBを使用し、高性能なGPU環境が必要です。