文章目录
- 1、Google AI简介
- 1.1 Google AI Studio
- 1.2 Bard
- 1.3 PaLM
- 1.4 Gemini
- 1.5 Gemini API
- 1.6 Vertex AI
- 1.7 Gemma
- 2、Google AI开发
- 2.1 快速入门
- 2.1.1 配置开发环境
- 2.1.2 列出所有模型
- 2.1.3 从文本输入生成文本
- 2.1.4 从图像和文本输入生成文本
- 2.1.5 聊天对话
- 结语
1、Google AI简介
Gemini 是 Google 最大、功能最强大的 AI 模型。
语言模型技术发展图鉴,出自最新的一篇文章:
Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond
https://arxiv.org/pdf/2304.13712.pdf
1.1 Google AI Studio
最快速开始使用 Gemini 的方法是使用 Google AI Studio,这是一款基于网络的工具,可让您直接在浏览器中对提示进行原型设计和运行。
https://aistudio.google.com/app/prompts/new_chat
借助 Google AI Studio,开发人员可以将 Gemini 模型与简单安全的 API 无缝集成,快速开发提示,并将想法转化为代码以构建生成式 AI 应用。
1.2 Bard
2023年5月,谷歌推出了由 PaLM2 驱动的全新对话式 AI 引擎 Bard,简单地说就是谷歌版的 New Bing Chat。
现在Bard 更名 Gemini。2024年2月8日,Bard完成了全面升级。Google也宣布进入Gemini新纪元。从今天开始,Bard将会更名为Gemini。
https://gemini.google.com/app
1.3 PaLM
https://ai.google/discover/palm2
PaLM 2 是一系列语言模型,针对关键开发者使用场景进行了优化。PaLM 系列模型包括针对文本和聊天生成以及文本嵌入训练的变体。
模型名称 | 更新时间 | 型号代码 |
---|---|---|
Bison Text | 2023 年 5 月 | text-bison-001 |
Bison Chat | 2023 年 5 月 | chat-bison-001 |
Gecko Embedding | 2023 年 5 月 | embedding-gecko-001 |
1.4 Gemini
https://deepmind.google/technologies/gemini/#introduction
Gemini 是 Google 最大、功能最强大的 AI 模型。
Gemini 是 Google 的最新一代生成模型,超越了 PaLM 模型系列的功能。
Gemini 和 PaLM 模型之间的主要区别在于 Gemini 视觉模型能够处理图像输入。您可以使用文本和/或图片向 Gemini 模型提示。PaLM 模型仅处理文本输入和输出。这两个模型系列都可以执行文本提示、聊天互动和结构化提示。
Gemini 是 Google最大、能力最强的人工智能模型,Gemini分为三种规模:Ultra、Pro和Nano,适用于从大型数据中心到移动设备的各种场景。目前,Bard已经集成了Gemini Pro,提升了其在高级推理、规划、理解等方面的能力。
- Gemini Ultra:最强大的模型,设计用于复杂任务,在TPU加速器上可高效服务。
- Gemini Pro:在成本和延迟方面进行了优化,该模型在广泛的任务中提供显著性能,展示出强大的推理和多模态能力。
- Gemini Nano:最高效的设备上模型,有两个版本(1.8B和3.25B参数),适用于低内存和高内存设备。它通过从更大的模型中提取精华训练,并以4位量化部署。
1.5 Gemini API
Gemini API 为 Gemini 和 PaLM 生成式 AI 模型提供了编程接口。
- 适用于 Gemini API 的 AI 模型:
- Vertex AI Gemini API 支持以下 SDK:
model = genai.GenerativeModel(model_name="gemini-1.0-pro-vision")
response = model.generate_content(["What is this?", img])
1.6 Vertex AI
https://cloud.google.com/vertex-ai
Vertex AI 提供构建和使用生成式 AI 所需的一切,包括 AI 解决方案、Search and Conversation、130 多种基础模型,以及统一的 AI 平台。
Vertex AI 是一个机器学习 (ML) 平台,可让您训练和部署机器学习模型和人工智能应用。Vertex AI 结合了数据工程、数据科学和机器学习工程工作流,使团队能够使用通用工具集进行协作。
1.7 Gemma
https://ai.google.dev/gemma?hl=zh-cn
Gemma 是一个轻量级、最先进的开放式模型系列,采用与创建 Gemini 模型相同的研究和技术构建。Gemma 由 Google DeepMind 和 Google 的其他团队开发,灵感来自双子座,这个名字反映了拉丁语 gemma,意思是“宝石”。
Gemma 模型非常适合各种文本生成任务,包括问答、总结和推理。它们相对较小的尺寸使其可以部署在资源有限的环境中,例如笔记本电脑、台式机或您自己的云基础设施,从而实现对最先进 AI 模型的访问民主化,并帮助促进每个人的创新。
Gemma 是 Google DeepMind 推出的全新系列轻量级、先进的开放模型。此型号卡包括 2B 和 7B 型号变体。
2、Google AI开发
https://ai.google.dev/tutorials?hl=zh-cn
借助 Gemini API,您可以使用 Google 最新的生成式 AI 模型。
2.1 快速入门
Gemini 快速入门可帮助您使用自己偏好的编程语言开始使用 Gemini。
- Python
- Go
- Node.js
- Web
- Dart (Flutter)
- Swift
- Android
- REST API
2.1.1 配置开发环境
开始配置开发环境:
- (1)安装Python3.11
https://www.python.org/downloads/windows/
- (2)安装google-generativeai
# pip install -q -U google-generativeai
pip install google-generativeai
- (3)安装jupyter notebook
pip install jupyter notebook
- (4)命令行执行命令:
jupyter notebook
自动打开浏览器,显示如下网址,
然后按照如下步骤新建notebook。
显示如下:
2.1.2 列出所有模型
- (5)输入Python代码如下:
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# 将密钥传递给genai.configure
# pip install -U python-dotenv
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# 用于查看可用的 Gemini 型号
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
执行Python代码:
结果如下:
2.1.3 从文本输入生成文本
- (6)输入Python代码如下:
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro')
# 从文本输入生成文本
response = model.generate_content("写一段关于flask的Python代码,并向爱看书的小沐解释")
# 打印结果
print(response.text)
界面如下:
执行Python代码的结果如下:
2.1.4 从图像和文本输入生成文本
这里有一张图:
使用模型并将图像传递给模型,让它输出文字描述。
- (6)输入Python代码如下:
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro-vision')
# 图片转文字
import PIL.Image
img = PIL.Image.open('flower.jpg')
response = model.generate_content(img)
to_markdown(response.text)
界面如下:
执行Python代码的结果如下:
若要在提示中同时提供文本和图像,请传递包含字符串和图像的列表:
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro-vision')
import PIL.Image
img = PIL.Image.open('flower.jpg')
response = model.generate_content(["基于这张图片,给名字叫'爱看书的小沐'的小伙伴写一小段短文,字数100字左右", img])
response.resolve()
to_markdown(response.text)
界面如下:
执行Python代码的结果如下:
2.1.5 聊天对话
Gemini 使您能够在多个回合中进行自由形式的对话。
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# 将密钥传递给genai.configure
# pip install -U python-dotenv
import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv('.env'))
# genai.configure(api_key=GOOGLE_API_KEY)
genai.configure(api_key=os.environ.get("GOOGLE_API_KEY"))
# 对于纯文本提示,请使用以下模型:gemini-pro
model = genai.GenerativeModel('gemini-pro')
chat = model.start_chat(history=[])
response = chat.send_message("生命诚可贵,爱情价更高。若为自由故,二者皆可抛。")
to_markdown(response.text)
# print(chat.history)
for message in chat.history:
display(to_markdown(f'**{message.role}**: {message.parts[0].text}'))
界面如下:
执行Python代码的结果如下:
结语
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!