🐥

【LangChain】長文を分解して近傍検索してみる

2024/02/20に公開

前回までは「リサの性別は女性です」とか「どこにお住まいですか?」という短文を使って、文の近傍検索を試してみました。

ただ、実際にRAGで文章生成をする時は、ある程度の長さのある記事やドキュメントであることが多いと思います。
そのような場合は長文を分解して近傍検索なりRAGで文章生成する必要があります。

そこで、長文を分解する方法について勉強しました。

modelについて

前回まではembeddingにおいてはデフォルトのモデル(text-embedding-ada-002)を使っていました。

# Openai.clientを使う場合
from openai import OpenAI

client = OpenAI(
    api_key= "************"
)

response =client.embeddings.create(
    input = somedocument, model='text-embedding-ada-002'
)

# OpenAIEmbeddingsを使う場合
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings

vectorstore = FAISS.from_texts(
    texts = target_texts,
    embedding=OpenAIEmbeddings()
)

デフォルトモデルである'text-embedding-ada-002'は2022年12月にopenAIからリリースされたものです(chatGPTで沸き立った頃ですよね)

その後もさまざまなモデルがリリースされ、2024年1月にはopenAIから新たなモデルである'text-embedding-3'がリリースされました。

ちなみにtext-embedding-3については、以下の記事でも検証されています。
https://weel.co.jp/media/text-embedding-3

今回、私の方でも長文を用いて、text-embedding-3を試してみようと思います。

google colabセットアップ

!python --version
#-> Python 3.10.12

!pip install openai
import os
os.environ["OPENAI_API_KEY"] = "*****"

from openai import OpenAI
client = OpenAI()

サンプルテキスト

langchainチュートリアルでは英語の記事がサンプルになっていますが、ぶっちゃけわかりにくいので日本語のサンプルを使います。

wikipediaで歌手のAdoさんの記事を使います。
adaと見た目が似ている。ただそれだけの理由です。
(記事内容が変わるかもしれないので、執筆時点での記事を貼りつけときます)

