赞
踩
在本地个人电脑上搭建一个基于大模型的本地知识库。在这个过程中能够实践并学习:
要实现这个目标,需要考虑几个问题:
对于问题1,我们需要一个大模型,这个大模型相对于正常大模型而言比较小,以满足能在我们本地设备上跑起起来的需求(CPU only),同时我们需要寻找一个工具,这个功能最好是能够帮助我们快速的下载,部署运行大模型。对于问题2,3我们应当寻找一个AI应用构建的框架,来帮我们快速集成大模型,构建应用。
LLaMA(英语:Large Language Model Meta AI)是Meta AI公司于2023年2月发布的大型语言模型。它训练了各种模型,这些模型的参数从70亿到650亿不等。LLaMA的开发人员报告说,LLaMA运行的130亿参数模型在大多数NLP基准测试中的性能超过了更大的、具有1750亿参数的GPT-3提供的模型,且LLaMA的模型可以与PaLM和Chinchilla等最先进的模型竞争。虽然其他强大的大语言模型通常只能通过有限的API访问,但Meta在非商业许可的情况下发布了LLaMA的模型权重,供研究人员参考和使用。2023年7月,Meta推出LLaMA2,这是一种可用于商业应用的开源AI模型。2024年4月18日,Meta发布了Llama 3。
在LLaMA中,有各种不同参数大小的模型可供选择,非常适合用来在本地做研究和学习。
使用OpenAI或者其他的模型可能需要先获取相应的key,并可能产生计费!因此,作为学习目的的话我们还是最好使用本地部署的大模型来进行。
Ollama 是一个便于本地部署和运行大型语言模型(Large Language Models, LLMs)的工具。使用通俗的语言来说,如果你想在自己的电脑上运行如 GPT-3 这样的大型人工智能模型,而不是通过互联网连接到它们,那么 Ollama 是一个实现这一目标的工具。
主要功能
LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够:
这个框架由几个部分组成。
更多langchain内容请参考官网
Conda 是一款功能强大的命令行工具,用于包和环境管理,可在 Windows、macOS 和 Linux 上运行。它可以快速的安装和更新环境依赖。例如,我想在我的电脑上需要同时python2和python3的环境,因为有的项目依赖python2,有的项目依赖python3。如果没有conda,会是很麻烦的事,而conda可以解决不同项目的环境依赖问题,可以隔离出两个环境分别让具有不同依赖的两个项目使用。
更多conda相关内容请参考官网
进入官网,点击【Dpwonload】,然后选择适合自己机器的版本进行下载
以windows为例。下载完成后,点击安装包进行安装。这里有个坑稍微注意下:安装默认是不能够选择安装路径的,这就导致默认会安装到C盘。后续下载的模型也会进入C:\Users<用户名>.ollama\models目录下。一般来说模型会比较大(通常是几十G),这就会导致C盘资源很快会被占满。解决方法是:设置OLLAMA_MODELS环境变量, 使模型下载到指定的路径。修改后重启Ollama生效。
有两个环境变量需要注意:
OLLAMA_MODELS:OLLAMA模型的下载路径。
OLLAMA_HOST: OLLAMA模型以服务方式运行的时候,即提供API,默认是只能被localhost访问的,设置这个为0.0.0.0,可以被网络访问。
安装完成之后,会弹出对话框(或者手动开启命令行),接下来开始下载大模型。在官网可以看到有哪些模型
等待模型下载完成。
运行命令ollama run llama3:8b
,启动模型,此时可以和模型开始进行对话。效果如下:
去Anaconda官网进行下载。下载后按提示进行安装。注意选择自己的安装路径!安装完成后可以通过Anaconda Promot进入操作页面,进行环境创建。
创建一个环境名叫langchain,用于等会运行langchanin,这个环境下的python版本是3.12
安装后激活环境
如果没有安装conda, 那么使用命令:
pip install langchain
如果已经在conda中并且激活了环境,也可以执行下面命令
conda install langchain -c conda-forge
然后等待相关包的下载
参考官方代码,我们写一个简单的基于大模型的服务代码,利用langServer提供api服务。这里有些点需要注意:
pip install "langserve[all]"
进行安装。
完整代码如下:
python 代码解读 #!/usr/bin/env python from typing import List from fastapi import FastAPI # from langchain_core.prompts import ChatPromptTemplate from langchain_core.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser from langserve import add_routes import ollama class CustomLLM1: @property def _llm_type(self) -> str: # 返回我们自定义的模型标记 return "myLlaMA" # return ChatResult(generations=[generation]) def __call__(self, prompt: str) -> str: # 这里是调用自定义模型或API接口的逻辑 # print(prompt) messages = [ {"role": "user", "content": prompt.to_string()}, # 如果需要,可以在这里添加更多的消息历史 ] response = self.llama_completion(messages) return response def llama_completion(self, messages: List[dict]) -> str: # 调用llama的接口,返回响应 # return "Hello from llama!" print(messages) response = ollama.chat(model='llama3:8b', messages=messages) print(response['message']['content']) return response['message']['content'] # 1. Create prompt template prompt_template = PromptTemplate(input_variables=[], template="Translate the following into {language}:{text}") # 2. Create model model = CustomLLM1() # 3. Create parser parser = StrOutputParser() # 4. Create chain chain = prompt_template | model | parser # 4. App definition app = FastAPI( title="LangChain Server", version="1.0", description="A simple API server using LangChain's Runnable interfaces", ) # 5. Adding chain route add_routes( app, chain, path="/chain", ) if __name__ == "__main__": import uvicorn uvicorn.run(app, host="localhost", port=8000)
启动后效果如下:
访问地址: http://localhost:8000/chain/playground/。页面上会出现两个待输入的内容:
我们这里尝试一个简单的例子:将文本转换成特定语言进行输出。我们设置了两个输入,分别是语言和要转换的内容。运行结果成功返回了大模型处理之后的结果。
本章主要阐述了本地构建基于大模型的应用程序的过程。从资源准备分析到实际搭建,一步步的指导应该如何在本地搭建一个基于大模型的应用程序。感兴趣的小伙伴可以自己动手试一下。
下一篇文章中我们基于此利用RAG技术来构建完整的本地知识库。
PS:本人电脑配置:windows系统,4核8G。
现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。
我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习路线
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。
二、AI大模型视频教程
三、AI大模型各大学习书籍
四、AI大模型各大场景实战案例
五、结束语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。
再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。
因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。