現代の旅行におけるLLMの役割:チャンスと今後の課題

大規模言語モデル(LLM)は、業界全体のイノベーションの重要な原動力となっている。LLMは、システムが人間のように自然言語を理解し、生成し、対話することを可能にする。旅行体験のためのオンライン・マーケットプレイスであるGetYourGuide(GYC)は、LLMsを利用して観光分野の新しい開発を進めてきた。
最近Zillizが主催したBerlin Unstructured Data Meetupで、GetYourGuideの機械学習エンジニアであるMeghna Satishは、LLMを使った彼らの旅についての洞察を共有した。彼女は、彼らが構築した製品、彼らの課題、そしてLLMが顧客体験とユーザー・インタラクションを改善することによって旅行プラットフォームをどのように再構築したかについて語った。
このブログでは、LLMがどのようにMilvusベクトル・データベースと統合され、幻覚のような一般的な問題に対処できるかを探ります。詳しくは、YouTubeで彼女の講演の完全リプレイをご覧ください。
GYGはどのようにLLMを使用してサービスを改善しているかLLMはほぼすべての業界を変革してきたが、観光業界も例外ではない。旅行サービスと体験のためのオンライン・マーケットプレイスであるGetYourGuide(GYG)は、顧客体験を向上させ、業務を合理化し、より効率的なサービスを提供するためのLLMの力を認識している。
コンテンツ翻訳とローカライゼーション
GYGにおけるLLMの主な用途の一つは、コンテンツの翻訳とローカライゼーションである。言語の壁を取り除くことで、LLMは記事、ホテルの説明、レビューを含む旅行情報のリアルタイム翻訳を可能にし、異なる地域のユーザーが母国語でコンテンツを理解できるようにします。このローカライズされたアプローチは、各ユーザーに適切でアクセスしやすい情報を提供することで、エンゲージメントを促進します。
GYG は、ChatGPT が GYG のトーン・オブ・ボイスに沿った高品質の翻訳を提供するため、ChatGPT に翻訳を依頼しています。しかし、ChatGPTのトレーニングデータの分布は英語に大きく傾いており、ソースの約50%が英語、6%がスペイン語、32%がヨーロッパ言語、18%がアジア言語となっています。潜在的なバイアスに対抗し、精度を確保するために、GYGはChatGPT翻訳とポスト編集用の追加ディープラーニング・ニューラルネットワークを組み合わせたハイブリッドアプローチを採用し、よりバランスの取れた、文化的に敏感なローカライズを実現している。
コンテンツ生成とカスタマーサポート
GYGはまた、LLMを使用して、AIによるツアー説明から包括的なデスティネーションガイドや旅行ブログまで、コンテンツ作成を効率化している。コンテンツ生成を自動化することで、LLMはGYGのプラットフォームを常に新鮮で魅力的なものにし、旅行者に最新情報を提供すると同時に、コンテンツチームの貴重な時間を解放します。
コンテンツの生成に加え、LLMは自動化されたFAQやマルチターン会話を通じて大量の問い合わせに対応することで、カスタマーサービスをサポートしている。これにより、人的サポートチームの需要が減り、より複雑なケースに集中できるようになると同時に、運用コストを削減することができます。LLMを活用した回答により、顧客は迅速かつ正確な回答を受け取ることができ、全体的なユーザー・エクスペリエンスが向上します。
将来の可能性パーソナライゼーション
GYGではまだ実装されていないが、LLMにはパーソナライゼーションの大きな可能性がある。LLMは、検索履歴、予約パターン、インタラクションの好みなどのユーザーデータを活用することで、個々のユーザーに合わせたコンテンツを作成することができる。これには、パーソナライズされた旅程、おすすめのアクティビティ、ユーザー独自の旅行興味に沿ったカスタマイズされた割引などが含まれる。
GYGにおけるLLM活用の課題
初期翻訳とコンテンツ生成の後、チームはLLM、特にChatGPTをローカリゼーションコンテンツのポスト編集に使用する際にいくつかの課題に遭遇しました:
幻覚**](https://zilliz.com/glossary/ai-hallucination):クエリに関する具体的な情報が不足している場合、ChatGPTは時に不正確な、あるいは捏造された詳細を生成します。例えば、翻訳時に原文にない名前や場所、出来事を捏造することがあり、翻訳の品質を損なう不正確さをもたらします。また、ChatGPTは、翻訳タスクに厳密に従うのではなく、質問に答える傾向があり、意図しない内容につながります。
プロンプト漏れ**:ChatGPTは、元のプロンプトにない余分な文字や情報を追加することがあります。この "漏れ "は意図された出力を妨げ、追加のチェックと編集を必要とします。
役割の一貫性**:ChatGPTは割り当てられた役割を維持できないことがあります。プロンプトが期待されたトーンや内容から少し外れると、ChatGPTは指示に厳密に従うのではなく、タスク自体に関するコメントで応答することがあります。これは、翻訳など、タスクに集中することが重要で一貫性が要求されるタスクの妨げになります。
このような課題に対処するには、正確性と妥当性を確保するために人間の監視が必要である。しかし、小規模から中規模のアプリケーションであれば、人間の介入によってこれらの問題を効果的に管理できるかもしれない。毎日何十万人ものユーザーが利用するような大規模なシステムでは、人手による監視は現実的ではありません。
ここでは、解決策としてRAG(Retrieval-Augmented Generation)を提案する。LLMに外部のデータソースを与えることで、RAGは幻覚を緩和し、そうでなければ人間の入力が必要となる知識のギャップを埋めることができる。以下のセクションでは、RAGがどのように機能するのか、そしてなぜ ベクトルデータベースがこのアプローチをスケーラブルで効果的なものにするのかについて述べる。
LLMの幻覚を軽減するための検索補強型生成(RAG)
RAGはLLMの幻覚を軽減するための強固なソリューションであり、特にクエリがモデルの学習データ以外の特定の知識を必要とする場合に有効である。例えば、LLMに専有データについて質問すると、不正確な回答を返す可能性が高い。RAGは、関連するコンテキストを取得してLLMに送り、LLMがより正確に回答できるようにすることで、この問題に対処します。
標準的なRAGのセットアップは、LLM(ChatGPTのような)、ベクトルデータベース(MilvusやそのマネージドバージョンであるZilliz Cloudのような)、そして埋め込みモデルを組み合わせています。開発者は、LlamaIndex、LangChain、DSPy、またはrerankersのような追加のツールを統合することで、さらに高度なRAGシステムを構築することができる。これらはそれぞれ、より正確で関連性の高いアウトプットのために、検索、再ランキング、またはその他の特殊なタスクを強化するように調整されている。
図- RAGワークフロー.png](https://assets.zilliz.com/Figure_RAG_workflow_5bfbcccddf.png)
RAGがどのように機能するかは以下の通りである:
ベクトル化**:入力クエリを直接LLMに送る代わりに、まず埋め込みモデルがクエリと追加知識ソースをそれぞれベクトル埋め込みにエンコードする。
ベクトル保存**:これらのベクトル埋め込みは、MilvusやZilliz Cloudのようなベクトルデータベースに格納される。
ベクトル類似検索**](https://zilliz.com/learn/vector-similarity-search):ベクトルデータベースは類似検索を実行し、ユーザのクエリのコンテキストとセマンティクスに一致するトップkの結果を特定する。
LLMにコンテキストを渡す**:ベクトル検索で上位にマッチした結果は、元のクエリとともにLLMに入力される。これにより、LLMに関連する最新の情報が提供され、幻覚を減らし、応答精度を向上させるのに役立つ。
最終レスポンスの生成**:LLMは、事前に訓練された知識と検索されたコンテキストを組み合わせて、より正確で十分な情報に基づいた応答を生成します。
このアプローチにより、LLMは、トピックに関する直接的なトレーニングが不足している場合でも、複雑で特殊な質問を効果的に処理することができます。
RAG vs. モデルの微調整
RAGとファインチューニングはどちらもLLMを向上させますが、その方法は異なります。RAGは、外部ソースから関連する最新の情報をリアルタイムで取り込むことで回答を充実させるため、情報が頻繁に変更されたり、幅広いトピックにまたがるような場合に最適です。このアプローチにより、LLMは大規模な再トレーニングを行うことなく、多様なクエリーや動的なクエリーを処理し、関連性を維持し、コストを削減することができる。対照的に、ファインチューニングは、特定のデータセットに対する重みを調整することで、モデルの知識を永続的に更新する。しかし、ファインチューニングはリソースを大量に消費し、急速に変化する情報への適応性が低い。
結局のところ、RAGは外部データに即座にアクセスする必要があるスケーラブルで適応性の高いタスクに最適であり、微調整は組み込まれた専門知識から恩恵を受ける特殊なアプリケーションに最適である。多くのユースケースにおいて、RAGの柔軟性とコスト効率は、従来のファインチューニングよりも魅力的な選択肢となっている。
しかし、RAGとファインチューニングを相互に排他的なものとして捉えるのではなく、補完的な戦略として捉えた方が有利な場合が多い。包括的なアプローチには、LLMを微調整してドメイン固有の言語に対する理解を向上させ、アプリケーションの特定のニーズを満たす出力を確実に生成することが含まれる。同時に、RAGを使用することで、外部ソースから引き出された最新の適切な情報をモデルに提供し、回答の質と関連性をさらに高めることができます。この組み合わせ戦略により、両方の技術の長所を生かすことができ、一般的な要件と特殊な要件の両方を満たす、より堅牢で効果的なソリューションが実現します。
要約
LLMは旅行業界に大きな変化をもたらし、GetYourGuide(GYG)のような企業が効率的な顧客体験を提供することを可能にしている。言語翻訳やコンテンツ生成などのユースケースを通じて、GYGはプラットフォームとユーザーとのやり取りを強化し、サービスをより利用しやすくしている。
ChatGPTとディープラーニング・ニューラルネットワークを使用することは、言語翻訳やその他多くのタスクに効果的ですが、特に幻覚など、独自の課題が伴います。RAGは、Milvusのようなベクトルデータベースから外部の知識をLLMに接続し、より正確な出力を得ることで、そのような問題に対処するアプローチとして広く採用されている。
おすすめリソース
RAGアプリ構築のベストプラクティス ](https://zilliz.com/blog/best-practice-in-implementing-rag-apps)
Milvus、LangChain、OpenAIを使った多言語RAGの作り方 ](https://zilliz.com/blog/building-multilingual-rag-milvus-langchain-openai)
Gemini、BGE-M3、Milvus、LangChainを使ったマルチモーダルRAGの構築 ](https://zilliz.com/learn/build-multimodal-rag-gemini-bge-m3-milvus-langchain)
Claude 3.5 Sonnet、LlamaIndex、Milvusを使ったエージェント型RAG ](https://zilliz.com/blog/agentic-rag-using-claude-3.5-sonnet-llamaindex-and-milvus)
MilvusでAIアプリを作る: チュートリアルとノートブック](https://zilliz.com/learn/milvus-notebooks)
あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
ベクトルデータベースが非構造化データに重要な理由](https://zilliz.com/resources/whitepaper/why-vector-db-matters-for-unstructured-data)
Milvusパフォーマンスレポート|Zilliz](https://zilliz.com/resources/whitepaper/milvus-performance-benchmark)
読み続けて

Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.

Vector Databases vs. Document Databases
Use a vector database for similarity search and AI-powered applications; use a document database for flexible schema and JSON-like data storage.

Deploying a Multimodal RAG System Using vLLM and Milvus
This blog will guide you through creating a Multimodal RAG with Milvus and vLLM.