2024 Annual Summary: Exploring ML, RAG and iOS Development

Preface

As 2024 draws to a close, it's time for reflection. Looking back on this year, technological changes have swept in like tides, with learning and practice becoming the main theme of my growth. This article shares my technical explorations and thoughts throughout the year.

Exploring Machine Learning

In the field of financial risk control, the application of machine learning has been particularly profound. Our challenge was to identify potential risk transactions from massive structured transaction data. LightGBM was chosen as the core model due to its advantages in handling temporal and categorical feature data, as well as its capability in processing categorical variables during feature engineering. Through feature engineering, model tuning, and integration with business rules, the evaluation metrics of our risk transaction identification model improved significantly. This project emphasized the dual importance of algorithmic precision and business understanding.

RAG Technology: Practice and Insights

The breakthrough in RAG (Retrieval-Augmented Generation) technology brought new possibilities to enterprise knowledge base projects. We designed a complete processing pipeline, combining RAG with traditional search systems, significantly improving user experience. This successful technology integration represents not just a technical victory, but a qualitative change in user experience.

graph TB
    A[User Query] --> B[Query Understanding]
    B --> C1[Semantic Retrieval] & C2[Keyword Retrieval]
    C1 --> D[Hybrid Search Results]
    C2 --> D
    D --> E[Context Reranking]
    E --> F[Knowledge Graph Enhancement]
    F --> G[Prompt Construction]
    G --> H[LLM Generation]
    H --> I[Answer Optimization]
    I --> J[Source Attribution]
    
    subgraph Retrieval Enhancement
    C1
    C2
    D
    E
    F
    end
    
    subgraph Generation Optimization
    G
    H
    I
    J
    end

Advancing in Swift and iOS Development

My first venture into iOS development revealed the impressive richness of the Swift ecosystem. While implementing iCloud synchronization, the combination of SwiftData and CKSyncEngine gave me a fresh perspective on iOS multi-device data synchronization.

sequenceDiagram
    participant App
    participant SwiftData
    participant SyncEngine
    participant CloudKit
    
    Note over App,CloudKit: Initialization Process
    App->>SwiftData: Configure Local Storage
    App->>SyncEngine: Initialize Sync Engine
    SyncEngine->>CloudKit: Establish Connection
    
    Note over App,CloudKit: Data Change Synchronization
    App->>SwiftData: Local Data Update
    SwiftData->>SyncEngine: Trigger Change Notification
    SyncEngine->>CloudKit: Upload Changes
    CloudKit-->>SyncEngine: Confirm Sync
    
    Note over App,CloudKit: Conflict Resolution
    CloudKit->>SyncEngine: Detect Conflict
    SyncEngine->>SwiftData: Get Local Version
    SyncEngine->>SyncEngine: Conflict Resolution Strategy
    SyncEngine->>SwiftData: Update Local Data
    SyncEngine->>CloudKit: Submit Final Version

The Journey of Independent Development

The journey of independent development, from conception to launch, from user feedback to continuous optimization, taught me many lessons. While technical skills are important, user-centric thinking is crucial. Perfectionism needs moderation, and MVP mindset should be established. Independent development isn't a solo battle; community interaction is vital.

Closing Thoughts

Thanks to my colleagues, friends, and open-source community contributors throughout this year. It's your sharing and support that made 2024 so fulfilling and meaningful. In the new year, let's continue exploring the ocean of technology and creating more value.

🌟 "Technology evolves daily, but our original intention remains unchanged. Building dreams with code, delivering value through innovation."


Licensed under CC BY-NC-SA 4.0