本文将演示使用大语言模型从文本中提炼结构化信息。这次我们不直接使用提示词,而是使用大模型的 few-shot prompting
特性,即使用很少的例子来引导大模型做推理。
我们将用 llama3.1
和 deepseek
做一个简单的对比。
由于
langchain
可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。
准备
在正式开始撸代码之前,需要准备一下编程环境。
-
计算机
本文涉及的所有代码可以在没有显存的环境中执行。 我使用的机器配置为:- CPU: Intel i5-8400 2.80GHz
- 内存: 16GB
-
Visual Studio Code 和 venv
这是很受欢迎的开发工具,相关文章的代码可以在Visual Studio Code
中开发和调试。 我们用python
的venv
创建虚拟环境, 详见:
在Visual Studio Code中配置venv。 -
Ollama
在Ollama
平台上部署本地大模型非常方便,基于此平台,我们可以让langchain
使用llama3.1
、qwen2.5
等各种本地大模型。详见:
在langchian中使用本地部署的llama3.1大模型 。
简单推理
下面我们给大模型举几个简单的例子,看看到模型能否根据这些例子,推理出结果。
def reference(model_name):
messages = [
{
"role": "user", "content": "2 🦜 2"},
{
"role": "assistant", "content": "4"},
{
"role": "user", "content": "2 🦜 3"},
{
"role": "assistant", "content": "5"},
{
"role": "user", "content": "3 🦜 4"},
]
response = ChatOllama(model=model_name,temperature=0.5,verbose=True).invoke(messages)
return response.content
我们使用 llama3.1
和deepseek<