AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Llama3+Crew+Groq:革新文本摘要的强大代理
发布日期:2024-05-28 06:26:06 浏览次数: 1754


通过Crewai和Groq利用Llama3的力量来革新文本摘要代理。

Llama3可能是大型语言模型的新领导者。Meta的Llama3标志着人工智能技术的重大飞跃。这款强大的LLM推出了两个令人印象深刻的变体:一个拥有80亿参数的模型和一个惊人的700亿参数版本。这使得Llama 3能够在机器翻译、内容生成、对话生成等各种任务中表现出色。

Llama3指导模型性能:

来源:图像(官方文档)

? 解码Llama3的80亿参数强大模型

让我们深入了解Llama3的80亿参数奇迹的内部运作。这些参数充当其强大的变压器架构的构建模块。以下是关键组件的详细说明:

  1. 变压器层: 想象一下这些层是Llama3的基本构建模块。每一层都包括一个注意力机制和一个前馈网络(FFN)。将它们视为一个传送带——数据在一个层中被处理,然后传递到下一个层,逐步进行转换。

  2. 注意力头: 这些是自注意机制的工作马。每个头独立扫描输入序列,执行像“QK模块”和“SoftMax函数”之类的复杂计算,以了解单词之间的关系。

  3. 词汇量: 这代表Llama3识别的单词数量,类似于人类建立词汇以理解语言。通常,较大的词汇量表示更好的性能,因为模型可以处理更广泛的单词和细微差别。

  4. 特征维度: 想象每个单词都是一个具有特定大小的向量。这个大小,由特征维度表示,贯穿整个模型。它决定了为每个单词捕获的信息的复杂性。

  5. 隐藏维度: 这代表模型层内部的内部大小,特别是FFN中的隐藏层。通常,隐藏维度大于特征维度,允许Llama3在数据中提取和处理更复杂的模式。

  6. 上下文窗口: 这指的是Llama3在分析输入序列时考虑的单词“窗口”。它基本上决定了模型在理解单词之间的关系和生成输出时考虑了多少上下文。

原始源代码在这里可用。我不会深入研究Llama3的数学复杂性,因为理解复杂的数学有时可能是具有挑战性的。

? 解码crewai强大模型

让我们深入了解CrewAI的基本组件。CrewAI围绕三个主要元素展开:代理任务团队

来源:图像(官方文档)

代理: 这些是设计用于执行任务、做出决策并与其他代理进行交互的独立单元。它们有能力利用工具,从简单的搜索功能到涉及其他链、API等更复杂的集成。

任务: 任务代表分配给AI代理完成的任务或职责。它们可能包括额外的细节,比如哪个代理负责它们以及它们可能需要哪些工具。

团队: 一个团队由一组代理组成,每个代理被分配一个特定的角色,共同努力实现共同的目标。组建团队的过程包括组装代理、定义他们的任务,并为任务执行建立一个顺序。

✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️ ✴️

关于Llama3和CrewAI的许多理论都可以在官方网站上找到。但是,我们不会深入研究它们。相反,让我们从我们的具体用例开始探索:文本摘要 ✍️

首先,我们需要在本地机器上使用Llama3。有几种方法可以实现这一点。一种选择是访问Meta的官方网站并请求访问权限。或者,您可以从Hugging Face下载量化版本。还有一个colab笔记本。但是,在这些方法中,我发现Ollama是最高效和简单的。

请访问链接下载与您的操作系统兼容的版本。由于我使用的是MacOS,我已经选择了适当的版本。文件大小约为~183MB,是一个zip文件。

解压缩zip文件,您将看到Ollama~438 MB应用程序正在运行。

在同一个链接上,您将在右上角看到模型

点击模型,然后点击Llama3,选择8b:

选择模型后,在终端中输入

我们还可以检查本地Ollama中可用的模型数量:

现在,由于模型已准备好在本地使用,为了更快地执行,我们需要groq。我们可以访问这个链接,然后点击groq云以访问api密钥。