クリックで展開
ado_wiki = """メジャーデビュー以降
2020年
10月15日にユニバーサルミュージックよりメジャーデビューすることを発表すると[12]、同月23日にボカロPのsyudou書き下ろしの「うっせぇわ」を配信限定リリース。

自身のYouTubeチャンネルで公開された同作のミュージックビデオは、同年11月14日時点で総再生回数500万再生を達成。その後も多くの歌い手や著名人が楽曲をカバーするなど、翌年にかけて反響が広がった。2022年5月時点で総再生回数は2億回を超えている[13]。

12月24日に2作目のシングルとなる「レディメイド」を配信限定リリース。作詞作曲はボカロPのすりぃが担当した[14]。

2021年
1月22日にテレビ朝日系列「ミュージックステーション」で電話インタビューが放送され、テレビ初出演となる[15]。同年1月23日には「うっせぇわ」が総再生回数4000万回を達成[16]。

2月14日に3作目のシングルとなる「ギラギラ」を配信限定リリース。作詞作曲はボカロPのてにをはが担当した[17]。絵師は沼田ゾンビである。2月18日にはYouTubeチャンネル登録者が100万人を突破した[18]。

3月15日付のBillboard Japan Hot 100にて「うっせぇわ」が自身初となる総合1位を獲得[19]。3月20日に「うっせぇわ」がYouTubeにてMV再生回数が1億回を突破した[20]。公開から148日での1億回再生到達は歴代7位の記録となった。3月29日付のBillboard JAPANチャートにて、「うっせぇわ」のストリーミング累計再生回数が1億回を突破した。チャートイン17週目での1億回突破は歴代6番目の速さとなり、ソロ歌手としては最年少記録である[21][22]。

4月27日に4作目のシングルとなる「踊」を配信限定リリース。作詞はボカロPのDECO*27が、作曲・編曲はGigaとTeddyLoidが担当した[23]。絵師はかゆかである。

6月14日に5作目のシングルとなる「夜のピエロ」を配信限定リリース[24]。作詞作曲はボカロPのbizが担当した。6月19日にはタマホームの新CM『ハッピーソングAdo篇』に歌唱出演[25]。

7月31日、2021年6月14日に配信された「夜のピエロ」をTeddy Loidがリミックスした「夜のピエロ (Teddy Loid Remix)」を配信限定リリース。また、MVはAdoのイメージディレクターであるORIHARAや「夜のピエロ」のMVを担当したケイゴイノウエ、その他のイラストレーターが手がけ、少女が夜の渋谷を彷徨うものとなっている。

8月12日に6作目のシングルとなる「会いたくて」を配信開始。作詞作曲はみゆはんとボカロPのみきとPが担当した。8月25日公開のBillboard JAPANチャートにて、「踊」のストリーミング累計再生回数が自身2曲目となる1億回を突破[26]、9月22日公開の同チャートで「ギラギラ」のストリーミング累計再生回数が自身3曲目となる1億回を突破した[27]。

10月28日、7作目のシングルとなる「阿修羅ちゃん」を配信限定リリース。作詞作曲はボカロPのNeruが担当した[28]。

12月1日に自身の楽曲「うっせぇわ」が同年の「新語・流行語大賞」の年間トップテンに選出された[29]。12月30日には「第63回日本レコード大賞」にて特別賞を受賞したことを記念し、「うっせぇわ」「踊」「ギラギラ」の3曲を新録し制作されたメドレーMVが番組内で放映された[30]。

2022年
1月26日、ファーストアルバム「狂言」をリリース[31]。4月4日にファーストライブ「喜劇」を自身の夢であったZepp Diver Cityで開催[32]。同日、自身初の公式ファンサイト「Adoのドキドキ秘密基地」を開設[33]。4月6日にサンリオとのコラボキャラクター「アドローザトルマリィ」がSANRIOLABO〜サンリオ研究所〜から誕生したことが公表され、4月29日より池袋でコラボカフェが実施されることが発表された[34]。

8月6日、劇場版アニメ『ONE PIECE FILM RED』にてウタの歌唱キャストを担当。劇中歌を収録したアルバム『ウタの歌 ONE PIECE FILM RED』が8月10日にリリースされた。Apple Musicグローバルチャートにおいては、「新時代」が日本の楽曲として初めて全世界1位にランクインした。

また、アルバムに収録されている全8曲がランクインし、「新時代」「私は最強」「逆光」「ウタカタララバイ」の4曲がトップ10入りを果たす。さらにJ-Popジャンル全体の週間再生回数が上昇し、全世界でのJ-Popの週間再生数が過去最大を記録する大きな貢献をした[35]。8月17日公開のBillboard Japan Hot 100にて、「新時代」「逆光」「私は最強」が総合1位 - 3位を獲得。同一アーティストのTOP3独占は同チャート史上初[36]。

8月11日にさいたまスーパーアリーナでのセカンドワンマンライブ「カムパネルラ」を開催[37]。

10月16日にさいたまスーパーアリーナで10月15日・16日の2日間にわたって開催される『超パーティー2022』の2日目に自身初のフェス出演[38]。10月24日にアメリカのレコード会社であるゲフィン・レコードとパートナーシップを結ぶことを発表した[1]。

11月16日に「第64回日本レコード大賞」にて「新時代」が優秀作品賞を受賞、また2年連続で特別賞を受賞した[39]。12月30日の当日には、Adoが本人として電話出演し、当日公開された「新時代」「逆光」「私は最強」のメドレーは、オケとボーカルが新録の上、放送された。

12月30日にCOUNTDOWN JAPAN 22/23に3日目のEARTH STAGEのトリとして初出演[40]。

2023年
1月10日、全国11会場を回るホール&アリーナツアー「Ado 全国ツアー2023『マーズ』」の開催を発表[41]。

3月16日、東京・ニッポン放送にて2023年度「オールナイトニッポン」パーソナリティ発表記者会見が行われ、Adoが月曜1部パーソナリティを担当する事が発表された。同年4月3日(4日深夜)、レギュラーラジオ番組『Adoのオールナイトニッポン』がスタート[42]。

3月22日、Vaundy提供の新曲「いばら」が「めざましテレビ」(フジテレビ)新テーマソングに採用された[43]。

6月27日、TBSの火曜ドラマ『18/40~ふたりなら夢も恋も~』の主題歌をAdoが担当することになる。主題歌名は「向日葵」[44][45]。

7月11日、上記ドラマの主題歌「向日葵」が配信リリース、同時にMVも公開[46]。

9月6日、ユニバーサル・スタジオ・ジャパンのハロウィンイベント「ハロウィーン・ホラー・ナイト」とのコラボ楽曲「唱」をリリース。楽曲はBillboard Japan Hot 100(9月27日公開チャート)にて、自身3曲目となるチャート首位を獲得した[47]。さらに、オリコン週間ストリーミングランキング(10月2日付)にて、週間再生数1,321万回を記録し、2023年では初のソロアーティストによるストリーミングランキング1位を獲得した。自身の同ランキング1位獲得は、「うっせぇわ」「新時代 (ウタ from ONE PIECE FILM RED)」に続く通算3作目。

10月5日、配信シングル「クラクラ」をリリース。楽曲はTVアニメ「SPY×FAMILY」第2期のOP主題歌に採用された[48]。

12月2日、日本テレビ系『日テレ系音楽の祭典ベストアーティスト2023』に出演し、「唱」「Tot Musica」を歌唱、テレビ番組で初めての生歌唱となった[49]。また、12月31日には第74回NHK紅白歌合戦に出演、京都市・東本願寺の能舞台で「唱」を歌唱した[50]。

人物
「Ado」という名前は、小学生の時、国語の授業で聞いた、狂言の「シテ」と「アド」が由来。響きのかっこよさに惹かれて名乗ったが、主役のシテを支えるのが脇役のアドと知り、自分の曲を聴いてくれる人に代わって戦う存在、誰かの人生の脇役になりたいという意味も後付けで込めている[51][52]。また、英語の「ado」には「骨折り」「騒ぎ」「面倒」という意味があり[53]、「自分に合っている気がする」と語っている[54]。

今までのボカロPや歌い手の顔出しをしないという文化を尊重しており、メディア出演や取材対応の際の顔出しはデビュー当初から一貫して行っておらず[55]、イメージディレクターを務めるORIHARAによるイラストが使われている。「顔出し無し」はライブ出演時やテレビ出演時にも徹底されており、ステージ上に金網で囲まれたケージのようなセットを組んでその中に入り、ステージ背後のスクリーンの明かりをもとに歌唱中のシルエットのみを観客や視聴者に見せるという方法が採られている[49][50][56]。

但し、これまで「顔出し」が皆無だったというわけでは無く、2022年4月4日のワンマンライブで顔出しがあったと報じるメディアがあった[57]ほか、2022年2月5日放送の日本テレビ系『マツコ会議』ではMCのマツコ・デラックスとオンラインで顔出し対談を行っている(放送ではAdoの顔は送出されず)[58]。この時のAdoの印象について、マツコは「(ファンの)願望も含めて、皆さんが素直に感じた姿な気がする」「『想像と違ったんだけど』っていうのがあったら、どうやって動揺を隠そうかと思ってたんだけど、結構安心した」との感想を述べている[59]。

夢はさいたまスーパーアリーナをファンで埋め尽くしてライブを開催すること[60]。2022年8月にはワンマンライブ『カムパネルラ』を開催したことで、夢を実現させた。

自宅のクローゼットに防音材を一面に貼りつけてレコーディングを行い[61]、1人でレコーディングを行うことがある[62]。

憧れの歌い手として、そらる、まふまふ、りぶを挙げている[3]。好きなアーティストには椎名林檎を挙げ、「歌い方や表現の仕方をリスペクトしている」と語っている[63]。歌い方の面では椎名の他にメガテラ・ゼロや倉橋ヨエコなどから影響を受けている[64][58]。

本人曰く「根暗で自信がない」性格[58][65]。通常の歌手では無く「歌い手」の道を選んだのも自分の姿が商品になることに抵抗があったからだという[55]。好きな食べ物は寿司。特にマグロが好物。また、くら寿司の大ファン[66]。ディズニー作品が幼少期から好きで[67]、3歳頃はディズニープリンセスに憧れていた[68]。血液型は不明であるが、自身は「多分O型かと」と述べている[69]。

音楽性
音楽ジャーナリストの柴那典は、Adoは小学生の時にボーカロイドをきっかけとして音楽に出会ったボカロネイティブ世代であり、シンガー(歌い手)とボカロP・イラストレーター・映像作家などのクリエイターがフラットな関係で結ばれ相乗効果をもたらす、新たな音楽シーンが生まれていると評した[70]。"""

