AI is easy to productionize

The AI developer platform to build AI agents, applications,
and models with confidence

W&B Weave: Build agentic AI applications
  import weave weave.init("quickstart") @weave.op() def llm_app(prompt): pass # Track LLM calls, document retrieval, agent steps  
W&B Models: Build AI models
  import wandb run = wandb.init(project="my-model-training-project") run.config = {"epochs": 1337, "learning_rate": 3e-4} run.log({"metric": 42}) my_model_artifact = run.log_artifact("./my_model.pt", type="model")   

The world’s leading AI teams trust Weights & Biases

Weights & Biases AI developer platform

Models

Build and manage AI models

Training

Fine-tune AI models on agentic tasks

Inference

Serve hosted & fine-tuned AI models

Weave

Iterate, evaluate and monitor agents

Registry

Datasets | Models | Prompts | Code | Metadata

Core

Reports | Automations | SDK | Skills for coding agents

Secure deployment

Saas | Dedicated | Customer-managed

AWS_logo_RGB_1c_White
coreweave-white-1.png
lockup_GoogleCloud_Reverse_rgb_2900x512px
logoAzure-1.png

Models

Build and manage AI models

Training

Fine-tune with serverless RL

Inference

Access and explore hosted AI models

Weave

Iterate, evaluate and monitor agents

Registry

Datasets | Models | Prompts | Code | Metadata

Core

Reports | Automations | SDK

Secure deployment

Saas | Dedicated | Customer-managed

AWS_logo_RGB_1c_White
coreweave-white-1.png
lockup_GoogleCloud_Reverse_rgb_2900x512px
logoAzure-1.png

Now available:

Weights & Biases mobile app

The first iOS app to monitor AI experiments and track training runs anytime, anywhere.

app-advert-1
app-advert-2
app-advert-3

Compliance-ready for the enterprise

Weights & Biases AI development platform is certified under ISO/IEC 27001:2022, ISO/IEC 27017:2015, and ISO/IEC 27018:2019, and is compliant with SOC 2 and HIPAA standards. Our platform also helps customers comply with NIST 800-53 and we are in alignment with GDPR requirements for processing personal information.

Learn more about compliance with different deployment options:

Multi-tenant | Dedicated

Certified under

ISO 27001:2022

ISO 27017:2015

ISO 27018:2019

Compliant with

SOC 2

HIPAA

NIST 800-53

GDPR

Get started with one line of code

“I love Weave for a number of reasons. The fact that I could just add a library to our code and all of a sudden I’ve got a whole bunch of information about the GenAI portion of our product, in Weights & Biases, which I was already using and very familiar with. All those things that I’m watching for the performance of our AI, I can now report on quickly and easily with Weave.”

Mike Maloney, Co-founder and CDO
Neuralift
  import openai, weave weave.init("weave-intro") @weave.op def correct_grammar(user_input): client = openai.OpenAI() response = client.chat.completions.create( model="o1-mini", messages=[{ "role": "user", "content": "Correct the grammar:\n\n" + user_input, }], ) return response.choices[0].message.content.strip() result = correct_grammar("That was peace of cake!") print(result)  
  import weave from langchain_core.prompts import PromptTemplate from langchain_openai import ChatOpenAI # Initialize Weave with your project name weave.init("langchain_demo") llm = ChatOpenAI() prompt = PromptTemplate.from_template("1 + {number} = ") llm_chain = prompt | llm output = llm_chain.invoke({"number": 2}) print(output)  
  import weave from llama_index.core.chat_engine import SimpleChatEngine # Initialize Weave with your project name weave.init("llamaindex_demo") chat_engine = SimpleChatEngine.from_defaults() response = chat_engine.chat( "Say something profound and romantic about fourth of July" ) print(response)  
  import wandb # 1. Start a new run run = wandb.init(project="gpt5") # 2. Save model inputs and hyperparameters config = run.config config.dropout = 0.01 # 3. Log gradients and model parameters run.watch(model) for batch_idx, (data, target) in enumerate(train_loader): ... if batch_idx % args.log_interval == 0: # 4. Log metrics to visualize performance run.log({"loss": loss})  
  import wandb ‍ # 1. Define which wandb project to log to and name your run run = wandb.init(project="gpt-5", run_name="gpt-5-base-high-lr") ‍ # 2. Add wandb in your `TrainingArguments` args = TrainingArguments(..., report_to="wandb") ‍ # 3. W&B logging will begin automatically when your start training your Trainer trainer = Trainer(..., args=args) trainer.train()  
  from lightning.pytorch.loggers import WandbLogger # initialise the logger wandb_logger = WandbLogger(project="llama-4-fine-tune") # add configs such as batch size etc to the wandb config wandb_logger.experiment.config["batch_size"] = batch_size # pass wandb_logger to the Trainer trainer = Trainer(..., logger=wandb_logger) # train the model trainer.fit(...)   
  import wandb # 1. Start a new run run = wandb.init(project="gpt4") ‍ # 2. Save model inputs and hyperparameters config = wandb.config config.learning_rate = 0.01 ‍ # Model training here # 3. Log metrics to visualize performance over time ‍ with tf.Session() as sess: # ... wandb.tensorflow.log(tf.summary.merge_all())  
  import wandb from wandb.keras import ( WandbMetricsLogger, WandbModelCheckpoint, ) ‍ # 1. Start a new run run = wandb.init(project="gpt-4") ‍ # 2. Save model inputs and hyperparameters config = wandb.config config.learning_rate = 0.01 ... # Define a model # 3. Log layer dimensions and metrics wandb_callbacks = [ WandbMetricsLogger(log_freq=5), WandbModelCheckpoint("models"), ] model.fit( X_train, y_train, validation_data=(X_test, y_test), callbacks=wandb_callbacks, )  
  import wandb wandb.init(project="visualize-sklearn") ‍ # Model training here # Log classifier visualizations wandb.sklearn.plot_classifier(clf, X_train, X_test, y_train, y_test, y_pred, y_probas, labels, model_name="SVC", feature_names=None) ‍ # Log regression visualizations wandb.sklearn.plot_regressor(reg, X_train, X_test, y_train, y_test, model_name="Ridge") ‍ # Log clustering visualizations wandb.sklearn.plot_clusterer(kmeans, X_train, cluster_labels, labels=None, model_name="KMeans")  
  import wandb from wandb.xgboost import wandb_callback ‍ # 1. Start a new run run = wandb.init(project="visualize-models") ‍ # 2. Add the callback bst = xgboost.train(param, xg_train, num_round, watchlist, callbacks=[wandb_callback()]) ‍ # Get predictions pred = bst.predict(xg_test)  

See the Weights & Biases AI developer platform in action