LlamaIndex(十一)——LlamaIndex Settings

一、Configuring Settings

Settings是 LlamaIndex 流水线/应用中索引和查询阶段常用的资源集合。可以使用它来设置全局配置。局部配置(transformations、LLM、Embedding模型)可以直接传递到使用它们的接口。Settings`是一个简单的单例对象,贯穿于整个应用程序。每当没有提供特定组件时,设置对象就会被用来提供全局默认值。

1.1 LLM

LLM 用于响应提示和查询,并负责编写自然语言响应。

1
2
3
4
from llama_index.llms.openai import OpenAI
from llama_index.core import Settings

Settings.llm = OpenAI(model="gpt-3.5-turbo", temperature=0.1)

1.2 Embed Model

Embedding Model用于将文本转换为数值表示,用于计算相似性和 top-k 检索。

1
2
3
4
5
6
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import Settings

Settings.embed_model = OpenAIEmbedding(
model="text-embedding-3-small", embed_batch_size=100
)

1.3 Node Parser / Text Splitter

节点解析器/文本分割器用于将文档解析为更小的块,称为节点。

1
2
3
4
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Settings

Settings.text_splitter = SentenceSplitter(chunk_size=1024)

如果只想改变块大小或块重叠而不改变默认分割器,这也是可能的:

1
2
Settings.chunk_size = 512
Settings.chunk_overlap = 20

1.4 Transformations

Transformations在文档提取期间应用于文档。默认情况下,使用节点解析器/文本分割器,但可以被覆盖并进一步定制。

1
2
3
4
from llama_index.core.node_parser import SentenceSplitter
from llama_index.core import Settings

Settings.transformations = [SentenceSplitter(chunk_size=1024)]

1.5 Tokenizer

标记器用于计算 Token。这应该设置为您使用的 LLM 相匹配的内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
from llama_index.core import Settings

# openai
import tiktoken

Settings.tokenizer = tiktoken.encoding_for_model("gpt-3.5-turbo").encode

# open-source
from transformers import AutoTokenizer

Settings.tokenzier = AutoTokenizer.from_pretrained(
"mistralai/Mixtral-8x7B-Instruct-v0.1"
)

1.6 Callbacks

可以设置一个全局回调管理器,它可以用来观察和消费在整个 llama-index 代码中生成的事件

1
2
3
4
5
from llama_index.core.callbacks import TokenCountingHandler, CallbackManager
from llama_index.core import Settings

token_counter = TokenCountingHandler()
Settings.callback_manager = CallbackManager([token_counter])

1.7 Prompt Helper Arguments

在查询期间使用一些特定的参数/值,以确保输入到 LLM 的prompt有足够的空间生成一定数量的 Token。
通常这些是使用 LLM 的属性自动配置的,但在特殊情况下可以被覆盖。

1
2
3
4
5
6
7
from llama_index.core import Settings

# maximum input size to the LLM
Settings.context_window = 4096

# number of tokens reserved for text generation.
Settings.num_output = 256

1.8 Setting local configurations

使用设置的特定部分的接口也可以接受局部覆盖。

1
2
3
4
5
index = VectorStoreIndex.from_documents(
documents, embed_model=embed_model, transformations=transformations
)

query_engine = index.as_query_engine(llm=llm)

官方资源


LlamaIndex(十一)——LlamaIndex Settings
https://mztchaoqun.com.cn/posts/D24_LlamaIndex_settings/
作者
mztchaoqun
发布于
2024年6月15日
许可协议