ちなみにこのテキストの文字数は4685文字あります。

チャンク分解

RecursiveCharacterTextSplitterを使って分解できます。

!pip install langchain
from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000, chunk_overlap=200
)

all_splits = text_splitter.create_documents([ado_wiki])

上記の設定では、文書を1000文字のチャンクに分割し、チャンク間で200文字が重複します
(チャンクとは分割したテキストのひとかたまりという意味です)

チャンク分けは、パラグラフ的に意味のある分け方ではなく、単純に文字数だけによる分け方であることがわかります(以下コードで読んでみてください)

for i,doc in enumerate(all_splits):
  print(f'--------------------------{i}--------------')
  print(doc.page_content[:500])
  print('・・・')
  print(doc.page_content[500:])

近傍検索する

ここから質問を投げかけて、質問に該当するチャンクを返してもらいましょう。

ちなみに質問は、「ユニバーサル・スタジオ・ジャパンのイベント楽曲は?」とします。
(回答は「唱」が入ってれば良いです)

今回ベクトルストアにはChromaを使います。

from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

vectorstore = Chroma.from_documents(
  documents=all_splits,
  embedding=OpenAIEmbeddings() #デフォルトではtext-embedding-ada-002が設定される
)

まずはmodelにデフォルトのtext-embedding-ada-002を使って検証しましょう。

