Llama.cpp 集成用于 Haystack
模块 haystack_integrations.components.generators.llama_cpp.generator
LlamaCppGenerator
提供了一个接口,用于通过 llama.cpp 生成文本,使用 LLM。
llama.cpp 是一个用 C/C++ 编写的项目,用于高效推理 LLM。它采用了量化的 GGUF 格式,适用于在标准机器(即使没有 GPU)上运行这些模型。
使用示例
from haystack_integrations.components.generators.llama_cpp import LlamaCppGenerator
generator = LlamaCppGenerator(model="zephyr-7b-beta.Q4_0.gguf", n_ctx=2048, n_batch=512)
print(generator.run("Who is the best American actor?", generation_kwargs={"max_tokens": 128}))
# {'replies': ['John Cusack'], 'meta': [{"object": "text_completion", ...}]}
LlamaCppGenerator.__init__
def __init__(model: str,
n_ctx: Optional[int] = 0,
n_batch: Optional[int] = 512,
model_kwargs: Optional[Dict[str, Any]] = None,
generation_kwargs: Optional[Dict[str, Any]] = None)
参数:
model:用于文本生成的量化模型的路径,例如 "zephyr-7b-beta.Q4_0.gguf"。如果模型路径也在model_kwargs中指定,则会忽略此参数。n_ctx:上下文中的 token 数量。设置为 0 时,上下文将从模型中获取。n_batch:提示处理的最大批次大小。model_kwargs:包含用于初始化 LLM 进行文本生成的关键字参数的字典。这些关键字参数提供对模型加载的精细控制。如果出现重复,这些 kwargs 将覆盖model,n_ctx和n_batch的初始化参数。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档。generation_kwargs:一个包含用于自定义文本生成的关键字参数的字典。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档。
LlamaCppGenerator.run
@component.output_types(replies=List[str], meta=List[Dict[str, Any]])
def run(
prompt: str,
generation_kwargs: Optional[Dict[str, Any]] = None
) -> Dict[str, Union[List[str], List[Dict[str, Any]]]]
在给定的提示上运行文本生成模型。
参数:
prompt:要发送到生成模型的提示。generation_kwargs:一个包含用于自定义文本生成的关键字参数的字典。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档。
返回值:
包含以下键的字典
replies:模型生成的回复列表。meta:有关请求的元数据。
