LangChainでは、PDFから情報を抽出して回答を生成するRAGを構築できます。
この記事では、『情報通信白書』のPDFを読み込んで回答するRAGの実装について紹介します。
ざっくり言うと
- PDFから情報を抽出して回答を生成するRAGを構築する
- 日本語のローカルLLM「Llama-3-ELYZA-JP-8B」を使用
LangChainでPDFから回答するRAGを構築
LangChainでは、PDFから情報を抽出して回答を生成するRAGを構築できます。
この記事では、『情報通信白書』のPDFを読み込んで回答するRAGの実装について紹介します。
RAGの構築手順は以下のとおりです。
- LLMの設定をする
- PDFからテキストを抽出
- テキストをチャンクに分割
- 埋め込みモデルの設定
- リトリーバーの設定
- プロンプトテンプレートの定義
- RAGチェーンの構築
LangChain RAGの実行環境
この記事で用意した実行環境は以下のとおりです。
- GPU:NVIDIA A100 80GB
- GPUメモリ(VRAM):80GB
- OS :Ubuntu 22.04
- Docker
Dockerで環境構築
Dockerを使用してLangChainの環境構築をします
Dockerの使い方は以下の記事をご覧ください。
Ubuntuのコマンドラインで、Dockerfileを作成します。
mkdir pdf_rag
cd pdf_rag
nano Dockerfile
Dockerfileに以下の記述を貼り付けます。
# ベースイメージ(CUDA)の指定
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04
# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y python3-pip python3-venv git nano curl
RUN curl -fsSL https://ollama.com/install.sh | sh
# 作業ディレクトリを設定
WORKDIR /app
# アプリケーションコードをコピー
COPY . /app
# Python仮想環境の作成
RUN python3 -m venv /app/.venv
# 仮想環境をアクティベートするコマンドを.bashrcに追加
RUN echo "source /app/.venv/bin/activate" >> /root/.bashrc
# JupyterLabのインストール
RUN /app/.venv/bin/pip install Jupyter jupyterlab
# LangChain関連のインストール
RUN /app/.venv/bin/pip install ollama langchain-ollama langchain langsmith langchain-chroma faiss-gpu langchain-community langchain_huggingface langchain_core tiktoken pypdf
# コンテナの起動時にbashを実行
CMD ["/bin/bash"]
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04
CUDA12.1のベースイメージを指定しています。
RUN apt-get update && apt-get install -y python3-pip python3-venv git nano curl
必要なパッケージをインストールしています。
RUN curl -fsSL https://ollama.com/install.sh | sh
Linux版のOllamaをインストールしています。PythonでOllamaを動かす際にもLinux版Ollamaのインストールが必要になりますのでご注意ください。
RUN /app/.venv/bin/pip install Jupyter jupyterlab
JupyterLabをインストールしています。
RUN /app/.venv/bin/pip install ollama langchain-ollama langchain langsmith langchain-chroma faiss-gpu langchain-community langchain_huggingface langchain_core tiktoken
LangChainとOllama関連のパッケージをインストールしています。
LLMはOllamaのライブラリを使って動かしますので、PyTorchやTransformerは別途インストール不要です。
docker-compose.ymlでDockerコンテナの設定をします。
docker-compose.ymlのYAMLファイルを作成して開きます。
nano docker-compose.yml
以下のコードをコピーして、YAMLファイルに貼り付けます。
services:
pdf_rag:
build:
context: .
dockerfile: Dockerfile
image: pdf_rag
runtime: nvidia
container_name: pdf_rag
ports:
- "8888:8888"
volumes:
- .:/app/pdf_rag
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
command: >
bash -c '/usr/local/bin/ollama serve & /app/.venv/bin/jupyter lab --ip="*" --port=8888 --NotebookApp.token="" --NotebookApp.password="" --no-browser --allow-root'
bash -c ‘/usr/local/bin/ollama serve & /app/.venv/bin/jupyter lab –ip=”*” –port=8888 –NotebookApp.token=”” –NotebookApp.password=”” –no-browser –allow-root’
bash -c '/usr/local/bin/ollama serve
Ollama Serverを起動しています。PythonのOllamaを使用する際に、Ollama Serverを起動しておく必要がありますので、ご注意ください。
& /app/.venv/bin/jupyter lab --ip="*" --port=8888 --NotebookApp.token="" --NotebookApp.password="" --no-browser --allow-root'
JupyterLabを8888番ポートで起動しています。
Dockerfileからビルドしてコンテナを起動します。
docker compose up
Dockerの起動後にブラウザの検索窓に”localhost:8888″を入力すると、Jupyter Labをブラウザで表示できます。
localhost:8888
環境変数・LLM・PDFリトリーバーの設定
Dockerコンテナで起動したJupyter Lab上でPDF RAGの実装をします。
LangChainに関する環境変数を設定します。
import os
from uuid import uuid4
unique_id = uuid4().hex[0:8]
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_PROJECT"] = f"pdfrag - {unique_id}"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_API_KEY"] = "***************"
unique_id = uuid4().hex[0:8]
8桁のランダムな一意の識別子unique_id
を生成しています。
os.environ[“LANGCHAIN_TRACING_V2”] = “true”
この設定により、LangChainのトレースが可能になります。
os.environ[“LANGCHAIN_PROJECT”] = f”pdfrag – {unique_id}”
LangChainプロジェクトの名前を設定しています。ここでは、生成したunique_id
を使用してプロジェクト名を「pdfrag – {unique_id}」の形式で一意にしています。
os.environ[“LANGCHAIN_ENDPOINT”] = “https://api.smith.langchain.com”
LangChainのAPIエンドポイントを指定しています。
os.environ[“LANGCHAIN_API_KEY”] = “***************”
LangChain APIを利用するためのAPIキーを設定しています。
日本語LLMモデル「Llama-3-ELYZA-JP-8B-q4_k_m.gguf」をダウンロードします。
!curl -L -o Llama-3-ELYZA-JP-8B-q4_k_m.gguf "https://huggingface.co/elyza/Llama-3-ELYZA-JP-8B-GGUF/resolve/main/Llama-3-ELYZA-JP-8B-q4_k_m.gguf?download=true"
Llama-3-ELYZA-JPについては、別記事で詳しく解説しています。
LLMの実行にはOllamaを使用します。
LLMのモデルがOllama使えるようにプロンプトテンプレートを指定して、モデルを作成します。
import ollama
from langchain_ollama.chat_models import ChatOllama
modelfile='''
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>
{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>
{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>
{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"
'''
ollama.create(model='elyza8b', modelfile=modelfile)
llm = ChatOllama(model="elyza8b", temperature=0)
FROM ./Llama-3-ELYZA-JP-8B-q4_k_m.gguf
ダウンロードしたモデルのパスが入ります。
TEMPLATE “””{{ if .System }}<|start_header_id|>system<|end_header_id|>…
モデルで使用するプロンプトテンプレートが入ります。
ollama.create(model=’elyza8b’, modelfile=modelfile)
モデルとプロンプトテンプレートを使ってOllama用のモデルを作成します。model
にはOllamaで呼び出す際に使用する名前をつけられます。
ChatOllama(model=”elyza8b”, temperature=0)
ChatOllamaをインスタンス化してLLMモデルを実行できる状態にしています。
Ollamaの詳しい使い方は、別の記事で解説しています。
PDFからテキストデータを抽出して、読み込みます。
総務省のページから『令和6年版情報通信白書』のPDFをダウンロードして使用しています。
from langchain_community.document_loaders import PyPDFLoader
file_paths = ["00zentai_part1.pdf", "00zentai_part2.pdf", "00zentai_part3.pdf"]
docs = [PyPDFLoader(file_path).load() for file_path in file_paths]
docs_list = [item for sublist in docs for item in sublist]
PyPDFLoader(file_path).load()
指定したPDFファイル内のテキストデータやメタデータを取得し、処理できる形式に変換します。
読み込んだデータをチャンクに分割します。
データベースの検索精度の向上や効率的な処理のためにチャンク分割が必要になります。
from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(
separator = "\n",
chunk_size= 1000,
chunk_overlap=100,
)
doc_splits = text_splitter.split_documents(docs_list)
doc_splits[200:203]
CharacterTextSplitter.from_tiktoken_encoder…
テキストを指定された条件でチャンクに分割しています。
separator = “\n”
チャンクを分割する際の区切り文字を「\n」として指定します。
chunk_size= 1000
各チャンクが1000文字を超えないように分割されます。
chunk_overlap=100
各チャンクが100文字分重複するように設定しています。
確認のため、分割したチャンクを3つ表示しています。
[Document(metadata={'source': '00zentai_part1.pdf', 'page': 78}, page_content='ンをもとに、将来の国家プロジェクト化や社会実装に向けた検討を進めていくこととしている。\n 3 自動運転技術\n自動運転技術の活用は、人口減少、高齢化等が進む地域の足を担う公共交通や物流の維持に寄与\nすることが期待されており、社会利用拡大に向けた取組が求められている。政府は、 「デジタル田\n園都市国家構想総合戦略(2023改訂版) 」において、自動運転による地域交通を推進する観点か\nら、関係府省庁が連携し、地域限定型の無人自動運転移動サービスを2025年度目途に50か所程\n度、2027年度までに100か所以上で実現する目標を掲げている。また、 「デジタルライフライン\n全国総合整備計画」 (経済産業省)においては、アーリーハーベストプロジェクトの1つに自動運\n転サービス支援道の設定が挙げられており、2024年度に新東名高速道路の一部区間等において\n100km以上の自動運転車優先レーンを設定し、自動運転トラックの運行の実現を目指すほか、\n2025年度までに全国50箇所、2027年度までに全国100箇所で自動運転車による移動サービス提\n供が実施できるようにすることを目指すとされている。この計画の実現に向け、警察庁、総務省、\n国土交通省等関係省庁が連携して取組が行われているところである。\n 2 \u07b2\nデジタルテクノロジーを国民一人ひとりが安心して活用していくためには、サイバーセキュリ\nティの確保も重要となる。近年、国際情勢の複雑化により、我が国を含む各国において政府機関等'),
Document(metadata={'source': '00zentai_part1.pdf', 'page': 78}, page_content='ティの確保も重要となる。近年、国際情勢の複雑化により、我が国を含む各国において政府機関等\nを狙ったサイバー攻撃が多く発生している状況にあることに加え、生成AI等のテクノロジーの登\n場により、利便性が増す一方で、それらの悪用によるリスクの拡大も指摘されている。\n従来、サイバーセキュリティは主にシステムの可用性や機密性を確保する、つまり、システムが\n停止しないようにすることや、データの窃取や漏洩を防ぐことに焦点が当てられ、ビジネスの連続\n性や利便性を確保してきた。これとともに、近年では情報の改ざん、偽・誤情報の拡散など、情報\n*4\t NEDO,「 「ロボット分野における研究開発と社会実装の大局的なアクションプラン」を公表\n\t ―社会実装と次世代技術開発の両輪で、社会課題の解決を推進―」 ,\n\t <https://www.nedo.go.jp/news/press/AA5_101639.html>\n65\n令和6年版\u3000情報通信白書\u3000第Ⅰ部ୈ\n4\nষデジタルテクノロジーの課題と現状の対応策第3節 その他デジタルテクノロジーに関する議論の動向\n情通R6_Ⅰ-4-03_第Ⅰ部第4章3節.indd 65情通R6_Ⅰ-4-03_第Ⅰ部第4章3節.indd 65 2024/06/24 16:54:262024/06/24 16:54:26'),
Document(metadata={'source': '00zentai_part1.pdf', 'page': 79}, page_content='の中身の完全性、信頼性に関わる様々なリスクについても顕在化している。偽情報やディープフェ\nイクの拡散、情報の改ざんや流出は、社会の信頼を揺るがし、社会の安定性や国家の安全保障にも\n影響を及ぼすだけでなく、政治的なプロセスや意思決定において深刻な影響を及ぼし、民主主義の\n健全性にとっても大きな脅威となる可能性がある。\n国家安全保障戦略(2024年12月)において「民間の重要インフラ等への国境を越えたサイバー\n攻撃、偽情報の拡散等を通じた情報戦等が恒常的に生起し、有事と平時の境目はますます曖昧に\nなってきている」 と指摘するように、サイバー空間を巡る脅威はますます深刻化しており、いわば\n「常時有事」の状況となっているとも言える。\nこうした状況を踏まえ、さらなる情報通信ネットワークの安全性・信頼性の確保、サイバー攻撃\nへの自律的な対処能力の向上、偽・誤情報への対応、国際連携の推進、普及啓発の推進に向けた取\n組が進められているところである*5。\n*5\t 国家安全保障戦略(2024年12月) ,<https://www.cas.go.jp/jp/siryou/221216anzenhoshou/nss-j.pdf>\n66\n令和6年版\u3000情報通信白書\u3000第Ⅰ部ୈ\n4\nষデジタルテクノロジーの課題と現状の対応策その他デジタルテクノロジーに関する議論の動向 第3節\n情通R6_Ⅰ-4-03_第Ⅰ部第4章3節.indd 66情通R6_Ⅰ-4-03_第Ⅰ部第4章3節.indd 66 2024/06/24 16:54:262024/06/24 16:54:26')]
テキストをベクトル表現に変換する埋め込みモデルを読み込みます。
日本語性能が高く、無料で使える埋め込みモデル「intfloat/multilingual-e5-large」を指定しています。
from langchain_huggingface import HuggingFaceEmbeddings
embedding = HuggingFaceEmbeddings(model_name="intfloat/multilingual-e5-large")
リトリーバーは、クエリをもとにベクトルデータベースから関連情報を検索・取得する機能です。
リトリーバーの実装には、GPUを活用した高速ベクトル検索が可能な「FAISS」ライブラリを使用しています。
from langchain.vectorstores import FAISS
vectorstore = FAISS.from_documents(doc_splits, embedding)
retriever = vectorstore.as_retriever(search_type="similarity", search_kwargs={"k": 5})
question = "生成AIの活用例は?"
retriever.invoke(question)
FAISS.from_documents(splits, embedding)
ベクトル検索用のインデックスを作成しています。インデックスはDBのテーブルのような概念です。
vector.as_retriever()
インデックスからRetriverを作成しています。
search_type=”similarity”
質問の類似度にもとづいて検索する指定です。
search_kwargs={“k”: 5}
検索結果として上位5件の類似ドキュメントを返す設定です。
retriever.invoke()
クエリをRetrieverに渡し、類似したドキュメントを検索します。
「生成AIの活用例は?」というクエリに対して、リトリーバーが返した結果
[Document(metadata={'source': '00zentai_part1.pdf', 'page': 88}, page_content='σδλϧςΫϊϩδʔͷਁಁ\nୈ2અ ঢ়ɾ৽ͨͳைྲྀ\n前節でみたとおり、生成AIをはじめとするデジタルテクノロジーは、現時点では国内の利用が\n進んでいないものの、潜在的な利用意向が存在し、将来サービス・コンテンツとともに活用が進む\n可能性を秘めている。本節では、企業等における生成AI活用促進に資する先進事例と、今後社会\n課題解決等が期待されるデジタルテクノロジーの活用事例等を概観する。\n 1 Λ୲͏ੜ\u0a52 AI\n本項では、企業や公共団体で導入・活用が始まっている生成AIについて、導入・活用の実態と\nリスクに対する考え方、健全な活用促進に向けた取組の工夫等についてとりまとめた。\n 1 企業・公共団体等における生成AI導入動向\n生成AIの導入を積極的に推進する企業等においては、AIのリスクや社会的影響を評価・検証し\nながら、活用を促進するための体制構築やルール整備等の取組を進めている。\nア\u3000NTTデータ\nNTTデータは、2019年5月に「NTTデータグループAI指針」を策定、同社のAIガバナンス\nの在り方を検討するため2021年4月に社外の有識者からなる「AIアドバイザリーボード」を設置\nするなど、従来から公平かつ健全なAI活用による価値創造と持続的な社会の発展に向けた活動を\n実施してきたが、さらに、ビジネスに影響するAIの不適切な利用による事業リスクに適切に対処\nし、お客さまに安全なAIシステムの提供を実現するための組織として、AIガバナンス室を2023'),
Document(metadata={'source': '00zentai_part2.pdf', 'page': 69}, page_content='億ドルと大幅な拡大が見込まれている。背景には、GoogleのBard、OpenAIのChatGPT、\nMidjourney, Inc.のMidjourneyなど、近年の生成AIツールの爆発的な普及がある。生成AIは文\n章だけではなく、画像、音声、動画など様々な種類のコンテンツ生成が可能で、その応用範囲は広\nい。例えば、マーケティング、セールス、カスタマーサポート、データ分析、検索、教育、小説や\n法律等、多くの分野で活用されている。さらに、コンピュータプログラムやデザインの生成も可能\nであり、人手不足対策や生産性向上の目的でも利用されている(図表Ⅱ-1-9-3)。\n*1\t AI機能を利用するためのハードウェア、ソフトウェア・プラットフォーム及びAIシステム構築に関わるITサービス\n*2\t https://www.statista.com/statistics/1365145/artificial-intelligence-market-size/\n*3\t https://www.idc.com/getdoc.jsp?containerId=prJPJ52070224\n163\n令和6年版\u3000情報通信白書\u3000第Ⅱ部ୈ\n1\nষIII\nIIIII第9節 AI の動向\n情通R6_Ⅱ-1-09_第Ⅱ部第1章9節.indd 163情通R6_Ⅱ-1-09_第Ⅱ部第1章9節.indd 163 2024/06/21 9:45:222024/06/21 9:45:22'),
Document(metadata={'source': '00zentai_part1.pdf', 'page': 89}, page_content='さらに、これらの知見を活かし、福祉の相談窓口で相談対応を行う職員向けの「AI相談パート\nナー」なども導入している。\n 2 各領域・業界における活用動向\nア\u3000コンテンツ制作等における活用(サイバーエージェント)\nメディアやゲーム、音楽などのコンテンツ制作分野においては、コンテンツそのものの制作や制\n作における補助として生成AIを利用することで、労働力不足の中で、クリエイターがより効率的\nにコンテンツを作成することが可能となる。\nサイバーエージェントでは、2023年5月に、AIを活用した広告クリエイティブ制作を実現する\n自社開発の「極予測AI」に、ChatGPTを活用したキャッチコピー文案自動生成機能を実装した。\nこれにより、広告画像の内容を考慮しながら、従来よりも詳細なターゲットに合わせて広告コピー\nを作り分けることができるようになった*4。また、 2023年12月にはAIを活用した商品画像自動生\n成機能を開発し、あらゆるシチュエーションと商品画像の組合せを大量に自動生成することが可能\nになった。さらに生成した商品画像と効果予測AIを活用し、予測を行いながらより効果の高い商\n品画像の提供を実現するとしている*5(図表Ⅰ-5-2-1)。\n図表Ⅰ-5-2-1 極予測AI\u3000広告コピー自動生成機能\n(出典)サイバーエージェント「極予測AI、大規模言語モデルを活用した広告コピー自動生成機能を実装」*6\n*6\nイ\u3000顧客接点における活用(アフラック生命保険)\n顧客サービス分野においては、利便性向上のための利用者向けサポートと、利用者に対峙するス'),
以下省略
RAGチェーンの構築
PDFリトリーバーの取得情報から生成をするRAGチェーンを構築していきます。
与えられたコンテキストと質問に基づいて回答を生成するためのプロンプトテンプレートを定義します。
from langchain_core.prompts import PromptTemplate
prompt = PromptTemplate(
template="""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
あなたは質問回答のアシスタントです。
取得したのコンテキストを使用して質問に答えてください。
コンテキストに書かれていない場合には、分からないと答えてください。
\n\n
コンテキスト:{context}
質問: {input}
<|eot_id|><|start_header_id|>assistant<|end_header_id|>""",
input_variables=["context","input"],
)
PromptTemplate()
"<|begin_of_text|><|start_header_id|>system<|end_header_id|>
: システムメッセージを区切るマーカーで、システムからアシスタントへの指示を含む部分を示します。
{context}
: 質問に答えるために使用するコンテキスト(外部情報)が動的に挿入される部分。
{input}
: ユーザーからの質問が動的に挿入される部分。
<|eot_id|><|start_header_id|>assistant<|end_header_id|>
: テンプレートの終了を示し、これ以降にアシスタントが回答を書くための区切りとして使用されます。
input_variables=["context", "input"]
は、テンプレート内で動的に挿入される変数{context}
と {input}
を指定しています。
LLMとプロンプトテンプレートを使用して、質問に対する回答をするためのチェーンを構築します。
from langchain.chains.combine_documents import create_stuff_documents_chain
question_answer_chain = create_stuff_documents_chain(llm, prompt)
create_stuff_documents_chain()
llm
と prompt
を使って、質問に対する回答を生成するためのチェーンを作成します。
リトリーバーと質問回答チェーンを組み合わせて、情報を検索して回答を生成するためのRAGを構築します。
from langchain.chains import create_retrieval_chain
rag_chain = create_retrieval_chain(retriever, question_answer_chain)
create_retrieval_chain()
リトリーバーretriever
と回答を生成するチェーンquestion_answer_chain
を統合して、rag_chain
を作成します。
PDFから回答するRAGに『情報通信白書』について聞いてみる
PDFから回答するRAGを使って、『情報通信白書』について質問してみます。
results = rag_chain.invoke({"input": "生成AIブームの技術的要因を3つ教えて下さい"})["answer"]
results
“生成AIブームの技術的要因を3つ教えて下さい”。
‘生成AIブームの技術的要因として、以下の3つが挙げられます。\n\n1. ディープラーニング(深層学習):2010年代後半から始まったディープラーニングの研究成果が実用化され、自然言語処理や画像認識などの分野で大きな進展を遂げました。生成AIはこの技術を基盤としています。\n\n2. 大規模言語モデル(LLM):2020年代に入ってから急速に発展したLLMは、膨大な量のテキストデータを学習し、高度な言語理解や生成能力を実現しました。LLMは生成AIの基盤技術として広く使用されています。\n\n3. マルチモーダル処理:生成AIは、テキスト、画像、映像など多様な形式(マルチモーダル)のアウトプットが取得できるようになりました。これを可能にしたのは、コンピュータビジョンや音声認識などの技術の進展です。’
rag_chain.invoke({"input": "生成AIの市場規模は?"})["answer"]
生成AIの市場規模は?
‘生成AIブームの技術的要因として、以下の3つが挙げられます。\n\n1. ディープラーニング(深層学習):2010年代後半から始まったディープラーニングの研究成果が実用化され、自然言語処理や画像認識などの分野で大きな進展を遂げました。生成AIはこの技術を基盤としています。\n\n2. 大規模言語モデル(LLM):2020年代に入ってから急速に発展したLLMは、膨大な量のテキストデータを学習し、高度な言語理解や生成能力を実現しました。LLMは生成AIの基盤技術として広く使用されています。\n\n3. マルチモーダル処理:生成AIは、テキスト、画像、映像など多様な形式(マルチモーダル)のアウトプットが取得できるようになりました。これを可能にしたのは、コンピュータビジョンや音声認識などの技術の進展です。’
rag_chain.invoke({"input": "日本における生成AIの導入動向を教えて下さい。"})["answer"]
日本における生成AIの導入動向を教えて下さい。
‘民向けアンケート結果です。\n\n日本では、生成AIを「使っている」と回答した割合は9.1%で、他国と比べて低い結果となりました。使っていない理由としては、「使い方がわからない」や「自分の生活には必要ない」が多く挙げられていました。’
rag_chain.invoke({"input": "生成AIの課題は?"})["answer"]
生成AIの課題は?
‘学習することで、個々のユーザーにとっては望む情報を得ることができる一方で、生成AI自身が抱える制約事項や社会的・経済的な課題も多く存在します。具体的には、以下のような課題が挙げられます。\n\n1. 偽・誤情報の流通・拡散等の課題\n2. AI技術を用いて合成された音声、画像、動画コンテンツによる情報操作や犯罪利用の増加\n3. 個人情報やプライバシーの保護の必要性\n4. 教育現場での使用に際しての適切な規制や教員研修等の必要性’
rag_chain.invoke({"input": "各業界における生成AIの活用事例を3つ教えて下さい"})["answer"]
各業界における生成AIの活用事例を3つ教えて下さい
‘以下は、各業界における生成AIの活用事例です。\n\n1. 保険代理店向けサービス(アフラック生命保険)\nロールプレイング研修「募集人教育AI」で、営業担当者が保険セールスの会話の中で挙げるべきキーワードを盛り込んでいるかどうかなどを分析して評価する仕組みです。将来的には実際の顧客の情報を取り込んで、営業活動を疑似体験できるところまで機能の発展を見込む。\n\n2. 情報サービス(NTTデータ)\n生成AIは要件定義、仕様生成、プログラミング、テストなどのあらゆる工程での活用が見込まれています。製造工程やテスト工程における利用が現時点でメインとなっており、新規ソースコードの生成や古いプログラム言語を新しいプログラム言語に書き換えるモダナイゼーションに活用する。\n\n3. 医療・介護(シーディーアイ)\n個々の利用者に合わせたケアプランの最適化や業務報告の自動化、利用者とのコミュニケーションの改善、研修や教育ツール等としての活用が見込まれています。高齢者人口の増加により需要が増し、生産年齢人口の急減に伴い労働力不足が課題となるこの分野においては、生成AIがより自然な言語で職員の業務上の相談相手となる可能性を秘めている。’
生成AI・LLMのコストでお困りなら
GPUのスペック不足で生成AIの開発が思うように進まないことはありませんか?
そんなときには、高性能なGPUをリーズナブルな価格で使えるGPUクラウドサービスがおすすめです!
GPUSOROBANは、生成AI・LLM向けの高速GPUを業界最安級の料金で使用することができます。
インターネット環境さえあれば、クラウド環境のGPUサーバーをすぐに利用可能です。
大規模な設備投資の必要がなく、煩雑なサーバー管理からも解放されます。