vectorstore.similarity_search_with_score('ユニバーサル・スタジオ・ジャパンのイベント楽曲は?')

結果は以下の通りです。

[(Document(page_content='メジャーデビュー以降\n2020年\n10月15日にユニバーサルミュージックよりメジャーデビューすることを発表すると[12]、同月23日にボカロPのsyudou書き下ろしの「うっせぇわ」を配信限定リリース。\n\n自身のYouTubeチャンネルで公開された同作のミュージックビデオは、同年11月14日時点で総再生回数500万再生を達成。その後も多くの歌い手や著名人が楽曲をカバーするなど、翌年にかけて反響が広がった。2022年5月時点で総再生回数は2億回を超えている[13]。\n\n12月24日に2作目のシングルとなる「レディメイド」を配信限定リリース。作詞作曲はボカロPのすりぃが担当した[14]。\n\n2021年\n1月22日にテレビ朝日系列「ミュージックステーション」で電話インタビューが放送され、テレビ初出演となる[15]。同年1月23日には「うっせぇわ」が総再生回数4000万回を達成[16]。\n\n2月14日に3作目のシングルとなる「ギラギラ」を配信限定リリース。作詞作曲はボカロPのてにをはが担当した[17]。絵師は沼田ゾンビである。2月18日にはYouTubeチャンネル登録者が100万人を突破した[18]。\n\n3月15日付のBillboard Japan Hot 100にて「うっせぇわ」が自身初となる総合1位を獲得[19]。3月20日に「うっせぇわ」がYouTubeにてMV再生回数が1億回を突破した[20]。公開から148日での1億回再生到達は歴代7位の記録となった。3月29日付のBillboard JAPANチャートにて、「うっせぇわ」のストリーミング累計再生回数が1億回を突破した。チャートイン17週目での1億回突破は歴代6番目の速さとなり、ソロ歌手としては最年少記録である[21][22]。\n\n4月27日に4作目のシングルとなる「踊」を配信限定リリース。作詞はボカロPのDECO*27が、作曲・編曲はGigaとTeddyLoidが担当した[23]。絵師はかゆかである。\n\n6月14日に5作目のシングルとなる「夜のピエロ」を配信限定リリース[24]。作詞作曲はボカロPのbizが担当した。6月19日にはタマホームの新CM『ハッピーソングAdo篇』に歌唱出演[25]。'),
  0.3022838830947876),
 (Document(page_content='メジャーデビュー以降\n2020年\n10月15日にユニバーサルミュージックよりメジャーデビューすることを発表すると[12]、同月23日にボカロPのsyudou書き下ろしの「うっせぇわ」を配信限定リリース。\n\n自身のYouTubeチャンネルで公開された同作のミュージックビデオは、同年11月14日時点で総再生回数500万再生を達成。その後も多くの歌い手や著名人が楽曲をカバーするなど、翌年にかけて反響が広がった。2022年5月時点で総再生回数は2億回を超えている[13]。\n\n12月24日に2作目のシングルとなる「レディメイド」を配信限定リリース。作詞作曲はボカロPのすりぃが担当した[14]。\n\n2021年\n1月22日にテレビ朝日系列「ミュージックステーション」で電話インタビューが放送され、テレビ初出演となる[15]。同年1月23日には「うっせぇわ」が総再生回数4000万回を達成[16]。\n\n2月14日に3作目のシングルとなる「ギラギラ」を配信限定リリース。作詞作曲はボカロPのてにをはが担当した[17]。絵師は沼田ゾンビである。2月18日にはYouTubeチャンネル登録者が100万人を突破した[18]。\n\n3月15日付のBillboard Japan Hot 100にて「うっせぇわ」が自身初となる総合1位を獲得[19]。3月20日に「うっせぇわ」がYouTubeにてMV再生回数が1億回を突破した[20]。公開から148日での1億回再生到達は歴代7位の記録となった。3月29日付のBillboard JAPANチャートにて、「うっせぇわ」のストリーミング累計再生回数が1億回を突破した。チャートイン17週目での1億回突破は歴代6番目の速さとなり、ソロ歌手としては最年少記録である[21][22]。\n\n4月27日に4作目のシングルとなる「踊」を配信限定リリース。作詞はボカロPのDECO*27が、作曲・編曲はGigaとTeddyLoidが担当した[23]。絵師はかゆかである。\n\n6月14日に5作目のシングルとなる「夜のピエロ」を配信限定リリース[24]。作詞作曲はボカロPのbizが担当した。6月19日にはタマホームの新CM『ハッピーソングAdo篇』に歌唱出演[25]。'),
  0.3022838830947876),

上位どころか近傍4番目にも「唱」が入っているチャンクが入っていませんでした。

つづいて、text-embedding-3-smallで近傍検索してみましょう

vectorstore = Chroma.from_documents(
  documents=all_splits,
  embedding=OpenAIEmbeddings(model='text-embedding-3-small')
)

結果は以下の通り。
バッチリ「唱」が入っているチャンクが近傍上位に来ています。
(ただし、入っているチャンクが1.23で入っていないチャンクが1.35と、差が小さいのが気になりますが)

[(Document(page_content='2023年\n1月10日、全国11会場を回るホール&アリーナツアー「Ado 全国ツアー2023『マーズ』」の開催を発表[41]。\n\n3月16日、東京・ニッポン放送にて2023年度「オールナイトニッポン」パーソナリティ発表記者会見が行われ、Adoが月曜1部パーソナリティを担当する事が発表された。同年4月3日(4日深夜)、レギュラーラジオ番組『Adoのオールナイトニッポン』がスタート[42]。\n\n3月22日、Vaundy提供の新曲「いばら」が「めざましテレビ」(フジテレビ)新テーマソングに採用された[43]。\n\n6月27日、TBSの火曜ドラマ『18/40~ふたりなら夢も恋も~』の主題歌をAdoが担当することになる。主題歌名は「向日葵」[44][45]。\n\n7月11日、上記ドラマの主題歌「向日葵」が配信リリース、同時にMVも公開[46]。\n\n9月6日、ユニバーサル・スタジオ・ジャパンのハロウィンイベント「ハロウィーン・ホラー・ナイト」とのコラボ楽曲「唱」をリリース。楽曲はBillboard Japan Hot 100(9月27日公開チャート)にて、自身3曲目となるチャート首位を獲得した[47]。さらに、オリコン週間ストリーミングランキング(10月2日付)にて、週間再生数1,321万回を記録し、2023年では初のソロアーティストによるストリーミングランキング1位を獲得した。自身の同ランキング1位獲得は、「うっせぇわ」「新時代 (ウタ from ONE PIECE FILM RED)」に続く通算3作目。\n\n10月5日、配信シングル「クラクラ」をリリース。楽曲はTVアニメ「SPY×FAMILY」第2期のOP主題歌に採用された[48]。\n\n12月2日、日本テレビ系『日テレ系音楽の祭典ベストアーティスト2023』に出演し、「唱」「Tot\u3000Musica」を歌唱、テレビ番組で初めての生歌唱となった[49]。また、12月31日には第74回NHK紅白歌合戦に出演、京都市・東本願寺の能舞台で「唱」を歌唱した[50]。'),
  1.2735071182250977),
 (Document(page_content='2023年\n1月10日、全国11会場を回るホール&アリーナツアー「Ado 全国ツアー2023『マーズ』」の開催を発表[41]。\n\n3月16日、東京・ニッポン放送にて2023年度「オールナイトニッポン」パーソナリティ発表記者会見が行われ、Adoが月曜1部パーソナリティを担当する事が発表された。同年4月3日(4日深夜)、レギュラーラジオ番組『Adoのオールナイトニッポン』がスタート[42]。\n\n3月22日、Vaundy提供の新曲「いばら」が「めざましテレビ」(フジテレビ)新テーマソングに採用された[43]。\n\n6月27日、TBSの火曜ドラマ『18/40~ふたりなら夢も恋も~』の主題歌をAdoが担当することになる。主題歌名は「向日葵」[44][45]。\n\n7月11日、上記ドラマの主題歌「向日葵」が配信リリース、同時にMVも公開[46]。\n\n9月6日、ユニバーサル・スタジオ・ジャパンのハロウィンイベント「ハロウィーン・ホラー・ナイト」とのコラボ楽曲「唱」をリリース。楽曲はBillboard Japan Hot 100(9月27日公開チャート)にて、自身3曲目となるチャート首位を獲得した[47]。さらに、オリコン週間ストリーミングランキング(10月2日付)にて、週間再生数1,321万回を記録し、2023年では初のソロアーティストによるストリーミングランキング1位を獲得した。自身の同ランキング1位獲得は、「うっせぇわ」「新時代 (ウタ from ONE PIECE FILM RED)」に続く通算3作目。\n\n10月5日、配信シングル「クラクラ」をリリース。楽曲はTVアニメ「SPY×FAMILY」第2期のOP主題歌に採用された[48]。\n\n12月2日、日本テレビ系『日テレ系音楽の祭典ベストアーティスト2023』に出演し、「唱」「Tot\u3000Musica」を歌唱、テレビ番組で初めての生歌唱となった[49]。また、12月31日には第74回NHK紅白歌合戦に出演、京都市・東本願寺の能舞台で「唱」を歌唱した[50]。'),
  1.2735694646835327),
 (Document(page_content='8月6日、劇場版アニメ『ONE PIECE FILM RED』にてウタの歌唱キャストを担当。劇中歌を収録したアルバム『ウタの歌 ONE PIECE FILM RED』が8月10日にリリースされた。Apple Musicグローバルチャートにおいては、「新時代」が日本の楽曲として初めて全世界1位にランクインした。\n\nまた、アルバムに収録されている全8曲がランクインし、「新時代」「私は最強」「逆光」「ウタカタララバイ」の4曲がトップ10入りを果たす。さらにJ-Popジャンル全体の週間再生回数が上昇し、全世界でのJ-Popの週間再生数が過去最大を記録する大きな貢献をした[35]。8月17日公開のBillboard Japan Hot 100にて、「新時代」「逆光」「私は最強」が総合1位 - 3位を獲得。同一アーティストのTOP3独占は同チャート史上初[36]。\n\n8月11日にさいたまスーパーアリーナでのセカンドワンマンライブ「カムパネルラ」を開催[37]。\n\n10月16日にさいたまスーパーアリーナで10月15日・16日の2日間にわたって開催される『超パーティー2022』の2日目に自身初のフェス出演[38]。10月24日にアメリカのレコード会社であるゲフィン・レコードとパートナーシップを結ぶことを発表した[1]。\n\n11月16日に「第64回日本レコード大賞」にて「新時代」が優秀作品賞を受賞、また2年連続で特別賞を受賞した[39]。12月30日の当日には、Adoが本人として電話出演し、当日公開された「新時代」「逆光」「私は最強」のメドレーは、オケとボーカルが新録の上、放送された。\n\n12月30日にCOUNTDOWN JAPAN 22/23に3日目のEARTH STAGEのトリとして初出演[40]。\n\n2023年\n1月10日、全国11会場を回るホール&アリーナツアー「Ado 全国ツアー2023『マーズ』」の開催を発表[41]。\n\n3月16日、東京・ニッポン放送にて2023年度「オールナイトニッポン」パーソナリティ発表記者会見が行われ、Adoが月曜1部パーソナリティを担当する事が発表された。同年4月3日(4日深夜)、レギュラーラジオ番組『Adoのオールナイトニッポン』がスタート[42]。'),
  1.355764389038086),

チャンクを細かくするとどうなるの?

先ほどは1000文字で文章を区切りました。

これはlangchainのチュートリアルで1000文字で区切っているからです。
https://python.langchain.com/docs/use_cases/question_answering/quickstart

ただ英語と違って日本語は漢字を使うので、より短い文字数で意味を成すとも考えられます。
そこで、チャンクサイズをもっと小さく設定してみました

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=400, chunk_overlap=80
)

同様に質問を投げかけてみると、、、

vectorstore = Chroma.from_documents(
    documents=all_splits, 
    embedding=OpenAIEmbeddings(model='text-embedding-3-small')
)

vectorstore.similarity_search_with_score('ユニバーサル・スタジオ・ジャパンのイベント楽曲は?')

今度は上位3位に全くユニバ関係ないチャンクが入ってきました。

[(Document(page_content='また、アルバムに収録されている全8曲がランクインし、「新時代」「私は最強」「逆光」「ウタカタララバイ」の4曲がトップ10入りを果たす。さらにJ-Popジャンル全体の週間再生回数が上昇し、全世界でのJ-Popの週間再生数が過去最大を記録する大きな貢献をした[35]。8月17日公開のBillboard Japan Hot 100にて、「新時代」「逆光」「私は最強」が総合1位 - 3位を獲得。同一アーティストのTOP3独占は同チャート史上初[36]。\n\n8月11日にさいたまスーパーアリーナでのセカンドワンマンライブ「カムパネルラ」を開催[37]。'),
  1.1486784219741821),
 (Document(page_content='8月11日にさいたまスーパーアリーナでのセカンドワンマンライブ「カムパネルラ」を開催[37]。\n\n10月16日にさいたまスーパーアリーナで10月15日・16日の2日間にわたって開催される『超パーティー2022』の2日目に自身初のフェス出演[38]。10月24日にアメリカのレコード会社であるゲフィン・レコードとパートナーシップを結ぶことを発表した[1]。\n\n11月16日に「第64回日本レコード大賞」にて「新時代」が優秀作品賞を受賞、また2年連続で特別賞を受賞した[39]。12月30日の当日には、Adoが本人として電話出演し、当日公開された「新時代」「逆光」「私は最強」のメドレーは、オケとボーカルが新録の上、放送された。\n\n12月30日にCOUNTDOWN JAPAN 22/23に3日目のEARTH STAGEのトリとして初出演[40]。'),
  1.1739604473114014),
 (Document(page_content='8月12日に6作目のシングルとなる「会いたくて」を配信開始。作詞作曲はみゆはんとボカロPのみきとPが担当した。8月25日公開のBillboard JAPANチャートにて、「踊」のストリーミング累計再生回数が自身2曲目となる1億回を突破[26]、9月22日公開の同チャートで「ギラギラ」のストリーミング累計再生回数が自身3曲目となる1億回を突破した[27]。\n\n10月28日、7作目のシングルとなる「阿修羅ちゃん」を配信限定リリース。作詞作曲はボカロPのNeruが担当した[28]。\n\n12月1日に自身の楽曲「うっせぇわ」が同年の「新語・流行語大賞」の年間トップテンに選出された[29]。12月30日には「第63回日本レコード大賞」にて特別賞を受賞したことを記念し、「うっせぇわ」「踊」「ギラギラ」の3曲を新録し制作されたメドレーMVが番組内で放映された[30]。'),
  1.2430598735809326),
 (Document(page_content='7月11日、上記ドラマの主題歌「向日葵」が配信リリース、同時にMVも公開[46]。\n\n9月6日、ユニバーサル・スタジオ・ジャパンのハロウィンイベント「ハロウィーン・ホラー・ナイト」とのコラボ楽曲「唱」をリリース。楽曲はBillboard Japan Hot 100(9月27日公開チャート)にて、自身3曲目となるチャート首位を獲得した[47]。さらに、オリコン週間ストリーミングランキング(10月2日付)にて、週間再生数1,321万回を記録し、2023年では初のソロアーティストによるストリーミングランキング1位を獲得した。自身の同ランキング1位獲得は、「うっせぇわ」「新時代 (ウタ from ONE PIECE FILM RED)」に続く通算3作目。\n\n10月5日、配信シングル「クラクラ」をリリース。楽曲はTVアニメ「SPY×FAMILY」第2期のOP主題歌に採用された[48]。'),
  1.2442684173583984)]

ちなみにチャンク細切れで、旧来のtext-embedding-ada-002の近傍検索を試したところ、距離に全く差が出ませんでした。
(つまり全く役に立たないということです)

vectorstore = Chroma.from_documents(
    documents=all_splits, 
    embedding=OpenAIEmbeddings()
)

vectorstore.similarity_search_with_score('ユニバーサル・スタジオ・ジャパンのイベント楽曲は?')

結果。全て距離が0.302で同じということがわかります

vectorstore.similarity_search_with_score('ユニバーサル・スタジオ・ジャパンのイベント楽曲は?')
[(Document(page_content='7月11日、上記ドラマの主題歌「向日葵」が配信リリース、同時にMVも公開[46]。\n\n9月6日、ユニバーサル・スタジオ・ジャパンのハロウィンイベント「ハロウィーン・ホラー・ナイト」とのコラボ楽曲「唱」をリリース。楽曲はBillboard Japan Hot 100(9月27日公開チャート)にて、自身3曲目となるチャート首位を獲得した[47]。さらに、オリコン週間ストリーミングランキング(10月2日付)にて、週間再生数1,321万回を記録し、2023年では初のソロアーティストによるストリーミングランキング1位を獲得した。自身の同ランキング1位獲得は、「うっせぇわ」「新時代 (ウタ from ONE PIECE FILM RED)」に続く通算3作目。\n\n10月5日、配信シングル「クラクラ」をリリース。楽曲はTVアニメ「SPY×FAMILY」第2期のOP主題歌に採用された[48]。'),
  0.30211442708969116),
 (Document(page_content='メジャーデビュー以降\n2020年\n10月15日にユニバーサルミュージックよりメジャーデビューすることを発表すると[12]、同月23日にボカロPのsyudou書き下ろしの「うっせぇわ」を配信限定リリース。\n\n自身のYouTubeチャンネルで公開された同作のミュージックビデオは、同年11月14日時点で総再生回数500万再生を達成。その後も多くの歌い手や著名人が楽曲をカバーするなど、翌年にかけて反響が広がった。2022年5月時点で総再生回数は2億回を超えている[13]。\n\n12月24日に2作目のシングルとなる「レディメイド」を配信限定リリース。作詞作曲はボカロPのすりぃが担当した[14]。\n\n2021年\n1月22日にテレビ朝日系列「ミュージックステーション」で電話インタビューが放送され、テレビ初出演となる[15]。同年1月23日には「うっせぇわ」が総再生回数4000万回を達成[16]。\n\n2月14日に3作目のシングルとなる「ギラギラ」を配信限定リリース。作詞作曲はボカロPのてにをはが担当した[17]。絵師は沼田ゾンビである。2月18日にはYouTubeチャンネル登録者が100万人を突破した[18]。\n\n3月15日付のBillboard Japan Hot 100にて「うっせぇわ」が自身初となる総合1位を獲得[19]。3月20日に「うっせぇわ」がYouTubeにてMV再生回数が1億回を突破した[20]。公開から148日での1億回再生到達は歴代7位の記録となった。3月29日付のBillboard JAPANチャートにて、「うっせぇわ」のストリーミング累計再生回数が1億回を突破した。チャートイン17週目での1億回突破は歴代6番目の速さとなり、ソロ歌手としては最年少記録である[21][22]。\n\n4月27日に4作目のシングルとなる「踊」を配信限定リリース。作詞はボカロPのDECO*27が、作曲・編曲はGigaとTeddyLoidが担当した[23]。絵師はかゆかである。\n\n6月14日に5作目のシングルとなる「夜のピエロ」を配信限定リリース[24]。作詞作曲はボカロPのbizが担当した。6月19日にはタマホームの新CM『ハッピーソングAdo篇』に歌唱出演[25]。'),
  0.3022838830947876),
 (Document(page_content='メジャーデビュー以降\n2020年\n10月15日にユニバーサルミュージックよりメジャーデビューすることを発表すると[12]、同月23日にボカロPのsyudou書き下ろしの「うっせぇわ」を配信限定リリース。\n\n自身のYouTubeチャンネルで公開された同作のミュージックビデオは、同年11月14日時点で総再生回数500万再生を達成。その後も多くの歌い手や著名人が楽曲をカバーするなど、翌年にかけて反響が広がった。2022年5月時点で総再生回数は2億回を超えている[13]。\n\n12月24日に2作目のシングルとなる「レディメイド」を配信限定リリース。作詞作曲はボカロPのすりぃが担当した[14]。\n\n2021年\n1月22日にテレビ朝日系列「ミュージックステーション」で電話インタビューが放送され、テレビ初出演となる[15]。同年1月23日には「うっせぇわ」が総再生回数4000万回を達成[16]。\n\n2月14日に3作目のシングルとなる「ギラギラ」を配信限定リリース。作詞作曲はボカロPのてにをはが担当した[17]。絵師は沼田ゾンビである。2月18日にはYouTubeチャンネル登録者が100万人を突破した[18]。\n\n3月15日付のBillboard Japan Hot 100にて「うっせぇわ」が自身初となる総合1位を獲得[19]。3月20日に「うっせぇわ」がYouTubeにてMV再生回数が1億回を突破した[20]。公開から148日での1億回再生到達は歴代7位の記録となった。3月29日付のBillboard JAPANチャートにて、「うっせぇわ」のストリーミング累計再生回数が1億回を突破した。チャートイン17週目での1億回突破は歴代6番目の速さとなり、ソロ歌手としては最年少記録である[21][22]。\n\n4月27日に4作目のシングルとなる「踊」を配信限定リリース。作詞はボカロPのDECO*27が、作曲・編曲はGigaとTeddyLoidが担当した[23]。絵師はかゆかである。\n\n6月14日に5作目のシングルとなる「夜のピエロ」を配信限定リリース[24]。作詞作曲はボカロPのbizが担当した。6月19日にはタマホームの新CM『ハッピーソングAdo篇』に歌唱出演[25]。'),
  0.3022838830947876),

結論

今回の結果を見る限り、やはり新しいモデルのtext-embedding-3のほうが適切にembeddingしていると思われます。

また文章の区切りを細切れにしてしまうと、近傍検索ができなくなることがわかりました。
文章として意味を成すには1000文字程度は必要ということでしょうか。

今回はAdoさんのwikipedia記事だけで検証したので、もうちょっと他のテキストでも試してみようと思います。

https://www.youtube.com/watch?v=pgXpM4l_MwI

Discussion