AI 大模型之美
徐文浩
bothub 创始人
32335 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

11|省下钱买显卡,如何利用开源模型节约成本?

GPU计算
模型参数量
cpm_kernels
icetk
中文知识理解和推理能力
清华大学开源模型
文档切分调整
向量维度设置
多语言支持
语义搜索模型
Embedding替换
Google开源模型T5
更大规模模型
部署到云端
推理能力问题
文本输入长度限制
LLMPredictor
CustomLLM类
加载模型
安装依赖包
使用Faiss向量索引库
使用HuggingFaceEmbeddings
安装sentence-transformers
运行环境设置
使用开源大语言模型
医学领域语义搜索案例
比较效果
尝试其他中文大语言模型
复杂问题挑战
成本节约
开源模型替代ChatGPT
解决方案
封装成LLM
ChatGLM模型
HuggingfaceEmbedding
在Colab里使用GPU
数据安全和监管要求
OpenAI API成本问题
推荐阅读
思考题
小结
开源模型的不足
解决方案
问题背景
省下钱买显卡:利用开源模型节约成本

该思维导图由 AI 生成,仅供参考

你好,我是徐文浩。
不知道课程上到这里,你账户里免费的 5 美元的额度还剩下多少了?如果你尝试着完成我给的几个数据集里的思考题,相信这个额度应该是不太够用的。而 ChatCompletion 的接口,又需要传入大量的上下文信息,实际消耗的 Token 数量其实比我们感觉的要多。
而且,除了费用之外,还有一个问题是数据安全。因为每个国家的数据监管要求不同,并不是所有的数据,都适合通过 OpenAI 的 API 来处理的。所以,从这两个角度出发,我们需要一个 OpenAI 以外的解决方案。那对于没有足够技术储备的中小型公司来说,最可行的一个思路就是利用好开源的大语言模型。

在 Colab 里使用 GPU

因为这一讲我们要使用一些开源模型,但不是所有人的电脑里都有一个强劲的 NVidia GPU 的。所以,我建议你通过 Colab 来运行对应的 Notebook,并且注意,要把对应的运行环境设置成 GPU。
你先选择菜单栏里的 Runtime,然后点击 Change runtime type。
然后在弹出的对话框里,把 Hardware accelerator 换成 GPU,然后点击 Save 就可以了。
只要用得不是太多,Colab 的 GPU 是可以免费使用的。

HuggingfaceEmbedding,你的开源伙伴

