見出し画像

限りなく商用に近いローカルLLM生成AI環境

[前回までのあらすじ]
さて前回は企画部門なのに「商用環境で動いているRAG型ローカル生成AIシステム環境のソフトウェア構成を知りたい」と言われた。窮地に追い込まれてしまった小野谷静が思いついた策とは?

逆は真なり

さて世間には、「押してダメなら引いてみよ」という諺がある。前回記事のイラストを描いてくれた子供によると「推してダメなら轢いてしまえ」らしいけれども、仕事だから投げ捨てることはできない。
結局は、「押して、押して、押しまくる」という力技に頼ることになった。

今にして思えば、芋づる式を採用したとも言えるかもしれない… いずれにせよ、結果オーライである。
(残念ながらMicrosoft Copilotに相談するのは妙手かと思ったけれども、成果を得ることはできなかった)

で、具体的なソフトウェア構成を紹介した事例が見つからないという事実は変えることができないので、ともかくそれと似たような構成の検証システムを探してみることにした。

そうやって見つけたのが、某社のホワイトペーパーである。RAGの検証時にMlvusというベクトルDBを自慢していた。そこで某社をサイト指定して検索をかけてみたら、プレスリリース(報道資料)でもMlvusに言及していた。ちなみに金融向けシステムではリアルタイム処理に優れる別ベクトルDBを使って検証していた。

「そういえば今まで使っていたのは、MetaのFaissだったよな」と思いながらMlvusで検索をかけてみたら、たしかに人気のあるベクトルDBらしい。その一方でNVIDIAとVector Databaseで検索をかけてみたら、次の2ページがヒットした。

そして日本語ページの方には、次のような記述があった。

Vector Database は MilvuspgvectorFAISS が使用できます。Milvus、FAISS は GPU サポートがあるため、GPU を活用した Vector DB 検索ができます。

GenerativeAIExamples と NVIDIA API カタログを用いて Retrieval Augmented Generation を活用した LLM チャットボットを作成

ざっくり読むと、LLMモデルとベクトルDBは何らかの関係性があるらしい。それではMilvus側はどうなっているのかと、改めてWebサイトに目を通してみた。そうしたらModelsという項目があり、さらにその下にEmbeddingsとRerankersという項目があった。
概要欄を上から眺めてみると、openaiやsentence-transformerは見覚えがある。そしてNVIDIA NeMo Retrieverとspladeでは何もヒットしなかったけれども、その次にあるbge-m3というのを検索エンジンで試してみたら、"当たり" だった。

NVIDIAのドキュメントは何がどこで提供されているのかわかりにくいけれども、少なくともこのページを見るとNVIDIA NeMo Retrieverはbge-m3をサポートしているらしい。多国語対応で、日本語も強いらしい。
その一方でNVIDIAとembeddingで試してみた時には、Mecabが登場した。これも懐かしい名称だ。

ちなみに技術的には全く追いつけないけれどもlangchainとMecab/bge-m3で検索をかけてみると、いずれも有望っぽい。
さてここで何か一押し... と考えてみて、IntelのOpenVINOを思い出した。あれもRAG環境を提供していたな… とOpenVINOとMecab/bge-m3を試してみたら、なんとbge-m3がLangchainサンプルを表示してくれた。

RAG pipeline

「インテルわかってる!」と言いたいところである。ちなみにベクトルDBにはFaissを使用している。おそらく提供スクリプトに記述されているLLMモデルとの関係だろう。利用可能なrerank modelも記述されている… というか、これは本番環境で使うために提供されているように見える。

試しにbge-m3と本番環境で検索したら、Qiitaページがヒットした。

ちなみにbge-m3とIBMを組み合わせてみたら、次のページを見つけることができた。どうやらMlvusとbge-m3の組み合わせの本番環境を想定しても良さそうだ。

https://cloud.ibm.com/docs/watsonxdata?topic=watsonxdata-release&locale=ja

Release notes for watsonx.data (最終更新日時 (Last updated) 2024-11-15)

しめくくり

と、いう次第であり、多分に今年の幸運を全て使い果たしたような気もするけれども、もう12月中旬だから気にしなくても良いだろう。

ともかく結果オーライであって、実際に商用で採用されているローカル環境(オンプレミス環境)に相当近い構成を見つけることができたと思う。そして同時に、なんとなく各々の組み合わせに必要となる条件が存在することも見えて来た。

本当は網羅的に解説したマニュアルなどが存在すれば嬉しいけれども、流石にそれを無償で公開するのは商業的にあり得るか微妙であるような気がする。それに生成AIとかLLMは時々刻々と変化しており、常に改訂を実施するほどの手間はかけるのは大変だろう… 少なくとも自分には無理だ。

そんな訳でインテルに多大な感謝をしつつ、無事にミッションコンプリートと相成った訳である。有益な情報を提供して下さる方々には、ひたすら感謝するばかりである。

それでは今回は、この辺で。ではまた。

P.S.
GPU御三家のAMDはどうかと調べてみたら、こちらはLM Studioの構成例ページに遭遇した。Intelみたいにスクリプトを提供するのは大変だから、簡単に利用できるLM Studioを紹介しているというところだろうか。

--------
 記事作成:小野谷静

いいなと思ったら応援しよう!