Giter Site home page Giter Site logo

mfainstein / silicon-superforecaster Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 594 KB

silicon-superforecaster harnesses the collective intelligence of multiple large language models (LLMs) to deliver predictive insights and judgments across any given topic.

License: GNU General Public License v3.0

TypeScript 100.00%

silicon-superforecaster's Introduction

Silicon-Superforecaster

silicon-superforecaster harnesses the collective intelligence of multiple large language models (LLMs) to deliver predictive insights and judgments across a wide array of topics. Drawing inspiration from the human brain's capability to serve as a judgement tool, silicon-superforecaster operates on a similar principle, utilizing LLMs as measuring devices.

Mars by 2030?

Measuring: What are the chances that humans will land on Mars by 2030? Prediction of the chances that humans will land on Mars by 2030

SpaceX Starship Launches in 2024?

Measuring: How many SpaceX Starship launches reach space in 2024? (1) 1 (2) 2 (3) 3 (4) 4 (5) 5+ Prediction of how many SpaceX Starship launches reach space in 2024

Background

silicon-superforecaster seeks to optimize decision-making through the aggregation of diverse LLM insights, guided by the principles outlined in "Superforecasters" and "Noise." This approach advocates for leveraging collective intelligence over individual expert analysis, integrating the analytical depth of LLMs to produce a balanced synthesis of expert insights and broad-based predictions.

Example Predictions and Judgments for Silicon-Forecaster

To showcase silicon-superforecaster's versatility in generating predictions and judgments across various domains, here are some example modifications to index.ts. These examples utilize both the Scale.Probability and Scale.Options to illustrate the platform's wide-ranging analytical capabilities.

Scale.Probability Examples

  1. Politics: Evaluate the probability of Israel holding new elections by the end of 2024.

    let population = new Population();
    population.addAllModels(5);
    measurement("Israel will hold new elections by the end of 2024", Scale.Probability, population).then((response) => {
        Summary.create(response, Scale.Probability, true /* verbose */);
    });
  2. Technology Adoption Rate: Evaluate the probability of quantum computing becoming mainstream in consumer electronics by 2030.

    let population = new Population();
    population.addAllModels(5);
    measurement("What is the probability of mainstream adoption of quantum computing in consumer electronics by 2030?", Scale.Probability, population).then((response) => {
        Summary.create(response, Scale.Probability);
    });
  3. Environmental Goals: Assess the likelihood of meeting the Paris Agreement's global warming limit by 2050.

    let population = new Population();
    population.addAllModels(20);
    measurement("What is the probability of achieving the Paris Agreement's goal of limiting global warming to 1.5 degrees Celsius above pre-industrial levels by 2050?", Scale.Probability, population).then((response) => {
        Summary.create(response, Scale.Probability);
    });

Scale.Options Examples

  1. Future of Work: Identify which sector is poised for the greatest growth due to automation in the next decade.

    let population = new Population();
    population.addStrongModels(20);
    measurement("Which sector will experience the most significant growth due to automation in the next decade: (1) technology (2) healthcare (3) education (4) manufacturing?", Scale.Options, population).then((response) => {
        Summary.create(response, Scale.Options);
    });
  2. Space Exploration Milestones: Predict the next major milestone in space exploration by 2030.

    let population = new Population();
    population.addModel(Model.GPT4, 10);
    population.addModel(Model.CLAUDE_SONNET, 10);
    measurement("What will be the next major milestone in space exploration by 2030: (1) returning humans to the moon (2) launching a manned mission to Mars (3) discovering extraterrestrial life (4) establishing a permanent space station?", Scale.Options, population).then((response) => {
        Summary.create(response, Scale.Options);
    });

Process outline

  • Setup phase: The platform is initialized with the necessary configurations and models.
  • Calibration phase: The models are calibrated to ensure the most recent data is available.
    • Model creates a query to fetch the most recent data through the chosen tool
    • Fetch the most recent data using the generated query
    • Model summarizes the data for the purpose of judging / forecasting
  • Measurement phase: The calibrated models provide their predictions and judgments on the specified topic.
  • Summary phase: The platform synthesizes the outputs from the models into various histograms and summaries for user consumption.

Core Components

  • index.ts: Facilitates user interactions and manages the overall workflow of the platform.
  • measure.ts: Defines the framework for quantifying predictions and judgments, ensuring that outcomes from different populations of LLM judges are standardized and comparable.
  • measurement.ts: Handles the collection and documentation of outputs from specific populations of LLM judges, applying the standardization criteria to produce structured, comparable insights.
  • calibrate.ts: Calibration phase per model (currently support Wiki & Tavily Search) to get the most recent data available.
  • model.ts: Coordinates the input and integration of outputs from multiple LLMs.
  • population.ts: Describes the "population object," detailing the collective of LLM judges, including their distribution and management for particular measurements.
  • scale.ts: Provides mechanisms for adjusting the scope and scale of predictions for uniform analysis across different contexts.
  • summary.ts: Compiles the outputs into accessible summaries for users, synthesizing diverse model insights.

Getting Started

To begin using Silicon-Forecaster:

  1. Clone the repository and install dependencies:
    git clone <repository-url>
    cd silicon-superforecaster
    npm install
    

Create a .env File

it is important to create a .env file in the root directory of the project. The .env file should contain the following environment variables:

OPENAI_API_KEY=<your_key>
ANTHROPIC_API_KEY=<your_key>
REPLICATE_API_TOKEN=<your_key>
GOOGLE_API_KEY=<your_key>
TAVILY_API_KEY=<your_key>

silicon-superforecaster's People

Contributors

markjuno avatar mfainstein avatar

Stargazers

 avatar alonzuman avatar

Watchers

 avatar

silicon-superforecaster's Issues

Export / Persistence

Ability to save / persist the queries and their results in a simple JSON format.

  • The summary component should be able to present a summary provided this json
  • The measurement component can re-measure based on this json

Create a cli tool interface for setup and measurement

The cli should have the following commands

we will use the abbreviation "ssf" (stands for Silicon Super-Forecaster) for the alias to the cli tool (TBD if this is the name we want)

** ssf setup ** - prompts for the various keys needed. If a key is not provided, it should always skip the setup of that model/tool
** ssf measurement <verbose=false> - prompts for the wanted population and starts a measurement with this population on the query and scale provided

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.