end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

LLM LangChain Model I/O のオレオレ入門

LLM LangChainへ、これから入門 - end0tknr's kipple - web写経開発

先程の上記entryの続き

参考url

LangChain Model I/Oとは?【Prompts・Language Models・Output Parsers】

対応model 3グループ

内容
LLMs 例えば、GPT3.5(text-davinci-003)、Flan-T5(flan-t5-xl)
Chat Models LLMsを用い、チャットに特化。gpt-3.5-turbo、gpt-4
Text Embedding Models 類似度計算等に用いる文章のベクトル化。

LLMs と Chat Models の違い

LLMs 単一の文字列(prompt)を受取り、文字列を出力(補完)
Chat models 複数のチャットメッセージを受取り、メッセージを出力

上記の通りで、以降に記載する具体的な使用方法と併せて、ご確認ください。

LangChain Model I/O + OpenAI 使用例

以下の通りですが、参考urlの内容が丁寧にまとめられていますので、 そちらの方が参考になります

0. pip installと api key設定

!pip install langchain
!pip install openai
import os
os.environ['OPENAI_API_KEY'] = 'sk-ないしょ'

1. LLMs の使用例

from langchain.llms import OpenAI

llm = OpenAI(model_name='text-davinci-003')
llm('哲学とはどのような学問ですか?')

↑こう書くと、↓こう表示されます

哲学とは、
人間が生きる上で必要な基礎的な知識や考えを追求する学問のことです。
哲学は、科学、宗教、歴史、政治などの専門的な学問領域を超えて、
倫理的な基準や価値観を検討する学問であり、
人間自身の目的や意義を探求する学問でもあります。```

2. Chat Models の使用例

from langchain.chat_models import ChatOpenAI
from langchain.schema      import SystemMessage,HumanMessage

chat = ChatOpenAI(model_name='gpt-3.5-turbo')

chat([SystemMessage(content='日本語で回答してください'),
      HumanMessage( content='哲学とはどのような学問ですか?')])

↑こう書くと、↓こう表示されます

AIMessage(content='哲学は、人間や世界の根本的な問いについて考える学問です。
それは、存在の意味や目的、真理や知識の性質、倫理や道徳の原則などについての
理論的な探求を通じて、人間の思考や実践について深く考えることを目的としています。
哲学は、一般的な問題や概念に対する批判的な分析を行い、
論理的な思考や論証を通じて真理や知識に迫ることを特徴としています。
<略>

3. Text Embedding Models の使用例

!pip install tiktoken
from langchain.embeddings import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
query_result = embeddings.embed_query('哲学とはどのような学問ですか?')

print(query_result)

↑こう書くと、↓こう表示されます

[0.023728431990641022, -0.004893595788907291, 0.017749119442909876, -0.01824005123399546,
-0.019033098478528198, 0.0007367929748512503, -0.019461091490400973, 0.0007210579308020852,
-0.015747623423104453, -0.01272020201906606, -0.005843991844117188, 0.003071478782318001,
0.01855475258064004, -0.012336267083964817, <略>]