在这里,我使用了维基百科上的物理学家数据,数据可以在我的github存储库中找到。

我们将使用crew和groq来开发我们的摘要代理以及Llama3

首先,我们需要设置我们的环境变量如下,您可以在groq的文档和crewai的官方github链接中找到这些详细信息。

# 设置环境变量  
os.environ["OPENAI_API_BASE"] = 'https://api.groq.com/openai/v1'
os.environ["OPENAI_MODEL_NAME"] = 'llama3-8b-8192' # 根据可用模型进行调整
os.environ["OPENAI_API_KEY"] = api_key

如上所示,我们正在使用具有80亿参数的llama3模型。接下来,我们将选择物理学家传记以制作摘要。

# 从数据框中选择物理学家传记以获得摘要  
physicist_bios = df['physicist_bio_clean']

现在,我们准备部署我们的crew代理。我们的第一个任务是组装我们的代理,每个代理都具有不同的角色、背景故事和高级功能,如冗长模式和内存利用。这些元素增加了复杂性,并指导了它们的任务执行和团队内的交互。

在我们的情况下,我们将为Bio摘要和Research Summary指定crew代理,如下所示:

# 为传记创建摘要代理  
summarizer_bio = Agent(
role='Summarizer',
goal='准确摘要物理学家传记,最少300字',
verbose=True,
memory=True,
backstory=(
"配备先进的摘要技术,目标是将复杂信息提炼为简明摘要。"
),
allow_delegation=False
)

# 为研究创建摘要代理
summarizer_research = Agent(
role='Summarizer',
goal='准确摘要物理学家研究,使用要点',
verbose=True,
memory=True,
backstory=(
"专注于将复杂信息提炼为简明摘要,目标是在各种主题上提供清晰而富有见地的摘要。"
),
allow_delegation=False,
)

接下来,我们将定义我们的任务函数,概述我们代理的具体目标。我们还将引入新功能,如异步执行和输出定制。这些增强功能确保每个代理都可以高效地精确地履行其角色。

# 定义一个创建摘要任务的函数  
def create_summary_task(description_template, expected_output_template, physicist_bio, agent):
description = description_template.format(physicist_bio=physicist_bio)
expected_output = expected_output_template.format(physicist_bio=physicist_bio)
return Task(
description=description,
expected_output=expected_output,
agent=agent
)

我们将调用上述函数生成summary_bio和summary_research:

# 用于总结物理学家传记的总结任务  
summary_task_summarizer_bio = create_summary_task(
description_template="总结{physicist_bio}的传记。",
expected_output_template="{physicist_bio}传记的简明总结。",
physicist_bio=physicist_bios,
agent=summarizer_bio
)

# 用于总结物理学家研究的总结任务
summary_task_summarizer_research = create_summary_task(
description_template="总结{physicist_bio}的研究。",
expected_output_template="{physicist_bio}研究的简明总结。",
physicist_bio=physicist_bios,
agent=summarizer_research
)

接下来,我们将组建一个团队,将我们的代理整合成一个统一的团队,并定义他们在完成任务时将遵循的工作流程。我们还将有机会为改进互动而定制语言模型,并微调配置以提高整体性能。

# 将总结任务添加到团队中  
crew = Crew(
agents=[summarizer_bio, summarizer_research],
tasks=[summary_task_summarizer_bio, summary_task_summarizer_research],
process=Process.sequential
)

# 启动团队
crew_result = crew.kickoff()

令人惊讶的是,Llama3在summarizer_bio上提供了惊人的输出:

以及summarizer_research的总结:

以纳秒为单位测量的输出呈现出令人鼓舞的结果,表明与我们之前使用Llama2进行的实验相比,性能有了显着改善。这一显著进展强调了Llama3在提高效率和生产力方面的有效性。从Llama2到Llama3的过渡标志着一个重大飞跃,反映了文本处理能力的进步。这加强了我们对Llama3在处理复杂文本任务时精度和效率的能力和潜力的信心。




53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询