【小沐学AI】Google AI大模型的一点点学习(Python)

文章目录

  • 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 Text2023 年 5 月text-bison-001
Bison Chat2023 年 5 月chat-bison-001
Gecko Embedding2023 年 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???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472469.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Covalent Network(CQT)与 Celo 集成,推动 Web3 下一代现实资产解决方案的发展

Covalent Network(CQT)是一个统一的区块链 API 提供商,其已正式与 Celo 集成,Celo 是一个以移动优先的 EVM 兼容链。这一重要的里程碑旨在提升 Celo 生态系统中开发者的能力,通过授予他们访问关键链上数据的权限&#…

踏“时间”与“空间”前来探寻复杂度的奥妙(Java篇)

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

基于WTR096-28SS芯片方案的宠物喂食器实现智能化喂食功能

一、简介 本方案宠物喂食器采用了WTR096-28SS芯片方案来实现智能化的喂食功能。该方案结合了先进的技术和设计理念,提供了便捷、智能和个性化的宠物喂食解决方案。 该宠物喂食器具备定时、定量喂食功能,可以根据主人设定的时间和食物量,自动…

xercesc库保存XML功能实现

目录 一 参考链接 二 运行结果 三 代码 一 参考链接 DOM Programming Guide (apache.org) Xerces-c DOM XML文件的构造_xerces-c domimplementation-CSDN博客 Xerces-c库的使用-CSDN博客 二 运行结果 三 代码 #if 1//参考链接: https://blog.csdn.net/RGBMa…

HarmonyOS NEXT应用开发之SideBarContainer侧边栏淡入淡出动效实现案例

介绍 在2in1或平板上,群聊侧边栏是一种较为常用的功能,虽然HarmonyOS已经具备了基本的动效,但是部分情况下开发者可能有定制侧边栏动效的需求,本例主要介绍了如何基于显式动画实现侧边栏的淡入淡出动效。 效果图预览 使用说明&a…

【区间、栈】算法例题

目录 六、区间 48. 汇总区间 ① 49. 合并区间 ② 50. 插入区间 ② 51. 用最少数量的箭引爆气球 ② 七、栈 52. 有效的括号 ① 53. 简化路径 ② 54. 最小栈 ② 55. 逆波兰表达式求值 ② √- 56. 基本计算器 ③ 六、区间 48. 汇总区间 ① 给定一个 无重复元素 的 …

静态代理IP如何测试?

随着互联网的普及,越来越多的人开始使用动态IP进行上网。但是在某些情况下,我们可能需要使用静态IP进行测试或特定的网络设置。本文将介绍如何获取静态IP进行测试以及静态IP的优点。 一、如何获取静态IP进行测试? 1.联系ISP(Int…

DM-达梦数据库实时主备搭建

dm实时主备说明 将主库产生的 Redo日志传输到备库,备库接收并重演Redo日志,从而实现备库与主库的数据同步。 一、环境准备 1.1、配置环境准备 首先搭建实时主备,要规划好机器的,我准备两台机器服务器 主服务器 mast…

7-5 表格输出

题目链接&#xff1a;7-5 表格输出 一. 题目 1. 题目 2. 输入输出格式 3. 限制 二、代码 实现一 1. 代码实现 #include <stdio.h>int main(void){printf("------------------------------------\n\ Province Area(km2) Pop.(10K)\n\ ------------------…

14|CAMEL:通过角色扮演脑暴一个鲜花营销方案

能否让 ChatGPT 自己生成这些引导文本呢&#xff1f; CAMEL 交流式代理框架 CAMEL 框架旨在通过角色扮演来促进交流代理之间的自主合作&#xff0c;并为其“认知”过程提供洞察。这种方法涉及使用启示式提示来指导聊天代理完成任务&#xff0c;同时保持与人类意图的一致性。…

【virtio-networking 和 vhost-net 简介】

文章目录 Virtio 基本构建块Virtio spec 和 vhost 协议Vhost-net/virtio-net architectureVirtio-networking and OVS总结参考链接 Virtio 是作为虚拟机 (VM)访问简化device&#xff08;如块设备和网络适配器&#xff09;的 标准化开放接口而开发的。Virtio-net是一种虚拟以太…

大众EA111发动机

大众EA111发动机_什么是大众EA111发动机_太平洋汽车百科 大众EA111发动机_什么是大众EA111发动机_太平洋汽车百科 大众的EA111系列发动机是大众公司小排量发动机的主力&#xff0c;有1.2L、1.4L、1.6L三种排量。大众的EA111系列发动机融合了缸内直喷、涡轮增压等先进技术&…

鸿蒙Harmony应用开发—ArkTS-转场动画(页面间转场)

当路由进行切换时&#xff0c;可以通过在pageTransition函数中自定义页面入场和页面退场的转场动效。详细指导请参考页面转场动画。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 为了实现更好的转场效…

稀碎从零算法笔记Day22-LeetCode:存在重复元素 II

题型&#xff1a;哈希表、数组 链接&#xff1a;219. 存在重复元素 II - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] …

使用vitepress生成文档博客简单demo

先创建个空目录(就是你的项目) 安装vitepress 就是在你刚创建的目录里安装vitepress&#xff1a; npm add -D vitepress初始化项目 还是在你刚操作的目录里执行&#xff1a; npx vitepress init然后按照命令行的指引一步一步走就好了 注意VitePress的项目位置&#xff0c…

外卖项目:实现用户端微信登录(debug)

文章目录 一、业务描述二、接口设计三、表结构设计四、配置文件五、断点调试 一、业务描述 用户进入到小程序的时候&#xff0c;微信授权登录之后才能点餐。需要获取当前微信用户的相关信息&#xff0c;比如昵称、头像等&#xff0c;这样才能够进入到小程序进行下单操作。是基…

SpringBoot如何写好单元测试

&#x1f413;序言 Spring中的单元测试非常方便&#xff0c;可以很方便地对Spring Bean进行测试&#xff0c;包括Controller、Service和Repository等Spring Bean进行测试&#xff0c;确保它们的功能正常&#xff0c;并且不会因为应用的其他变化而出现问题。 &#x1f413;单元测…

完全理解ARM启动流程:Uboot-Kernel

内容共计5W字数&#xff0c;但是我还是很多地方说的不够尽兴。那么下次聊&#xff01; 前言 bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 PC机上引导程序一般由BIOS开始执行&#xff0c;然后读取硬盘中位于MBR(Main Bo…

Vue核心知识点 -Vue2响应式系统是基于什么实现的、以及会产生什么问题和解决方案

一、概念 在Vue 2中&#xff0c;响应式系统是基于Object.defineProperty实现的。它通过劫持对象的属性来实现数据的响应式更新。 当你将一个对象传递给Vue实例的data选项时&#xff0c;Vue会遍历对象的每个属性&#xff0c;并使用Object.defineProperty方法将其转换为getter和s…

YOLO_you only look once

前言 计算机图形学的课程即将结束&#xff0c;我需要提交一份关于YOLO模型的学习报告。在这段时间里&#xff0c;我对YOLO进行了深入的学习和研究&#xff0c;并记录下了我的学习过程和心得体会。本文将详细介绍YOLO模型的原理、优缺点以及应用领域&#xff0c;希望能够为后续…