Public
Edited
Mar 1, 2023
Insert cell
Insert cell
data = FileAttachment("artificial-intelligence-parameter-count-v2-from-richard-edit.csv").csv({
typed: true
})
Insert cell
data.columns
Insert cell
dataAdjusted = data.map((d) => {
const parameters = d["Parameters"];
const dateString = d["Day"];
let [day, month, year] = dateString.split("/");

let newDateString = [month, day, year].join("-");
const date = new Date(newDateString);

let domain = "";

switch (d["Domain"]) {
case "Language":
domain = "Language";
break;
case "Drawing":
domain = "Drawing";
break;
case "Vision":
domain = "Vision";
break;
default:
domain = "Other";
}

return { parameters, date, domain };
})
Insert cell
scatter_plot_1 = Plot.plot({
y: {
type: "log",
domain: [10, 1_000_000_000_000]
},
x: {
domain: [new Date("1950"), new Date("2030")]
},
inset: 8,
grid: true,
color: {
legend: true
},
marks: [
Plot.dot(dataAdjusted, {
x: "date",
y: "parameters",
fill: "domain",
title: "domain"
})
]
})
Insert cell
largeLanguageModels = {
const data = await FileAttachment("large-language-models-edit.csv").csv({
typed: true
});

const dataAdjusted = data.map((d) => {
const parameters = d["Parameters (billions)"];
const tokens = d["Tokens (billions)"];
const compute = d["Compute (zettaflops)"];
const year = d["Year"];

return { parameters, tokens, compute, year };
});

const control = [
{
parameters: 0,
tokens: 0,
compute: 100,
const: 2022
},
{
parameters: 0,
tokens: 0,
compute: 1000,
const: 2022
},
{
parameters: 0,
tokens: 0,
compute: 2000,
const: 2022
},
{
parameters: 0,
tokens: 0,
compute: 3000,
const: 2022
}
];

return [...control, ...dataAdjusted];
}
Insert cell
scatter_plot_2 = Plot.plot({
x: { grid: true, domain: [0, 1600] },
y: { grid: true, domain: [0, 700] },
color: {
legend: true,
type: "ordinal"
},
r: {
range: [1, 40]
},
marks: [
Plot.dot(largeLanguageModels, {
x: "tokens",
y: "parameters",
fill: "year",
r: "compute",
title: "compute"
})
]
})
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more