确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何利用开源模型替代昂贵的显卡,从而节约成本。作者首先建议在Colab中使用GPU来运行开源模型,以节省成本。其次,介绍了HuggingfaceEmbedding作为开源伙伴,可以替代OpenAI的API,使用sentence-transformers库进行模型嵌入。文章还展示了如何使用开源模型进行FAQ问题的语义搜索,通过示例展示了AI给出的正确回答。通过这些方法,读者可以了解如何利用开源模型来替代昂贵的显卡,从而节约成本。文章还介绍了如何使用ChatGLM语言模型进行问答,展示了其基本的知识理解和推理能力。通过这些技术,读者可以了解如何利用开源模型来替代显卡,从而省下购买显卡的费用。文章还指出了开源模型的不足之处,提醒读者在使用开源模型时需要注意数据安全等问题。文章还讨论了开源模型在处理复杂问题时的局限性,以及对读者提出了思考题,鼓励读者尝试其他开源模型并分享评测结果。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(37)

  • 最新
  • 精选
  • Toni
    在第二讲中,用亚马逊提供的用户对一些食物评价的真实数据集进行了情感分析。当时为了避免重新调用 OpenAI 的 API 浪费钱,老师推荐使用已经计算好的含有 Embedding 的数据。用openai.embeddings_utils 中的 get_embedding (EMBEDDING_MODEL = "text-embedding-ada-002")不仅费钱还耗时。我试着跑过100个数据,好像用了20分钟,花费也不少。 本节课中老师介绍了免费的 sentence_transformers 正好可以拿来用在情感数据分析上, 选用 model = SentenceTransformer('paraphrase-multilingual-mpnet-base-v2')。同样计算1000个数据的 embedding,速度很快,且无费用,适合练手。 测试结果如下: precision recall f1-score support negative 0.77 0.78 0.77 148 positive 0.96 0.95 0.96 773 accuracy 0.93 921 macro avg 0.86 0.87 0.86 921 weighted avg 0.93 0.93 0.93 921 为了对比,将第二讲中老师用 OpenAI 的方法得到的结果放在了这里: precision recall f1-score support negative 0.98 0.73 0.84 136 positive 0.96 1.00 0.98 789 accuracy 0.96 925 macro avg 0.97 0.86 0.91 925 weighted avg 0.96 0.96 0.96 925 使用的方法不用,结果也不同。OpenAI 的准确率更高。

    作者回复: 👍

    2023-04-11归属地:瑞士
    4
  • 东方奇骥
    老师,是不是要4080显卡才跑得动?单机能跑得动吗

    作者回复: 显存需要比较大,建议在colab下运行,我给了一个可以在Colab下单独运行的Notebook。 https://github.com/xuwenhao/geektime-ai-course/blob/main/11_colab_chatglm_opensource.ipynb

    2023-04-07归属地:四川
    3
    4
  • zhihai.tu
    老师,想请教一下,我发现我用colab跑了程序,如果第二天再打开这个程序,相应的已经跑过得脚本,效果都失效了,比如pip安装过的都还原了,另外磁盘目录上生成的文件夹和文件也没了。想请问下如何解决这个问题呢?不然相当的麻烦。谢谢。

    作者回复: https://ayoolafelix.hashnode.dev/how-to-permanently-install-a-module-on-google-colab-ckixqrvs40su044s187y274tc 可以把安装路径都设置到 mount的google drive里,这样以后每次都只需要配置一下路径,不需要再重新安装了。

    2023-04-26归属地:上海
    3
  • 胖子
    AttributeError Traceback (most recent call last) <ipython-input-54-086bfff09511> in <cell line: 8>() 6 Q: 你们的退货政策是怎么样的? 7 """ ----> 8 response, history = model.chat(tokenizer, question, history=[]) 9 print(response) 21 frames /usr/local/lib/python3.9/dist-packages/google/protobuf/unknown_fields.py in <module> 42 from google.protobuf.internal import api_implementation 43 ---> 44 if api_implementation._c_module is not None: # pylint: disable=protected-access 45 UnknownFieldSet = api_implementation._c_module.UnknownFieldSet # pylint: disable=protected-access 46 else: AttributeError: module 'google.protobuf.internal.api_implementation' has no attribute '_c_module' 搞不定

    作者回复: 感觉是 protobuf 版本的问题,试试看更新一下protobuf版本? pip install --upgrade protobuf

    2023-04-22归属地:中国香港
    5
    2
  • ༺ღ天口²º²²ღ༻
    老师,FAQ数据在哪里?

    作者回复: https://github.com/xuwenhao/geektime-ai-course 的 data 目录下

    2023-05-06归属地:上海
    1
  • 川月
    使用这个开源模型获取的index怎么保存啊,使用之前的方法并不行,还有生成的index可以追加吗,不然每次有新数据的时候都要重新跑一边,或者可以使用数据库存储吗,希望老师讲解一下

    作者回复: embedding可以存储到向量数据库,比如 pgvector, milvus, pinecone 等等 索引可以save下来变成json文件 更详细的手工管理索引的方式,可以看一下 llama-index 的官方文档 https://gpt-index.readthedocs.io/en/latest/

    2023-04-07归属地:四川
    2
    1
  • 孟健
    Meta最近也开源了大语言模型,好像更好一些?

    作者回复: 目前 llama 没有公开渠道可以直接获得模型,所以不适合作为课程的一部分 目前从有限体验来看,裁剪到单机可以加载的情况下,没有觉得在中文上比 ChatGLM 好

    2023-04-06归属地:广东
    1
  • 地平线
    由于llama-index 升级,我使用的版本是0.6.8,修改了llama-index代码,程序运行没有报错,但是没有输出内容 from langchain.text_splitter import SpacyTextSplitter llm_predictor = LLMPredictor(llm=CustomLLM()) text_splitter = CharacterTextSplitter(separator="\n\n", chunk_size=100, chunk_overlap=20) parser = SimpleNodeParser(text_splitter=text_splitter) documents = SimpleDirectoryReader('./drive/MyDrive/colab_data/faq/').load_data() nodes = parser.get_nodes_from_documents(documents) embed_model = LangchainEmbedding(HuggingFaceEmbeddings( model_name="sentence-transformers/paraphrase-multilingual-mpnet-base-v2" )) service_context = ServiceContext.from_defaults(embed_model=embed_model, llm_predictor=llm_predictor) dimension = 768 faiss_index = faiss.IndexFlatIP(dimension) # index = GPTListIndex(nodes=nodes, faiss_index=faiss_index, service_context=service_context) index = GPTListIndex(nodes=nodes, service_context=service_context) from llama_index import QuestionAnswerPrompt QA_PROMPT_TMPL = ( "{context_str}" "\n\n" "根据以上信息,请回答下面的问题:\n" "Q: {query_str}\n" ) QA_PROMPT = QuestionAnswerPrompt(QA_PROMPT_TMPL) query_engine = index.as_query_engine( retriever_mode="embedding", verbose=True, text_qa_template=QA_PROMPT, ) response = query_engine.query("请问你们海南能发货吗?") print(response)

    作者回复: llama index 最近又更新了大版本,接口又改了一遍。如果要立刻可以运行,可以先 pip install --force-reinstall -v "llama-index==0.5.27" 退回到 0.5 系列的版本 晚点我看一下更新代码到0.6.x 版本

    2023-05-18归属地:美国
    2
  • 茶桁
    老师,“GPTFaissIndex”这个方法似乎没有了,替换的其他方法不知道是什么,怎么用。

    作者回复: llama index 最近又更新了大版本,接口又改了一遍。如果要立刻可以运行,可以先 pip install --force-reinstall -v "llama-index==0.5.27" 退回到 0.5 系列的版本 晚点我看一下更新代码到0.6.x 版本

    2023-05-18归属地:上海
  • horn
    Colab报错怎么回事呢 ImportError: cannot import name 'GPTFaissIndex' from 'llama_index' (/usr/local/lib/python3.10/dist-packages/llama_index/__init__.py)

    作者回复: llama index 最近又更新了大版本,接口又改了一遍。如果要立刻可以运行,可以先 pip install --force-reinstall -v "llama-index==0.5.27" 退回到 0.5 系列的版本 晚点我看一下更新代码到0.6.x 版本

    2023-05-15归属地:北京
收起评论
显示
设置
留言
37
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部