配置LLM与嵌入模型¶
索引¶
配置LLM模型¶
使用LLM模型的模块¶
大多数使用LLM模型的模块都可以通过llm参数来指定LLM模型。
以下模块可以使用生成器模块,其中包括llama_index_llm。
支持的LLM模型¶
我们支持LlamaIndex所支持的大部分大语言模型。您可以通过配置llm参数来使用不同类型的LLM接口:
大语言模型类型 |
llm参数 |
描述 |
|---|---|---|
OpenAI |
openai |
适用于OpenAI模型(GPT-3.5、GPT-4) |
OpenAILike |
openailike |
适用于具有OpenAI兼容API的模型(如Mistral、Claude) |
Ollama |
ollama |
用于本地运行Ollama模型 |
Bedrock |
bedrock |
适用于AWS Bedrock模型 |
例如,如果您想使用OpenAILike模型,可以将llm参数设置为openailike。
nodes:
- node_line_name: node_line_1
nodes:
- node_type: generator
modules:
- module_type: llama_index_llm
llm: openailike
model: mistralai/Mistral-7B-Instruct-v0.2
api_base: your_api_base
api_key: your_api_key
在上面的示例中,你可以看到model参数。
这是用于LLM模型的参数。
你可以为LlamaIndex LLM初始化设置模型参数。
最常用的参数包括model、max_token和temperature。
请查阅LlamaIndex LLM了解可以为模型参数设置哪些值。
使用HuggingFace模型¶
使用HuggingFace模型主要有两种方式:
通过OpenAILike接口(推荐用于托管API端点):
nodes:
- node_line_name: node_line_1
nodes:
- node_type: generator
modules:
- module_type: llama_index_llm
llm: openailike
model: mistralai/Mistral-7B-Instruct-v0.2
api_base: your_api_base
api_key: your_api_key
通过直接集成HuggingFace(适用于本地部署):
nodes:
- node_line_name: node_line_1
nodes:
- node_type: generator
modules:
- module_type: llama_index_llm
llm: huggingface
model_name: mistralai/Mistral-7B-Instruct-v0.2
device_map: "auto"
model_kwargs:
torch_dtype: "float16"
通用参数¶
LLM配置中最常用的参数包括:
model: 模型标识符或名称max_tokens: 响应中的最大token数量temperature: 控制输出结果的随机性(取值范围0.0到1.0)api_base: API端点URL(用于托管模型)api_key: 认证密钥(如需)
如需查看完整参数列表,请参阅 LlamaIndex LLM文档。
添加更多LLM模型¶
您可以为AutoRAG添加更多LLM模型。
只需调用autorag.generator_models并添加新的键值对即可添加模型。
例如,若想添加用于测试的MockLLM模型,请执行以下代码。
注意
这是LlamaIndex升级到v0.10.0版本的重大更新。 llms的集成现在需要安装到不同的包中。 因此,在添加模型之前,您需要找到并安装适合您模型的正确包。 您可以在这里找到相关包。
import autorag
from llama_index.core.llms.mock import MockLLM
autorag.generator_models['mockllm'] = MockLLM
然后您可以在配置YAML文件中使用mockllm。
注意
添加新的LLM模型时,应该添加类本身而非实例。
此外,它必须遵循LlamaIndex LLM的接口规范。
配置嵌入模型¶
使用嵌入模型的模块¶
使用嵌入模型的模块可以通过embedding_model参数来指定LLM模型。
在YAML文件中配置模型名称¶
为便于使用,自v0.3.13版本起,我们支持在YAML文件中配置模型名称。
我们支持这个新的配置选项,同时也兼容下面描述的旧版配置选项。 如果您之前使用的是v0.3.13之前的版本,可以继续使用旧版配置选项。
我们支持以下嵌入模型类型:
openai
Hugging Face
模拟
ollama
openai_like
您可以直接在YAML文件的vectordb部分配置嵌入模型选项。
如需了解如何在AutoRAG中配置vectordb,
请点击此处。
例如,
vectordb:
- name: autorag_test
db_type: milvus
embedding_model:
- type: huggingface
model_name: intfloat/multilingual-e5-large-instruct
...
或
vectordb:
- name: autorag_test
db_type: milvus
embedding_model:
- type: openai
model_name: text-embedding-3-small
...
如需使用自定义嵌入模型,只需在HuggingFace(或Ollama)类型的嵌入模型配置中修改model_name参数即可。
支持的嵌入模型(旧版)¶
默认情况下,我们支持OpenAI嵌入模型和部分本地模型。
如需更改嵌入模型,您可以将embedding_model参数修改为以下值:
嵌入模型类型 |
embedding_model参数 |
|---|---|
默认的openai嵌入模型(text-embedding-ada-002) |
openai |
OpenAI大型嵌入模型 (text-embedding-3-large) |
openai_embed_3_large |
openai小型嵌入模型 (text-embedding-3-small) |
openai_embed_3_small |
huggingface_baai_bge_small |
|
huggingface_cointegrated_rubert_tiny2 |
|
huggingface_all_mpnet_base_v2 |
|
huggingface_bge_m3 |
例如,如果您想使用OpenAI大型文本嵌入模型,可以在设置向量数据库时将embedding_model参数设为openai_embed_3_large。
vectordb:
- name: chroma_openai
db_type: chroma
client_type: persistent
embedding_model: openai_embed_3_large
collection_name: openai_embed_3_large
nodes:
- node_line_name: node_line_1
nodes:
- node_type: retrieval
modules:
- module_type: vectordb
vectordb: chroma_openai
添加您的嵌入模型(旧版)¶
您可以为AutoRAG添加更多嵌入模型。
只需调用autorag.embedding_models并添加新的键值对即可添加。
例如,
如果您想为韩语嵌入添加[KoSimCSE](https://huggingface.co/BM-K/KoSimCSE-roberta-multitask)模型,
请执行以下代码。
import autorag
from autorag import LazyInit
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
autorag.embedding_models['kosimcse'] = LazyInit(HuggingFaceEmbedding, model_name="BM-K/KoSimCSE-roberta-multitask")
然后你可以在配置YAML文件中使用kosimcse。
注意
当您添加新的嵌入模型时,应使用auto-rag中的LazyInit类。附加参数必须是LazyInit初始化时的关键字参数。
使用vllm¶
您可以使用vllm来调用本地大语言模型。更多信息请查阅vllm生成器模块文档。