From 0d6d59597cdb5777c0e9112bca472a07d972500d Mon Sep 17 00:00:00 2001 From: Dheeraj Singh Date: Wed, 28 Aug 2024 23:24:35 +0530 Subject: [PATCH] added article for using phi-3 and .NET development in Daytona Signed-off-by: Dheeraj Singh --- ...hi-3_and_dot_NET_Development_in_Daytona.md | 140 ++++++++++++++++++ ..._dot_NET_Development_in_Daytona_IMG_01.png | Bin 0 -> 14372 bytes ..._dot_NET_Development_in_Daytona_IMG_02.png | Bin 0 -> 20694 bytes ..._dot_NET_Development_in_Daytona_IMG_03.png | Bin 0 -> 19267 bytes 4 files changed, 140 insertions(+) create mode 100644 articles/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona.md create mode 100644 articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_01.png create mode 100644 articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_02.png create mode 100644 articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_03.png diff --git a/articles/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona.md b/articles/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona.md new file mode 100644 index 00000000..d0554c4a --- /dev/null +++ b/articles/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona.md @@ -0,0 +1,140 @@ +--- +title: "Using Phi-3 and .NET Development in Daytona" +description: "Learn how to configure and run Phi-3 Labs samples in a Daytona environment using .NET and devcontainer.json." +date: 2024-08-28 +author: "Dheeraj Singh" +tags: ["Phi-3 Labs", "Daytona", ".NET", "AI Development", "devcontainer"] +--- + + +# Using Phi-3 and .NET Development in Daytonas + +## Introduction + +With the release of Phi-3.5, the Phi-3 Labs project has introduced advanced features and enhancements for AI and machine learning applications. The Phi-3.5 update brings significant improvements over its predecessors, offering enhanced capabilities for researchers and developers working with language models. + +Daytona, a cloud-based development environment, provides a powerful platform for managing dependencies and configurations, making it ideal for developing, testing, and deploying AI models. This guide will walk you through setting up Phi-3.5 Labs samples in Daytona using a .NET configuration via `devcontainer.json`, streamlining your development process and enhancing collaboration. + +### TL;DR + +- **Set up Daytona with .NET**: Learn how to configure a .NET environment using `devcontainer.json`. +- **Integrate Phi-3.5 Labs**: Incorporate the latest Phi-3.5 models into your development workflow. +- **Run and Test Samples**: Execute and test Phi-3.5 Labs samples within Daytona. +- **Best Practices**: Discover tips for optimizing AI development in cloud environments. + +## Setting Up Daytona with .NET Using devcontainer.json + +To integrate Phi-3.5 Labs into your Daytona environment, start by setting up a .NET environment using `devcontainer.json`. Follow these steps: + +### Creating devcontainer.json + +1. **Create the `devcontainer.json` File**: In your project root, create a `.devcontainer` directory if it doesn’t already exist, and add a `devcontainer.json` file. + +2. **Configure the Environment**: Populate your `devcontainer.json` with the following configuration: + + ```json + { + "version": "2", + "name": "Daytona .NET Environment", + "dockerFile": "Dockerfile", + "extensions": [ + "ms-dotnettools.csharp", + "ms-vscode.vscode-node-azure-pack" + ], + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + "postCreateCommand": "dotnet restore" + } + ``` + +3. **Create Dockerfile**: Define the base image and install necessary dependencies: + + ```dockerfile + FROM mcr.microsoft.com/dotnet/aspnet:7.0 + WORKDIR /app + COPY . . + RUN dotnet restore + ``` + +### Diagram for `devcontainer.json` Configuration +This diagram illustrates the different parts of the devcontainer.json configuration file. + +![Sample devcontainer.json Configuration](assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_01.png) + +## Configuring the Environment for Phi-3.5 Labs + +With the .NET environment in place, you need to configure it for Phi-3.5 Labs. + +1. **Install Dependencies**: Add any required dependencies to your `Dockerfile` or install them manually in the Daytona container. + + ```dockerfile + RUN apt-get update && apt-get install -y \ + libfoo-dev \ + libbar-dev + ``` + +2. **Download Phi-3.5 Models**: Use a script to download and set up Phi-3.5 models. Create a `setup.sh` script: + + ```bash + #!/bin/bash + mkdir -p /models/phi-3 + wget -O /models/phi-3/phi-3.5-model.bin https://example.com/phi-3.5-model.bin + ``` + + Add this script to your `postCreateCommand` in `devcontainer.json`: + + ```json + "postCreateCommand": "./setup.sh" + ``` + +### Diagram for Phi-3 Labs Integration +This diagram shows how to integrate Phi-3 Labs models within your development environment. + +![Phi-3.5 Labs Integration Diagram](assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_02.png) + +## Running and Testing Phi-3.5 Labs Samples + +To run and test Phi-3.5 Labs samples: + +1. **Execute the Sample Project**: Navigate to your project directory and run the sample project: + + ```bash + dotnet run --project Samples/Phi3Sample.csproj + ``` + +2. **Verify Execution**: Ensure that the samples run correctly and test various functionalities. + +### Code Example + +```csharp +// Phi3Sample.cs +using System; + +class Program +{ + static void Main() + { + Console.WriteLine("Running Phi-3.5 Labs Sample"); + // Code to interact with Phi-3.5 model + } +} +``` + +### Simple Flowchart for the Setup Process +This flowchart outlines the steps for setting up Daytona with .NET and Phi-3 Labs. + +![Workflow](assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_03.png) + +## Best Practices for Using Daytona with .NET and AI Models +- **Optimize Resource Usage:** Ensure your Daytona environment is configured to use resources efficiently. Monitor and adjust as needed. +- **Version Control**: Keep your devcontainer.json and Dockerfiles under version control to track changes and ensure reproducibility. +- **Regular Updates**: Regularly update your dependencies and models to leverage the latest improvements and security patches. +- **Efficient Collaboration**: Use Daytona’s collaborative features to streamline teamwork and maintain consistency across different development environments. +- **Performance Monitoring**: Continuously monitor the performance of your models and environment to identify and address any bottlenecks. +**Key Point**: Regularly update your dependencies and models to leverage the latest improvements and security patches. + + + +## Conclusion +Integrating Phi-3 Labs with a Daytona environment using .NET can significantly enhance your development experience. By leveraging the power of Daytona’s cloud-based development environment, you can streamline your AI projects, making it easier to manage dependencies and collaborate with team members. \ No newline at end of file diff --git a/articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_01.png b/articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_01.png new file mode 100644 index 0000000000000000000000000000000000000000..74830b10e52944a82351efde60740160e4dbd1b0 GIT binary patch literal 14372 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 XWpi7qhgJ!SdX!w9ysk7l{`lxWjn%}M literal 0 HcmV?d00001 diff --git a/articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_03.png b/articles/assets/20240828_Using_Phi-3_and_dot_NET_Development_in_Daytona_IMG_03.png new file mode 100644 index 0000000000000000000000000000000000000000..2d9f85f38d8b68af83ffab5597d9d2aa39ff1fa9 GIT binary patch literal 19267 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 aaQL%cBk=`R-k$xP0KEss_c8Y#NB>`;jP%d| literal 0 HcmV?d00001