LLMに関するメモ
概要
LLMに関するツールについて、備忘録です。
LangChain
以下のように説明されていました。
LangChain is a composable framework to build with LLMs. LangGraph is the orchestration framework for controllable agentic workflows.
LlamaIndex
以下のように説明されていました。
LlamaIndex is a framework for building context-augmented generative AI applications with LLMs including agents and workflows.
LangChain と LlamaIndex
gpt-4oの回答は以下でした。
LangChainとLlamaIndexはどちらも、LLMs(大規模言語モデル)を利用したアプリケーション開発を支援するフレームワーク
簡単に調べてみたところ、RAG(Retrieval-Augmented Generation)を行う際には、LlamaIndexがより簡単に使用できるようでした。
Ollama
以下のように説明されていました。
Get up and running with Llama 3.2, Mistral, Gemma 2, and other large language models.
ローカル環境でLLMを実行するためのツールのようでした。
以下のページからダウンロードします。
アプリの起動後、以下のようなコマンドから使用することができました。
ollama run llama3.2
>>> 日本の首都は?
東京です。
>>> /bye
また、LlamaIndexと組み合わせて、PythonからOllamaを使用することもできました。
pip install llama-index-llms-ollama
from llama_index.llms.ollama import Ollama
llm = Ollama(model="llama3.2", request_timeout=60.0)
response = llm.complete("日本の首都は?")
print(response)
OpenRouter
以下のように説明されていました。
OpenRouter provides an OpenAI-compatible completion API to 278 models & providers that you can call directly, or using the OpenAI SDK. Additionally, some third-party SDKs are available.
アカウント登録後、モデルを選択して、チャットなどを試すことができました。
クレジットを購入することで、gpt-4oなども使用することができました。
また、LlamaIndexと組み合わせて、PythonからOpenRouterを使用することもできました。
OpenRouterでAPIキーを発行後、以下のようなスクリプトにより実行できました。
以下は、モデルMeta: Llama 3.2 1B Instruct (free)
を使用した例です。
from llama_index.llms.openrouter import OpenRouter
from llama_index.core.llms import ChatMessage
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("OPENROUTER_API_KEY")
llm = OpenRouter(
api_key=api_key,
model="meta-llama/llama-3.2-1b-instruct:free",
)
message = ChatMessage(role="user", content="日本の首都は?")
resp = llm.chat([message])
print(resp)
以下は、モデルOpenAI: GPT-4o (2024-11-20)
を使用した例です。model
のみを変更することで、共通のスクリプトを利用することができました。
pip install llama-index-llms-openrouter
llm = OpenRouter(
model="openai/gpt-4o-2024-11-20",
)
message = ChatMessage(role="user", content="日本の首都は?")
resp = llm.chat([message])
print(resp)
モデルの名前は、以下のページなどで見つけることができました。
LiteLLM
以下のように説明されていました。
LLM Gateway to manage authentication, loadbalancing, and spend tracking across 100+ LLMs. All in the OpenAI format.
以下に、LiteLLMからOpenRouterを使用する方法が記載されています。
以下のようなコードにより、実行することができました。
pip install litellm
from litellm import completion
import os
api_key = os.getenv("OPENROUTER_API_KEY")
response = completion(
model="openrouter/openai/gpt-4o-2024-11-20",
messages=[{ "content": "日本の首都は?","role": "user"}],
)
print(response.choices[0].message.content)
まとめ
今回あげたツールの違いを十分に理解できておらず、また他に有用なツールが数多く存在するかと思いますが、LLM周辺のツールの理解にあたり、本記事が参考になりましたら幸いです。
Discussion