【笔记】wow-rag 第2课-正式上路搞定模型

正文详见:wow-rag/notebooks/第2课-正式上路搞定模型.ipynb at main · datawhalechina/wow-raghttps://github.com/datawhalechina/wow-rag/blob/main/notebooks/%E7%AC%AC2%E8%AF%BE-%E6%AD%A3%E5%BC%8F%E4%B8%8A%E8%B7%AF%E6%90%9E%E5%AE%9A%E6%A8%A1%E5%9E%8B.ipynb

 借助Llama-index构建llm和embedding模型

思路一:使用Llama-index为单独的模型构建的专门的包

国内目前仅适用于智谱和零一万物。

思路二:借助Llama-index为openai构建的库接入国内的模型

前提是使用的模型是openai兼容型的,就可以稍微修改一下该库源码直接使用。

llama index 把OpenAI和OpenAIEmbedding的模型名称写死在代码里了,它会检查每个模型的输入上下文大小,如果模型没有在他的列表中,就会报错。所以我们可以重写一下llama_index的OpenAI类,通过新建一个NewOpenAI类,并继承OpenAI类,我们直接把输入上下文大小写死,不让它检查了,它就不报错了。

from llama_index.llms.openai import OpenAI
from llama_index.core.base.llms.types import LLMMetadata,MessageRole
class NewOpenAI(OpenAI):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    @property
    def metadata(self) -> LLMMetadata:
        # 创建一个新的LLMMetadata实例,只修改context_window
        return LLMMetadata(
            context_window=8192,
            num_output=self.max_tokens or -1,
            is_chat_model=True,
            is_function_calling_model=True,
            model_name=self.model,
            system_role=MessageRole.USER,
        )

思路三:自定义模型接口

利用openai-like的包,来封装任何openai类似的大模型 这个思路的缺点很明显,只有对话模型,没有嵌入模型。

思路四:本地安装Ollama

在本地安装好模型,然后在Llama-index中使用Ollama的服务。Ollama这个嵌入模型用来做向量检索,效果不好。一般来说向量的相似度得分是在0到1之间的小数。但是Ollama这个嵌入模型计算出来的得分要么非常大,要么非常小。根据经验,还是智谱的这个向量模型效果最好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值