跳到内容

使用 LLM#

概念#

选择合适的大型语言模型(LLM)是构建任何基于数据的 LLM 应用时需要考虑的首要步骤之一。

LLM 是 LlamaIndex 的核心组成部分。它们可以用作独立模块,也可以插入到其他 LlamaIndex 核心模块中(索引、检索器、查询引擎)。它们总是在响应合成步骤中使用(例如,在检索之后)。根据使用的索引类型,LLM 也可能在索引构建、插入和查询遍历过程中使用。

LlamaIndex 提供了一个统一的接口来定义 LLM 模块,无论是来自 OpenAI、Hugging Face 还是 LangChain,这样您就不必自己编写定义 LLM 接口的样板代码。此接口包含以下内容(更多详细信息见下文):

  • 支持文本补全聊天端点(详细信息见下文)
  • 支持流式非流式端点
  • 支持同步异步端点

使用模式#

以下代码片段展示了如何开始使用 LLM。

如果您还没有,请安装您的 LLM

pip install llama-index-llms-openai

然后

from llama_index.core import Settings
from llama_index.llms.openai import OpenAI

# changing the global default
Settings.llm = OpenAI()

# local usage
resp = OpenAI().complete("Paul Graham is ")
print(resp)

# per-query/chat engine
query_engine = index.as_query_engine(..., llm=llm)
chat_engine = index.as_chat_engine(..., llm=llm)

独立使用自定义使用中查找更多详细信息。

关于分词的注意事项#

默认情况下,LlamaIndex 使用全局分词器进行所有 token 计数。它默认为来自 tiktoken 的 cl100k,这是与默认 LLM gpt-3.5-turbo 匹配的分词器。

如果您更改 LLM,您可能需要更新此分词器以确保准确的 token 计数、分块和提示。

分词器的唯一要求是它必须是一个可调用函数,接受一个字符串并返回一个列表。

您可以像这样设置全局分词器

from llama_index.core import Settings

# tiktoken
import tiktoken

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

# huggingface
from transformers import AutoTokenizer

Settings.tokenizer = AutoTokenizer.from_pretrained(
    "HuggingFaceH4/zephyr-7b-beta"
)

模块#

我们支持与 OpenAI、HuggingFace、Anthropic 等集成。

查看完整的模块列表

进一步阅读#